For several years, I developed "avr-lvds-lcd" aka "LCDdirectLVDS", which enables an LVDS-interfaced LCD [such as from a laptop] to be driven by an AVR and a few support-components already available in many hobbiests' toolboxes. During those years, this had become my development-platform... doing the same proof-of-concept in a window on a desktop-computer would've been significantly more difficult for me. This had the nice side-effect of a one-off software experiment like this binary clock being a bit like a finished stand-alone device ready for a bookshelf.
It's been years since that "development environment" has been at my ready. Though, this experiment led to other ideas I may revisit in the future, such as this 7-segment clock idea, which hides the time in plain view, only to be seen when viewed through a removable mask.
Hardware-wise, this project literally requires nothing more than:
- ATtiny85 (8-pin, 8-bit AVR microcontroller with 512bytes of RAM, and PWM with "dead-time" necessary for FPD-Link compatible signals)
- Two SN74LS86 quad-XOR's (used as buffers and inverters to drive LVDS)
- An old laptop-LCD
- LCD-backlight driver
- 3.6V power-supply
(NOTE: This is in the proof-of-concept phase. I haven't installed a real-time clock, so it just starts at 0hour 0min 0sec when it's powered-up... So, I guess, it's really a binary-timer?)
This old laptop-display is mounted inside, literally, an old picture-frame. The red-border was spray-painted onto the glass to cover up the LCD's metal frame and help center it.
Amongst various ideas, one is to actually cover all but the necessary parts of this display... E.G.
- Punch three-rows of 8 holes into a piece of paper between the glass and the display, it might look as though it's 24 separate LEDs.
- Stencil/laser-cut letters/numbers/shapes, etc...
- Maybe even print images/masks onto a transparency?
(With this simple circuit, the screen-resolution is highly-limited... 16x16--stretched-across the original 1024x768--is definitely doable, which is *plenty* for this binary-clock. There are definitely methods to stretch the resolution, quite a bit. The avr-lvds-lcd code tries to provide a step-by-step procedure for getting a display running. Still, the process of fine-tuning these *way* out-of-spec timings, and determining various characteristics, for a particular display is not for the faint-hearted.)