Hey, do you know what Tinys.it?
The first digital watch, a Pulsar prototype, was developed jointly by Hamilton Watch Company and Electro-Data back in 1970. Finally launched in the spring of 1972, the device was comprised of 18-carat gold and featured a red light-emitting diode (LED) display. Watches with LED displays would remain popular for a few years until being superseded by LCDs, which consumed less battery power and boasted an always-visible display that didn’t require any button-pushing to reveal the time.
Inspired by these retro watches, Alessandro Matera recently created his own 3D-printed LED device based on an ATmega328P and powered by a 3V CR2032 battery. The Maker initially wanted to use the versatile ATtiny85 MCU from his Tinys board as the brains of the operation, but was unable to do so given the limited number of I/O and LEDs that it could drive. Instead, he decided to go with an ATmega328P in TQFP package with 32 pins.
The wearable unit sports 32 LEDs to display the time in both hours and minutes. Since he was unable to use two differently colored lights, a solid light denotes hours while a blinking represents minutes.
“But even if the microcontroller has 32 pins, they aren’t all I/O: only 25 pins can be used for the 32 LEDs and the button. To drive a larger number of LEDs with few pins, I’ve used the Charlieplexing Matrix. This way, I can drive 6 LEDs with only 3 pins.”
In an effort to reduce battery drain, the watch always remains in sleep mode. Just like vintage LED watches, a user must press a button to show the time. To ensure accuracy, Matera used a 32.768 KHz crystal connected to the XTAL pin of the ATmega328P running in asynchronous timing mode. This enabled him to use the MCU’s internal 8Mhz oscillator and the Timer2 overflow (used for the external crystal) as interrupt to increase the seconds. The Maker reveals that dealing with the crystal to get precise time and also multiplexing the LEDs were certainly among the trickiest aspects of the design process.
“After setting up the Timer2 overflow interrupt and the button change-pin interrupt, the microcontroller goes to sleep. Every time the Timer2 goes overflow (one overflow/second), the microcontroller wakes up and increases the seconds,” he writes.
Upon seeing this marvelous DIY timepiece, our friends at Adafruit caught up with Matera. Turns out, he loved their ATmega328P based Solder Time II watch that he used that as the benchmark for his design. However, he was looking for something a bit different and could only find segment LED styles. So just as any Maker would do, he devised his own. While he may have a fully-functioning prototype at the moment, moving ahead he may look to shifting the programming to FTDI and changing the button to a touch sensor.