Quickstart: Before You Begin
Read this first. The SO-101 is beginner-friendly and works with LeRobot out of the box — no CAN bus, no kernel modules, no ROS required to get started. This page tells you exactly what you need, how long it takes, and what you will be able to do when you finish.
What Makes the SO-101 Different
If you are coming from OpenArm or are choosing between platforms, here is the key distinction.
The SO-101 uses Feetech STS3215 serial bus servos — not CAN bus motors like OpenArm. This has two major implications:
- Simpler wiring: All 6 servos daisy-chain on a single 3 Mbps USB serial bus. One USB cable to your PC. No SocketCAN drivers, no kernel modules, no interface bring-up.
- Works on any OS: macOS, Windows, and Linux are all supported. You do not need Ubuntu or a native Linux install.
The trade-off is lower payload (250 g vs 1 kg) and lower control bandwidth — the SO-101 is ideal for tabletop pick-and-place and data collection for imitation learning. It is used in dozens of academic labs and is the most common arm in the LeRobot community.
LeRobot native: The SO-101 is one of the reference platforms in the HuggingFace LeRobot codebase. You can follow the official LeRobot quickstart directly — no custom robot config needed.
How Long Does This Take?
From parts to your first recorded LeRobot episode.
Total first-day time: roughly 2.5–3 hours. Faster than any CAN-bus arm because there is no kernel driver setup. Beginners typically finish in an afternoon.
Hardware Checklist
The SO-101 is a DIY kit. Source your own parts or purchase a pre-assembled kit from the SVRC store.
-
SO-101 arm (follower arm) 6-DOF arm with 6× Feetech STS3215 servos, 3D-printed or CNC-machined frame. Print files on GitHub →
-
Leader arm (optional but recommended) A second SO-101 used as the teleoperation input device. Leader-follower gives the highest quality demonstrations. Can start with keyboard teleop if you only have one arm.
-
Feetech USB servo controller (STS/SCS bus adapter) One per arm — connects servos to your PC via USB. Sometimes called the "serial bus servo driver board." Available in the SVRC store →
-
5V DC power supply (3A per arm minimum) Not included with DIY kits. Any regulated 5V supply with barrel connector works. The 6 servos draw ~2A at peak load.
-
Host PC (Windows, macOS, or Linux) Python 3.10+ required. No native Linux requirement — the serial bus driver is a standard USB CDC device. Minimum: 8 GB RAM.
-
USB-A cable for servo controller Standard USB cable. Most controller boards use USB-A to USB-B or USB-A to micro-USB.
-
USB webcam or Intel RealSense Optional for setup, required for data collection. USB webcam works fine. RealSense D435i adds depth but is not required by LeRobot.
-
Stable mounting surface The SO-101 is a tabletop arm. Clamp it or bolt it to a workbench — it must not slide during demonstrations or calibration will drift.
What to Install Before You Start
The Setup Guide walks through each step. This is the summary so you can prepare in advance.
Python 3.10+
Required. Install from python.org on Windows/macOS, or use your system package manager on Linux. Verify:
python --version # or python3 --version
# Should show Python 3.10.x or higher
LeRobot
The only library you need to control, calibrate, and record with the SO-101. Install into a virtual environment:
python -m venv ~/.venvs/so101
source ~/.venvs/so101/bin/activate # Windows: .venvs\so101\Scripts\activate
pip install lerobot
LeRobot includes the SO-101 robot config, servo calibration scripts, and the full data recording pipeline. See the Software page for the full setup.
USB Serial Driver
On Windows, install the CP2102 or CH340 driver depending on your servo controller board. On macOS and Linux, the driver is usually included. Check:
# Linux / macOS — look for the device
ls /dev/ttyUSB* /dev/tty.usbserial*
# Windows — check Device Manager for "USB Serial Device"
No ROS Required
The SO-101 works entirely via LeRobot's Python interface over USB serial. You do not need ROS2, SocketCAN, or any kernel drivers. This is the primary advantage over CAN-bus arms for beginners.
What You Can Do After the Full Path
After completing setup, calibration, and first data collection, you will be able to:
lerobot calibrate — no manual measurement
How to Get Help
The SO-101 has an active community across GitHub, HuggingFace, and the SVRC forum.
SO-101 Forum
Ask setup questions, share builds, and get answers from the SVRC community and team.
LeRobot GitHub
The SO-101 is a first-class robot in the LeRobot codebase. Check issues for SO-101-specific bugs.
SO-ARM100 GitHub
Hardware design files, BOM, assembly instructions, and 3D print files for the SO-101 frame.
Direct Support
Contact the SVRC team for hardware sourcing, kit purchases, or enterprise inquiries.