README.md
# RC link breakaway panel
One **133 × 76 mm, four-layer, 1.6 mm** PCB containing the USB phone transmitter (left, 70 × 60 mm) and receiver (right, 44 × 54 mm). The circuits are electrically independent. Clip the perforated tabs to obtain the two original boards. All eight mounting holes remain on the finished boards.

The native TSX uses one four-layer board with two isolated subcircuits. It preserves the original transmitter copper and receiver signal routing; the receiver servo supply and return feeds are upgraded to 1.5 mm, with guarded routing caches rebased by physical port positions. No KiCad files or external PCB CAD are used. Source components use type-first designators such as R_TX_RESET and C_RX_IN; the TX/RX namespace makes each assembly designator unique. Nets use explicit TX_ / RX_ namespaces with ground flags, keeping both devices electrically independent. All six schematic sheets use A4; the receiver output rows are arranged to fit within the sheet.
## Build
```sh
npm ci
npm run build
bun tools/check-built.mjs
```
`tsci build --site` produces the local viewer in `dist/`. The two source designs are in `circuits/`. The original Circuit JSON and supplier placement audits in `boards/` are reference inputs for the preservation checks; they are not inflated to reconstruct the new board.
`panel-geometry.json` contains the native polygon cutouts and drill coordinates. Its generator is `tools/make-panel-geometry.py` (Python with Shapely). Do not move either circuit or change a footprint without regenerating its routing and repeating the audits.
## Breakaway construction
- Nine routed openings, nominal 3 mm channels, rounded for a 2 mm router tool.
- Ten connecting tabs, including two shared between RX and TX. No tabs on the antenna / USB edges.
- Seven 0.60 mm NPTH mouse bites per board attachment, 0.85 mm pitch (0.25 mm web). The two shared tabs have rows at both board edges: 84 mouse-bite holes total.
- Four 2 mm tooling holes on the waste rails and three global 1 mm copper / 2 mm mask fiducials, without paste.
- Rails at least 5 mm wide. No signal or power copper crosses a tab or waste rail.
Use flush depaneling cutters, supporting the board close to each tab. Clip every attachment, then smooth the small remaining nubs. Do not bend the populated boards sharply. Remove the rails before fitting the XIAO, connecting USB or operating the radios.
## JLCPCB upload
Upload **manufacturing/RC-LINK-PANEL-Gerbers.zip** as one customer-supplied panel. Upload **manufacturing/BOM.csv** and **manufacturing/CPL.csv** for top-side assembly. The raw exporter ZIP contains unverified automatic CSV drafts; do not upload that ZIP as the release package.
Select FR-4, 4 layers, 1.6 mm, standard 1 oz copper, green solder mask, white silkscreen, lead-free HASL or ENIG, a 0.10 mm stencil, and panel by customer. Specify **2 different designs**. One ordered panel yields **one transmitter plus one receiver**; quantity counts panels. Keep the layer order F_Cu / In1_Cu / In2_Cu / B_Cu. The copper and drill files use the same centered origin; do not shift CPL coordinates separately.
The BOM has **75 SMT placements: 33 TX + 42 RX**, all top-side. Supplier rotations and centroids come from the previously reviewed package-pad placement audits and are translated into panel coordinates. The XIAO RP2040, its two sockets, programmer/header connectors, antenna cable and external wiring require separate procurement and hand installation. Check the factory's component availability, assembly preview, rotations, routed-slot interpretation and quote before payment. JLCPCB may charge for two designs and panel processing.
Mouse-bite guidance: [JLCPCB capabilities](https://jlcpcb.com/capabilities/Capabilities?type=1), [mouse-bite guide](https://jlcpcb.com/blog/mouse-bite-panelization-guide).
## Verification and limits
The native build passes. Native checks on the completed Circuit JSON report no netlist, placement, schematic or routing errors and zero styling, naming or sheet-boundary warnings. The grounds remain separate. The receiver's 2N7002 is represented as an N-channel enhancement MOSFET with its original gate/source/drain pin mapping and footprint.
The original 11 trace-width warnings have been reviewed individually. Both servo buses were already 1.5 mm; both 0.8 mm feeds have now been upgraded to 1.5 mm. The return uses the bottom layer and existing 1 mm plated header holes, avoiding small vias and MCU ground branches. Five supply warnings disappear. Six ground warnings remain because the checker compares unrelated 0.2 mm MCU ground branches on the same net. No warnings are suppressed. `validation/servo-power-audit.json` verifies a separate >=1.5 mm supply and return path to every servo output and documents every remaining warning.
The optional servo rail has a **2 A total design limit, including combined stall/transient current**, with a regulated 5 V BEC and >=3 A contacts/cables. No servo/BEC model was selected in the existing quadcopter shopping list; its serial receiver connection does not use this rail. The conservative PCB-only estimate is 0.106 V worst-case drop at 2 A, using 25 um copper at 85 C and 20 um hole plating. This is not a measured thermal rating; connector/cable/BEC losses are excluded. See `manufacturing/POWER-AND-WIRING.md`.
Independent audits verify all 71 nets / 307 connected pads, no detected shorts or opens, two independent ground networks, unchanged TX copper and RX signal copper on all four layers, connected tabs and no copper across breakaways. Actual CAM checks include copper agreement, drill coordinates, annular rings, mask webs, paste release, silkscreen clearance and nine exposed fiducials without paste. The RX MCU exposed pad uses four 1.5 mm stencil windows (about 66% coverage); select a 0.10 mm stencil. SMT designators, supplier IDs, centroids and rotations are checked against this exact build before generating the 75-part BOM/CPL. Use this release files together; older assembly CSVs are superseded.
The generated **3D preview currently omits polygon cutouts**. Use the routed 2D snapshot and Gerber outline to review the breakaway slots. See `ISSUES.md`. The native partial `check schematic-placement` command also crashes while preparing autorouting; `tools/check-built.mjs` runs the schematic checks on the completed successful build instead.
Transmitter passives use explicit standard 0402/0603 GLB models in the viewer. Their PCB footprints retain the reviewed no-silkscreen geometry; PCB-only modifiers are not passed to the 3D model resolver.
This is an engineering-checked **prototype panel**, not physically validated radio or flight hardware. Factory CAM/assembly review and powered prototype testing remain necessary. No order has been placed.
## After separation
Both devices need their existing firmware programmed separately. RX uses an ST-Link-compatible SWD programmer; CH341A is unsuitable. TX needs both the XIAO RP2040 USB UF2 firmware and STM32 SWD radio firmware. Panelization changes no MCU pins or radio protocol, so the existing matching firmware applies. RX takes regulated 5 V; TX takes USB 5 V. Do not connect their supply rails together. Perform current-limited power-up, bind, channel-direction, HOLD/STOP, disconnect/failsafe and ground range tests before connecting motors or servos under load.