Getting started with the SO-101 and LeRobot
The order of work from the box to your first dataset. Each step links to the official LeRobot documentation. The commands change between LeRobot releases, so use the docs as the reference.
What you need
- An SO-101 follower arm, kit or assembled
- A mains power supply with the same voltage as your servos — 12 V or 7.4 V. It is not in the box.
- A computer with Python. Linux and macOS are the usual choice.
- To record demonstrations by hand: an SO-101 leader arm with its own board and supply
- To train a policy: one or two USB cameras
Not sure which arm to buy? Read SO-101: kit or assembled, 7.4 V or 12 V.
The steps
-
Install LeRobot
Follow the installation guide. The SO-101 uses Feetech servos, so install LeRobot with the Feetech extra, as the guide shows.
-
Find the USB port
Connect the driver board to power and to your computer. Then run:
lerobot-find-portIt asks you to unplug the cable, and prints the port that went away. Write it down. On Linux you may need to give your user access to the port first.
-
Set up the motors (kit only)
Each servo needs its own ID on the bus. The SO-101 guide runs
lerobot-setup-motorsand asks you to connect one servo at a time, gripper first. Do this before you close up each joint.The assembled arm was built and moved joint by joint before it left us. Go to step 5.
-
Build the arm (kit only)
Follow the joint-by-joint assembly in the SO-101 guide. The printed parts are in the box, so skip the part about sourcing and printing. Clamp the base to the table before the first power-on.
-
Calibrate
Calibration makes the same physical pose give the same numbers on every SO-101. That is what lets a policy trained on one arm run on another.
lerobot-calibrate \ --robot.type=so101_follower \ --robot.port=<your port> \ --robot.id=my_followerMove every joint to the middle of its range, press Enter, then move each joint through its full range. Keep the same
idin every later command: LeRobot stores the calibration under that name. Calibrate the leader arm the same way, with--teleop.type=so101_leader. -
Teleoperate
With a leader arm connected,
lerobot-teleoperatecopies the leader's pose to the follower. Start slowly and keep your hand clear of the gripper. See Imitation learning on real-world robots for the command and for adding cameras. -
Record, train, run
lerobot-recordsaves teleoperated episodes as a dataset,lerobot-traintrains a policy on it, andlerobot-rolloutruns the policy on the arm. The same imitation learning tutorial covers all three. It suggests about 50 episodes for a first pick-and-place task.
When something does not move
- No servo answers: check the power supply, the USB cable and the 3-pin cable to the first servo. The board needs both USB and power.
- A servo gets hot or stops under load: it is at its stall limit. Lower the load or work closer to the base. The 12 V servos have more margin.
- The arm moves to strange poses: the calibration does not match
the
idyou passed. Use the sameidyou calibrated with, or calibrate again. - Still stuck: the LeRobot community answers on Discord. For a Komatachi arm, write to hello@komatachi.com.
SO-101 is an open-source arm design by TheRobotStudio and Hugging Face. LeRobot is Hugging Face's open-source robot learning library. Komatachi is not affiliated with either. Command names are from the LeRobot documentation as of September 2026.