Skip to content

Setup Guide

greghulette edited this page Jul 28, 2026 · 6 revisions

Setup Guide

End‑to‑end: from a bare WCB board to a fully configured droid controller. This is the walkthrough — each step links to its detailed reference page for the deep dive. If you just want the tool reference, jump to Config Tool Guide.

New here? Read Home first for the one‑paragraph "how it works." The short version: your transmitter multiplexes its buttons onto one matrix SBUS channel; NaviCore decodes each frame, works out which button/tap/mode, and fires the actions you mapped — to Maestros, WCBs, HCR vocalizers, MP3 triggers, or raw serial.


Before you start — checklist

You need Notes
WCB v3.2 board (ESP32‑S3) The controller itself
FrSky radio + SBUS receiver X18, X20, or Twin X‑Lite — see Transmitter Setup
USB‑C cable For flashing and for the config tool
Chrome or Edge (desktop) The config tool uses Web Serial — Firefox/Safari won't work
(optional) Pololu Maestro(s) Servo control, local or remote — see Maestro Setup
(optional) Other WCBs, HCR vocalizer, MP3 trigger Remote action targets

The whole flow at a glance

NaviCore setup flow — flash, wire, transmitter, connect, calibrate, map, save, test

  1. Flash the firmware
  2. Wire it up
  3. Set up your transmitter
  4. Open the config tool and connect
  5. Calibrate your controls
  6. Map buttons, switches, and knobs
  7. Set up Maestros (and the Kyber gotcha)
  8. Set up destinations & the WCB network
  9. Save to the board
  10. First light — test it

1. Flash the firmware

Flash the three firmware artifacts (app, bootloader, partition table) with the in‑browser flasher or esp‑flasher‑companion. Full details: Flashing the Firmware.

  • A blank board needs all three — app‑only onto a blank board won't boot. The flasher handles this.
  • On first boot the firmware initializes its config storage automatically (LittleFS — see step 9). Nothing extra to upload.

Config → Firmware tab — the in‑browser flasher: current on‑board version, Update Firmware (keeps config) vs Full Wipe & Flash

The ESP Flasher Companion desktop app — the alternative desktop flashing path: per‑board Build+Flash / Restore Bootloader, which installs the custom bootloader + partition table the WCB family needs


2. Wire it up

Connect the receiver's SBUS to the board, and wire any outputs (local Maestro bus, aux serial, SBUS passthrough, power). Pin map and wiring: Hardware and Wiring.

The single most important wire is SBUS in — everything keys off it.


3. Set up your transmitter

Load the NaviCore model onto your FrSky radio so its buttons land on the matrix channel (default CH7) as discrete PWM bands, and its switches/knobs land on their own channels. Channel map and model files: Transmitter Setup.

In the config tool, set your radio under Config → Transmitter (X18 / X20 / Twin X‑Lite). This swaps the on‑screen graphic and the default channel/label set to match your hardware.

Config → Transmitter — the model selector (X18 / X20 / Twin X‑Lite) and its control map


4. Open the config tool and connect

Everything is configured from the browser — no IDE, no app. Full tool reference: Config Tool Guide.

  1. Open config_tool/index.html (locally or the hosted page) in Chrome/Edge.
  2. Plug the board in over USB.
  3. Click Connect — a small modal offers three ways in:
Option What it does
🔌 Connect via USB Plug straight into a NaviCore over USB and pick its port. The normal path.
📡 Via a WCB Plug into a USB‑tethered WCB instead; commands relay over ESP‑NOW to the NaviCore at special‑peer slot 20. Slower, and can't flash firmware or calibrate — fine for editing.
🔗 Shared port (across tabs) Reuse the WCB port already open in your WCB Wizard tab — no second cable. Same‑origin tabs only; it relays through that WCB.

For USB, pick the board's port in Chrome's Web Serial dialog.

Chrome's Web Serial port picker — choose the board's COM port to connect

On connect the tool reads the firmware version, pulls the current config, and starts the live monitor — every SBUS channel value, SBUS health (frames/sec, lost‑frame/failsafe flags, 16‑ vs 24‑channel), and the active control highlighted on the graphic.

Can't tether the controller? The Via a WCB and Shared port options both bridge over ESP‑NOW instead of a direct cable — handy for editing a board you can't reach. Neither can flash firmware or calibrate. See Connecting and Remote Management over WCB.

Main screen, connected — the transmitter graphic with the live monitor showing SBUS channel values and health


