Last year David Friedman published on his blog Ironic Sans an interesting design concept for something that he called The Bulbdial Clock.

That’s like a sundial, but with better resolution– not just an hour hand, but a minute and second hand as well, each given as a shadow from moving artificial light sources (bulbs).

We’ve recently put together a working bulbdial clock, with an implementation somewhat different from that of the original concept.



Rather than using three physically moving light sources at different heights, we use three rings of LEDs at different heights. Within each ring, we only turn on one LED at a time, so that we only have a single effective light source– it can light up at different places from within the ring. The three rings are located above one another so that they each project light onto the rod in the middle, making shadows of different lengths.

Additionally, for fun and clarity, we used red, green, and blue LEDs for the three rings, making each shadow hand of the clock a different color. Each ring has 12 LEDs, and the 36 LEDs are efficiently multiplexed by an AVR microcontroller that also handles the timekeeping part of the project.

This clock is mostly built out of laser-cut plywood.



This is 1/4″ (6 mm) plywood, which holds remarkable precision with the laser cutter. There are three rings, shaped spacers that keep the rings above the base with the clock face, and a hardwood dowel rod.

It’s really quite a three-dimensional project! The rings each have pairs of small holes in them to mount the LEDs in place.



Each of the rings gets stuffed with 12 LEDs, with the correct orientation and spacing– long enough leads– that they can point towards the rod (and make good shadows) once they are in place.



Since each LED is only supposed to be on one at a time, we can drive the whole array pretty easily, and directly from the microcontroller, Here we are turning this array of LEDs into a single common-anode unit, by hooking all of the LED anodes together. Likewise, after we stack these, we connect the cathodes — vertically for the three rings– and hook those up to the microcontroller as well. For three rings (colors) and 12 cathodes, that means that we need 15 pins to control the array.



And the stack up is complete.

The next step is to add the control electronics. I used one of our business card boards, an ATmega168 microcontroller (programmed through a USBtinyISP), along with a 16 MHz crystal oscillator, a 3xAA battery box with switch and three tactile button switches. Not to mention a snarl of wire. There are also three resistors, two 50-ohm and one 100-ohm, which are used when driving a red LED, or blue or green, respectively. Because only one LED is on at a time, we only need one resistor for each color.

Of the three buttons, two are used for setting the time– one is fast advance, one is slow advance. The other button turns on or off the LED, but does not turn off the microcontroller. When the LED is on, the circuit uses about 26 mA of current. When the LED is off– just timekeeping, not displaying — it uses about 11 mA. These could both be reduced by using larger resistors and reducing the speed of the microcontroller.

(Aside: These parts were chosen principally for being the ones lying around. However, they’re mostly the right kinds of thing. The microcontroller is about the right size for the number of pins that are needed for this project, but we probably could have gone with one that had less memory– the control program is pretty small. A quartz crystal oscillator is nice because it’s *a clock* and shouldn’t lose much time. But 16 MHz is much faster than is needed, and the power consumption of microcontrollers depends on clock speed, so I’d pick (maybe) a 1 MHz crystal next time. The battery box is actually just right– 4.5 V provides comfortable headroom for driving blue and green LEDs, but not too much, and AA cells give sufficient capacity to make a non-annoying battery powered device, once we tweak that power consumption a bit more.)



As we have noted, it’s pretty tricky to get good photos of LEDs, but you can kind of get the idea here– just imagine that the colors are bright and vibrant.

In this photo the time is about 6:20:40. (Like many clocks, it’s hard to read with high precision. Even so, the seconds help to create the sense that something is happening.) The short hand, the hour hand, is created by the shadow of the red LED, and points to 6, indicating 6 o’clock. The medium hand, the minutes hand, is created by the shadow of the green LED, and points to 4, indicating 20 minutes past the hour. The seconds hand, the longest one, is created by the shadow of the blue LED, and indicates about 40 seconds past the minute.

What’s *really* neat about this is how the colors interplay. Where all of the LEDs hit, a white color (additive RGB) is produced. Then, as you subtract one of those three colors– as in the shadow of a single LED, the results are subtractive colors, and the hands on our clock face are in the colors cyan, magenta, and yellow. It’s just magical.



So that’s our new bulbdial clock; you can see additional a few photos in our flickr photo set here.

One more thing: We are thinking about making a kit version of this project (under license from David Friedman)– and we’d really like to have your feedback before we go further. There are a few obvious things that we’ll take care of– like a circuit board with dedicated (and labeled) buttons, a lower-frequency crystal oscillator to reduce power consumption, and holes to hang it on the wall. But we’d like to hear your other suggestions as well. :)

Update (December 2009):

We’ve listened pretty extensively to all of the feedback here (Thanks!) and reworked the project from the ground up. Amongst other changes, the new version has a plug-in power supply and classy outer case. We have just released the kit version, and you can read more about it here.