GithubHelp home page GithubHelp logo

awatch's Introduction

AWatch

An ESP32 TTGO T-Watch (2019 edition) Workbench 1.x-inspired Countdown Timer Watch

2020 T-Watch model

Watch the video

2020 Model available for around ยฃ25/$30 from Banggood.

Now works with 2020 model (shown above). Check the defines in AWatch.ino.

Background

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.

Using the watch

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.

How to use this repo

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.

A note about quality, something sorely missing from this Proof-of-Concept

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.

Contributing

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:

  1. Ensure that you have appropriate checks for different watch versions in your code (e.g. Steveway's PR)
  2. Test on a real watch to make sure that it works before issuing the pull request, and test any other functionality that may be impacted across different power modes (screen on and screen off for example)
  3. Include an overview of the changes, your hardware (particularly if you're using daughterboards on the 2019 version) and what you've tested as part of your PR.

This makes testing and integrating your PR smoother for everyone. If you need a hand with the above, just ask for help.

Thanks/Credits

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.

awatch's People

Contributors

stevelord avatar steveway avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

awatch's Issues

Changes to TTGO Watch library break compilation

Changes to the structure of the TTGO Watch library, and notably the change to lvgl 7 from 6, has broken the project preventing compilation. The big issue seems to be the change in approach to styles between 6 and 7.

T-Watch 2020 compilation issues

I'm trying to build this for the 2020 model and noticed that the define is
LILYGO_TWATCH_2020_V1. According to other example sketches it should be LILYGO_WATCH_2020_V1.

Despite that I still get a gazillions compilation issues ๐Ÿ˜„
Looks like some LVGL API changes, currently (according to TTGO doc) its using v7.0 but the AWatch project seems to use v6 API. Maybe I need to use an older version of the TWatch Library....

Btw... very cool project!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.