5. Calibrate your controls

Config → 🎯 Calibrate RC walks you through each control on your model and captures its SBUS values for you (so the matrix button bands and switch/knob channels are exact).

  1. The wizard highlights one control and shows its live SBUS value.
  2. Press/move that control — it captures (with optional auto‑advance), or hit Force Capture.
  3. Next/Previous to step through; switches/knobs let you type the channel manually.

While the wizard is open, all action dispatch is muted, so nothing fires while you wiggle sticks. Calibration needs a direct USB connection (Via‑WCB channel data is too slow).

The Channels tab — Matrix & Mode setup, per‑button PWM values, and the Calibrate RC button (bottom‑left) that launches the capture wizard

The Calibrate RC wizard — steps through every control (here step 1 of 43) with a live SBUS readout, Auto‑advance after capture, and Next / Previous / Force Capture controls


6. Map buttons, switches, and knobs

How a button press resolves — mode (1·2·3) × tap-count (1·2·3) selects one of nine independent action lists

Modes

A mode switch (1/2/3) lets the same control do different things in each mode. Map a button, then switch the mode tab and map it again — three layouts on one set of controls.

The mode selector (1 · 2 · 3) — the active mode decides which of the three action layouts a control uses

Buttons + multi‑tap

  • Click a button on the graphic to open its editor.
  • Three tap tiers — single, double, triple — each with up to 5 actions (Actions Reference).
  • Exclusive (only the matched tier fires) vs Cumulative (single → then double → then triple).
  • The tap window (how long the board waits for more taps) defaults to 500 ms. A value below 100 ms would silently disable multi‑tap, so the firmware rejects it and resets the field to the 500 ms default.
  • Test without the radio: Shift+Click = single · Shift+Ctrl+Click = double · Shift+Alt+Click = triple.

A button's mapping editor — the single / double / triple tap tiers with their actions, and the exclusive vs cumulative toggle

Switches

Each switch SA–SJ is 2‑ or 3‑position; assign its SBUS channel and per‑position actions. A switch fires when it changes to a position.

A 3‑position switch's editor — its SBUS channel and the per‑position action lists

Knobs, sliders & joystick axes

Analog sources — knobs S1/S2, sliders LS/RS/S3, gimbal axes J1–J6 — continuously map position to an output:

  • Maestro Pass‑Through — drive a servo: pick a Maestro (1–8), its servo channel (0–31), and the target positions (quarter‑µs, e.g. 4000–8000) at the stick's min/max. One source can drive up to 10 outputs.
  • HCR Volume — map position to an HCR audio channel's volume (0–99).
  • Reverse inverts the source around center.

Analog sources dispatch every frame — keep the number of active outputs reasonable to avoid flooding the bus.

A joystick axis set to Maestro Pass‑Through — target Maestro, servo channel, and min/max positions

A knob mapped to HCR Volume — stick position drives an HCR audio channel's volume (0–99)


7. Set up Maestros

Maestro routing — local via Serial2/GPIO6 vs remote broadcast over Kyber to a forwarding WCB

Pololu Maestros are addressed by their device number (set in Pololu Maestro Control Center). Full setup: Maestro Setup.

In Config → Maestro, each of the 8 slots has a location:

Location Where the bytes go
Disabled Nothing (default)
Local (Serial2) A Maestro wired to this board's Serial2 bus
Remote (broadcast) Broadcast over the WCB ESP‑NOW network to a Maestro on another WCB

Config → Maestro — each slot's Disabled / Local / Remote location and its device number

⚠️ The Kyber gotcha (remote Maestros)

A Remote Maestro command is broadcast over WCB. For the servos to actually move, the receiving WCB (the one wired to the Maestro) must be told to forward those broadcasts — it does not by default:

  1. On that WCB: ?KYBER,REMOTE (or ?KYBER,LOCAL,Sx if Kyber + Maestro are on the same board).
  2. Verify with ?KYBER,LIST — it must say Remote or Local, not "Not used."
  3. Make sure a Maestro serial port is reserved on that WCB (?MAESTRO), or rely on the Remote‑mode Serial1 fallback.

If a remote Maestro "does nothing," this is almost always why. See WCB Network.


