Follow along with the detailed POV video for precise visual guidance. Keep in mind that while this video is largely uncut, the actual build time might be three times longer or more, depending on your experience and skill level.

Building your own robot arm is an incredibly rewarding experience, and the SO-101 is a fantastic open-source project to dive into! This guide will walk you through the assembly of both the Follower and Leader arms of the SO-101, including attaching a wrist camera and the crucial steps for motor setup and calibration.

Before You Start: Essential Tips

Before you begin assembling, here are a few important pointers to ensure a smooth build process:

  • Tools: The only tool you’ll need is a star screwdriver. All necessary screws are included in the servo motor boxes.
  • Motor Order: For the Follower arm, the order of installing the motors is crucial. The video will guide you step-by-step, but a table is also provided in the official HuggingFace guide (linked at the end).
  • Power Supplies: CAUTION! The power supplies for the Leader and Follower arms are different voltages. To prevent damaging your servo motors or control boards, always use the lower voltage power supply for the Leader arm.
  • Cable Insertion: It’s highly recommended to insert one motor cable into each motor before mounting it in place. Once the arm is fully assembled, connecting the cables can become very difficult due to limited space.
  • Secure All Screws: Firmly screw in every screw. While some guides might suggest leaving screws loose until final assembly, following the steps in this video precisely and securing each screw as you go will prevent issues and ensure a robust build.

Building the SO-101 Follower Arm

The Follower arm uses 6x STS3215 motors, all with a 1/147 gear ratio (except for the Base/Shoulder Pan and Elbow Flex, which use 1/191, and Shoulder Lift 1/345; follow the video’s visual cues for which motor goes where, and use the provided motors for the Follower arm). The video will show which motor to use for each joint.

Step-by-Step Assembly:

1. Joint 1: Base / Shoulder Pan (Motor 1)

  • Video Reference: 0:26 – 2:38
  • Parts: Base plate, STS3215 motor (Motor 1 – Base/Shoulder Pan), bottom cover, M2x6mm screws (small).
  • Action:
    1. Place the STS3215 motor (Motor 1) into the designated slot on the base plate (0:26).
    2. Secure the motor by fastening two M2x6mm screws from the top and two from the bottom (0:40).
    3. Attach the bottom cover by sliding it over the assembled motor and base, and secure it with screws (1:04, 1:40).

2. Joint 2: Shoulder Lift (Motor 2)

  • Video Reference: 2:38 – 5:00
  • Parts: Shoulder lift piece, STS3215 motor (Motor 2 – Shoulder Lift), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Slide the STS3215 motor (Motor 2) into the shoulder lift piece from the top (2:52).
    2. Secure the motor with M2x6mm screws (3:23).
    3. Attach both motor horns (flat metal pieces with screw holes) to Motor 2 using M3x6mm horn screws (3:40).
    4. Connect the shoulder lift piece to the assembled base unit (3:24).

3. Joint 3: Elbow Flex (Motor 3)

  • Video Reference: 5:00 – 6:30
  • Parts: Elbow flex piece, STS3215 motor (Motor 3 – Elbow Flex), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 3) into the elbow flex piece (5:00).
    2. Secure the motor with M2x6mm screws (5:45).
    3. Attach both motor horns to Motor 3 using M3x6mm horn screws (5:55).
    4. Connect the elbow flex piece to the shoulder lift piece (6:15).

4. Joint 4: Wrist Flex (Motor 4)

  • Video Reference: 6:30 – 8:00
  • Parts: Wrist flex piece, STS3215 motor (Motor 4 – Wrist Flex), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 4) into the wrist flex piece (6:30).
    2. Secure the motor with M2x6mm screws (7:10).
    3. Attach both motor horns to Motor 4 using M3x6mm horn screws (7:20).
    4. Connect the wrist flex piece to the elbow flex piece (7:50).

5. Joint 5: Wrist Roll (Motor 5)

  • Video Reference: 8:00 – 9:50
  • Parts: Wrist roll piece, STS3215 motor (Motor 5 – Wrist Roll), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 5) into the wrist roll piece (8:00).
    2. Secure the motor with M2x6mm screws (8:40).
    3. Attach both motor horns to Motor 5 using M3x6mm horn screws (8:50).
    4. Connect the wrist roll piece to the wrist flex piece (9:20).

6. Joint 6: Gripper (Motor 6)

  • Video Reference: 9:50 – 11:45
  • Parts: Gripper base, STS3215 motor (Motor 6 – Gripper), gripper claws, M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 6) into the gripper base (9:50).
    2. Secure the motor with M2x6mm screws (10:10).
    3. Attach one motor horn to Motor 6 using an M3x6mm horn screw (10:15).
    4. Attach the gripper claws to the gripper base using the remaining M2x6mm screws (10:20).
    5. Secure the gripper claws with the motor horn already attached, using the remaining M3x6mm horn screws (10:40).
    6. Connect the assembled gripper unit to the wrist roll piece (11:00).

7. Wrist Camera Assembly

  • Video Reference: 11:45 – 13:20
  • Parts: Camera base holder, camera bracket, camera, M2x6mm screws, M3x6mm screws.
  • Action:
    1. Attach the camera base holder to the wrist roll piece (11:45).
    2. Secure the camera bracket to the camera base holder with M2x6mm screws (12:00).
    3. Mount the camera onto the camera bracket using M2x6mm screws (12:20).

Building the SO-101 Leader Arm

