ATWatch
a watch based on the ATTiny85 alongside an ssd1306. meant as a exercise for me on working with limited sys requirements, thus requiring low level programming (AVR) which i've worked on already
Created by
ghost of ttf 🚀
23 views
0 followers
ghost of ttf 🚀
added to the journal ago
Schematic + Software Improvements
Schematic
I created the schematic for the watch in KiCad. Its fairly simple, tho i did try and make it better than my usual messes. The components are fairly simple, just
- ATTiny85
- SSD1306
- DS1307
One unfortunate thing was that some genius made the only external interrupt the same as SCL, meaning i'll have to use a inferior digital interrupt for the SQW output

Software
I added multi font rendering and a software face to the library. this was surprisingly difficult as there's a different method for rendering large fonts, which takes place in two parts, but it now should have support for most fonts. I also added a stopwatch based on interrupts instead of busy waiting even though there wasn't really a need.

ignore the yakult stand
ghost of ttf 🚀
added to the journal ago
Initial Firmware w/o Arduino STL
The Problem w/ Arduino STL
Look, the Arduino Libraries (henceforth referred as STL) are nice. They give us a cool high level interface for nearly every peripherical in the chip. But thats where the issue comes in - a high-level interface gives high level probltems in the form of ridiculous RAM and flash usage.
For comparison, the simplest blink program uses-
(all values are for the attiny85)
With STL,
- 218/512 bytes of RAM
- 3/8kb of Flash.
Without STL (AVR Only),
- 16/512 bytes of ram
- 500B of flash
as you can tell, going forward with arduino for such a project is borderline impossible unless i pull a extra kb of ram outta my ass
So, i spent these ~9 hours learning, and rewriting protocols using builtin registers to have my own set of libraries to use later on.
i ended up with fully functioning libraries for
i2c
Serial
ADC Functions
the SSD1306 Display
(i was limited by what hardware i could test with).
This ended up pretty well on the performance side

it fits very nicely into our performance budget :D
ghost of ttf 🚀
started ATWatch ago
10/4/2025 - Initial Firmware w/o Arduino STL
The Problem w/ Arduino STL
Look, the Arduino Libraries (henceforth referred as STL) are nice. They give us a cool high level interface for nearly every peripherical in the chip. But thats where the issue comes in - a high-level interface gives high level probltems in the form of ridiculous RAM and flash usage.
For comparison, the simplest blink program uses-
(all values are for the attiny85)
With STL,
- 218/512 bytes of RAM
- 3/8kb of Flash.
Without STL (AVR Only),
- 16/512 bytes of ram
- 500B of flash
as you can tell, going forward with arduino for such a project is borderline impossible unless i pull a extra kb of ram outta my ass
So, i spent these ~9 hours learning, and rewriting protocols using builtin registers to have my own set of libraries to use later on.
i ended up with fully functioning libraries for
i2c
Serial
ADC Functions
the SSD1306 Display
(i was limited by what hardware i could test with).
This ended up pretty well on the performance side

it fits very nicely into our performance budget :D
10/7/2025 - Schematic + Software Improvements
Schematic
I created the schematic for the watch in KiCad. Its fairly simple, tho i did try and make it better than my usual messes. The components are fairly simple, just
- ATTiny85
- SSD1306
- DS1307
One unfortunate thing was that some genius made the only external interrupt the same as SCL, meaning i'll have to use a inferior digital interrupt for the SQW output

Software
I added multi font rendering and a software face to the library. this was surprisingly difficult as there's a different method for rendering large fonts, which takes place in two parts, but it now should have support for most fonts. I also added a stopwatch based on interrupts instead of busy waiting even though there wasn't really a need.

ignore the yakult stand