8. Destinations & WCB network

  • HCR and MP3 actions use a global destination (set once in Config → HCR / Config → MP3 Trigger), so every HCR/MP3 action shares one wiring. HCR functions (emotions, muse, WAV playback, volume, override) are in Actions Reference. Audio setup in depth: WLED and HCR Audio.
  • WLED actions are different — they route through a per‑id destination table (Config → WLED Lighting), up to 4 slots. Each slot pairs a WLED id (1–9) — the id your ;L<id>,VERB actions address — with either a Local aux serial port (S3/S4/S5) or a Remote WCB (the command is forwarded over ESP‑NOW). WLED wants 115200 baud, which only S3 (the hardware UART) drives reliably. See WLED and HCR Audio.
  • WCB Network (Config → WCB Network) sets the ESP‑NOW credentials, the mesh WiFi channel (1–13), and this controller's device ID. The channel must match every other WCB on the mesh — the ESP32 has one radio, so a mismatch leaves this RC silently unreachable. The RC always claims device ID 20. Network changes (credentials, channel, device ID) need a reboot to take effect. See WCB Network.

Config → HCR — the global HCR destination and transport every HCR action shares

Config → WCB Network — ESP‑NOW credentials and this controller's device ID

Config → MP3 Trigger — the global MP3 destination


9. Save to the board

Save to Board sends the config (SET_CONFIG) and the firmware writes it to flash as a single /config.json file on LittleFS. The board replies with an ACK — the tool waits for it.

What changed (and what it means for you):

  • No more per‑mode size wall. Older firmware stored config in NVS with a hard 4000‑byte‑per‑section limit that could silently drop a densely‑mapped mode. LittleFS removes that — config is one file, written atomically.
  • Your existing config carries over. The first boot after updating to the LittleFS firmware auto‑migrates your old NVS config; you'll see migrated existing config: NVS -> LittleFS in the serial log, then RC config loaded from LittleFS. on later boots.
  • Save big configs over USB. Practical ceilings: ~50 KB over USB, ~15 KB over the WCB bridge (the WCB fragmenter cap). Realistic configs are far under both, but if you push a huge one, use USB.
  • Baud changes apply live (no reboot). WCB‑network changes need a reboot.
  • Refresh re‑reads from the board · Restore Defaults resets · Export/Import for backup and cloning.

A failed save is now reported (ACK ok:false) instead of silently dropping data, and the live config in RAM is never corrupted by a bad write.

The header bar — Connect / Via WCB / Refresh / Save / Config / Export / Import / Terminal, with connected status


10. First light — test it

  1. With the tool connected, shift‑click a few buttons to fire their mappings without touching the radio; watch the targets respond.
  2. Watch the live monitor highlight the control you move on the radio and light up the matrix button you press.
  3. Do a set → Save → Refresh on one setting to confirm it persists (it should round‑trip cleanly now).
  4. Power‑cycle the board and reconnect — your config should load from LittleFS unchanged.

If something's off, the Troubleshooting page covers the usual suspects.


Document your setup — the Cheat Sheet

With everything mapped, hit 📋 Cheat Sheet in the header to generate a printable card of what every button, tap, switch, and knob does in each mode. Save it as HTML or Save as PDF, flip between the command view and your own notes, or Share (QR) to pull it up on your phone at the field. Full builder: Cheat Sheet.


Backup & restore

Export writes your whole config to a file; Import loads it back. Use it to back up before big changes, to clone a setup onto another board, or to move config across a partition change. The exported shape is documented in Configuration Schema.


Quick troubleshooting

Symptom First thing to check
No live monitor / "no SBUS" Receiver SBUS wiring; SBUS health flags in the monitor
Port won't connect Chrome/Edge only; close other apps holding the port; re‑plug native USB
Remote Maestro does nothing Kyber forwarding on the receiving WCB (step 7); device numbers match
Double/triple tap does nothing Tap window not too small; the multi‑tap tier actually has actions
Config "won't save" Save over USB (not Via‑WCB) for big configs; watch for an ACK ok:false
HCR silent Global HCR destination + transport; over WCB the receiving board's HCR port

Full details: Troubleshooting.


Still‑wanted screenshots

The walkthrough above is now illustrated. A handful more would round it out:

  • Hardware photos — the WCB v3.2 board labeled (USB‑C OTG port, SBUS‑in, GPIO6 Maestro bus), the receiver→SBUS wire, and the GPIO0 4.7k pull‑up mod.
  • Pololu Maestro Control Center — the device‑number / serial‑settings screen (see Maestro Setup).
  • FrSky radio screens — the model's matrix mix and channel outputs on the radio (see Transmitter Setup).

Clone this wiki locally