Introduction: Cycloidal Gear Clock

About: My name is Eammon Littler and I'm a college student interested in the field of engineering, robotics, and programming. 想像 (souzou) is the Japanese word for imagining, which I find myself constantly doing, and …

When designing this clock, I initially imagined a planetary gear system, but with the style I had in mind, I couldn't quite work out the gear ratio that I wanted. After some research, I came across cycloidal gears and knew this had to be the basis for my clock.

Cycloidal gears work by pushing the cycloid gear against the pins on the perimeter. The number divots in the cycloid gear determine the gear ratio. The stationary pins are designed to have one more pin than the number of divots in the cycloid gear. These gears get their name from the cycloid shape that's used to form the cloud-like shape of the gear. Imagine following a single point on a bike wheel and tracing out the shape that point draws as the wheel turns and the bike moves forward. Here's a good visual for it. Now imagine wrapping this shape around a circle and creating a cloud shape. That's how you get your gear. Students of physics might be more familiar with the brachistochrone, which is a type of cycloid that maximizes the speed of a ball getting from point A to point B. Here's a link for more on the brachistochrone.

Designing this was definitely a challenge. I opted for the mathematical and programmatic way of generating the shape, plotting points using javascript to generate an svg to work with. While the cycloid shape came out fine, there's another step to making the bubbly shape of the cycloidal gear. Imagine drawing a circle of some diameter (that matches the stationary pins) that follows the cycloid path. The inner perimeter of this traced path is your cycloidal gear. For technical reasons, I couldn't import svg files into fusion 360 and have the stroke width recognized. I tried using my svg generating website to convert an image of the svg with the correct stroke width to an svg with the stroke instead becoming a path, but the lowered resolution failed to work with my 3D printer.

Eventually, I hope to have a static site generator for cycloidal gears, but I went for the brute force method here with some help from this fusion tutorial.

So now you might be thinking, cycloidal gears are gears which means the output shaft would spin opposite of the input, causing half the clock to move clockwise and the other counterclockwise. Don't you worry. I'm no fan of tricky clocks, so I found a way around this using yet another gear. A planetary gear. I've kinda had this one on the backburner and finally got it working after numerous prototypes. It's a print in place planetary gear that can screw into more planetary gears of the same print type. This one is made short to fit the clock and is fitted with a screw-on output shaft. It acts as a direction reverser so the cycloidal gear for the hours turns the same way as the cycloidal gear for the minutes. The smallest physical gear ratio I could make is 2:1 for the planetary gear, explaining why there are only six "teeth" on the hour cycloidal gear rather than twelve.

Step 1: Parts

Apologies for the semi-assembled part picture. I had the electronics hot glued down and no spare parts to make another due to shipping limitations.

What you will need:

* You can skip these parts using color change with prusaslicer

Step 2: Electronics

The diagram above will be better than I can explain here. I took out the ULM2003APG chip (stepper driver) and soldered wires directly to it to reduce space. You will have to do this too to fit everything in the electronics box. Another advantage aside from space is the lack of led lights using up power. Although I highly recommend testing the stepper driver using the board before soldering anything. Don't forget to add a coin cell battery to the RTC module. It should last for a year or two.

Screw the stepper motor onto the minutes frame using M2.5 screws (laptop screws or similarly small). If you can't find any, this should do the trick. Now hot glue the wire mess and you're done with this step!

Step 3: Code

Now for the testing. A few things to note. I used this DS3231 library for the RTC clock and the AccelStepper library. Start by setting the time for the DS3231 using this code. Open the serial monitor once uploaded and type in YYMMDDwHHMMSSx. For example: 180730w165130x for 2018-July-30th at 16:51 and 30 seconds followed by an x for the ending. What's nice about the RTC module is that it's powered off the coin-cell battery, keeping its place even when the arduino is off.

Let's test the stepper motor now. Use the code below to simply run the stepper motor.

#include <AccelStepper.h>

#define FULLSTEP 4

AccelStepper stepper(FULLSTEP, 6, 8, 7, 9);

void setup() {

stepper.setMaxSpeed(1000);

stepper.setSpeed(-550); }

void loop() { stepper.runSpeed(); }

If you don't have an RTC module, you can see the speed to -33.967 which is equal to one rotation of the stepper motor per minute.

I have yet to make code that works with the RTC module to accurately drive the clock, but I will make sure to post the code when I do.

Step 4: Planetary Gear Assembly

Normally, the sun gear (center) of the planetary gear would be the input and the three planet gears would be connected with a triagonal piece and an output shaft. To achieve the 2:1 ratio, the sun gear is still the input, but the outer ring will be the output with the three planet gears remaining stationary. Make sure to fit/glue the bearings in the planetary gear before inserting filament.

I used three pieces of 2.85 mm filament, melting the ends to flatten and keep the planetary gear in place. If possible, use a holding iron you don't like, or the flat base of the soldering iron to make things easier to melt.

Step 5: Final Assembly

The rest is just stacking on on the other. Follow the order below. I hot glued the planetary gear holder piece to the minutes pin frame.

  1. Place screws in minutes frame for electronics box.
  2. Lay minutes cycloid gear in frame and place minutes eccentric piece on the stepper motor. It's eccentric because it has properties of eccentricity.
  3. Line the glued together minutes output shaft along the holes of the gear. It's meant to be loose.
  4. Glue the three standoffs on the planetary gear holder. Place the assembled planetary gear holder on the frame. Any pin is fine.
  5. Fit the hours frame on the standoff.
  6. Place the hours eccentric piece on the planetary gear output shaft.
  7. Place the hours cycloid gear on.
  8. *Optional
    1. Glue the hours hand on one of the lobes on the cycloid / use prusaslicer multicolor function to color swap (make sure to print the "hours cycloid gear for multicolor" file.
    2. Glue the hours indicator (white pieces) / use prusaslicer multicolor function to color swap