Introduction: Hand in Hand Skeleton Clock

About: Engineer from the Netherlands. Projects in 3D printing, electronics, prop making, sewing and whatever interests me. (If you have a pressing question go to my site and ask it there. I am way more likely to an…

A hand in hand clock is a clock where the minute hand is mounted on the tip of the hour hand (and second on minute). This gives a clock that looks quirky and unique, but still very readable and clock like.

This clock is a skeleton edition of a hand in hand clock. This means that all gears of the clock are visible. The idea behind skeleton clocks is not to hide how it works by covering it up, but to show it off. While this is not something everything likes, it is something that I as an engineer really appreciate. For the color scheme of this clock I wanted something almost like steampunk. This left only one possible color scheme. Black and glorious gold, with brass screws. I think the result is really stunning.

Step 1: The Design

After having finished the original Hand in Hand Clock, I had some people suggesting I made a skeleton clock version of the hand in hand clock. I really liked this idea. The type of clock really lends itself to a skeleton version, and I am an engineer, I don't need minimalist clocks, I want to see gears and stuff. So here we are, a Skeleton version. The mechanism is no longer hidden behind covers and frames. The mechanism is now the centerpiece of the clock.

The previous clock was made start to finish in 6 days. That is not design, that is EVERYTHING. Design was done in 2 days or about 10 hours. While it worked, it was an assembly nightmare. Some holes were unreachable, some gears had no bearings and shafts could not be properly secured without a lot of glue. This time I took the time to make a clock that can actually be assembled without glue and without getting a depression. It is easier to assemble and it runs better.

Another great improvement is that this clock uses a DC gear motor instead of a stepper motor. A stepper is easier to control, but it had a relatively big power consumption. It also produced a massive amount of noise, ticking loudly (louder than a normal clock) about every second. The DC gear motor can only be heard in a completely quiet room, and even then it only is on for about 2 seconds every few minutes. An added benefit of the DC motor is that it is a lot smaller and uses a fraction of the power. The whole clock never gets above 0.5W and has shrunk considerably in size. The DC gear motor uses a tcrt5000 optical reflex sensor and an encoder printed to one of the gears to determine the position of the motor.

Step 2: What You'll Need

For this clock you will need the following materials:

  • 3D printer material in the color of your choice (I used Black and gold PLA);
  • 1x 608ZZ bearing;
  • 5x 623ZZ bearing;
  • 5x 683ZZ bearing;
  • 4x DIN84 M2x6 screw;
  • 9x DIN934 M3 nut;
  • 30x DIN125-1A M3 washer;
  • 6x DIN84 M3x10 screw;
  • 5x DIN84 M3x20 screw;
  • 3x DIN84 M3x30 screw;
  • 1x M3 threaded rod, 51mm;
  • 1x DIN934 M8 nut;
  • 1x DIN125-1A M8 washer;
  • 1x M8 threaded rod, 21mm, hollowed out with a 4mm drill;
  • 1x DC geared motor 6V 30rpm, 12mm diameter 36mm long; (link to ebay search)
  • 1x TCRT5000;
  • 1x tact switch 7x7mm;
  • 1x BC547B transistor (or comparable NPN transistor);
  • 1x 220ohm resistor;
  • 2x 4.7k ohm resistor;
  • 1x 10k ohm resistor;
  • 1x Adafruit trinket 5V (or other attiny85 based microcontroller);
  • 1x USB cable
  • wire;
  • (optional, male and female headers);

For tools you will need:

  • A 3D printer with a bed at least 140mm x 140mm;
  • Soldering Iron;
  • Basic pliers, files and screwdrivers;

Step 3: Start Printing

Printing is the most straight forward step in this process. For this step you will need a 3D printer that has a build bed size of at least 140mm x 140mm. It needs to be fairly accurate, since it will be making gears. Also it should not have much stringing (if you don't know what that means, you don't have this problem). Support material or vertical build size should not be a problem. Download the files by clicking the link below:

In the download there are .stl files of the clock parts. You will need to print each part only once. All parts print better at a fine resolution. Especially the gears benefit from a slow print. Skimp out on this step will leave you with either a lot of finishing or a poorly running clock.

The gears and covers can be printed in a different color than the other parts to give a nice effect. I printed the gears gold, and the frame black for a nice steampunk'ish look.

Step 4: Hand Assembly

The assembly of the clock can be done with simple screwdrivers and pliers. In a quite a few places the screws are simply tapped into the plastic. While assembly is not difficult, it can only happen in one order. Ignore this, and some important bolts cannot be tightened. For lengths and general assembly, photo's are leading.


  • Assembly starts with press fitting bearings and nuts. 3 of the 683 bearings need to be pressed. A 623 bearing is pressed in the idler gear. 2 M3 nuts need to be pressed into the 2 small hour hand gears.
  • The M8 threaded rod is hollowed out using a drill of 4mm (or slightly larger if the hole isn't centered). It then is mounted on the hour hand frame. This thread may need to be cut before mounting the thread using an M8 thread cutting tool or M8 nut. Securing it is not necessary at this stage.
  • The M3 driver shaft needs to be assembled. Both the driver and driven gear look the same. That is why I added a hole to the driver gear in the final design (not shown in photo's). The photo's do not show the proper direction of the nut. The assembly order is: washer - nut - gear - washer - nut, where the first nut is the nut press fitted in the gear. Properly tighten the nuts, this is a powered part.
  • The M3 driven shaft consists of the M3x20mm screw and the other small gear. It is mounted: screwhead - washer - bearing - washer - nut - gear - washer, where the nut is the nut press fitted in the gear. Properly tighten the nut to the screw and check if the bearing is running freely.
  • Mount the idler gear to the hour hand frame. The assembly order is: screwhead - frame - washer - bearing - washer, where the bearing is the bearing press fitted in the idler gear. The idler gear only fits one way. At this point there are a few floating washers. be careful nothing falls off.
  • Mount the other side of the hour hand frame to the current assembly. Both M3 shafts have opposing bearings. the idler gear screw cuts into the plastic. Check if everything is running.
  • Use 3 stacks of an M3x10mm screw and 3 washers to mount the back side of the hour hand frames together. All 3 screws need to be cut into the plastic.
  • Press fit a nut into the minute hand assembly. Then mount the minute hand to the assembly. The mounting order starting from the hour hand bearing is: washer - nut - washer - minute hand - nut, where the last nut is the nut press fitted into the minute hand. Tighten the nut to the minute hand, but leave a small gap between the first washer and the first nut. This needs to float. Spin the minute hand to verify smooth operation.
  • Mount the covers to the minute and hour hand. These are secured using the 4 M2x6mm screws. 2 of these screws need to be cut to 4mm. These are used for the larger cover of the hour hand. All M2 screws are cut into the plastic.


The hand assembly is now finished.

Step 5: Minute and Hour Gear

This step joins the hand assembly to the frame.


  • Press fit the 608 bearing into the frame. You need to press from the front. A small ridge will remain on the back side of the frame.
  • The hour gear is the large gear with the M8 hex hole in it. It need an M8 nut and a 623 bearing press fitted into it.
  • Place the M8 shaft of the hand assembly through the 608 bearing. Place the M8 washer and then screw the gear to it. Tighten the gear, but be careful not to exert too much force.
  • Mount an M3 nut in the minute gear. Then place a washer over the M3 shaft and screw the gear nut first on the M3 shaft. Move until the nut touches the washer, but do not tighten. Mount a washer and a nut on the M3 shaft. Tighten the nut while holding the gear. Move both gear by hand to ensure smooth operation.


Make sure everything runs smooth and all nuts are properly tightened before proceeding to the next step.

Step 6: Base Frame

Here the clock will get all critical components mounted.


  • Wire the motor and the sensor. I chose here to add headers, but you can safe space by directly soldering the wires to the circuit later. The motor orientation does not mater, the sensor does. The blue diode is the LED, the black one is the sensor. Googling "TCRT5000" will give you polarity for all components.
  • Press fit a 623 bearing into the hole of the frame (no explicit photo of this step is shown).
  • Press fit the gear onto the motor. Both the gear and the motor should have a flat bit. The motor will fit in the hole in the frame. You can use hot glue to properly secure the motor.
  • In the back of the frame there is a slot where 2 M3 nuts need to be placed. Then using 2 M3x20mm screws, fasten the small front cover to the frame.
  • Take the hand and gear assembly and mount it to the frame. Use 2 M3x20mm screws to mount the hand and gear assembly from behind using the 2 outside holes. No washer should be used here. Use an M3x10mm screw with a washer to mount the hand and gear assembly to from the front. All screws need to cut into the plastic.


Again check if all parts are still rotating.

Step 7: Idler Gears

Mounting the idler gears will lock the clock in it's final position. It is important that the clock is set at a possible time (like 12:00 or 6:00).


  • Take the small idler gear and press fit a 623 and a 683 bearing into it.
  • Set the minute hand up. Getting it exactly right is useful, but not essential.
  • Mount the idler gear on the right side of the clock between the motor and the minute gear using an M3x30mm screw. The order should be: screwhead - washer - frame - washer - 623 - gear - 683 - frame. The screw cuts into the plastic.
  • Press fit a 623 and 683 bearing into the large idler gear.
  • Now set the clock to an exact time like 12:00. You can carefully move the minute hand by moving the motor.
  • Mount the large idler gear on the left side of the clock between the minute and the hour gear using an M3x30mm screw. The assembly order should be: screwhead - washer - frame - 683 - gear - 623 - washer - frame. The screw cuts into the plastic.


The mechanical portion of the clock is now finished. Looks great doesn't it?

Step 8: Electronics

The electronics are what makes this clock tick (get it?). It is built around a 5V trinket, but any attiny85 based micro controller should do. Normally anyone would use a bit of prefboard for the circuit, but this clock does not have the space for that. Luckily the circuit is simple enough that it can be soldered directly to the pins of the trinket.

Follow the schematic to make the circuit.

For power I used an old white USB cable. The trinket needs 5V already, so this makes the power supply side quite easy. I cut it so I had the large USB connector left. This can later be inserted into a standard USB charger. If you want, you can also hook up the USB signal wires to the trinket, but I did not do that.

Step 9: Firmware

For all information about using the trinket go here:

Make sure that you have all drivers and libraries installed for the trinket before flashing the firmware. Trinkets are a bit special when it comes to programming them, but this does come with the benefit that they are cheap and tiny.

In the package you downloaded at the printing step, you will also find the latest version of the firmware.The firmware has a few modes that are explained in the next step. There is one mode that is of interest at this point. Normal clock mode. This is where the clock waits a predefined time before it moves the motor a predefined amount forward.

The amount the clock moves forward is defined. Encoder that measures the gear can measure 6 pulses per revolution. The gear ratio to the minute wheel is 13 to 53. To calculate the delay time in seconds, take the number of seconds per hour (3600), and divide that by the gear ratio and pulses per revolution. 3600 / 53 * 13 / 6 = 147.170 seconds, or 147170 milliseconds. In retrospect, a round value would have been better, but the ratios had been picked and the clock was printed. It is arbitrary when it really comes down to it.

The reason for telling this is this: The Trinket has no crystal. This means that timekeeping with it is actually quite hard. The value highlighted in the image (delay_time) is the delay time calculated above. If your gains time when in use, the highlighted value needs to be increased. When the clock losses time, the highlighted value needs to be decreased.

Practical examples. Lets say your clock gains 20 minuted over a week. delay_time will need to be raised by a certain amount to compensate. A week has 10080 minutes (60*24*7). The clock is off by a certain factor: (10080 - 20) / 10800. This gives 0.99801.... Now divide the current time_delay value you have by this factor and you'll get your new time_delay. In this case 147462 milliseconds.

If your clock loses time, you'll need to multiply your current delay_time by the factor, making 146878 milliseconds.

I would love to make this easier, but I suck at explanations.

Step 10: Instructions on Using the Clock

The clocks has 5 basic modes: The idle mode, the calibration mode, the clock mode, the set mode and the display mode. A single button on the back of the clock sets the modes.

Idle: When the clock powers it enters the idle mode. This clock has a few software features that reset when the power is cut and the clock will simply do nothing until the button is pressed once. If for some reason the power fails, the clock will stop to run. The alternative is that the clock would be wrong, but this seemed better. On request I can modify the firmware so there is no idle mode.

Calibration: When the clock powers up 2 things need to be determined. What the upper and lower limit of the sensor are and the minimum required power to run the motor. Since the trinket has no serial, it is hard to figure out what the sensor values are for each individual clock. For this reason the clock sets this values itself using the calibration. The minimum motor power is to reduce noise. Sometimes the clock does not complete calibration. If this happens, turn the clock off and on and try again.

Clock: During the clock mode the clock will move like a clock (Duh). This means moving the clock one sensor pulse every 2.5 minutes or so. It first tries at the previously determined minimum power. If this fails, it will switch to full power.

Set: holding the switch for over a second will enter the set mode. The clock will ramp up the power and move forward until the button is released. The clock sadly cannot be set backward, so be careful not to overshoot. After the button is released, the clock automatically assumes clock mode again.

Display: Press the button 6 times in rapid succession to enter display mode. In display mode the clock will simply power the motor full power, all the time. This is used for (you guessed it) display like making videos for Instructables. It is a feature I need and you get for free. To go back to clock mode, hold the switch to enter set mode. The clock will go back to clock mode after you release the switch. Display mode can also be used to set the clock if you need a long way to travel.


For those interested to know (and to troubleshoot) the calibration cycle works as follows:

  1. The motor is turned on full power and the sensor is activated. The lowest and highest value is recorded. After a few seconds the thresholds are calculated based on these high and low values.
  2. The clock is powered off and the power is incremented in 4% steps until the sensor sees the gear moving. An additional value is added to this minimum power and the required power is stored. (you can hear buzzing during this step of the calibration)

Calibration will set the clock roughly 15 minutes forward.

Step 11: Final Thoughts

I finally got to revisit the hand in hand clock. The first one was great, this one took me a bit longer but was totally worth it. A few things need to be noted:

  • The first clock was actually never used. The stepper motor was WAY too loud for my house. It just hung on my wall as a decorative piece without telling me the time. I hope the skeleton version will serve me longer. It is quiet enough.
  • The accuracy of the time might be a bit sketchy here. Trinkets have no external crystals and internal crystals are known to be inaccurate. This is compensated by the settable delay time in the firmware, but it only working around the problem. Only time will tell if this clock is accurate enough.
  • There was hardly any space for the electronics. The back cover was expanded once to give more space, but even this left the clock with an awfully tiny electronics space. Bigger would be easier but also uglier on this design.
  • Setting the time is awful. The clock only runs forward and it takes about 5 minutes for the clock to go around full speed. Often I simply toggle to display mode and let it run until it is near. Making it run both ways would have taken more and bigger electronics, so I am not doing it, but this does make setting the clock a challenge.
  • The calibration function at the beginning of the firmware is great for firmware user friendliness, but does have drawbacks. The clock stops if the power fails for more than a few seconds, the calibration cycle sets the clock forward 15 minutes and sometimes the calibration fails and the clock needs to be reset. Again, no solutions here, just noting.
  • I do have a grand finale planned for mechanical clocks, though making it will take me some sweet time. I have but one hint. Opus 11.
Robotics Contest

Runner Up in the
Robotics Contest

Epilog Contest VII

First Prize in the
Epilog Contest VII

Time Contest

First Prize in the
Time Contest