From ea9f987556de4697bb84f5075b87bc582818cf3b Mon Sep 17 00:00:00 2001 From: anschrammh Date: Mon, 4 Dec 2023 19:38:13 +0100 Subject: [PATCH] Added a todo and done list to gather new ideas. A lot of work to do still --- README.md | 79 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 15d4ca8..bed3ebd 100644 --- a/README.md +++ b/README.md @@ -36,13 +36,13 @@ The W800 is a pretty interesting chip with impressive characteristics for its pr * A vibration motor to notify the user of events. * No physical buttons as everything can be done using the graphical interface. #### Connectivity : -* The watch has BLE (4.2) connectivity which is used to connect to a phone using the GadgetBridge app to : - * control music playback - * find my phone feature - * report its battery level - * report step counts - **to implement** - * display received text messages, emails and calls - **to implement** - * show the weather forecast for the next 6 hours or so - **to implement** +* The watch has BLE (4.2) connectivity which is used to connect to a phone using the GadgetBridge app (**use version 0.73.0, commit : 4f3472565**) to : + * Control music playback + * Find my phone feature + * Report its battery level + * Report step counts - **to implement** + * Display received text messages, emails and calls - **to implement** + * Show the weather forecast for the next 6 hours or so - **to implement** * WiFi is also available but not used yet because I didn't find any good use case for it. It is also quite power hungry. #### Battery and Battery life: * The battery currently used in this version of the watch is a 6mm x 25mm x 35mm (602535) single cell 600 mAh lipo battery (had one laying around). @@ -202,7 +202,7 @@ using a magnetic 4 pin plug. * CST816D I2C capacitive touch ic. * Five screens designed and working with LVGL : * A watch face based on a casio watch. - * A menu screen with a list of icons. + * A circular menu screen with icons. * A setting screen with basic settings (date and time + display brightness) (work in progress). * A compass application using the QMC5883L. * A find my phone screen which makes the device ring and vibrate (must be connected to watch using BLE through the GadgetBridge app). @@ -218,19 +218,52 @@ using a magnetic 4 pin plug. * Added **multi-language** support to the UI, still some translations to do though. * Step counter using the BMA456 is working and steps are displayed on the watch face. +## **To Do list :** +* Write the notification app listing all the received notification to be able to read them again or delete them if wanted. +* Improve the received notification design (colour and layout) as well as the AM or PM time when hour format is set to 12H. +* Call the GadgetBridge parser close notification when notification is closed. +* Write a flash light app which sets the screen brightness to its maximum and +sets a white background, be able to make it also flash with a red background. +* Add a quick access drawer (like on android) to : + * turn bluetooth on and off faster + * enable or disable the watch wrist tilt wakeup + * open the flash light app + * access the battery charge/discharge history app (to be written) + * more if some ideas pop +* Update the altimeter app (add transistions when changing screens in the app) and port it to the watch. +* Update the compass algorithm to also use the Z axis and not having to hold the watch flat. +* Update the settings app to include a sensor category where calibration can be done for the magnetometer as well as for the temperature sensor to get more accurate temperature when the watch is worn. +* Update the GadgetBridge parser to work with the latest version of GadgetBridge. +* Write an algorithm to get the heart rate measurements and a way to make them periodically and displays it in a dedicated app and on the watch face. +* Display the weather forecast on the watch face using icons (Data coming from GadgetBridge). +* Finish to translate all texts in the 3 supported languages (French, English and German). +* Design a digital watch face with a light memory footprint to be able to choose a watch face kind at run time. +* Improve the step counting mechanism (reset step count every midnight). +* Write an app to track step counts made every day. +* Write an alarm app which set an RTC alarm to vibrate the watch. +* Write a timer app with countdown and lap functionality. -## To do - HARDWARE: -* [X] Add the MAX30102 Heart Rate Monitor to the current design. -* [X] Issue with the DW01A chip, ~~should be as easy as to replace the 100nf C12 cap with a lower value, let's say 80nf~~, found a workaround. -## To do - SOFTWARE -* [X] Finish to design the settings page. -* [X] Implement watch settings persistency using the integrated flash memory -* [ ] Implement a good algorithm to handle adaptiv MCU clock -to save power -* Drivers: - * [X] Write/port the MAX30102 Heart Rate Monitor driver to the project. -* [ ] Add a wake up alarm app (using the vibration motor). -* [X] Add BLE functionality. + +## Done List : + * Two analog watch faces available (which can be selected at compile). + * A circular menu screen. + * Total number of steps on the watch face. + * A music player (works with GadgetBridge). + * A compass app with temperature reading. + * The find my phone app (works with GadgetBridge). + * A settings app to set : + * Time and date + * Display settings + * Notification settings + * Connectivity (BLE) + * Language + * About section +* Vibration on the watch works and is configurable. +* Wrist tilt to wake the watch up. +* Receive phone notifications on the watch (works with GadgetBridge). +* Smooth screen changes with transitions. +* Adaptative dynamic MCU clock speed to save power or have better visual performance. +* Battery discharging, charging and charged status on the watch face. ## Achieved power consumption recap: @@ -275,8 +308,4 @@ to save power Thought it might be a capacitor value issue, replaced C12 with a 82nf and 68nf caps, but it did not solve the problem :(. **TLDR : after installing the battery, the watch might need to be plugged to it's charger at least once to start up** -## **Next steps :** -* Write and release a usable firmware for every day use. - **In active dev** - - -## If you are interested by the project or if you just want to say hi, you can contact me at the email address : bugreport[at]laposte.net . +## If you are interested in the project or if you just want to say hi, you can contact me at the email address : bugreport[at]laposte.net .