02Mechanical assembly
Six modules, built bottom-up: base → lift → body → arms → hands → head. Build each module completely and check it before the next stacks on — every module has a hand-motion check that costs a minute and saves a teardown. The illustrated companion is MABEL_Build_Guide.pdf; part geometry (STL/OBJ per module) comes from the simulation model — see 01 · BOM, “Part geometry”.
Nothing in this chapter is energized. Motors are mounted, buses are routed,
IDs are assigned on the bench — but torque stays off until
06 · Bring-up.
Base — 3-module delta swerve
3 × REV swerveNEO + NEO 550 each6 × SPARK on CAN120 Ω both endsTeensy 4.1
- Build all three swerve modules first, identically and completely, before any touches the chassis. Each pairs a NEO (drive) with a NEO 550 (steer).
- Mount them in the delta layout — three modules at 120°. Keep every bolt pattern square to the chassis plate: a twisted module reads as a permanent heading drift later.
- Fit the wheels (38.1 mm) and turn each module through a full steer rotation by hand. Nothing binds; no cable tugs.
- Daisy-chain the CAN bus across all six SPARK controllers with a 120 Ω terminator at each end.
- Assign CAN IDs 1–6, powering one controller at a time so two devices can never answer to the same ID.
- Seat the compute bay — the base Teensy 4.1 and the base PCB (03 · Electronics).
Lift — 0.635 m Z-column
cascaded stagesbrushed DC + leadscrewBTS7960 H-bridgeRP2040 Picoquadrature encoder
- Assemble the telescoping stages dry — no motor, no leadscrew. The column must slide through full travel by hand with no stiction at any height.
- Fit the leadscrew and actuator, then turn the screw by hand end to end before anything is energized.
- Mount the quadrature encoder and wire the BTS7960 H-bridge to the RP2040 Pico.
- Bolt the column to the base. It carries every module above it — tighten the base flange in a cross pattern.
Home the lift empty, at bring-up, before the body is mounted: close the
position/velocity loop with nothing on the column and confirm both end stops.
Homing a loaded column against an unproven end stop bends leadscrews.
Body — torso joint + frame
DaMiao DM-J10422P400 N·mbody CANcustom PCBU2D2 TTL bridge
- Mount the torso actuator to the lift carriage. It is the strongest joint on the robot — its torque stays disabled for this whole stage.
- Bolt the torso output shaft to the actuator's output flange; everything above the torso hangs off this joint.
- Fit the PCB mount and land the body PCB (power + bus routing), then the U2D2 (USB ↔ half-duplex TTL, for the neck servos).
- Fit the neck mounting plate and both arm mounting plates (the second is the mirror of the first).
- Leave the housing covers off until the arms' buses are routed (§ arms) — the front cover closes last.
Arms — 2 × 7-DoF OpenArm-derived
per arm: 2 × DM-J8009P2 × DM-J43403 × DM-J4310left = can0right = can1
- Build each arm link by link, shoulder out — shoulder pair (J8009P), shoulder-roll + elbow (J4340), wrist triplet (J4310).
- Assign IDs 1–7 before each motor enters the chain, one motor powered at a time. A wrong ID buried mid-arm means dismantling the arm to reach it.
- Keep the arms on separate CAN buses — left on
can0, right oncan1. Never merge them onto one chain. - Bolt each arm to its body mounting plate and route the bus down through the shoulder before the housing covers go on.
- Set each joint's zero at a known pose — the same pose on both arms.
- Check back-drivability: with torque off, every joint moves under hand pressure. A joint that fights you is a mechanical problem, not a software one.
Hands — 2 × ORCA, 17 DoF each
16 × Feetech HLS3915 + 1 × HLS3930 eachone 1 MHz TTL chain per handtendon-routed
- Print and assemble the ORCA hand frames — the hand design is fully released; build to the ORCA documentation.
- Assign every servo ID before stringing. Once tendons are routed, reaching a servo means unstringing the finger.
- Route and string the tendons — abduction, MCP and PIP per finger, five fingers per hand.
- Tension every tendon until no slack remains, then check again after the first few cycles.
- Chain all 17 servos (16 finger + wrist) on the hand's single 1 MHz TTL bus.
- Mount each hand to its wrist flange and route the serial run back along the forearm.
Tendon slack read as calibration error is the single most common hand build
failure. Tension before you calibrate, not after.
Head — 3-DoF neck + stereo eyes
yaw: DaMiao on body CANroll+pitch: 2 × XC330-T181TTL 1 Mbaud via U2D2stereo head camera
- Mount the neck yaw actuator to the neck plate fitted in the body stage.
- Bolt the printed neck output shaft to the yaw output.
- Set the two Dynamixel IDs on the bench, then fit them into the output shaft — this pair drives roll and pitch.
- Fit the camera mount, the stereo head camera (USB 3), and the front flash light.
- Screw the two Wi-Fi antennas in through the back cover; the front head cover closes last.
Mechanical completion check
- Base: each module steers a full turn by hand, no binding, no cable tug
- Lift: full travel by hand, no stiction, both hard stops located
- Torso: output shaft torqued; nothing above it moves relative to the flange
- Arms: every joint back-drives; zeros set at the shared reference pose
- Hands: no tendon slack after cycling; every servo answers on its chain
- Neck: yaw/roll/pitch move freely by hand through their ranges
Mechanically complete is not commissioned — continue to 03 · Electronics & wiring.