TinyWATCH-S3 / Official-firmware

Official firmware for Unexpected Maker's TinyWATCH S3
GNU General Public License v3.0
16 stars 7 forks source link

Look into implementing "fake sleep" instead of deep sleep. #34

Open UnexpectedMaker opened 7 months ago

UnexpectedMaker commented 7 months ago

Look at possibly keeping the watch alive with a black screen, during times when the watch would be deep sleeping. This would allow us to keep processing things in the background (IMU data for instance), but still keep power consumption low.

Implementing should be straight forward, but we'd need a way to measure battery consumption over time compared to actually deep sleeping, so measure longevity.

Supermath101 commented 7 months ago

Section 4.6.2 of the ESP32-S3 datasheet shows power consumption levels for the ESP32-S3 in different sleep modes. Additionally, section 3.2.2 of the same datasheet states: "... The ULP coprocessor and RTC memory remain powered up during the Deep-sleep mode. Hence, the developer can store a program for the ULP coprocessor in the RTC slow memory to access RTC GPIO, RTC peripheral devices, RTC timers and internal sensors in Deep-sleep mode."

UnexpectedMaker commented 7 months ago

Section 4.6.2 of the ESP32-S3 datasheet shows power consumption levels for the ESP32-S3 in different sleep modes. Additionally, section 3.2.2 of the same datasheet states: "... The ULP coprocessor and RTC memory remain powered up during the Deep-sleep mode. Hence, the developer can store a program for the ULP coprocessor in the RTC slow memory to access RTC GPIO, RTC peripheral devices, RTC timers and internal sensors in Deep-sleep mode."

The issue is that none of that allows us to read the IMU while in deep sleep without running custom code on the ULP.

There is no ULP tooling for the ESP32-S3 outside of developing solely in the IDF, which means no custom ULP State or ULP RISC-V support for TinyWATCH.

So the only way to access the IMU when the watch is sleeping to capture steps is to not actually sleep, but to fake it instead.