Check out TPW
Kickstarter Campaign Kickstarter
- Arduino based digital watch
- ATMega328P based
- DS1302 RTC
- 4 Digit 7-segment display
- 4 Programmable physical buttons
- 3D printed watch case
- 12 Month+ Battery life
- Libraries Used:
- SevSeg - Dean Reading - https://github.com/DeanIsMe/SevSeg
- Rtc by Makuna - Michael C. Miller - https://github.com/Makuna/Rtc/wiki
- MiniCore - MCUdude - https://github.com/MCUdude/MiniCore
- Add this link to your Boards Manager under Preferences - https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
The case and pushbuttons are designed to be easily 3D printed from any standard 3D printer. I have made the .STEP files available as well as a .dxf of the PCB so you can modify the case or even design your own!
Download Case Models

Follow the guide here
I have also filmed a short youtube video explaining how to program a ATMega328 seperate from the Uno more generally.
To program the chip on the PCB, follow these steps using the JST Jumper cable
The DIGIduino firmware is open source, I encourage you to make a copy of the basic firmware and add your own features! Pins used:
| Pin | Arduino Alias | Function |
|---|---|---|
| 0 | D0 |
Top Left Button |
| 1 | D1 |
SevSeg digit 0 control |
| 2 | D2 |
Top Right Button (Wake-up button) |
| 3 | D3 |
SevSeg digit 1 control |
| 4 | D4 |
SevSeg digit 2 control |
| 5 | D5 |
SevSeg digit 3 control |
| 6 | D6 |
SevSeg segment A |
| 7 | D7 |
SevSeg segment B |
| 8 | D8 |
SevSeg segment C |
| 9 | D9 |
SevSeg segment D |
| 10 | D10 |
SevSeg segment E |
| 11 | D11 |
SevSeg segment F |
| 12 | D12 |
SevSeg segment G |
| 13 | D13 |
SevSeg segment DP (decimal point) |
| 14 | A0 |
RTC Data I/O (ThreeWire β DS1302) |
| 15 | A1 |
RTC CLK (SCLK) |
| 16 | A2 |
RTC CE (RST) |
| 17 | A3 |
RTC Power Pin (set HIGH in isrWake, LOW in goToSleep) |
| 18 | A4 |
Low Left Button |
| 19 | A5 |
Low Right Button |
| 20 | 20 |
Spare - Disabled (pinMode(20, OUTPUT)) |
| 21 | 21 |
Spare - Disabled (pinMode(21, OUTPUT)) |
| 22 | 22 |
Spare - Disabled (pinMode(22, OUTPUT)) |



