Start here · Get a robot · Updated 2026-08-23
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.
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.
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-.
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.
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.