-
Notifications
You must be signed in to change notification settings - Fork 1
Maestro Setup
Pololu Maestro servo controllers are how NaviCore moves servos — locally over a wired bus, and remotely over ESP‑NOW. Getting multiple Maestros to share a bus is the most common stumbling block, so this page walks through it end to end. For the action syntax see Actions Reference; for pins see Hardware and Wiring.
NaviCore has 8 logical Maestro slots (1–8). A Maestro action targets a slot; where that slot physically lives is set once in Config → Maestro (Locations):
Slot type
|
Where the bytes go |
|---|---|
| Local | Out the wired Maestro bus on GPIO6 (Serial2), at the local‑Maestro baud. |
| Remote | Broadcast over ESP‑NOW; any WCB with Kyber_Remote enabled forwards them to its Maestro port. |
| Disabled | Slot ignored. |
Each slot also stores a device number — see below.
In the config schema this is the maestros[] array (8 entries) plus auxBaud.maestro. See Configuration Schema.
NaviCore always speaks Pololu protocol (never "compact"), which means every command is addressed to a specific device number. This is what lets several Maestros sit on one wire (or one ESP‑NOW broadcast bus) and only the addressed one act.
Every Maestro must have a unique device number, and that number must match what you enter for its slot in NaviCore. Two Maestros with the same number on one bus will both react — and collide.
- Connect the Maestro to a PC via USB, open Pololu Maestro Control Center.
-
Serial Settings tab:
- Serial mode: UART, fixed baud rate (set it to 115200 to match NaviCore's default), or UART, detect baud rate.
- Device Number: give each Maestro a unique value (0–127).
- CRC: disabled (NaviCore doesn't send CRC).
- Apply Settings (writes to the Maestro's own flash).
Then in NaviCore's Maestro Locations panel, set that slot's device number to the same value and choose Local or Remote.
- NaviCore TX = GPIO6 → Maestro RX.
- Common GND.
- (Maestro TX → NaviCore RX on GPIO7 is optional — NaviCore doesn't need Maestro feedback.)
- Baud defaults to 115200 (
auxBaud.maestro). Either set the Maestro to fixed 115200 or use detect baud rate. - Multiple local Maestros: daisy‑chain their serial lines on the same bus; unique device numbers keep them independent.
No wire from NaviCore. NaviCore broadcasts the Maestro bytes on the Kyber path; a WCB elsewhere forwards them to the Maestro wired to that WCB. Set the slot to Remote and give it the right device number.
For the bytes to actually reach servos, the receiving WCB needs two things: (1) Kyber forwarding enabled — ?KYBER,REMOTE (forward broadcasts) or ?KYBER,LOCAL,S<port> — and (2) a Maestro port configured on that WCB so it knows where to send the forwarded bytes. Miss either and the broadcast is silently dropped. See WCB Network.
A Maestro action's cmd is one of:
cmd |
Effect |
|---|---|
setTarget,<ch>,<pos> |
Move servo channel <ch> (0–31) to <pos> quarter‑µs (e.g. 4000–8000). |
setSpeed,<ch>,<spd> |
Set channel speed limit. |
setAccel,<ch>,<acc> |
Set channel acceleration limit. |
goHome |
Send all channels to their configured home positions. |
stopScript |
Stop the Maestro's onboard script. |
restartScript,<n> |
Start the onboard script at subroutine <n>. |
Knobs/sliders/gimbal axes can also drive a Maestro continuously (Maestro Pass‑Through) — pick a slot, a servo channel, and the qus range at the stick's min/max. See Config Tool Guide.
| Symptom | Likely cause |
|---|---|
| Nothing moves (local) | TX/RX swapped, no common GND, baud mismatch (set Maestro to 115200 or detect‑baud), or slot not set Local. |
| Nothing moves (remote) | Receiving WCB has no Maestro port configured, or Kyber forwarding isn't enabled on it (?KYBER,REMOTE / ?KYBER,LOCAL,S<port>); wrong device number; or slot not set Remote. |
| Every Maestro reacts to one command | Duplicate device numbers — give each a unique number in Control Center and match it in NaviCore. |
| Servo jitters / wrong range |
setTarget qus out of the servo's range; clamp posMin/posMax to a safe travel. |
| Works on the bench, not in the droid | Power — servos can brown out the bus; give the Maestro its own servo‑power supply with shared ground. |
More in Troubleshooting.
Next: Actions Reference · Hardware and Wiring · WCB Network
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