Introduction: Bike Cassette Clock

About: I am a 17 year old who loves building, coding and CAD!

This is a clock made of spare parts I had lying around. For this reason many of the parts used can be easily substituted for whatever you may have lying around your house. For example using an Arduino and servo to drive the clock is definitely overkill but I couldn't find an old clock I could tear open so it was the next best thing.

The best way for you to build your own is to use whatever you can find in new and creative ways! (and be sure to share them when you are done)



you will need:

  • one Arduino
  • one 360 degree servo
  • OR
  • one clock motor (easily torn out of most clocks)
  • ---------------------------------------------
  • one old bike cassette and chain ( your local bike shop may be able to give you worn out parts)
  • a bar of wax (candles would work although they might not be as strong as other types of wax)
  • solder (or super glue)
  • wire (I used 1/8" which seemed to work pretty well)
  • some wood


  • pliers
  • bench vice (optional but makes it a lot easier)
  • torch (lighter will work too)
  • file (sandpaper would work)
  • glue gun
  • jig saw (optional but makes it a lot easier)
  • drill
  • wood glue

Step 1: Make the Numbers

The first part of this project is the numbers that will be attached to the chain. I made these by bending 1/8" wire into the different shapes.

You will need to make 5 ones, 2 twos and one of every other number from 0-9

I found the easiest way to make the numbers was to first use a bench vice to straighten the wire.

Then I used a pair of vice grips and pliers, locking one end in the vice grips and bending with pliers in the other hand.

to make the 4 I soldered a scrap piece of wire to the rest of the 4.

Be sure to make the numbers similar in size!

Step 2: Attach the Servo (or Clock Motor) Photo of Attachment in Wax

In this step we will put there servo attachment in hot wax to secure it to the cassette.

start by placing the cassette upside down on some type of shiny surface I used a plastic lid but metal would be much better.

make sure there are no large gaps in the bottom of the hole in the middle of the cassette and start dripping wax into the hole. (photo 2&3)

next once the wax has turned opaque heat up the wax where the servo attachment should go until it is fully liquid place the attachment in the middle of the hot wax and let it harden. Make sure you keep the wax out of the hole where the servo shaft goes.0


Step 3: Finishing Touches on the Cassette

To finish up the cassette I glued all the loose cassette rings on top of each other (remember to keep the spacers in the correct order) to make the cassette look as real as possible. Any type of glue or solder should work I used hot glue which worked well.

Step 4: Attaching the Numbers

First thing for this step is to make sure you choose a gear to always have the chain on most cassettes have a gear with 18 teeth, I chose this one because of the length of my chain 4 revolutions made the chain go all the way around. Once you choose a gear put the chain on and mark with a sharpie then turn the cassette 30 degrees and make another mark. Measure the distance between the 2 marks and continue to make marks the same distance apart until you run out of numbers.

Once you have all the numbers on you will have to remove extra links from the chain until you have and equal distance between the first and last link. To remove links you will need a chain tool. Using a chain tool is not very difficult pretty much just punch out the pin in the chain. There are lots of good videos on youTube showing how to use them so I won't go into too much detail.

next solder or glue a number to every sharpie mark and you are done the chain!

(if you couldn't get the correct spacing between the last and first number measure how many degrees off it is and there will be a spot in the Arduino code to change it.)

Step 5: The Frame

This can be as simple or as complex as you like, I decided to just mount the servo through a piece of old wood.
For the bracket I took some scrap wood and cut 2 pieces about 7 cm long. These are to keep the board from touching the wall it is mounted on to leave room for Electronics.

to make a square hole in the board for the servo to mount through I drilled a 1/2" hole in the middle of the board and cut the hole using a jig saw. if you don't have a jig saw a chisel or just multiple holes drilled through the board to create a recess for the motor should work too.

Finally mount the Arduino to the back of the board using the provided mounting holes in the Arduino and some small screws.

Step 6: Electronics

The electronics for this project are not very difficult there are 3 wires and some code to copy paste into the Arduino IDE.

The connections to Arduino:

red on the servo ====> 5v on the Arduino

black on the servo ===> GND on the Arduino

white on the servo ===> pin 9 on the Arduino

you can copy the code from below:

(keep in mind that not all gears will work on the cassette because of an incompatible number of teeth. Most cassettes have a 18 tooth gear which is what I used and it works well)

#include <Servo.h>

Servo myservo;
int degreesPer12hr = 0;//rotate the gear until the number you started with is back at the top
int degreesPerHr = degreesPer12hr/12;
int degreesNow = 0;

void setup() {
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object

void loop() {
int x = 0;


if(degreesNow ==degreesPer12hr){

 degreesNow = 0;


Step 7: The Final Product!!

Time to put it all together!

It is easiest to set the clock by waiting until the nearest hour and placing the chain on the cassette with the correct number at the top.

And we are done! go hang it on your wall!

Clocks Contest

Participated in the
Clocks Contest