Getting Started with LeRobot and SO100: Complete Setup Tutorial (2026)

Step-by-step guide to setting up your SO100 robot arm with Hugging Face's LeRobot framework. From unboxing to your first AI-trained task in under an hour.

·11 min read

Step-by-step guide to setting up your SO100 robot arm with Hugging Face's LeRobot framework. From unboxing to your first AI-trained task in under an hour.


What You'll Need

Before we start, here's your checklist:

  • SO100 robot arm kit (leader + follower) — Buy pre-assembled for $299
  • Computer with USB-C ports (Linux recommended, macOS/Windows also work)
  • Python 3.10+ installed
  • 2x USB-C cables (included in our kit)
  • Power supply (included in our kit)
  • A task to teach (start simple — pick up a block, push an object)

What is LeRobot?

LeRobot is Hugging Face's open-source robotics framework that makes it easy to:

  1. Teleoperate your robot (control the follower arm by moving the leader arm)
  2. Record demonstrations of tasks
  3. Train AI policies using imitation learning
  4. Deploy trained models to the robot
  5. Share everything on the Hugging Face Hub

It's the standard software stack for the SO100 and SO101 robot arms. If you've used the Hugging Face transformers library, LeRobot will feel familiar.

Step 1: Install LeRobot

# Create a virtual environment (recommended)
conda create -n lerobot python=3.10
conda activate lerobot

# Install LeRobot
pip install lerobot

# Verify installation
python -m lerobot --help

Troubleshooting Installation

IssueFix
pip install failsMake sure you have Python 3.10+. Try pip install --upgrade pip first
CUDA errorsLeRobot works without CUDA for data collection. You only need CUDA for training
USB permission errors (Linux)Add your user to the dialout group: sudo usermod -aG dialout $USER then reboot

Step 2: Connect Your SO100 Arms

Hardware Setup

  1. Place both arms on a stable surface, about 50cm apart
  2. Connect the follower arm to your computer via USB-C → Waveshare servo driver → servos
  3. Connect the leader arm to your computer via a second USB-C cable
  4. Power the follower arm using the included power supply (the leader arm is powered via USB)

Verify Connection

# List connected devices
ls /dev/ttyUSB*  # Linux
ls /dev/tty.usbmodem*  # macOS

You should see two devices — one for each arm.

Step 3: Calibrate

Calibration tells LeRobot the position range of each servo motor.

python -m lerobot.calibrate \
  --robot.type=so100 \
  --robot.port_leader=/dev/ttyUSB0 \
  --robot.port_follower=/dev/ttyUSB1

Follow the on-screen prompts to move each joint to its limits. This takes about 5 minutes.

Pro tip: If you bought a pre-assembled SO100 from our store, the servos are pre-tested and the calibration should go smoothly. DIY builds sometimes have servo alignment issues that require re-seating. (Not sure which option is right for you? Read our pre-assembled vs DIY comparison.)

Step 4: Teleoperate (Your First Robot Moment! 🤖)

This is the fun part. Move the leader arm and watch the follower arm mirror your movements:

python -m lerobot.teleoperate \
  --robot.type=so100

Move the leader arm around. The follower arm should track your movements in real-time. If it feels laggy or jittery:

  • Check USB connections
  • Reduce the control frequency: --fps=20
  • Make sure the power supply is providing enough current

⚡ Get the SO100 Complete Kit

Pre-assembled leader + follower arms, all servos, driver boards, cables, and power supply included. Skip the build — start training AI this weekend.

Buy Now — $299

Step 5: Record Demonstrations

Now let's teach the robot a task. Start with something simple like picking up a block and placing it in a cup.

python -m lerobot.record \
  --robot.type=so100 \
  --num_episodes=50 \
  --repo_id=your-username/so100-pick-place

Recording Tips

  • 50 demonstrations is a good starting point for simple tasks
  • Be consistent — try to perform the task the same way each time
  • Vary slightly — small variations help the model generalize
  • Use good lighting if you're recording camera data
  • Reset the scene between episodes (put the block back in the same starting position)

Step 6: Train an AI Policy

Now we train an imitation learning model on your demonstrations:

python -m lerobot.train \
  --policy.type=act \
  --dataset.repo_id=your-username/so100-pick-place \
  --training.num_epochs=100

Policy Types

PolicyBest ForTraining Time
ACT (Action Chunking Transformer)Most tasks, good default1-3 hours (GPU)
Diffusion PolicyComplex manipulation3-6 hours (GPU)
TDMPCTasks with clear goals2-4 hours (GPU)

No GPU? You can train on Hugging Face Spaces or Google Colab with a free GPU.

Step 7: Deploy Your Trained Model

The moment of truth — let the AI control the robot:

python -m lerobot.deploy \
  --robot.type=so100 \
  --policy.path=outputs/train/act/checkpoints/last

Watch your SO100 autonomously perform the task you taught it. 🎉

What to Try Next

Once you've got the basics working:

  1. Try harder tasks — stacking, pouring, sorting by color
  2. Add cameras — mount a webcam for visual policies
  3. Share your dataset on the Hugging Face Hub
  4. Fine-tune existing models from the Hub on your specific setup
  5. Join the LeRobot Discord to share your results and get help

📖 Want to dive deeper into how imitation learning works? Read our beginner's guide to imitation learning with robot arms — it covers the theory, policy architectures (ACT, Diffusion Policy, TDMPC), and advanced techniques.

Common Issues & Fixes

"Servo not responding"

  • Check power supply connection
  • Verify USB cables are data-capable (not charge-only)
  • Try swapping leader/follower port assignments

"Calibration fails"

  • Make sure no joints are at mechanical limits when starting
  • DIY arms: check that servos are properly seated in their mounts

"Training is slow"

  • Use a GPU (RTX 3060 minimum recommended)
  • Reduce image resolution if using camera data
  • Start with fewer episodes (20-30) for quick experiments

"Deployed policy doesn't work well"

  • Record more demonstrations (100+ for complex tasks)
  • Make demonstrations more consistent
  • Try a different policy architecture
  • Check that the scene setup matches your training data

Don't Have an SO100 Yet?

Get the SO100 Complete Kit — $299 →

Everything you need in one box. Pre-assembled, tested, and ready for LeRobot. Skip the 3D printing and get straight to the AI.

Includes both leader and follower arms, all servos, driver boards, cables, and power supply.

Ready to get started?

Get the SO100 Complete Kit — pre-assembled, tested, and LeRobot-ready. Ships from the US.

Get Your Kit — $299

Related Posts

🤖 Get your SO100 robot arm today

Pre-assembled, tested, and LeRobot-ready. Ships from the US.

Buy Now — $299