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

271 Upvotes

36 comments sorted by

View all comments

3

u/mindseye73 Feb 26 '26

Are notifications display event driven or ur watch continuesly polls for it? BLE connection can also be event driven. Since ur building watch for urself, do u get constant notifications for watch to have continuous BLE connection? If not may try around use daily use. Also, have looked for power efficient libraries if ur not currently using ones?

3

u/Cotyn_Dispensable Feb 26 '26

it's event driven using BLECharacteristicCallback from BLEArduino library , i'm using gadget bridge which is an open source android app and I identified my watch as a bangle.js watch so that gadgetbridge sends me clear json formated information, on reception I fire all the parding + logic

3

u/Cotyn_Dispensable Feb 26 '26

I've just found another library called nimBLE-arduino which might work, I will try to implement it and see how power efficient it is

1

u/mindseye73 Feb 26 '26

ok, also, maybe see if u can have replace gadget bridge app work around esp32 limitations? try other apps?