About this clock

The clock is essentially a 7 segment display, with each segment comprising six LEDs per vertical segment and five per horizontal segment. The difference here is that every LED is individually addressable, so sweeps and chases and scrolling effects can be used.

The 39 LEDs allow more interesting character shapes to be displayed. The display character height is 1.75″, 45mm, high.

The clock is read from the sequence of digits 1-2-3-0 and a pause is telling the time as 12:30, for instance. If two of the same numbers follow each other, a slight off pause in between keeps the rhythm going. This clock is far easier to read than one might imagine it to be at first sight.

Watch a video

Original music in the video above by courtesy of the very talented James Devon

For sale

Two styles of original handmade clocks are for sale

The tall wooden version exists in an edition of three. The small version is an edition of five and is cased in acrylic and finished in satin black. Both are available for immediate shipping.

A UK mains adapter will be provided free on request, however overseas purchasers should source a 9v DC centre positive wall adapter locally.

39 LED 7 segment clock – tall version, complete: £120

Edition of 3, No 1 – Sold
Edition of 3, No 2 – For sale
Edition of 3, No 3 – For sale

39 LED 7 segment clock – small black version, complete: £120

Edition of 5, No 1 – Sold
Edition of 5, No 2 – Sold
Edition of 5, No 3 – For sale
Edition of 5, No 4 – For sale
Edition of 5, No 5 – For sale

Concept and design

I knew from making my circular charplieplexed clocks that I could drive 39 LEDs from just seven data lines. 6×7 or 42 LEDs can be driven from seven pins (although only one is ever on at once).

The question for me to answer was whether I could sweep through displaying all 39 LEDs fast enough and smooth enough, while updating the time and doing the special effects patterns I had in mind. The circular charlie clocks have a maximum of about 12 LEDs appearing to be on at any one time.

Happily, after some trial and error, I had a software routine that gave a solid display that appeared smooth and static. To do this without flickering I settled on a timing loop that displayed one LED every 1/2048th of a second, updating the full set of LEDs 52.5 times a second. Running a PIC from a 20MHz crystal still allowed me to to do everything else I needed to do, while maintaining the timing accuracy.

I made a hand-etched prototype. It was all working well.

Above: The hand-etched prototype, with and without orange filter.

I had bought a reel of 1,000 beautiful 2mm domed top surface mount orange LEDs that look absolutely wonderful and are extremely bright.

The final version uses a piece of orange translucent acrylic in front of the display to both protect the display and increase the contrast. This works well and also looks attractive.


Not much to say here. I never drew a schematic circuit diagram as such. I went straight to PCB design. I like working like this. I can route things directly where I think they ought to go. It’s probably foolhardy of me, but I come from a design background rather than an electronic engineering background. I find doing schematic circuit diagrams and exporting parts and net lists in advance tedious. I know I’ll have to actually do a PCB layout at some point, so I go straight to it.

The PCB layout challenge for me was this: I wanted to make as compact a layout of surface mount LEDs as possible. This meant pads of two LEDs touching at the corners, which in turn meant at the middle corners LEDs have to have cathodes at one corner and anodes at the other, leading to a bit of a puzzle in the layout of the LEDs. In other words, it needs concentration when it comes to soldering the LEDs in, as at these places some fit one way round and some are reversed the other way.

The diagram on the left above shows the seven outputs in seven colours. LED anodes are connected directly to the PIC, while cathodes are fed via a current limiting resistor, one per set of LEDs

It was of no concern to me which order the LEDs went in as all the high and low pairs of outputs are set in software, using a lookup table for each LED and reading in a pattern held in EEPROM space for the character and effect shapes, which are each held in a set of 5 bytes.

Leave a Reply