Install the tools
Result: source and dependencies are installed, the port is selected and the expected motors respond. Complete the hardware checks first.
1. Get the source
Open a terminal in the directory where you want to keep the project:
macOS / Linux
git clone https://github.com/roboninecom/STS32XX-Firmware.git
cd STS32XX-Firmware
git checkout a995f77cf83175060bfa8fb908347448a5ae45eb
Windows PowerShell
git clone https://github.com/roboninecom/STS32XX-Firmware.git
Set-Location STS32XX-Firmware
git checkout a995f77cf83175060bfa8fb908347448a5ae45eb
The checkout pins the revision used to verify this documentation. A detached checkout at this commit is intentional. If you already have a checkout with local changes, preserve it and use a separate copy instead of switching it.
2. Install dependencies
You are now in the STS32XX-Firmware root. Check interpreter versions and install the tools:
macOS / Linux
node --version
python3 --version
npm ci
python3 -m venv tools/flash/.venv
tools/flash/.venv/bin/python -m pip install -r tools/flash/requirements.txt
Windows PowerShell
node --version
py -3 --version
npm.cmd ci
py -3 -m venv tools/flash/.venv
.\tools\flash\.venv\Scripts\python.exe -m pip install -r tools/flash/requirements.txt
Use Node.js 20+ and Python 3.10+. Python dependencies use a separate environment. Activation is unnecessary because later commands call its interpreter directly. Windows instructions use npm.cmd and do not require changing PowerShell execution policy.
Check: installation finishes without errors. If node, python or py is unavailable, install the required interpreter or correct PATH. Do not flash with an incomplete installation.
3. Select the port
Connect the adapter and identify its port using your operating system. Common names are /dev/cu.usbmodem… on macOS, /dev/ttyUSB0 on Linux and COM3 on Windows. Replace the example:
macOS / Linux
export SERVO_PORT=/dev/ttyUSB0
Windows PowerShell
$env:SERVO_PORT = 'COM3'
The variable belongs to this terminal; set it again in a new window. On macOS, replace the Linux example with the actual /dev/cu.… path.
4. Discover motors
Apply the correct motor power and close other programs using the port. This command reads devices; it does not enable torque or start motion:
macOS / Linux
npm run settings -- discover --port "$SERVO_PORT"
Windows PowerShell
npm.cmd run settings -- discover --port "$env:SERVO_PORT"
The default baud rate is 1,000,000. For a different rate, add --baud with the actual value and use it in subsequent commands accepting that option.
Check: discovered IDs match the connected motors and any reported alarms are understood. An empty list means no replies at the selected baud rate, not proof of broken firmware. Discovery cannot reliably distinguish duplicate IDs. See connection diagnostics if needed.
Next: back up and flash. Install the optional telemetry viewer when you need it.
Documentation home · Source revision: a995f77. Extension 9.0.