Tuesday 1 February 2011
Reverse engineering digital projective table clock
Today I went shopping and I had to buy this discounted projective clock. Of course not for displaying the time. I never had this type of clock so I followed the first rule of new electronic device: "Don't turn it on, take it apart!" :)
The image on the top is not exactly the same device that I bought, but pretty similar. It can project only time. I took apart the projector module and started to search if there's any color-system to know which wires are common terminals and which are just segments.
I had no knowledge about direct driving LCD so I did a search and found pretty explanatory materials. The first from Zilog explains how LCDs work and what is necessary to drive them by microcontroller. Ok, that was the first theory, I did it slighty different because I followed these instructions in Atmel app note AVR065.
Because LCDs need alternating current, I wrote sketch for arduino that gave me two signals, they have opposite phase to each other, in other words - when one pin is HIGH, the second one is LOW. With help of Arduino I was successful. I've found common terminals and wires to segments. I'm able to turn all segments on..
Now it's time to do the software to drive common planes and appropriately control segments. I think that can't be to hard. I don't tell you now what I'm going to do with projector.. be surprised :)
The last segment that is not turned on in the picture is not fault. The projector is upside down and the last segment is not necessary because on that place you only show number 1 or 2 (for 24h mode).
... which is bad as I realized a hour ago.. Because on the place of the first number I cannot display all possible numbers :( But only 1, 2, 3, 7 .. And I wanted some letters too... The perfect solution would be to buy two projection modules and get 6 - seven segment digits. But that would be overkill and much harder than drive only one display.