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.

★ Beginner Friendly ✓ LeRobot Native

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.

Assembly
~60m
Servo installation, cable routing, gripper mount
Software install
~30m
Python, lerobot pip install, USB driver check
Servo calibration
~20m
LeRobot calibrate command — automatic
First teleop test
~15m
Leader–follower with two arms, or keyboard teleop
First dataset
~30m
50 episodes, LeRobot format, push to HuggingFace

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:

Control all 6 joints in real time over USB serial using the LeRobot Python API
Calibrate servo zero positions automatically with lerobot calibrate — no manual measurement
Teleop the arm in leader–follower mode and record synchronized joint state + camera episodes
Export datasets in LeRobot / HuggingFace format, ready for ACT and Diffusion Policy training
Push datasets to HuggingFace Hub and fine-tune community models on your data
Contribute to the SO-101 community dataset — hundreds of labs worldwide use the same format

Ready? Start the Setup Guide.

Once you have your hardware and Python installed, setup takes about an hour.