Hypocycloid How To (25:1 example)

by doctek, published

Hypocycloid How To (25:1 example) by doctek Apr 25, 2013
0 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

9286Views 3020Downloads Found in Engineering


This Thing includes complete design files in OpenSCAD and instructions for customizing to your own needs. There is a set of stls which can be printed to produce the example shown in the videos. Note that the zip archive provides some files not listed separately. Have a look at video here: http://youtu.be/NP0ElIfxF14
The inspiration for this Thing was Thing 43176 and the first section of video is of my build of Thing 43176 in action. It provides about a 50:1 reduction. In the video, you can see that the output slows the drill down a lot. To build this, I had to reduce the rotor stl 98% with netfabb, then enlarge the bearing mounting ring with a Dremel. Pretty cool result, but three things were lacking. First, it's too big – bigger than the NEMA 14 I wanted to mount it on. Second, the gear ratio is too high. Third, the output shaft is M8; I'd like it to be M5.
Looking for more information, I found Thing 8348 and Thing 19649. While these provided very useful pointers to hypocycloid design info (and the crucial Alex Lait script), there still seemed to be a lack of information on how to actually design a hypocycloid gear reducer. My Thing and the files associated with it are an attempt to explain the process in more detail. It is both an extension of the design and an explanation of how to create a Hypocycloid Gear Reducer. While not quite ready for Customerizer, it should help a lot of people design these devices.
The remainder of the video shows the design this Thing (25:1 reduction) running on a NEMA14 stepper. The motor is running at 5 and 10 revolutions per second. It also shows the same motor without the reducer running at 5 and 10 rps. The final section shows the reducer being reversed.
Credit where credit is due:
The key enabler for the Hypocycloid Gear Reducer is the Python script from Alex Lait ( http://www.zincland.com/hypocycloid/ ). None of this would be possible without it. While I provide a slightly modified version of the script to make it easier to use from the Python IDE in Windows, I have done nothing to improve the calculations in the script in any way. All credit goes to Alex Lait.
Likewise, the detail design of this two cam reduction is the work of JEdren (Thing 43176). All credit for the details goes to him.
All I have added is an OpenSCAD version of the design and the instructions for modifying and customizing the design. I hope you find this useful.


Printed parts.
1 - NEMA14 stepper motor. (Shaft on mine was threaded; put a set screw in the input shaft if you need one.)
2 - Bearing 6700ZZ 10x15x4 Shielded Ball Bearing from vxb.com
2 - Bearing 5x10 Shielded 5x10x4 Miniature Ball Bearing from vxb.com
1 – M5x25mm (or the length for your application) hex head bolt. This is the output shaft.
4 – M3x35mm hex socket bolts to mount to a NEMA14 stepper motor
Print one each of all the parts. I print with 0.2mm layer height, 40% infill, infill every other layer, two vertical shells, and three horizontal shells, but I don't think it's critical.
(I found it helpful to use a Dremel with a rotary file to clean up the printed parts. Using this gently can make it easier to fit the bearings and to get the rotor to rotate smoothly.)
Put one of the 10mm bearings onto the input shaft.
Put the lower case over the motor shaft and put the input shaft on the motor shaft. The motor shaft should protrude from the input shaft about 3mm to 5mm.
Put the rotor onto the input shaft and seat the bearing.
Put the other 10mm bearing onto the input shaft and seat into the rotor.
Put one 5mm bearing into the output block. The motor shaft will seat in this.
Put the head of the M5 bolt (output shaft) into the pocket on the output block.
Put the other 5mm bearing into the pocket in the upper case.
Put the output case onto the output shaft and use the M3 bolts to mount the Hypocycloid Gear Reducer to your motor.
Spend the next hour or so fiddling and filing, dissembling and assembling to get everything moving smoothly and easily.
Note that the gearboxes seen running in the videos had no lubrication applied. A little plastic lubricant makes things noticeably smoother.
Use this Thing as the heart of your own cool project, or design a new version (using the instructions I provide) to do just what you want.
Note: To build the exact version I provide, you may want to Scale the cams for the rotor to 99% when you import them to OpenSCAD. I had to do a bit of filing with a Dremel to get smooth motion. Note that scaling on input to OpenSCAD is preferred to scaling with netfabb since all the openings will be unscaled and the correct sizes. The minor downside is you have to generate a new stl for the rotor.
But, I hear you say, I want a different gear ratio, output shaft, or input shaft. Can I modify your design in that way? Yes you can! Following is a summary of the procedure, but I provide all the information you need as a pdf in the zip archive you can download. If you have questions, post them to this forum.
Roll-Ur-Own Overview
Caution: customizing this project is probably not a good first project. I assume you are familiar with Python and OpenSCAD. As the saying goes, batteries not included, some assembly required, and your mileage may vary.
Running the Python script: Use the Python script from Alex Lait to generate the cam and roller profiles used in the OpenSCAD files. The Python script included with the files for this Thing is the latest version of the script from Alex Lait. You can follow the link above to learn a lot more about it. I assume you know how to run Python and use the IDE.
Using LibreCAD: LibreCAD (www.LibreCAD.org) is a very handy 2D drafting program and is perfect for processing the output of the Python script. This processing prepares the cam and roller profiles for further processing by Inkscape. The roller design from the Lait script needs additional work to create a usable profile.
Using Inkscape: The method of processing files for OpenSCAD using Inkscape is well-known (http://repraprip.blogspot.com/2011/05/inkscape-to-openscad-dxf-tutorial.html). The process is followed to ready the cam and roller files for use in OpenSCAD.
The cam and roller profiles can now be imported into OpenSCAD. The profiles are extruded to form the key parts of the design My OpenSCAD file is included as a complete example.

More from Engineering

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Have you removed the OpenSCAD example file? I don't see it in your Thing Files listing. I applaud your continued efforts to promote this gearing technology.

I have no idea where it went. Anyway, I put it in the files area. You should be able to download it now. My latest project is a Moineau pump driven with hypocycloidal gearing for use as a paste extruder. Stay tuned!

There is an openscad file there, but all it does is include a bunch of dxf's.

You are correct, the profiles used are created by the dxf files. The dxfs used for the stls are included in the archive so you can run the openscad if you like. A pdf of detailed instructions for using the python script to create your own dxf profiles is also included. The Instructions page summarizes the process as well.

After you read the Instructions and the detailed instructions in the pdf, please post again if you have further questions.

It deserves more views! This could be a better alternative to planetary gears in many places: easier to print (less post-processing), more compact and so. How does it handle wear with time though?

Yeah, I think they have great potential. But they're different and people often avoid different.
Wear? I haven't been using them long enough to be sure, but the contact is all rolling contact, so the wear should be pretty low. Also, a little lithium grease (for plastic - not petroleum based) should work great to keep wear to a minimum.

Awesome set of instructions and intro to these great gears.
What these gears really are is a two stage planetary gear where the sun has been removed and replaced with a planet holder. Due to the planets being linked and the difference in lobes from one set to the other, the output rotation is, well, differential against the first.

This same gear method can be used on standard planetary gears without the offset force required by the single planet, see the gear used in http://www.thingiverse.com/thing:36305http://www.thingiverse.com/thi... for example of that.

Thanks for putting this together, more people should be interested in interesting gears!


Glad you found this of interest, considering the things you've posted which are amazing!

I agree, gearing is fascinating and rewards serious study.