


Differential Robot Wrist
About this program
Differential Robot Wrist
A 2-DOF differential bevel-gear wrist mechanism from Source Robotics, open-sourced as a test fixture for their future humanoid/arm robots. Two BLDC motors drive a pair of bevel gears — moving them in the same direction yields pitch, opposing direction yields yaw/roll. The differential layout keeps both motors at the joint base (not the moving end), which lowers inertia and increases payload capacity compared to a stacked serial-motor wrist.
This Program is a learning entry point for the mechanism. Print the STLs, source the BLDC motors and Spectral driver, and use the Python example to spin both motors in opposite directions to test the differential motion.
What you get
- 11 printable STLs (housing, bevels, motor holders, pulleys, shafts)
- BOM with motor + driver references
- Python example using Source Robotics'
Spectral_BLDClibrary over slcan / CAN
Hardware
- 2× BLDC motors (gimbal/medium-sized) with hall sensors or magnetic encoders
- 2× Spectral micro BLDC driver boards (CAN, from Source Robotics)
- CAN-USB adapter (slcan compatible, e.g. CANable)
- M3 fasteners, GT2 belts, magnets for the magnetic encoders
- 3D printer (PLA or PETG fine for the test fixture)
Source
Original design: Source-Robotics/Differential-robot-wrist by PCrnjak (Petar Crnjak). MIT licensed.
Driver calibration: Spectral BLDC docs
⚠️ This is the upstream author's own caveat: the mechanism is a test fixture, not a finished product. Expect to tune motor parameters and re-print parts as you iterate.
🖨 Print Files (10)
12_teeth_pulley.stl
1_mm_spacer.stl
Magnet_shaft.stl
Motor_holder_2.stl
big_bevel.stl
big_bevel_backplate.stl
| Category | Item | Qty | Notes |
|---|---|---|---|
| Motors | GBM5208-75 BLDC gimbal motor | 2 | Fits the motor holder STLs; size 5208 with hall sensors |
| Electronics | Spectral micro BLDC driver | 2 | CAN-based controller from Source Robotics |
| Electronics | CANvas USB-to-CAN adapter | 1 | Source Robotics open-source CAN-USB adapter (SLCAN) |
| Electronics | JST SH 1.0 4-pin UART cable | 1 | For UART communication with Spectral micro |
| Cables | XH 2.54MM 2P power cable (300mm) | 2 | 24V power daisy-chain cable for Spectral micro |
| Cables | JST ZH 1.5MM 2P CAN cable (300mm) | 2 | CAN bus daisy-chain cable for Spectral micro |
| Magnets | 6×2.5mm diametrical neodymium magnet | 2 | For magnetic encoder; fits Magnet_shaft STL |
| Bearings | 20×32×7mm bearing | 2 | Outer shell bearing |
| Bearings | 6704-2RS bearing (20×27×4mm) | 4 | Inner gear hub bearing |
| Bearings | 6805ZZ bearing (25×37×7mm) | 2 | Output shaft bearing |
| Bearings | 3×8×4mm bearing | 8 | Small bevel shaft bearings |
| Belt | HTD 3M 342mm timing belt | 2 | 3M pitch, 342mm circumference |
| Fasteners | M3×14mm bolts | 10 | |
| Fasteners | M3×6mm cheese-head bolts (2mm head) | 8 | |
| Fasteners | M3×8mm bolts | 20 | |
| Fasteners | M3×25mm bolts | 8 | |
| Fasteners | M3×40mm bolts | 10 | |
| Fasteners | M2×12mm bolts | 2 |
B