Skip to content

Setup Guide

greghulette edited this page Jun 17, 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.

📸 Screenshot: Config → Firmware tab — the in‑browser flasher (board version, Flash button, progress log).


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.

📸 Screenshot: 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 and pick the board's port.

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? Use Via WCB to bridge through any USB‑connected WCB over ESP‑NOW. It's slower and can't flash firmware or calibrate — but it's fine for editing. See Remote Management over WCB.

📸 Screenshot: 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).

📸 Screenshot: The Calibrate RC wizard — highlighted control, live SBUS value, capture/next 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.

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 (minimum 100 ms — anything lower would disable multi‑tap, so the firmware floors it).
  • Test without the radio: Shift+Click = single · Shift+Ctrl+Click = double · Shift+Alt+Click = triple.

📸 Screenshot: A button's mapping editor — the single/double/triple tiers with actions, and the exclusive/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.

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 8 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.

📸 Screenshot: A knob/axis editor set to Maestro Pass‑Through — target Maestro, servo channel, min/max positions.


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

📸 Screenshot: Config → Maestro — the per‑slot Disabled / Local / Remote dropdown and device number field.

⚠️ 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.
  • WCB Network (Config → WCB Network) sets the ESP‑NOW credentials and this controller's device ID. The RC always claims device ID 20. Network changes need a reboot to take effect. See WCB Network.

📸 Screenshot: Config → HCR (or WCB Network) — the global destination / network credentials panel.


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.

📸 Screenshot: The header bar — Connect / Refresh / Save / Config / Export / Import, with the connected status and firmware version.


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.


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.


Screenshots to add

This guide marks where screenshots help (the 📸 callouts). Capture them from your live, connected tool — a real config with the live monitor looks far better than a blank one — and drop them into wiki/images/, then replace each 📸 **Screenshot:** … marker with ![caption](images/<name>.png). Suggested filenames:

Marker Filename
Firmware / flasher tab images/setup-flasher.png
Transmitter model selector images/setup-transmitter.png
Main screen, connected images/setup-monitor.png
Calibration wizard images/setup-calibrate.png
Button mapping editor images/setup-button-editor.png
Knob → Maestro pass‑through images/setup-knob-passthrough.png
Maestro Locations panel images/setup-maestro.png
HCR / WCB Network panel images/setup-destinations.png
Header bar (Save/Export/…) images/setup-header.png

Clone this wiki locally