This is a harmonic drive. A harmonic drive is a very simple gear reducer that lends itself well to 3D printing.
It uses a rigid outer gear and an inner flex spline. The flex spline has a few less teeth (typically 2 less) than the outer gear. You stretch the flex spline so that it engages on opposite sides (typically) of the outer gear. The stretching mechanism, called the wave generator, rotates. This causes the flex spline to slowly advance along the outer gear in the opposite direction on the spinning wave generator. The ratio is...
Ratio = ( Flex - Outer ) / Flex
In my case that is...
(78 - 80) / 78 = -1/39
A good harmonic has zero backlash and is very strong. A large percent all of teeth are fully engaged at all times. It will also hold the position with the motor off. That is great on things like robot arms during loss of power. It also puts less load on servo motors.
I used Ninjatek Cheetah filament for the flex spline. It the slightly less flexible version of Ninjaflex. The flexing required is quite low. The ellipse formed on my unit is about 74mm x 70mm.
I was inspired by a few other designs but this was a clean sheet design. I wanted my own CAD model, where I could tweak. The settings. I designed the gears in Gearotic. They are just round spur gears with a 1 tooth per mm pitch and 20 deg pressure angle. A STEP model is included in the source files.
I plan to put this in a robot arm using stepper motor that need to be seriously geared down.
It appears to work better if the bottom of the flex spline is stiff. I bolted it to a rigid part to help with this.
You want a good bearing on the output. The flex spline will wobble outerwise
I tried to make the flex spline shorter, but it was not as smooth.
I am going to add more bearings to try to hold the material closer to the ideal ellipse. I think that will make it quieter and have less vibration (which is not bad...see the video)
No support is need on any parts. My Z is typically wrong, so rotate the parts prior to printing.
The Cheetah sticks very well. Use blue tape and no heat. If you use a special surface like PEI, you might not get it off.
I tweaked my models for a perfect fit on the bearings and screws. You might need to do some tweaking on your own. The screws tap into the holes and the bearing press fits.
Here is a video of it running
I think the input is running about 600rpm in the video and I have had it up to about 40% faster. Stepper don't like to go too fast, but they never stalled. I was using Grbl to run it and it max'ed out on speed.
I added a second version of the wave generator. This one uses an elliptical array of 10 5x16x5 bearings. The flex gear runs a lot smoother with this one. The un-meshed teeth tended to vibrate with the 2 bearing version.