Skip to content

PCB Assembly and BOM

greghulette edited this page Jul 8, 2026 · 2 revisions

PCB Assembly and BOM

How to build a NaviCore PCB — the custom carrier board (KiCad project at PCB/NaviCore_V1/ in the main repo) that hosts an ESP32‑S3 DevKitC and breaks out SBUS, the Maestro bus, and three aux serial ports. It's an all‑through‑hole build: one resistor, a handful of headers, and the dev board. 20–30 minutes with a basic iron.

This page is for the NaviCore PCB hardware profile. If you're running NaviCore firmware on a bare WCB v3.2 instead, there's nothing to assemble — see Hardware and Wiring.


Bill of materials

Qty Part Reference Notes
1 NaviCore carrier PCB Gerbers: PCB/NaviCore_V1/NaviCore_Gerber_V10.zip
1 ESP32‑S3‑DevKitC‑1‑N16R8 U1 16 MB flash / 8 MB octal PSRAM — must be the N16R8 variant; the firmware's partition table assumes 16 MB flash
2 1×22‑pin female header socket, 2.54 mm for U1 Socket the DevKitC — don't solder it in directly (see below)
1 4.7 kΩ resistor R1 GPIO0 → 3.3 V pull‑up. Do not skip (see below)
4 1×4‑pin header, 2.54 mm J3–J6 Maestro bus + Serial 1 / 2 / 3 (TX · RX · 5V · GND)
2 1×3‑pin header, 2.54 mm J1, J2 SBUS IN and SBUS OUT (signal · 5V · GND)
1 2‑position screw terminal, 5.08 mm J7 5 V power in
4 M3 standoffs + screws (optional) H1–H4 Mounting holes

Why the 4.7 k resistor matters

GPIO0 is the ESP32‑S3's boot‑strap pin. Left floating, the board can latch into bootloader/download mode after sitting idle — it looks like a dead or corrupted board but is purely the floating strap. R1 pulls GPIO0 up to 3.3 V and eliminates it. This was debugged the hard way; build every board with R1 populated.

Why socket the DevKitC

  • A failed module swaps out in seconds instead of a 44‑pad desolder job.
  • You can pull the dev board and flash/test it standalone.
  • Keeps the DevKitC's own pin headers usable if it's ever repurposed.

Assembly order

Lowest‑profile parts first, so each stage sits flat when the board is flipped:

  1. R1 (4.7 kΩ) — solder, trim leads.
  2. J1–J6 pin headers — tack one pin, check the header is square to the board, then solder the rest.
  3. J7 screw terminal — wire openings facing the board edge.
  4. Female header sockets for U1 — the alignment trick: seat the sockets onto the DevKitC's pins first, drop the whole sandwich into the PCB, solder the sockets while the dev board holds them parallel. Then pull the dev board back off.
  5. Standoffs on H1–H4 if you're mounting it.

Inspect for bridges (headers on 2.54 mm pitch are the usual suspects), then seat the DevKitC in its sockets — USB connectors facing the board's silkscreen marking.

First power‑up

  1. Before inserting the DevKitC: apply 5 V to J7 and verify 5 V/GND on the U1 socket pins — one minute with a multimeter protects a $15 module.
  2. Seat the DevKitC, connect USB, and flash: Flashing the Firmware.
  3. In the config tool, confirm Config → Board type = NaviCore PCB (it's the firmware default; a board previously run as WCB 3.2 needs it switched + a reboot).
  4. Smoke test: status LED goes red (booting) → dim blue (running), the config tool connects over USB, and the terminal shows SBUS frames once a receiver is wired to SBUS IN.

Port functions and pin assignments: Hardware and Wiring. If the board only runs with the serial monitor open, or boots into download mode: Troubleshooting.


Clone this wiki locally