Depending on firmware loaded this can be used as any kind of "smart" dot matrix display with some I/O lines for user interface/data communication, but its initial purpose was to become a better alarm clock, since I have a bit of trouble getting up in the morning. The trouble has two principal causes: I do not want to go to bed in the evening, and I do not want to get out of bed in the morning. The alarm clock mitigates neither of these causes, but was fun to build anyway.
designInitially a two board solution was planned, but only a display board was ever built of that iteration.
|first display prototype|
The second iteration incorporated everything on a single board. Since I had at the time recently taken a course on EMC, I opted (probably unnecessarily) for a four layer design making sure I had a proper ground plane as well as sufficient power distribution and managed to make the board just a few millimetres bigger than the three 40x40mm led dot matrix units used for the display.
The operation of the display is simple, three 74164 shift registers keep the columns high except for a scanning zero, and the rows are driven directly by the Atmega168 that controls everything. The trickiest part is finding a good speed, if switching too slow there will be a noticeable and very irritating flicker, and if switching too fast the amount of display-time for each column in relation to switching time will go down, with a dimmer display and even some ghosting as a result.
I could possibly dig up the schematic and board files if you think you need them, some code is available on github, and I have also made a small demonstration available on YouTube (Swedish speech though).
|working display and unpopulated board|
|Horrible soldering on the SMT components. I blame the fact that I at the time did not have any flux pen.|