An ESP32 TTGO T-Watch (2019 edition) Workbench 1.x-inspired Countdown Timer Watch
2020 Model available for around £25/$30 from Banggood.
Now works with 2020 model (shown above). Check the defines in AWatch.ino.
My partner asked if I could build her a timer countdown watch for measuring time outside during COVID lockdown. I had TTGO T-Watches knocking around and decided to give it a go. I'm a big fan of Amiga design patterns and wondered what it would be like to have a smartwatch inspired by the original Amiga Workbench. This is the result.
If you'd like to know more about the why/wtf I wrote this up at Tales From The Dork Web.
The menus are all walked through in the video above. Use the top right button on your TTGO watch to bring up the screen and tap the disk to open the menu. Slide up and down through options and tap to select. If you're in the slide menu, use the square in the top left to go back to the main screen.
If to clear an alarm, go into timer and select cancel. If you play a song in the music section, it'll become your alarm song.
This is a single repo that contains everything watch related, so it's a bunch of Arduino projects. Install the Arduino IDE. Now copy the projects you're interested in to your Arduino sketches folder. If you're not sure, start with the AWatch folder. Install the following libraries before hitting compile/install.
If I had a do-over I'd rewrite the whole thing for platformio or esp-idf properly using FreeRTOS to manage things and resolving the hardware issues I had. Alas, this was a fun PoC that got a bit out of hand.
Please note, none of this is production quality, beta quality, or even alpha quality. The code I wrote is bad, like me makes poor life choices and you probably shouldn't use it for anything important.
That aside, it mostly works as a countdown timer with mod tunes, speech and a bunch of other nice things. It is buggy, expect edge cases. I use my own git repos for code normally so won't be updating this.
I would be delighted to receive pull requests, but am looking at writing something more like a proper watch OS from scratch and integrating features in for the long term. If you want to submit a pull request, please:
This makes testing and integrating your PR smoother for everyone. If you need a hand with the above, just ask for help.
I'd like to thank LewisXhe and Moononournation for their examples and libraries that I so horrifically butchered, @Bodmer for his TFT_eSPI library, @earlephilhower for his ESP8266Audio and ESP8266SAM libraries and the LVGL team for LVGL. Also Tobozo for his M5Stack Raytracer project. I'd also like to thank @steveway for his pull request. If I get more I'll make a dedicated thanks section for contributors.