-
Notifications
You must be signed in to change notification settings - Fork 1
Remote Management over WCB
You don't have to tether a USB cable to the NaviCore board to manage it. If the controller is buried inside a droid, you can reach it wirelessly from the config tool by plugging into any WCB on the same ESP‑NOW network and letting that WCB relay traffic to the controller. This is "Via WCB" mode.
This page is the end‑to‑end walkthrough. For the credential details see WCB Network; for the connection basics see Config Tool Guide.
[Browser config tool] --USB--> [any WCB] --ESP-NOW--> [NaviCore @ device ID 20]
- The config tool wraps each JSON command as
;w20,<json>and the tethered WCB forwards it over ESP‑NOW to the controller, which always lives at special‑peer device ID 20. - The controller continuously broadcasts lightweight telemetry back (heartbeat, channel snapshot, trigger/mode events) so the tool can discover and live‑monitor it.
- Large payloads (a full
GET_CONFIG/SET_CONFIG) are fragmented into ESP‑NOW‑sized packets and reassembled on the other end.
-
Put the controller on the WCB network. In Config Tool Guide over direct USB, open Config → WCB Network and set the MAC octets, password, quantity, and WiFi channel (
1-13) to match your system — every field must match every other WCB on the mesh. Read them off a known‑good WCB with?WCBM/?WCBP/?WCBQ/?WCBCH. Leave Device ID = 20. Save and reboot the controller (WCB credentials only take effect at boot). - Confirm it's online. From any WCB's USB serial, or the config tool's WCB Status panel, the controller should show up as board 20 online.
- Plug the config tool into any WCB on the network over USB.
- Hit Connect and pick Via WCB in the connect method modal (the modal offers USB, Via WCB, and Shared port). Choosing Via WCB skips the direct probe and immediately wraps traffic for the relay. See Connecting for the full method picker.
- The tool now relays to the controller at ID 20. You'll see the SBUS monitor, mode, and live channels populate from the controller's telemetry — the same UI as a direct connection.
🚀 Auto‑fallback. If you pick plain USB but the port doesn't answer a direct
PING(because it's a WCB, not a NaviCore), the tool automatically retries the same port Via WCB — so tethering to a WCB and hitting Connect usually just works. The Via WCB checkbox in the top bar is still there as a manual toggle if you want to force it on or off mid‑session.
The tool sends a quiet keep‑alive ping every ~10 s so the controller keeps streaming channel data while you're parked on the page.
| Task | Via WCB? | Notes |
|---|---|---|
| Live SBUS monitor (channels, fps, mode) | ✅ | fps is the controller's real SBUS rate (from its heartbeat), not the 20 Hz relay rate |
| See button/switch/knob activity | ✅ | event‑driven trigger/mode notices |
| Trigger a button remotely | ✅ | fires the mapped actions exactly like a physical press |
Load config (GET_CONFIG) |
✅ | fragmented + reassembled |
Save config (SET_CONFIG) |
✅ | the tool sends only the changed branches (a diff), so a typical save is a handful of fragments, not the whole config |
| Firmware update — OTA over WCB | ✅ | 📡 Update over WCB (OTA) streams new firmware through the relay over ESP‑NOW; brick‑safe, SHA‑verified, keeps config — see below |
| Calibration | ❌ | needs ~30 Hz sampling; even the 20 Hz relay is too slow — use direct USB |
| Firmware — full/bootloader flash & OTA‑over‑USB | ❌ | esptool bootloader flashing and the ⚡ Update over USB (OTA) path both need a direct USB connection to the board |
- Saves are diff‑based: the tool ships only the top‑level branches you changed since the last load, which keeps the payload small and reliable over the radio.
- A save isn't considered done until the controller returns an
ACK. If no ACK arrives within ~12 s, the tool warns you — click Refresh to see what actually persisted, then re‑save. -
Network‑identity fields are protected. The controller refuses to change its own
wcbNetworkdevice ID, MAC octets, password, and quantity from a Via‑WCB save — it strips those from any incomingSET_CONFIGthat arrived over the bridge, otherwise a save could cut the very link it arrived on.
⚠️ The WiFi channel is NOT auto‑protected. Unlike the fields above, the firmware does not stripwcbNetwork.channelfrom a Via‑WCB save, so changing the channel over WCB will apply on the next boot and can silently take the controller off the mesh. Always change the channel (and the other network‑identity fields) over direct USB.
If a save over WCB ever feels flaky (RF congestion, a busy network), just tether USB for that one save — it's always the most reliable path.
You can flash the controller's firmware without ever touching it — the tethered WCB relays the whole image over ESP‑NOW to a buried board. This is the headline remote‑management capability: update a droid whose NaviCore you can't physically reach.
While connected Via WCB, the Firmware panel's 📡 Update over WCB (OTA) button lights up (it's enabled only in Via WCB mode). Pick a .bin and the tool drives an ACK‑paced transfer through the relay:
- BEGIN — the target erases its inactive OTA slot (~1.2 MB, a few seconds) and ACKs.
- DATA — the image streams in base64 chunks, each awaiting the target's ACK; a dropped packet is resent from the target's authoritative cursor instead of aborting the transfer.
- END — the target SHA‑verifies the image, switches its boot slot, and reboots into the new firmware. It re‑joins the mesh on its own and the Via‑WCB session resumes — no USB reconnect needed.
It's brick‑safe (writes the inactive slot, only switches after verify) and keeps your config. Under the hood the relay carries ?OTA,BEGIN/DATA/END lines that the firmware handles in processOtaRelayCommand.
This is distinct from ⚡ Update over USB (OTA) and the full esptool/bootloader flash, both of which require a direct USB connection. See Flashing the Firmware for all three paths.
- One controller per network at ID 20. The bridge addresses a single special‑peer slot. Multiple controllers would need distinct IDs and an explicit picker (not the default setup).
- Telemetry is gated. The controller only streams 20 Hz channel data while a tool is actively listening (it sees your pings); on an idle network it just sends a 0.5 Hz heartbeat, so it isn't spamming the ESP‑NOW airwaves. If ~15 s pass with no inbound message it stops the channel stream until a tool checks in again.
- Bridges are interchangeable. The WCB you tether to is just a relay — its own ID doesn't matter, it only needs to be on the same network with the special peer enabled.
- Controller not found / no telemetry: confirm it booted on the network (board 20 online), and that MAC octets/password/quantity and WiFi channel match. A failed WCB network init latches a STEADY orange status LED — that's distinct from a FLASHING orange LED, which means the radio came up fine but there's no SBUS signal. See WCB Network and Failsafe and Signal Loss.
- Save says "no ACK": RF congestion or the controller briefly offline — Refresh and retry, or save over USB.
- Calibrate greyed out or blocked: expected — calibration requires direct USB.
- OTA button greyed out: 📡 Update over WCB (OTA) is enabled only while connected Via WCB; the ⚡ USB OTA and bootloader flash are the direct‑USB paths.
See Troubleshooting for the full list.
NaviCore — Astromech Animation Controller · Home · WCB v3.2 / ESP32‑S3
Setup
- Setup Guide — start here
- PCB Assembly and BOM
- Hardware and Wiring
- Flashing the Firmware
- Transmitter Setup
- Connecting
- Config Tool Guide
- Maestro Setup
Reference
- Action Editor and Command Library
- Actions Reference
- WLED and HCR Audio
- Record and Replay
- Cheat Sheet
- Configuration Schema
- WCB Network
- Remote Management over WCB
- Serial JSON Protocol
- CLI Commands
- Failsafe and Signal Loss
- Glossary
Help