Skip to content

Serial Ports

Jessica Janiuk edited this page Jul 26, 2026 · 1 revision

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.


Why This Exists

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.


Configuration

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


Example

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:

  1. Open Serial Ports from the home page
  2. Set Dome Drive Serial Port to Serial 2
  3. Restart the board

What's Not Reassignable

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

Clone this wiki locally