LeRobot SO-ARM100 Assembly Guide
LeRobot SO-ARM100 Assembly and Servo Configuration Guide
1. Setting Servo IDs
- Wiring Diagram
- Check the port of servo driver. Run the program - it will first detect all serial ports. Then manually unplug the USB cable and press Enter to detect the serial port number. Replug the USB cable afterward.
- Set servo IDs sequentially

python lerobot/scripts/find_motors_bus_port.py
# Assign permissions to the detected serial port
sudo chmod 777 /dev/ttyACM0Insert your first motor and run this script to set its ID to 1. It will also set its current position to 2048, so expect your motor to rotate. Replace the text after --port with the corresponding servo driver board port, and run:
python lerobot/scripts/configure_motor.py \
--port /dev/ttyACM0 \
--brand feetech \
--model sts3215 \
--baudrate 1000000 \
--ID 1These motors are currently restricted. They can only take values between 0 and 4096, which corresponds to a full 360° rotation. They cannot rotate further. 2048 is at the midpoint of this range, so we can go -2048 steps (180° counterclockwise) or +2048 steps (180° clockwise) to reach maximum range. The configuration step also sets the homing offset to 0. If you assemble the arm incorrectly, you can always update the homing offset to account for ±2048 steps (±180°) maximum offset. Detailed operations are described in 2.4 Checking Midpoints of Master/Slave Arms.
Then unplug the motor and insert the second motor to set its ID to 2.
python lerobot/scripts/configure_motor.py \
--port /dev/ttyACM0 \
--brand feetech \
--model sts3215 \
--baudrate 1000000 \
--ID 2Repeat this process for all motors up to ID 6. Perform the same operations for the 6 motors on the other arm.
2. Assembling Slave Arm


















3. Assembling Master Arm
The first five joints are installed the same way as the slave arm. The sixth joint installation method is shown below:

Final installation result:


4. Checking Midpoints of Master/Slave Arms

Baud rate settings:

Click the "Open" button, then click "Search" (6 servos should be detected):

Check each servo's position. The midpoint should be 2048 (±50 tolerance). If not, perform midpoint calibration as shown:

Calibration complete.
