Skip to content
Beginner build

How to build GELLO

7-DoF desktop robot arm · Beginner

Build GELLO, UC Berkeley's 3D-printed Dynamixel replica controller for teleoperating Franka, UR5, xArm, YAM, Lite6 and AR4 arms. Parts, steps and FAQ.

Difficulty
Beginner

Mostly printed parts and plug-in servos. Good first build.

Build time
1–2 weekends

Our estimate, part-time

Parts cost
$272

Project's own total, source currency

Degrees of freedom
7

MIT

What is GELLO?

GELLO isn't a robot arm in its own right. It's a 3D-printed, scaled replica of a real arm's kinematics, using Dynamixel servos as joint encoders. You move it by hand, and the real robot follows. It was introduced in 2023 by Philipp Wu, Yide Shentu, Zhongke Yi, Xingyu Lin and Pieter Abbeel at UC Berkeley.

Because each GELLO matches its target robot joint for joint, the mapping is direct, with no inverse kinematics and no VR headset. That makes it a cheap, intuitive way to collect imitation-learning data. Designs exist for Franka, UR5, xArm7, YAM, Lite6, AR4 and Franka FR3.

GELLO specifications

Joints
Same as the target arm, plus a trigger gripper
Sensors
Dynamixel servos used as encoders
Interface
U2D2 USB adapter
Supported robots
Franka FER/FR3, UR5, xArm7, Lite6, YAM, AR4
Software
Python (uv or Docker); ROS 2 Humble for FR3

Figures as published by the project. See Sources below.

Bill of materials

PartQtyNotes
Dynamixel servos—One per joint plus gripper
U2D21
Robot-specific printed parts—
Shared gripper parts—
Hardware per the BOM doc—
Where's the full bill of materials?

The full BOM, with exact quantities and vendors, lives in the project's own files. Prices change often, so treat $272 as a ballpark from the project. Start at the project repository.

Tools you'll need

  • 3D printer
  • Hex keys
  • Dynamixel Wizard 2.0
  • Linux PC with Python 3.11

Step-by-step build overview

Electronics & wiring overview

One Dynamixel daisy chain into a U2D2 over USB. The servos run with torque off, so they draw very little power.

DC power supplypower sourceLaptop / PChigh-level controlencoderssensingMicrocontrollerreal-time controllerServo bus adapterdrivers / busDynamixel XL330 servos7 joints / motors
PowerData / commandsSensor feedbackOverview only. Follow the project's own schematic for pinouts and voltages.

Software

ROS 2Python

gello_software uses YAML configs for robots and teleop, supports simulation and includes data collection. The YAM path is the best supported.

Tips from the bench

  • ☕ Set the IDs before assembly.
  • ☕ Calibrate in the exact build pose.
  • ☕ Try simulation before driving a heavy arm.

GELLO FAQ

Is GELLO a robot?

No. It's a passive controller that mirrors a robot arm's joints.

Which robots does it support?

Franka FER/FR3, UR5, xArm7, Lite6, YAM and AR4.

Where are the CAD files?

The repo has STLs. The authors share CAD source on request.

Sources

Written by Bots n' Beans from the project's own documentation. Check the sources for the latest revision before you buy parts.

Related builds

Robot deals

All deals →
  • Everblog AI fridge calendar

    Deal · Everblog

    10% off

    Get deal
  • CircuitMess DIY robot kits

    Shop · CircuitMess

    DIY robot kits

    Robot and gadget kits you build yourself.

    Shop
  • GRABO Cordless vacuum lifter

    Shop · GRABO

    Cordless vacuum lifter

    GRABO Pro Brushless: the original cordless vacuum lifter for pavers, stone, glass and panels.

    Shop

Like what we do? Buying through these links supports Bots n' Beans. We earn a commission at no extra cost to you. Thank you!