Introduction: How to 3D Print a Multi-Stage Planetary Gearbox
A few months ago I got interested in planetary gearboxes. I want to eventually make a robotic arm using this type of actuator, that could lift something heavier than a phone while still being cost effective. So I started looking look around the internet on how to design one of this types of gearboxes, and in this instructable I will be sharing with you what I found.
Supplies
- Access to a 3D printer
- A motor - It could be any kind of motor ( brushed DC, Stepper, brush-less, etc.)
- Screws
- Variable power supply
- An Arduino board
- An L298N motor driver
- A joystick
- Cables
Step 1: Gear Specifications
To be able to design each of the gears, I first needed to layout the known's and make some assumptions.
Known:
- Motor RPM = 2100 rev/min
- Train value "e" = 2/8 = 0.25
- Sun gear teeth = 16
- Planet gears teeth = 24
- Ring gear teeth = 64
- Material = PLA
Assumptions:
- Train value "e" = 0.25
- pressure angle = 20 degrees
- module (sun and planet gears) = 0.75 mm
- module (ring gear) = 0.76 mm
- backlash (sun and planet gears) = 0.6 mm
- backlash (ring gear) = -0.5 mm
- Gear thickness = 4 mm
With the information above I calculated the center distance of the gears, the pitch diameters and approximated the output rpm of each stage. I wrote the equations in a colab notebook if you guys want to try different tooth numbers. Then I used a CAD software (Fusion 360) to create each of the gears.
Step 2: Design the Housing
When designing the housing I tried to make it as compact as possible. In addition to that I wanted the gearbox to be modular. I want use this gearbox for several different projects like a robot arm, an rc car or a two wheel balancing bot in the future. So by having the flexibility of adding or subtracting stages to the gearbox, I can vary the output rpm and torque, to make it suitable for each project. You can find "STL" files for this design on my thingiverse.
Step 3: Print the Parts
I used Cura Ultimaker to slice the parts. For the gears I printed them with rafts, all the other parts I just used a skirt. I know I don't have the best settings at the moment, but they work for now. If you guys have suggestions on how to improve this settings let me know below.
Step 4: Test the Final Product and Future Iterations
To test the gearbox I attached a rod I had laying around, to see how much it could lift.
I used a variable power supply, an Arduino board, a joystick, and an L298N motor driver to perform the tests. The code that I used can be found in my github, it is modified from other creators like How To Mechatronics, Braini Bits, and DroneBot Workshop. I recommend checking them out if you are looking for a more thorough explanation on how to program the motor driver.
I tested lifting a motor with a slightly bigger gearbox at 9 and 12 volts, but it did not perform very well. I kept increasing the voltage and saw the best results at 18 volts or higher.
In future iterations I hope to reduce the backlash and to design a better housing, so that it can stand on its own when testing. I would also like to compare spur gears vs helical gears to see if there is any difference in performance between them.

Participated in the
Make it Move Contest 2020
9 Comments
2 years ago
Great Instructable! I learnt something new about using Colab Notebook. However,have you thought about using MathCad or Excel to generate calcs? Also, there are many online calcs which can also draw the gears for you and supply a 3D file.
3 years ago
Thanks for posting this it's really interesting. I'm personally interested how you determine ratios based on power input ie: rated power of the input/output. Is it solely determined by the revolution of the input motor spindle, or is there a more complex math behind the final gearing? (revolution, drag, motor load etc)
Eg: So let's say I have a motor that is 300w, or 500w, or 1.5hp etc. How would I determine the gears to print so it produces x revolutions of the output spindle of the attachment ? I'm curious because I'd like to do something like print a gear box for a drone motor, or add a gear box to an electricfied bike without burning out the motor or controller
Thanks. I hope my question makes sense. I probably phrased it poorly
Reply 3 years ago
Hi, yes I think I understood your question. If you want to determine the output rpm of the spindle, you would need to find the input rpm from the motor spindle. The motor rpm can be found either from the catalog where you bought it, using a tachometer, or by taking a video of the motor spinning at certain voltage and counting the revolutions.
If you figure out the input rpm you could use the colab notebook. I wrote the equations in a program so that based on the input rpm and train value it produces the output rpm of the spindle. If you don't really know what the train value is I would recommend you search for it and understand how it relates to the gear tooth ratios and the rpm. A good book that I used is the Shigley's Mechanical Design 8th edition, chapter 13. But most of the planetary gearboxes that i have seen use 0.25 for the train value.
Reply 3 years ago
Thanks, much appreciated. How are the gears holding up? I'm surprised that you printed in PLA instead of PETG or ABS. I've found PLA has a tendency to fracture under load.
Reply 3 years ago
They are good for now, but I will changing the material in future iterations. I used PLA because its the most common/ cheapest material. For this first version I dint take into account the forces that each of the gears would be experiencing, since it was more of a proof of concept.
3 years ago
Nice Instructable. I'd like to try this one.
Reply 3 years ago
Thanks, yeah definetly try it out.
3 years ago
Nice work, straight forward and to the point. Looks sharp!
Reply 3 years ago
Thanks! :)