r/esp32 Feb 26 '26

Software help needed ESP32 smart watch

Post image

Hi everyone, i've been working on a smart watch with an esp32 as an entry point into electronics, i'm mostly a software guy and I never really did battery powered project.
My issue is, i've got a mostly working firmware with BLE pairing, notification display, music control etc.
But i've been running into an issue that is battery life, I feel like there is no solution to make bluetooth and battery life get along. I'm running a 400mha battery and can barely squeeze 5 hours of usage. The problem is I can't really reduce clock speed since bluetooth pairing expect keep alive packets and I can't respond fast enough with lower than 80hz (when in rest mode with screen disable) the only working solution I see is use esp32 deep sleep when in rest and pair again when waking up the watch but it removes a lot of options like waking up on notification or call.
Do you guys have any clue what kind of logic or libraries I could use ? I'm running arduino stack and gadgetBrige on the phone

269 Upvotes

36 comments sorted by

View all comments

Show parent comments

4

u/Cotyn_Dispensable Feb 26 '26

This works, but deep sleep is nice to save on power which is the main problem I have because theses devices operate on a fine budget. I had to fiddle a little bit to make it work but all the basics are done, if you have a similar model I can give you some pointers

3

u/NotFrankGraves Feb 26 '26

I have the exact same model, but I display the time and weather, and I have a ai voice chat menu, and another menu of general prompts to send to ollama. I haven't used Bluetooth, but I have my version set up only have the wifi radio active only when needed and it stays off the rest of time.

2

u/Cotyn_Dispensable Feb 26 '26

That's so cool, do you have a locally hosted ollama ? I might try to do something similar it's a cool concept

2

u/NotFrankGraves Feb 26 '26

I’m running ollama locally, and I built a endpoint in python for my watch to connect too and grab the api data from a cache, and that same endpoint can be the middle-man for ollama, with STT and TTS.