Software
To be able to program the ATTINY13 with Arduino I used MCUdude’s MicroCore.
It is necessary to have an ISP programmer to upload the code to the watch, if you don’t have one you can use your Arduino as one. To save battery life I made the ATTINY use its internal 128 kHz clock, so a small modification is needed in the Arduino ISP sketch file.
This line: #define SPI_CLOCK (1000000/6)
should be changed to this: #define SPI_CLOCK (128000/6)
.
Due to space and single sided etching limitations, the ISP pins in the watch are not standard. Here’s a pinout of the watch pins:
If this pinout does not makes sense and you are using an Arduino as ISP you can follow the wiring described on this instructable. The only pin headers not directly next to their corresponding ATTINY pin are the reset and ground pins.
The watch’s code basically makes the ATTINY read (or set) the time on the DS1302 and turn on the corresponding LEDs to display the time and date when the push button is pressed. After this, the watch enters into sleep mode util it’s awakened by another button press.
I used Charlieplexing to be able to switch the 10 LEDs on and off with 4 ATTINY pins.