Harmonic Drives (Strain Wave Gearbox) offer a high gear ratio, precise transmission with no backlash, low noise, and a small form factor, making them a great option for robotic applications. However, the price of harmonic drives could be quite unaffordable and the shaft design is usually not customizable. Therefore, I present a mostly 3D-printed harmonic drive for both NEMA17 and NEMA23 stepper motors. Tolerance is fine-tuned for BambuLab P1S and BambuLab PETG Basic. Parts should fit perfectly together and the gears will not make any noise when turning. The gear ratio (teeth size) is also fine-tuned to maximize output torque, stability under high speed, and reliability given the material properties of PETG.
I want this to be an open-source project so it gets improved collaboratively. Feel free to use the .STEP, .STL, and .3MF files included to build better versions!
Engineering Specification:
- Number of teeth on the wavegear: 50
- Number of teeth on the hub: 52
- Number of teeth on the base: 50
- Gear Ratio: 25:1
- Max tested output RPM: 60RPM (actual max could be greater)
- Max tested shaft load: 5Nm (actual max could be greater)
- No obvious wear and tear with 3Nm load and 1000 revolutions
Non-3D printed Parts (with non-sponsored US Amazon purchase link):
My Printing Parameters (Specific Material and Printing setting can be found in profile):
- Printer: BambuLab P1S
- Filament: BambuLab PETG Basic Transparent (PLA is too brittle and not strong enough)
- Layer Height: 0.2mm
- Nozzle Temperature: 270°
- Bed Temperature: 75°
- Infill Density: 30%-50%
- Infill Pattern: Tri-hexagon
- Wall Loops: 3-5
Build Tip:
- The specific parts you need for each version can be found in the exploded views above.
- I recommend first printing a generator and a wavegear to test tolerance for press-fitting the stainless steel balls in and for fitting onto the motor shaft.
- Pressing the stainless steel balls between the wavegear and the generator can require a lot of force. I recommend using a sharpie and not your finger.
- After all 15 balls are pressed in, they should be snuggly fit and don't make any noise if shaken while the generator should still be able to rotate relatively freely.
Hub (Output Shaft) Guide:
- The output hub (part hub_hex) utilizes the Print in Place technique. You need to pause the printing (already implemented in .3mf) and insert an M5 Nut into the part before resuming.
- I also uploaded a flat output hub (hub_flat) that you can customize for your application. (For example, using threaded insert instead of the PiP M5 Nut)
Future Work:
- For the engineers and designers out there! Feel free to remix the models using the step files provided. If you can design a stronger/smaller/quieter gearbox that would be awesome! I iterated on the design many times to arrive at this specific gear ratio and here are some problems I've encountered:
- If increase the gear ratio (more teeth and smaller teeth), you might encounter a slipping problem, essentially the teeth deform and disengage under a high load.
- If decrease the gear ratio (less teeth and bigger teeth), the elliptical wavegear might not fit in the the hub and rotate freely.
- p.s. I am currently building a desktop robot arm with gearboxes. Please follow and check back as it will also be open-sourced!
Acknowledgment:
I want to acknowledge the work I drew inspiration from including videos made by Harmonic Drive SE, ZeroBacklash, and 3DprintedLife.