tuupola / esp_twatch2020

Kitchen sink project for T-Watch 2020 and ESP-IDF
6 stars 1 forks source link

T-Watch power usage #1

Open dlarue opened 1 year ago

dlarue commented 1 year ago

The default app on the LilyGo T-Watch is My-TTGO-Watch (https://github.com/dlarue/My-TTGO-Watch) and I'm finding that with WiFi and Bluetooth off it still only runs less than 12 hours. IIRC it's roughly 10 hours and this really prevents it from being very useful for a daily wear watch and this limits those even considering writing apps.

Since you've done some probing into the AXP202 I was wondering if you'd have any insights into how I might go about reducing power consumption. Eventually I will need to turn WiFi back on and that's a whole other issue but for now, just getting it to work as a watch would be a start. Thx.

tuupola commented 1 year ago

I was doing this repo mainly to write the AXP202 driver and to learn the different peripherals in T-Watch. Sadly I never got into deeper knowledge such as power consumption. Lately have not really had time to study the T-Watch.

Display most likely uses lots of power but I guess you already are turning it off while idle. You could also try experimenting with the FreeRTOS tickless idle mode.

https://www.freertos.org/low-power-tickless-rtos.html

You could also try to figure out what the example app does to enter to low power mode.

https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library/blob/master/examples/LVGL/SimpleWatch/SimpleWatch.ino#L76-L103

codefaux commented 1 year ago

I see that this is pretty old, but for what it's worth I've been fidgeting with my own firmware on the device, for a wholly unrelated and niche project nobody will ever want or use. BUT.

I noticed the clock seems to default to 240mhz, and I've seen -substantial- improvements in battery life with a simple setCpuFrequencyMhz(80) even in an application which spends <0.1% of its time outside of "light sleep"

Supposedly the device supports as low as 10mhz with the 40mhz crystal used in the T-Watch 2020 v3 (unsure of others) but initial tests below 80mhz result in VERY slow operation and periodic watchdog reboots and I'm not sure what I'm missing.

dlarue commented 1 year ago

Thanks, I'll give it a try. The battery power management has a min freq setting of 80MHz already but I've both set the base chip freq in platformio.ini and set the max freq to 80 in src/hardware/powermgm.cpp

I've not bothered to write apps for it since it can't run for more than half a day so hoping this helps.

UPDATE: @codefaux while the display responsiveness showed it to be running at the slower speed I still was at 15% battery after less than 6 hours of use. I'd shortened the display on time to try and save battery life but since it's not really on much during normal use even at 240MHz for the Max_Freq battery life was poor. Seems to be all about what's consumed during sleep mode. Deep_Sleep really needs to be used and maybe it's not. will have to investigate further. Good try though. Thx

dlarue commented 11 months ago

@codefaux I was in contact with LilyGo on their repository about a 400mAh battery and while I was not willing to desolder the spring connector, I was pointed to the fact that a LQ-S1 380mAh battery would fit so I purchased 3. I had to remove the label to get it to fit but better yet, with the above performance changes and new battery I saw over 12 hours of use.

I will use the watch all this week and see how well it performs. It would appear that the new T-Watch I'd purchased had an old battery.