Hugging Face publishes full assembly guide for open-source SO-101 robot arm

Hugging Face's LeRobot project has released complete build documentation for the SO-101, an open hardware robot arm designed to run advanced models on a physical platform. The guide includes a bill of materials (BOM) with purchase links, three-dimensional-print files for every mechanical part, and beginner-friendly instructions that assume no printer or prior experience.
The follower arm uses six Feetech STS3215 motors with a 1:345 gear ratio. The leader arm employs three motors with different ratios so it can support its own weight while still allowing effortless manual movement. A table in the documentation maps each motor to its specific joint.
Before physical assembly, users install the LeRobot package per the installation guide and add the Feetech SDK via `pip install -e ".[feetech]"`. The next step identifies the USB ports for the MotorBus controllers: run the `lerobot-find-port` script, unplug the cable when prompted, and record the resulting path — for example `/dev/tty.usbmodem575E0032081` — for each arm.
Every motor ships with a default ID of 1, so each must be assigned a unique ID and a common baudrate across all controllers and motors. These parameters are written to the motor's non-volatile EEPROM, making the process one-time unless motors are reused from another robot. Calibration proceeds motor by motor: connect only the gripper motor, run `lerobot-setup-motors` with the robot type and port, and confirm the ID is set to 6. Then move to wrist_roll, and so on.
A detailed troubleshooting section covers power supply, the USB cable between computer and controller, and the three-pin cable between controller and motor. For Waveshare controllers, both jumpers must be set to channel B (USB) — a small detail that can save hours of debugging.