Skip to content

Hardware and Wiring

greghulette edited this page Jul 28, 2026 · 2 revisions

Hardware and Wiring

NaviCore runs on the Espressif ESP32‑S3, and one firmware image drives two different boards: the NaviCore v2 PCB (default) and the older WCB HW 3.2. The pin map is chosen at boot from a runtime board profile, so most GPIOs differ depending on which board you selected. This page covers both pin maps and how to wire the receiver and peripherals.

⚠️ Pick your board first. The pins below are only correct once the right profile is active. Set it in the config tool (Board selector → NaviCore v2 PCB or WCB HW 3.2), save, then reboot — pins are assigned only at boot, so a profile change takes effect on the next power‑up. Default is NaviCore v2. See Config Tool Guide.


Pin map (both board profiles)

Pins are runtime globals set by the firmware's applyBoardProfile() at boot from rcConfig.boardType. The Maestro bus, status LED, and UART roles are the same on both boards; SBUS IN/OUT swap and the three aux ports move.

Function UART / type NaviCore v2 WCB HW 3.2 Notes
SBUS IN Serial1 / UART1 RX GPIO4 GPIO5 From RC receiver. 100k 8E2 inverted. Shares one full‑duplex UART1 with SBUS OUT.
SBUS OUT (passthrough) Serial1 / UART1 TX GPIO5 GPIO4 Re‑emits the received frame. Shares UART1 TX with SBUS IN.
Local Maestro Serial2 / UART2 TX GPIO6, RX GPIO7 TX GPIO6, RX GPIO7 Pololu Maestro command bus. Default 115200 baud. RX optional.
Aux serial S3 Serial0 / UART0 (hardware) TX GPIO8, RX GPIO9 TX GPIO15, RX GPIO16 Hardware UART — up to 115200 (e.g. WLED). v2 silkscreen "Serial 1" / WCB "Serial 3".
Aux serial S4 SoftwareSerial TX GPIO10, RX GPIO21 TX GPIO17, RX GPIO18 Bit‑banged, ≤57600 baud. v2 "Serial 2" / WCB "Serial 4".
Aux serial S5 SoftwareSerial TX GPIO38, RX GPIO47 TX GPIO9, RX GPIO10 Bit‑banged, ≤57600 baud. v2 "Serial 3" / WCB "Serial 5".
Status LED onboard NeoPixel GPIO48 GPIO48 Boot/run indicator. Same pin on both boards.
USB (debug + config tool) native USB‑CDC USB‑C USB‑C No UART consumed. 115200.

How the three UARTs are allocated

The ESP32‑S3 has only three hardware UARTs (UART0/1/2). With the debug console on native USB‑CDC (no UART consumed), both current boards use the shared‑SBUS layout:

  • UART1 / Serial1 → SBUS IN + OUT on one full‑duplex port (RX + TX, 100k 8E2 inverted). A byte‑tee re‑emits each received frame out the same UART's TX line.
  • UART2 / Serial2 → local Maestro.
  • UART0 / Serial0 → aux port S3 — freed up because SBUS IN and OUT now share UART1.

That leaves only S4 and S5 to be bit‑banged as SoftwareSerial (which is why they're capped at ~57600 baud). S3 is a real hardware UART, so it can run up to 115200 — the rate a WLED controller wants.


SBUS input

  • Wire the receiver's SBUS signal to the SBUS‑IN pin for your board (GPIO4 on v2, GPIO5 on WCB 3.2), plus GND and the receiver's supply (per your receiver's spec — typically 5 V).
  • SBUS is inverted UART at 100000 baud, 8E2 — the firmware handles inversion internally; just feed it the raw SBUS line.
  • 16‑ and 24‑channel SBUS are auto‑detected (25‑byte vs 36‑byte frames). You'll see the detected variant in the config tool's monitor and via the #L09 / #L13 CLI commands.

See Transmitter Setup for channel mapping and Failsafe and Signal Loss for what happens when SBUS drops.

SBUS output (passthrough)

  • SBUS OUT re‑emits the exact channel data received, so you can daisy‑chain a downstream SBUS consumer (another controller, a servo decoder, etc.).
  • It is not a separate port — on both boards SBUS OUT shares the UART1 TX line with SBUS IN (GPIO5 on v2, GPIO4 on WCB 3.2), 100k 8E2 inverted. Sharing the full‑duplex UART is what frees UART0 to become the hardware S3 aux port.
  • The re‑emit is a byte‑for‑byte passthrough with negligible added latency.

Local Maestro bus

  • Connect the Pololu Maestro's RX to GPIO6 (NaviCore TX), and GND common. Both boards use GPIO6/GPIO7 for the Maestro.
  • Default baud 115200. Each wired Maestro must either be set to that fixed baud in Maestro Control Center → Serial Settings, or be in Detect Baud Rate mode.
  • NaviCore always speaks Pololu protocol (not compact), so every Maestro must have a unique device number (0–127) set in Maestro Control Center. This is what lets multiple Maestros share one bus (and the ESP‑NOW broadcast bus) without all responding to every command.
  • Configure which logical Maestro (slot 1–8) is local vs remote, and its device number, in the config tool's Maestro Locations panel. See Maestro Setup and Actions Reference.

Aux serial (S3 / S4 / S5)

Three general‑purpose serial ports for:

  • an HCR vocalizer (9600 baud),
  • a SparkFun MP3 Trigger v2 (38400 baud),
  • a WLED controller (115200 baud),
  • or any device you drive with raw Serial actions.

S3 is a hardware UART (up to 115200); S4 and S5 are SoftwareSerial (keep ≤57600). All three are valid targets for a Serial action (S3 / S4 / S5) and as the destination for HCR, MP3, and WLED. Wire NaviCore TX → device RX, share GND, and set the matching baud in Config → Aux Serial. One port = one device = one baud.

🚀 WLED wants 115200, which only S3 (hardware UART0) drives reliably — put a WLED controller on S3, not S4/S5.

The config tool's baud pane labels these ports by your board's silkscreen: Serial 1/2/3 on NaviCore v2, S3/S4/S5 on WCB HW 3.2. See WLED and HCR Audio for the audio/lighting devices and Actions Reference for the Serial action.

Remote peripherals (no wiring to NaviCore)

Remote Maestros and WCB boards are reached over ESP‑NOW — there's no physical wire from NaviCore to them. NaviCore broadcasts Maestro bytes on the Kyber path; any WCB with Kyber_Remote enabled forwards them to its own Maestro port. See WCB Network.

Power & status LED

  • Power the board per your hardware's spec.
  • The onboard NeoPixel (GPIO48 on both boards) shows boot/run state:
    • Red — booting
    • Steady orange — WCB network failed to initialize (latched fault; check WCB Network settings)
    • Flashing orange — running, but no SBUS signal (receiver unplugged, transmitter off, or wiring fault)
    • Steady dim blue — running normally (receiving SBUS)
    • Brief cyan pulse — a new WCB peer was just detected on the network

Clone this wiki locally