00Overview

Everything needed to build, wire, flash, and operate a MABEL — an open-source mobile bimanual robot. This is the replication manual: parts, steps, commands, and checks, in build order. The project site covers what the robot can do; this covers how to make one.

The robot, in numbers

ItemValueDetail
Functional DoF5659 motors total
Base3 modulesDelta-layout holonomic swerve — REV NEO + NEO 550 per module, 6 × SPARK on CAN
Lift0.635 mCascaded Z-column (FlexiSpot E7 Pro column), brushed DC + leadscrew, RP2040 Pico
Torso400 N·m peakDaMiao DM-J10422P on the body CAN bus
Arms2 × 7 DoFOpenArm-derived, DaMiao quasi-direct-drive, back-drivable, one CAN bus per arm
Hands2 × 17 DoFOpen-source ORCA hands, tendon-routed, 17 Feetech servos per hand on one 1 MHz TTL chain
Neck3 DoFYaw on CAN (DaMiao), roll + pitch on 2 × Dynamixel XC330-T181
Sensing—Stereo head camera, 2 wrist cameras, 2D lidar; base depth camera and IMU optional by tier
Compute—NVIDIA Jetson (Orin Nano → AGX Thor by tier), Ubuntu 24.04 + ROS 2 Jazzy
Reach0 – 2.23 mfingertip envelope, floor to overhead (lift + arm)
Footprint0.49 mfits doorways and elevator cars
Mass≈ 62 kg24 V, fully untethered. The BOM buys two packs (line 7.03)
Cost$8,056+Core BOM $7,650 + perception/compute tier — see 01 · BOM

Before you order anything

Three gaps in the parts list will stop a build if you meet them at the bench instead of here. All three are tracked in BOM/data/open_items.csv.

GapWhat it means for your order
The swerve line is a lumpREV-21-3005 is the MODULE only — motors, controllers and framing are not included. Each module also needs a NEO, a NEO 550, a SPARK Flex and a SPARK MAX, about $557 more per module. Ordering the BOM line as written gets you three modules that cannot move.
Two Teensy 4.1 are missingOne drives the swerve base, one drives both arms. Neither appears in the parts list; without them the robot has no low-level control at all.
No hardware E-stop is costedThe safety docs describe a hardware stop that de-energises the actuators independently of the host, and the software E-stop (hw.estop()) is not that. Budget $30–80 for a switch and contactor — the OpenArm harness set may already include one, unconfirmed.

The rest of the fixed core can be ordered on day one: none of it depends on a decision made later. The five deferred choices (compute, head camera, wrist cameras, base depth camera, lidar) are laid out in 01 · BOM.

What you need

RequirementWhy
3D printers (2–3, one large-format)Roughly a week of near-continuous printing — an estimate from building it, not a measured figure. The base and body housings need a large-format bed (Bambu H2D / H2S class); the rest fit a standard bed. No machine shop is needed beyond the laser-cut and bent sheet parts, which are ordered from any fab service (drawings in the BOM). Seven parts are machined rather than laser-cut — see 01 · BOM
Filament — 7 spoolsThe BOM buys PLA Basic: 4 × Jade White (covers, sensor mounts, trim), 2 × Black (the ORCA hand structure, the highest-wear parts on the robot), 1 × Light Gray (accents). The arm housings are specified separately in PETG, about 260 g per arm (mechanical/arm_housing/) — the filament line does not cover them
A current-limited bench supplyNot optional. Every first energization — each actuator, each board, the first lift motion — runs through it with the limit set low, so a miswired bus trips the limit instead of cooking a motor. Hex drivers, a crimper, a soldering iron and a multimeter cover the rest of the build
Basic electronics skillsCrimping, CAN bus wiring, servo ID assignment, one custom PCB per board set. The gerbers are not released yet — the boards are simple carrier and power-distribution layers, never control electronics, and BOM/data/open_items.csv tracks them as an open item
A Mac or Linux laptopRuns the full simulation twin and every desktop tool. ROS 2 is only required on the robot itself
Ubuntu 24.04 + ROS 2 Jazzy on the JetsonROS 2 + the hardware layer run onboard
TimePrinting runs in the background; hands-on assembly is measured in evenings per module, not months
You can do everything up to real hardware on a laptop alone. Build the simulation stack first (05 · Software), drive the digital twin, and only then order parts — every motion you'll ever command can be proven in the twin before a single motor exists.

Build order

  1. 01 · Bill of materials. Pick a tier, order everything, start the printer.
  2. 02 · Mechanical assembly. Base → lift → body → arms → hands → head. Each module is built and checked before the next stacks on.
  3. 03 · Electronics & wiring. Land the PCBs, run the CAN/TTL/USB buses, connect sensing, power from one pack.
  4. 04 · Firmware. Flash the base Teensy, arms Teensy, lift Pico; assign every servo ID.
  5. 05 · Software. Sim stack on the laptop; ROS 2 workspace + hardware layer on the Jetson.
  6. 06 · Bring-up & calibration. First power-on limp, bus-by-bus enumeration, zeros, limits, CoM check.
  7. 07 · Operate. Teleop from a browser, iPhone, or Vision Pro; the terminal cockpit; the safety model.
  8. 08 · Data & learning. Record episodes, curate, train, deploy policies.

The golden rules

Source layout

Everything lives in one repository — robotmabel/open_mabel:

PathContents
simulation/mabel_mujoco/The canonical robot model (MJCF) + scenes — the single source of truth
hardware_bridge/The hardware abstraction layer (HAL) — the one process that owns every device
firmware/Per-MCU firmware: swerve base, arms link, lift, ORCA hands, head
controller/The mabel control library: retargeting, whole-body control, safety gates
server/The teleop gateway: one wire contract for every client, sim and real
ros/ROS 2 workspace (bring-up, description, SLAM, Nav2)
web_gui/Browser studios: control centers, data curation, trainer