A clock to tell the weather? [Andrew] has created a device to do that and more. Inspired by [Sean's] weather clock, [Andrew's]clock displays the current weather conditions, temperature, moon phase, and of course the time. The whole project started years ago with a broken keyboard. [Andrew] wanted to try to use the keyboard controller PCB as a bidirectional computer interface. Data to the computer would go in via the key matrix. Output data would be read via the status LEDs. Cheap simple microcontroller boards like the Arduino sidelined the project for a few years, but he never completely left it behind.
With an unused OLPC XO-1 in hand, [Andrew] pulled out his old keyboard controller and started hacking. His first task was getting meaningful data out of the keyboard LEDs. He coded up his own keyboard led control library in python. On the hardware side an op amp took on the roll of a comparator to ensure proper logic levels were present. [Andrew] then hooked two LEDs up as clock and data lines to standard 74 series shift registers (most likely 74HC/HCT595). He found that his data was completely garbled due to bounce. A second shift register buffering the clock cleaned things up. [Andrew] was left with a stable 40 bits per second serial link to his shift registers. With all this done, the next step was the clock itself. [Andrew] bought a RUSCH Wall clock from IKEA, and converted the clockwork to a gear reduction for a DC motor he pulled from an old answering machine. He could now move the hands at will, but had no way to determine their position. IR break beam sensors from old printers came to the rescue.
After connecting the motor drive, [Andrew] still had a number of outputs available. A few LEDs were in his parts box, so into the project they went. 12 LEDs around the outside of the clock to display the current time. 3 LEDs hide behind the weather icons as status indicators. [Andrew's] python software really ties this together. His OLPC grabs data from the internet and displays it on the clock. A web interface allows the user to perform manual updates on the clock and to set alarms. The alarms even incorporate speech output via eSpeak. We love the reuse and recycling of parts in this hack. The end result is a clock any hacker would be proud to display on their wall.