> ## Documentation Index
> Fetch the complete documentation index at: https://docs.robot-learning.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Leader Arm Assembly

> How to assemble or repair DK1's open-source passive leader arm.

<Warning>Please note: if you buy a kit from The Robot Learning Company, it will be shipped to you fully assembled and calibrated.</Warning>

<Columns cols={2}>
  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_assembled.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=17979d4cbf389d8559652054a91615f8" className="rounded-lg" width="4032" height="3024" data-path="images/leader_assembled.jpeg" />

  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_parts.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=1d7ff48a1b4f998a7f721a91c7a5f1af" className="rounded-lg" width="4032" height="3024" data-path="images/leader_parts.jpeg" />
</Columns>

## Components

| Part Name                                         | Qty | Source                                                              |
| ------------------------------------------------- | --- | ------------------------------------------------------------------- |
| Dynamixel XL330-M077-T                            | 7   | [https://en.robotis.com/shop\_en/](https://en.robotis.com/shop_en/) |
| Waveshare Serial Bus Servo Driver Board           | 1   | [https://www.amazon.com/](https://www.amazon.com/)                  |
| 3D-printed Links using PLA(-CF)                   |     | [https://store.bambulab.com/](https://store.bambulab.com/)          |
| 5V DC Power Supply (2 Pole or 5.5x2.1 Power Jack) | 1   | [https://www.amazon.com/](https://www.amazon.com/)                  |
| M2x4 Inserts                                      | 4   | [https://www.amazon.com/](https://www.amazon.com/)                  |
| M2x5 Screws (e.g. ISO 4762)                       | 4   | [https://www.amazon.com/](https://www.amazon.com/)                  |

## 3D Printing

All .STL files and a Bambu Lab 3MF project file are located in the [TRLC-DK1 GitHub Repo](https://github.com/robot-learning-co/trlc-dk1/tree/24a30ab8782e83a1143aef73c3ce62515690ee49/hardware/leader_STLs).

**Recommended 3D-printing orientation:**

{" "}

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_plate.png?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=645507e6763528d62e990fed05e62558" className="rounded-lg" width="2550" height="1920" data-path="images/leader_plate.png" />

**Recommended 3D-printing settings:**

* Material: PLA-CF
* Nozzle: 0.4mm
* Layer height: 0.12mm
* Infill: 15%, Gyroid
* Support: On

If you're using a Bambu Lab 3D printer, use the **0.12mm High Quality** Setting

## Assembly

First, install the inserts and gently remove one of the 3-pin header cap from the driver board:

<Columns cols={2}>
  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_inserts.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=d98ff0bad52b5c8c96e039cad09ea4f8" className="rounded-lg" width="4032" height="3024" data-path="images/leader_inserts.jpeg" />

  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_driver.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=fb709c673c31bb2edf8e100bca63318f" className="rounded-lg" width="2189" height="1644" data-path="images/leader_driver.jpeg" />
</Columns>

Every Dynamixel frame is mounted using **4 long screws**, every output horn using **4 short screws**:

<Columns cols={2}>
  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_long_screws.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=fed9029c63e0e6b4a3df4b60ad9c768b" className="rounded-lg" width="4032" height="3024" data-path="images/leader_long_screws.jpeg" />

  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_short_screws.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=594fe89eaa92f825760b1240a50759fc" className="rounded-lg" width="4032" height="3024" data-path="images/leader_short_screws.jpeg" />
</Columns>

For less calibration pain afterwards, assemble all parts in the Dynamixel's absolute zero position (marked by the engraved lines): <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_zero.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=c3133f6af9891a8d82816dff2424d0f7" className="rounded-lg" width="4032" height="3024" data-path="images/leader_zero.jpeg" />

Assemble as shown:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader1.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=113660762d214d941460657cfe46a594" className="rounded-lg" width="4032" height="3024" data-path="images/leader1.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader2.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=e07037d484a485d1cefcfc5d3450a580" className="rounded-lg" width="4032" height="3024" data-path="images/leader2.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader3.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=ebd4b93e397f3d2b8492dde8d3aef0ce" className="rounded-lg" width="4032" height="3024" data-path="images/leader3.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader4.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=0aa50232333982ef9f65b3ef864c53a5" className="rounded-lg" width="4032" height="3024" data-path="images/leader4.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader5.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=915827a5f00954b6e2cfdb50d5a3ce6d" className="rounded-lg" width="4032" height="3024" data-path="images/leader5.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader6.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=2a75f8c918937f9cb6c8b98cbeb7c901" className="rounded-lg" width="4032" height="3024" data-path="images/leader6.jpeg" />

You have **two choices how to mount the wrist** - either the regular configuration (left) or a configuration which is meant for top-down mounting and operation of TRLC-DK1 (right). For the second one you need to print **link4-5-flipped.stl**.

<Columns cols={2}>
  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_regular.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=c865fe0b3d4c9f02f745c1ad2b0314a2" className="rounded-lg" width="4032" height="3024" data-path="images/leader_regular.jpeg" />

  <img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_top_down.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=fb1ec0b2a6f0bee0f77c97faa9d82c0c" className="rounded-lg" width="4032" height="3024" data-path="images/leader_top_down.jpeg" />
</Columns>

Continue assembly as shown:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader7.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=ed75f28c1f34bff968d5358d1e30b3d0" className="rounded-lg" width="4032" height="3024" data-path="images/leader7.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader8.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=f844c61de0cd354c516ec8d650f5378c" className="rounded-lg" width="4032" height="3024" data-path="images/leader8.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader9.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=5a6d0ad04a951076ff4f227ae8013330" className="rounded-lg" width="4032" height="3024" data-path="images/leader9.jpeg" />

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader10.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=f32d22a3010ee1172873078ca101ac1a" className="rounded-lg" width="4032" height="3024" data-path="images/leader10.jpeg" />

Mount the GELLO handle:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader11.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=0b3f5fea5a8e21735d2a7fc1ab959dbc" className="rounded-lg" width="4032" height="3024" data-path="images/leader11.jpeg" />

Mount the driver board:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader12.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=1396e5967312b831b5272027c1ef84b4" className="rounded-lg" width="4032" height="3024" data-path="images/leader12.jpeg" />

## Configuration

Connect the power supply, a USB-C cable, and one Dynamixel cable:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_cables.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=1a8ca772fb0fe45a740433d0970b15cc" className="rounded-lg" width="4032" height="3024" data-path="images/leader_cables.jpeg" />

After installing [our fork of LeRobot](https://github.com/robot-learning-co/lerobot) and checking out `trlc-dk1` as branch, run the following to identify the port for the bus driver board:

```
lerobot-find-port
```

To start the motor configuration run the following command:

```
lerobot-setup-motors --teleop.type dk1_leader --teleop.port YOUR_PORT
```

Follow the instructions and connect one motor at a time like so:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_config.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=f00605a206cf60309938a55d61825f9f" className="rounded-lg" width="4032" height="3024" data-path="images/leader_config.jpeg" />

The final step is to connect all motors in a daisy-chain:

<img src="https://mintcdn.com/therobotlearningcompany/GqgcYKPO_fRYPyfS/images/leader_assembled.jpeg?fit=max&auto=format&n=GqgcYKPO_fRYPyfS&q=85&s=17979d4cbf389d8559652054a91615f8" className="rounded-lg" width="4032" height="3024" data-path="images/leader_assembled.jpeg" />

<Warning>
  Due to hardware inaccuracies you might need to run
  [leader\_offset.ipynb](https://github.com/robot-learning-co/trlc-dk1/blob/main/examples/leader_offset.ipynb).
  Place your leader arm in the resting / zero position and run this script to offset every motor to the theoretical zero degree angles.
</Warning>
