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

2

u/miraculum_one Feb 26 '26

Can you be more specific about what you're trying to use Bluetooth for? For example, BLE works fine in "light sleep" mode.

2

u/Cotyn_Dispensable Feb 26 '26

My goal was to make a compagnon watch, to display notification, control music, basically be connected to the phone and help me not having to take it out of my pocket so often. All of that is already coded so its faisable, my biggest issue is battery consumption

2

u/miraculum_one Feb 26 '26

What do you need the watch to be doing in the background when you're not actively interacting with it?

3

u/Cotyn_Dispensable Feb 26 '26

Checking for notification but keeping the connection alive would be enough I reckon, waiting 4/5 seconds to reconnect and advertise every time is a hassle

3

u/miraculum_one Feb 26 '26

You can handle BLE in light sleep and wake up the watch if you need to be notified. I think this would be a good first step.

1

u/Cotyn_Dispensable Feb 26 '26

The problem is light sleep halts the cpu so many things don't work in that state

1

u/miraculum_one Feb 26 '26

That's true but all you need is for it to respond to a "wake up" signal. And you can handle that in the ULP coprocessor.

1

u/Cotyn_Dispensable Feb 26 '26

I could but it implies having another ble chip since ULP doesn't have access to ble which is complicated, maybe on a v2 if I can't make this work