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.
| Gearbox | Deflection @ 100 mm | Backlash (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.
Keep reading
More from the bench
Engineering This Website
How vivaanshah.tech is built: Astro 5 static output on Cloudflare Pages, a dependency-free motion engine, seeded generative circuit art, and a CSP with no unsafe-inline.
Read postTaming Stepper Motor Resonance with TMC2209s
Why my robotic arm sang like a violin at 400 mm/min, and how StealthChop, microstepping and a firmware notch filter fixed it.
Read post