Wordclock

Posted on December 10th, 2010

This is a dutch wordclock. Much of the design was taken from this version. It tells the current time within 5 minutes precision in full dutch sentences. The video also demonstrates a mode where random LEDs light up and fade out again. For when the current time is not important for a while.

The clock face is a simple 16*8 matrix of characters. The charactes are put such that all possible sentences can be produced and the additional characters have been put such that every line remains (sort of) pronouncable in dutch.

I also added a number of other words for other functions. For example the phrase ‘Hoe laat is het ?’ which translates to: ‘What time is it ?’ lights up when the clock is turned on. This should signal the user to set the correct time.

Wordclock FaceTo make the clock face I used standard photo print material and created a mask Inkscape and the Gimp.

Here’s the mask, like the other mask/layout images in this project it can be printed at 300 dpi.
Wordclock Face Mask
The LED is matrix is pretty straight forward, exactly what you would expect from a LED matrix.

Wordclock Matrix SchematicThe actual LED’s used are bright, warm white LED’s. The resistors are 805 SMD resistors. These resistors where chosen since normal .25W resistors would take to much space, even when standing up they would rise above the LED’s in the matrix.

Wordclock Matrix TopHere’s the layout for the LED matrix.

Wordclock Matrix LayoutThe controller print has been kept simple and straight forward as well. It needs a stabilized 5V input voltage which will supply the ATMega16 directly.

Wordclock Controller SchematicI’m using a ULN2308 darlington transistor array IC to drain the current from driving a row of LED’s. I’m using 10uF capacitors to debounce the print buttons.

The print buttons could have been debounced in software but I find even the simplest (like this one) debouncing circuit feels quite a lot better than clogging up the code in the uC with ugly and strange looking debounce algorithms.

The uC is clocked at 16Mhz, straining it to its maximum, to be able to PWM (Pulse width modulate) the LED’s in addition to the normal redraw and clock logic without it all looking a bit flickery.

Wordclock Controller TopHere’s the layout for the board.
Wordclock Board LayoutWhen I was putting it all together I had been looking for a nice stand to put it in and for the time beeing I had put it in my third hand. Turns out I kind of like the look of the clock in the third hand so I think I’m going to keep it like that.

Wordclock Posing Workbench

Some other interesting things I learned during this build:

  • I should have drilled the 3mm holes in the corners before soldering on all of the components. It would probably have been easier to align the holes.
  • The ATMega16, by default, has it’s JTAG interface enabled. Which means that there are 5 I/O pins which cannot be used as I/O pins. Disable the JTAG interface in the fuse bits and it will all look a lot better.
  • It is impossible to use SK10 at any point in your design if you don’t want fingerprints permanently embedded on the print / clock face.

I had originally attached a preliminary version of the source code. This orginal version has a couple of issues with setting the time and switching modes, as can be seen on the video. The currently attached version is considered stable and (mostly) bug free !

Wordclock Source Code V.02