Blog Devlog

Atlas Devlog 01 — The Cycloidal Redesign

The shoulder joint on Atlas has been the weakest link since day one. The original design was a two-stage printed spur reduction (5:1 × 4:1, 20:1 total), and it had roughly 1.2° of backlash at the output. At full reach — about 450 mm — that’s ±4.7 mm of slop at the gripper before the motor even moves. Every direction change produced a visible wobble on camera. Time to fix the mechanism instead of fighting it in software.

Why cycloidal

Backlash in spur gears comes from tooth clearance, and with FDM printing you need that clearance — my tolerances are about ±0.15 mm on a well-tuned Prusa MK4. A cycloidal drive sidesteps this: the cycloidal disc is preloaded against the ring pins by the eccentric, so many lobes share the load simultaneously and clearance gets absorbed instead of accumulated. It also survives shock loads better, which matters when a 6-DOF arm inevitably crashes into the table.

I went with a single-stage 25:1 reduction: 25 lobes on the disc, 26 ring pins.

The eccentric and the BB race

The eccentric is the part everyone gets wrong first, including me. Version 1 was a printed eccentric cam riding directly in a printed disc bore — it wore visibly loose in under an hour of running. Version 2 uses a 6802 bearing pressed onto a machined-feeling (actually printed, 0.1 mm layers, reamed with a drill bit) eccentric sleeve on the NEMA 23 shaft, 1.0 mm of eccentricity.

The ring pins are the other trick. Instead of printing them, the housing has 26 semicircular pockets holding 4.5 mm steel airsoft BBs on 3 mm dowel pins — cheap, hard, and round to better tolerances than anything I can print. The disc rolls against steel instead of PETG, and wear basically stopped.

Reduction:      25:1 single stage (25 lobes / 26 pins)
Eccentricity:   1.0 mm
Disc material:  PETG-CF, 100% infill, 0.1 mm layers
Ring pins:      3 mm dowels + 4.5 mm steel BB rollers
Output bearing: 6810 thin-section, printed preload shim

Two cycloidal discs 180° out of phase cancel the eccentric vibration. With one disc the joint buzzed noticeably at speed; with two it’s smooth.

Measuring backlash and torque

Backlash: locked the motor shaft, mounted a dial indicator 100 mm from the joint axis, and pushed the arm segment back and forth by hand with a spring scale at a repeatable 5 N.

GearboxDeflection @ 100 mmBacklash (angular)
Spur 20:1 (old)2.10 mm~1.20°
Cycloidal 25:1 v1 (printed pins)0.55 mm~0.32°
Cycloidal 25:1 v2 (BB pins)0.19 mm~0.11°

That’s a bit better than 10x over the original — and most of the remaining 0.11° is flex in the printed arm segment, not the gearbox.

Torque: I hung weights from a 250 mm lever arm until something gave. The old spur box stripped a tooth at 9 N·m. The cycloidal held 24 N·m before the disc lobes started skipping, and nothing broke — it just ratcheted, then worked fine afterward. Graceful failure is a feature I didn’t design for but will gladly take.

What’s next

Efficiency is the trade-off: I measured roughly 71% versus ~88% for the spur stage, so the shoulder motor runs warmer and I’ve bumped the current limit. Devlog 02 will cover the wrist joints, where the same design has to shrink around a NEMA 17 — and where the 1.0 mm eccentricity stops being generous.