-
Notifications
You must be signed in to change notification settings - Fork 1
Serial Ports
The Serial Ports page lets you reassign which physical UART the dome drive and drive system's serial link each use, without rewiring anything or re-flashing firmware.
The Amidala PCB has three hardware serial ports (real UART peripherals — none of them are bit-banged/software serial):
| Silkscreen | Pins | Purpose |
|---|---|---|
| Serial 0 | GPIO43/44 | Fixed — main serial-out / WCB mesh path. See Connectivity for routing this over the mesh instead of the wire. |
| Serial 1 | GPIO17/18 | Reassignable — dome drive or drive system's serial link |
| Serial 2 | GPIO21/38 | Reassignable — dome drive or drive system's serial link |
Historically, the dome drive's serial link (RoboClaw, or Sabertooth/Syren10 in packet-serial mode) was always wired to Serial 1, and the drive system's serial link (Sabertooth, RoboteQ serial) was always wired to Serial 2. If your build's wiring doesn't match that — or you just want to swap which header a given controller lands on — this page lets you pick either port for either subsystem.
| Setting | Description |
|---|---|
| Dome Drive Serial Port | Which port (Serial 1 or Serial 2) the dome's serial link uses. Only shown when your compiled dome drive actually uses one — RoboClaw or Sabertooth/Syren10. Not shown for basic PWM dome drive, which has no serial link at all. |
| Drive Serial Port | Which port the drive system's serial link uses. Only shown for Sabertooth or RoboteQ-serial/RoboteQ-hybrid drive systems — not shown for PWM or RoboteQ-PWM drive. |
If your build's dome and drive system both need a serial port, you can't assign them to the same one — the page will reject the change with a specific reason, since two protocols can't share one physical wire.
A restart is required after changing either setting for it to take effect (shown via the usual "Restart Required" banner).
Say your build wires the RoboClaw dome to the Serial 2 header instead of Serial 1 (maybe that's just how the cable run worked out on your particular build). Previously this would have required a custom firmware build. Now:
- Open Serial Ports from the home page
- Set Dome Drive Serial Port to Serial 2
- Restart the board
- Serial 0 is fixed — it always carries the main serial-out/WCB path. Use the Connectivity page's Outbound Destination setting to route that over the WCB mesh instead of the wire, if you have a mesh configured.
- I2C and a true 4th software-serial port are not supported. The ESP32-S3 has exactly 3 hardware UARTs, and all 3 are already accounted for above — a genuinely independent 4th serial link would require bit-banged software serial, which isn't implemented.