Project in progress

Edgytokei © MIT

Time on the edge.

  • 15 respects

Components and supplies

Ard nano
Arduino Nano R3
Discrete Semiconductors / Power Transistors and MOSFETs
Connectors and Accessories / Miscellaneous Connectors
09590 01
LED (generic)
Fiber Optics / Emitters
1 : 100 by15 stepper motor
1 : 200 by15 stepper motor

About this project


The Edgytokei which literally means edge clock is inspired from the Japanese nunchucks. Just like the nunchucks the clock is just a pair of two arms displaying time by balancing themselves on the edge. The clock consists of two arms and the base on which the arms are anchored. Both the arms are of equal length as the role of the arms changes with different hours of the day.

The fulcrum of the clock flips from the center to the left or right of the clock every quarter hour so that the clock can stand on the edge to represent the time between quarter past and quarter to hour. This flipping of the arms keeps the clock dancing on the edge throughout the day. The base which contains the electronics of the clock provides a anchor for the clock and prevents the arms from falling over.

The cylinders on the elbow of the arms contain the mechanics of the clock. Both the arms contain LEDs on the edge. Depending on which arm is representing the hours the LED on that arm light up.


The clock consists of two arms of equal length rather than the usual unequal ones. The lower arm can slide on its fulcrum making the entire clock sit or stand on the edge. The lower arm is driven by a geared 15mm 1:200 ratio stepper motor. The upper arm is driven by a second stepper motor located in the elbow. This motor is a 1:100 15mm stepper. The power lines of this stepper needed to be hidden for neatness and hence are taken via copper tracks and brushes in the base. The brushes give the arm freedom to slide and remain clean. The upper LED is also powered by these tracks. The upper LEDs power has a additional set of slip rings in the elbow. The clock contains two LEDs one in the base hub and the other in the end of the top arm. The arm's role changes depending on which led is lit. So if the upper LED it lit then the upper arm becomes the minutes arm, and if the lower LED it lit then the lower arm becomes the minutes arm and visa versa. It is a little confusing but then what the heck. 

The clock is controlled by a over the shelf Arduino nano as it is still in prototype stage. The nano keeps the time via a RTC and drives the motors using a standard step stick from the RepRap. The LEDs are controlled using a ULN2803. 

The program of the clock is a little complex as the positioning of the arms has to avoid any kind of crashes. So I had to program all the unique positions of all the hours. 

The biggest PITA was the homing. That actually almost made me scrap the clock for a year. The problem is that when the clock is powered up from a unique position a usual homing of the bottom arm can end up in a crash. So the lower arm needs to know which end it is at when powering up. The solution to it is very unique. The lower arm contains a color strip with 4 parts. 2 parts in length are of the same color and the other 2 parts are another color. A reflective ir sensor senses these values and gives 2 different distinct values for 2 different color. So now the lower arm knows which way to home left or right. Once the direction is known, it uses hall sensors to home.

The code also has a GCODE parser which I borrowed from the very kind, MARGINALLY CLEVER website. This helped me in the programming phase of the clock to send it to unique angular positions. I also wrote a custom gcode sender in processing to send gcode to the clock. All this kind of sounds ridiculous for a clock, but it ended up being a lot more complex than I thought it was.  

And yes, all of it is 3D printed on a custom dual color Corey machine. 

  • github
  • files
  • star
  • development


Gcode_edgy.ino: arduino firmware

time grasshopper script to simulate angles

edgy gcode sender.pde: processing script for gcode sending




Similar projects you might like

Laser Pointer Panther Tank

Project tutorial by Arduino “having11” Guy

  • 1 comment
  • 12 respects

Android Things Word Clock

Project tutorial by Daniele Bonaldo

  • 135 respects

IoT arduino ESP Garage Door opener (UD)

Project in progress by David Smerkous

  • 20 respects

Solar UPS controller/automatic transfer switch 

Project in progress by Markus Loeffler

  • 72 respects

Arduino-Powered Smart Light (Works with Amazon Echo)

Project tutorial by Tinker Project

  • 44 respects


Project in progress by Craig Hissett

  • 53 respects
Add projectSign up / Login