SO-ARM101 Troubleshooting: Servo Not Found, ID Drops Mid-Recording, and Cable Faults
Share
Nine times out of ten, an SO-ARM101 that "loses" a servo has a cable, power or ID problem, not a dead servo. Work through this list in order before ordering parts.
1. Servo not found at startup
- Power first. USB powers only the adapter board's logic. The servos need 12 V (follower) or 7.4 V (leader) on the barrel jack. A board with its PWR LED on but no servo power looks exactly like a dead chain.
-
Baud rate and port. STS3215 default is 1 Mbps. Confirm the port with
lerobot-find-portand make sure the vendor tool is closed. - ID conflict. Servos ship as ID 1. If two servos share an ID the bus answers with garbage and LeRobot reports the whole chain missing. Set IDs one servo at a time.
- First-cable check. Swap the adapter-to-base cable with a known good 3-pin cable. The cable that carries the whole chain's traffic fails first.
2. Servo disappears during teleoperation or recording
- Cable strain at a joint. The wrist and elbow cables flex thousands of times per dataset. A cable routed with no slack fatigues at the connector. Reroute with a 2 cm loop and replace with the correct length: 15 cm at the wrist, 20 cm at the elbow, 40 cm from the base.
- Voltage sag. Six STS3215 pulling a load can draw 5 A at 12 V; a 2 A or 3 A adapter drops out, the servo resets and its ID vanishes for a second. Use a 12 V 5 A supply per arm.
- Loose horn screws. A horn that slips lets the servo hit its limit and trip overload. Check the four M3 screws on each metal horn.
- USB hub. Two arms and two cameras on one unpowered hub starve the adapter boards; use a powered hub or separate ports.
3. Intermittent errors and jitter
- Connectors: the 5264 plugs should click; a half-seated connector works on the bench and fails when the arm moves.
- Grounding: run the two arms' adapters from the same power strip.
- Firmware limits: after a crash, re-run calibration; a stale limit makes the servo fight its stop.
4. When it is the servo
If a servo is not detected alone on the bench with a fresh cable and correct power, it is faulty. Replace with an STS3215 single of the same voltage and ratio, set the ID, and re-run calibration for that arm.
Spares worth having: two cables of each length, one servo, one adapter board. They cost less than a lost afternoon.
FAQ
Two servos have the same ID. How do I fix it?
Connect only one of them to the adapter, set its ID in the Feetech or Waveshare tool, then reconnect the chain. IDs must be 1–6 in order from base to gripper for the LeRobot so101 configs.
The servo works with the vendor tool but not with LeRobot.
Check the baud rate (1 000 000 for STS3215) and that no other program holds the serial port. On Linux add your user to the dialout group.
A servo gets hot and shuts down.
Overload protection. Reduce the holding torque limit in the servo register, check that the arm is not fighting a mis-calibrated limit, and give the shoulder joint a 12 V supply with at least 5 A.