The Leader arm assembly follows a similar pattern to the Follower arm, but uses equal motor gear ratios for all joints. Thus there is less room for error in this one!

Step-by-Step Assembly:

1. Joint 1: Base / Shoulder Pan (Motor 1 – STS3215 C001)

  • Video Reference: 13:20 – 13:45
  • Parts: Base plate, STS3215 motor (Motor 1 – Base/Shoulder Pan, C001), bottom cover, M2x6mm screws.
  • Action:
    1. Place the STS3215 motor (Motor 1) into the base plate.
    2. Secure the motor with M2x6mm screws from the top and bottom.
    3. Attach the bottom cover.

2. Joint 2: Shoulder Lift (Motor 2 – STS3215 C046)

  • Video Reference: 13:45 – 14:40
  • Parts: Shoulder lift piece, STS3215 motor (Motor 2 – Shoulder Lift, C046), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 2) into the shoulder lift piece.
    2. Secure the motor with M2x6mm screws.
    3. Attach motor horns to Motor 2.
    4. Connect the shoulder lift piece to the assembled base unit.

3. Joint 3: Elbow Flex (Motor 3 – STS3215 C045)

  • Video Reference: 14:40 – 15:20
  • Parts: Elbow flex piece, STS3215 motor (Motor 3 – Elbow Flex, C045), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 3) into the elbow flex piece.
    2. Secure the motor with M2x6mm screws.
    3. Attach motor horns to Motor 3.
    4. Connect the elbow flex piece to the shoulder lift piece.

4. Joint 4: Wrist Flex (Motor 4 – STS3215 C044)

  • Video Reference: 15:20 – 15:50
  • Parts: Wrist flex piece, STS3215 motor (Motor 4 – Wrist Flex, C044), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 4) into the wrist flex piece.
    2. Secure the motor with M2x6mm screws.
    3. Attach motor horns to Motor 4.
    4. Connect the wrist flex piece to the elbow flex piece.

5. Joint 5: Wrist Roll (Motor 5 – STS3215 C044)

  • Video Reference: 15:50 – 16:20
  • Parts: Wrist roll piece, STS3215 motor (Motor 5 – Wrist Roll, C044), M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 5) into the wrist roll piece.
    2. Secure the motor with M2x6mm screws.
    3. Attach motor horns to Motor 5.
    4. Connect the wrist roll piece to the wrist flex piece.

6. Joint 6: Gripper (Motor 6 – STS3215 C044)

  • Video Reference: 16:20 – 17:00
  • Parts: Gripper base, STS3215 motor (Motor 6 – Gripper, C044), gripper claws, M2x6mm screws, M3x6mm horn screws.
  • Action:
    1. Insert the STS3215 motor (Motor 6) into the gripper base.
    2. Secure the motor with M2x6mm screws.
    3. Attach one motor horn to Motor 6.
    4. Attach the gripper claws to the gripper base and secure them with the motor horn.
    5. Connect the assembled gripper unit to the wrist roll piece.

Motor Setup & Calibration

Once both arms are physically built, you need to set up the individual servo motors and calibrate the entire arm for proper function.

Step-by-Step Setup & Calibration:

1. Initial Setup

  • Video Reference: 18:00 – 18:45
  • Parts: Assembled Follower Arm, USB-to-MotorBus adapter cable, controller board (small black circuit board), USB cable, power supply (lower voltage for Follower).
  • Action:
    1. Connect the USB-to-MotorBus adapter cable to your computer.
    2. Connect the adapter to the controller board.
    3. Connect the power supply to the controller board.
    4. Connect the controller board to the first motor (Gripper motor, ID 6) as prompted by the setup script on your computer.

2. Motor ID Setup

  • Video Reference: 18:45 – 19:25
  • Parts: Assembled Follower Arm, controller board, USB cable.
  • Action:
    1. Run the setup_motors.py script on your computer. (The exact command is provided in the Bonus section below and in the video).
    2. The script will prompt you to connect each motor one by one, starting with the Gripper motor (ID 6).
    3. Connect the indicated motor to the controller board. Ensure only the specified motor is connected directly to the controller board for ID setup.
    4. Press Enter on your keyboard after connecting each motor. The script will automatically set the ID and baud rate for that motor.
    5. Repeat this process for all motors on the Follower arm in the specified order (Gripper, Wrist Roll, Wrist Flex, Elbow Flex, Shoulder Lift, Base/Shoulder Pan).

3. Arm Calibration

  • Video Reference: 19:25 – 19:50
  • Parts: Assembled Follower Arm, controller board, USB cable.
  • Action:
    1. Run the calibrate.py script on your computer. (The exact command is provided in the Bonus section below and in the video).
    2. The script will instruct you to manually move each joint of the robot arm through its full range of motion.
    3. Carefully move each joint from one extreme to the other, then return it to the middle of its range as instructed.
    4. Press Enter after each joint’s movement is complete.
    5. Repeat this for all joints.

BONUS: Official HuggingFace Guide

For all the detailed information, commands, and troubleshooting tips, refer to the official HuggingFace documentation for the LeRobot SO-101:

https://huggingface.co/docs/lerobot/so101

This guide provides:

  • Bill of materials and sourcing links.
  • Instructions for 3D printing parts.
  • Installation guide for LeRobot.
  • Specific motor IDs and gear ratios.
  • Detailed setup and calibration commands.
  • Troubleshooting advice.

Enjoy building your SO-101 robot arm! With careful assembly and proper calibration, you’ll have a fully functional robotic companion ready for your next robotics project.