gears are hard

About two years ago, I decided to 3D print a mechanical calculator.
This project is very important to me. I like old technology, and especially a mix of old and new technology (like sending digital data via ham radio).
There are different levels of how smart you can be when you want to 3D print something. The best option is to find a design created by someone else on a site like Printables or Thingiverse. Ideally, one that has as few parts as possible.
When I looked at the available 3D calculator designs, there were everything from simple ones with a few gears, to modular ones based on historical designs (like Blaise Pascal’s calculator), to a 3x scale replica of the Curta Type I, to the most advanced mass-produced mechanical calculators before electronic calculators hit the market.
There were two main features I wanted: a modular design, and a simple design. Unfortunately, the only modular design was modeled after Pascal’s calculator, and was not at all simple.
So, I decided to take the less sensible option and create a design from scratch. I didn’t realize what a huge challenge I was jumping into.
My first design was straightforward:

Design #1
Both gears had 10 teeth each. A gear (blue above) will let you read a number from the dial. There will be an extra number on the second (orange) tooth, which will be used to carry an amount to the next decimal place. The pillars on which the gears were mounted would be inclined, so that only that extra tooth would be able to contact the next gear.

I was having trouble getting the angle right, when I realized there was a more elegant solution. By reversing every other set of gears, they will naturally line up.
![]()
When I printed the first prototype, I discovered that the gears I had created in TinkerCAD were not interlocking and turning correctly. There was a huge gap between the teeth:

The advantage of 3D printing is that it allows you to fail quickly. I realized I needed to learn more about how gears are designed.
It turns out that there is an optimal gear tooth size that was discovered in 18th century, possibly by Leonard Euler. They are called “involute gears”, and they transmit force in a straight line between gears with any number of teeth.
![]()
engage gear teeth
There are plenty of CAD libraries for generating custom involute gears. I found a good gear and designed a gear with ten teeth. After a few iterations to test the fit, I got my first full draft printed:

Also note the lightweight base design
But this version still had one big problem that I hadn’t anticipated. I predicted that when one tooth of the ten-tooth gear passed completely through the gap of the other ten-tooth gear, both gears would rotate in tenths. As it turns out, this is completely wrong.

Note that the gears rotate with two teeth, not just one.
So it was back to the drawing board. Eventually, I figured out a suitable bit of trigonometry and determined that I could use a specific sized 30-tooth gear, in which the carry tooth would rotate its companion gear by exactly 3 teeth. To simplify the design, I also decided to keep the carry tooth out of the way from the rest of the gear. This meant that the carry gear needed to be printed with a support, but the support would be small and easy to break after printing.

This design worked to some extent. The main issue was that the gears kept slipping up the pillars. My first solution was to use small C-clips on top, which worked fine, but wore out over time. Still, I was satisfied enough to declare the project finished.

About a year and a half later, I decided to come back to the project and make an improved version with better fasteners. After trying and failing to make a system that was screwed together, I decided on a version held together with pegs that rotate in place. This version has been on hold for the past few months, so I’m ready to share it with others.

3D model of the final version.

side view. I will add a photo when I return home.
You can find the model and print instructions on my printables page here.
coming soon: Fiction: A Leap of Logic
<a href