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.


  • 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.


  • 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


  • 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.

Make it Move Contest 2020

Participated in the
Make it Move Contest 2020