Start here · Get a robot · Updated 2026-08-23

The SO-101 setup checklist: from box to moving arm

Everything in order, with the exact commands from the current official docs (lerobot 0.6.1). Budget an afternoon for assembly and an hour for the software.

Stage 1: build the body

Follow the assembly guide in the SO-ARM100 repository. One detail that bites people: the follower uses six identical motors, but the leader uses different gear ratios per joint, so motor placement on the leader matters. Label motors as you go.

Stage 2: install the software

The docs recommend a fresh conda environment with Python 3.12:

conda create -y -n lerobot python=3.12
conda activate lerobot
conda install ffmpeg -c conda-forge
pip install 'lerobot[feetech]'

The plain pip install lerobot is not enough to drive a robot; the feetech extra carries the motor support for SO-100 and SO-101. Warning: tutorials older than 2026 often show python lerobot/scripts/control_robot.py commands. That syntax is obsolete. Current commands all start with lerobot-.

Stage 3: find ports and set motor IDs

Plug in one arm's controller board and run:

lerobot-find-port

Then give each motor its identity, one motor plugged in at a time (the script walks you through the order):

lerobot-setup-motors \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem585A0076841

Repeat for the leader with --teleop.type=so101_leader and its own port. On Linux you may need sudo chmod 666 /dev/ttyACM0 first.

Stage 4: calibrate

lerobot-calibrate \
    --robot.type=so101_follower \
    --robot.port=/dev/tty.usbmodem58760431551 \
    --robot.id=my_follower_arm

Same again for the leader with the --teleop.* flags. The id you pick stores the calibration and must stay the same in every later command, so choose something you will not mind typing for months. Full details live in the official SO-101 page.