Community & Support

Frequently asked questions, forum topics, and community resources for the SO-101 open-source robot arm.

Frequently Asked Questions

Where do I get the parts and BOM for the SO-101?

The full bill of materials, STL files for printing, and assembly instructions are maintained in the HuggingFace LeRobot repository on GitHub. Search for "SO-101" in the repo. Feetech STS3215 servos can be purchased directly from Feetech or from common electronics suppliers such as Amazon or AliExpress.

Is the SO-101 compatible with LeRobot?

Yes, natively. The SO-101 is supported directly by HuggingFace LeRobot with no additional plugin needed. Install LeRobot and use --robot.type=so101 in all CLI commands:

pip install lerobot
# or:
uv pip install lerobot

python lerobot/scripts/calibrate.py --robot.type=so101 --robot.port=/dev/ttyACM0

No manual registration or additional configuration is needed after installation.

Can I use the SO-101 for bimanual teleoperation?

Yes. Use one SO-101 as a leader arm and a second SO-101 (or a DK1 leader arm) as the input device. Both connect via USB serial and are natively supported by LeRobot. For a bimanual follower setup with the DK1 leader, see the DK1 page for full configuration details.

The serial port is not found on Linux — what do I do?

On Linux, USB serial ports under /dev/ttyACM* require the user to be in the dialout group. Run the following and then log out and back in:

sudo usermod -aG dialout $USER

Alternatively, grant temporary access with sudo chmod 666 /dev/ttyACM0. If the port still does not appear, verify the CH340 or CP2102 USB-to-serial driver is installed. On macOS you may need to install the CH340 driver separately.

A servo is not responding — what should I check?

Work through this checklist in order:

  1. Verify 12V power is connected and polarity is correct
  2. Confirm the USB cable is securely connected to the PC and to the servo bus adapter
  3. Check you are using the correct port in your command (run find_motors_bus_port.py)
  4. Verify each servo has a unique ID (1–6 from base to tip) — duplicate IDs cause communication failures
  5. Re-run calibration: python lerobot/scripts/calibrate.py --robot.type=so101 --robot.port=/dev/ttyACM0
  6. Inspect the servo cable connections for loose or reversed connectors
What cameras work with the SO-101 for data collection?

Any USB webcam works with LeRobot's built-in OpenCV camera driver. Use --robot.cameras.top.type=opencv and --robot.cameras.top.index=0 in the record.py command.

For depth-enabled data collection, OAK-D (Luxonis) and Intel RealSense D435 are community-recommended options. These provide RGB + depth at 30 fps and are supported by LeRobot camera drivers.

Have a question or want to share your SO-101 build results?

Go to Forum → LeRobot GitHub → Contact Support →

Back to SO-101 Hub

Everything you need to build, set up, and train with the SO-101.