Skip to content

WCB Network

greghulette edited this page Jul 28, 2026 · 5 revisions

WCB Network

NaviCore joins your WCB system over ESP‑NOW (no Wi‑Fi AP, no router — peer‑to‑peer). This is how it reaches remote Maestros, remote WCB boards, HCR/MP3 over WCB, and how the config tool's Via WCB bridge works.


Credentials

The WCB network values are stored in the config file (/config.json on LittleFS) and editable from Config → WCB Network in the tool. The compile‑time values in wcb_config.h are only the factory defaults for a fresh board.

Setting What it is How to find it
MAC octet 2 2nd octet of the shared WCB MAC scheme query a WCB: ?WCBM
MAC octet 3 3rd octet ?WCBM
Password ESP‑NOW network password (≤39 chars) ?WCBP
WiFi channel ESP‑NOW mesh channel (113); must match every WCB or the boards won't hear each other ?WCBCH
Quantity Pre‑registered floor of WCBs in the system — extra boards auto‑join over WDP without being counted here ?WCBQ
Device ID This controller's ID on the network see below

Query any WCB over its own USB serial port with ?WCBM, ?WCBP, ?WCBQ, ?WCBCH to read the values your system already uses, then enter the same ones here.

Device ID

By convention an RC controller claims device ID 20 — the WCB "special‑peer" slot. This keeps IDs 1–19 free for regular WCBs and gives the config tool's Via WCB bridge a single, known target (it always addresses the RC at ID 20). The field is editable for unusual multi‑controller setups, but leave it at 20 unless you have a reason not to.

⚠️ WCB network changes require a reboot. The WCB client initializes once at startup. Saving new credentials — including the WiFi channel — writes them to /config.json on LittleFS, but the running radio keeps using the old values until the board restarts. The tool shows a "dirty / needs reboot" indicator to reflect this — use REBOOT (or power‑cycle) after changing them.


Remote Maestros

Remote Maestros can be reached two ways.

Kyber broadcast (raw bytes). NaviCore sends one packet, every WCB receives it, and any WCB that has Kyber forwarding enabled (?KYBER,REMOTE, or ?KYBER,LOCAL,S<port>) and a Maestro port configured forwards the raw bytes to that Maestro serial port. Both are required on the receiving WCB — without them the broadcast is silently dropped. On this path there's no per‑slot WCB/port routing to set up on the NaviCore side.

WCB‑native (;M<dev>,verb). A remote Maestro slot can instead be driven with WCB‑native text verbs: NaviCore emits a ;M<dev>,<verb> ETM command that the hosting WCB runs against its own locally wired Maestro. A Via‑WCB Maestro action can target a specific WCB ID (unicast) or broadcast. This path also supports 2‑way query readbackgetPosition, getMovingState, and getErrors come home over the mesh as :MQR,<id>,<chan>,<KIND>,<value> replies, which the skip‑if‑running gate and remote Read‑live consume. See Maestro Setup for slot setup.

Because a Maestro is addressed by its device number on both paths, every Maestro must have a unique Pololu device number (set in Maestro Control Center, and matched in the Maestro Locations panel). The device‑number filter is what stops every Maestro from reacting to every command. See Actions Reference.


HCR & MP3 over WCB

  • HCR over WCB is unicast to one WCB ID (1–20). NaviCore sends it as an ETM ;H command; the serial port is chosen on the receiving WCB via ?HCR,PORT (not on NaviCore), and that WCB's HCR driver writes to its locally wired vocalizer. Broadcast isn't supported — an HCR vocalizer is a single device at a known WCB.
  • MP3 over WCB is unicast to one WCB ID; that WCB's own MP3 driver (set up there via ?MP3,S<port>) does the serial work.

Set both destinations in their respective config tabs. See WLED and HCR Audio and Actions Reference.


"Via WCB" remote management

NaviCore beacons lightweight telemetry on the WCB network so the config tool can discover and monitor it without a USB cable:

  • a periodic heartbeat (~0.5 Hz) that always broadcasts — a low‑cost "I'm alive" presence beacon the tool (and the WCB Wizard's discovery) uses to find the RC even when nothing is listening,
  • a higher‑rate channel snapshot (~20 Hz) for the live SBUS/PWM visualizer that is subscription‑gated: it streams only while a tool is actively live‑monitoring and stops ~15 s after the last inbound WCB message. The tool sends a periodic PING in Via WCB mode to keep the subscription alive; a direct‑USB‑only setup never starts the stream, so no airtime is wasted on networks where no one's listening,
  • event‑driven trigger and mode‑change notices the instant they happen.

When you enable Via WCB in the tool (while tethered to any WCB), it relays GET_CONFIG / SET_CONFIG / TRIGGER / monitoring to the RC at device ID 20. Big config payloads are fragmented to fit ESP‑NOW packets. Firmware flashing still requires direct USB. See Remote Management over WCB for the full bridge workflow.


Status & liveness

  • The tool's WCB Status panel polls which boards are online (GET_WCB_STATUS).
  • The reply also tags temporary / management peers — a WCB that advertised the WDP temporary flag (a mesh/management relay) shows as · temp; these are live‑only and never persisted, so they drop off once their advert ages out.
  • It reports each board's per‑serial‑port device labels (ports 1–5, advertised over WDP) so the tool can name ports instead of showing plain Serial n. This travels on the USB path only; the Via‑WCB bridge's smaller frame can't carry it, so a bridged tool falls back to plain names.
  • CLI #L11 prints the same up/down list over USB serial. See CLI Commands.
  • A failed network init at boot lights the status LED orange.

Clone this wiki locally