Battery Draining Extremely Fast
Verification
- [x] I searched for similar issues (including closed issues) and found none was relevant.
Introduce the issue
Sorry if this issue is poorly formatted. I'm currently on mobile.
I have been testing my Pinetime for two days trying to find out why this is the case, but battery life is really poor: about 3 to 4 hours in sleep mode. This is the Gadgetbridge graph from last night:
I was using my personal fork of InfiniTime with support for Portuguese accents and some tweaks to show seconds in the digital watch face when I noticed battery was draining fast, then I switched to regular 1.15 (main branch). I don't understand why such a performance nosedive happened, and I don't want to lose my watch. Feels bad, man.
I've been with the watch for about 2 or 3 years, can't quite remember. I expected the battery to worsen gradually, not like this. It was lasting 4 days or so just a week prior to this.
I tried disabling raise wrist and shake wake up methods to no avail. Disabling Bluetooth on the watch makes me not have Gadgetbridge data to show here, but it drains at about the same rate.
If I missed anything or you want to know something I'll try my best to explain it. Thank you for your time and your work on InfiniTime. I hope there's a fix for what's going on with my watch.
I don't have the option to buy a new one as I live in a country where Pine64 doesn't ship to. I got mine due to a friend going abroad.
Preferred solution
No response
Version
main on 9afc23c (July 3 2025 commit)
Doesn't sound good :( Just to confirm, this battery drain started without any changes to the software on your watch, and still happens with base 1.15
If that's the case, it's probably a hardware fault of some kind causing excessive power draw. It could also be a software issue where something is unexpectedly on, but I'd be surprised to see that persist through a reboot as the hardware is reinitialised on each boot. And even if it is an obscure software issue, it'll be impossible to debug without taking it apart and probing the power consumption of each component TL;DR - Probably not fixable :(
Finger crossed that maybe someone else can chime in who might have experience of this issue - I've searched the past issues and couldn't find anything, but maybe I've missed one
The battery drain started while I was using my fork (only minor changes to the digital watch face, small tweaks like changing some colors, etc). I then switched to 1.15, then to the regular main branch.
And yeah, it's probably not fixable. Didn't find anything else and it seems like it's the battery's fault (watch is not hot to the touch and there's no apparent lag). Does anyone know if the battery has a controller in it or something like it? Could be that, but I'm not well versed in the subject.
If any repo maintainer wants to close this if they think it's not an InfiniTime issue, feel free to do so. I'll keep it open if someone walks in.
The battery is a bare cell wired straight to the main board. The battery percentage is computed by the microcontroller measuring the voltage and then guessing how much energy is left, there's no charge counter / fuel gauge chip.
So there's not really much that can go wrong there, and since it does actually die when hitting 0 it looks like the battery percentage calculation is working ok
Mine started draining quickly after I installed 1.15. I've had the watch for a while, but hadn't gotten around to updating the firmware until recently. I updated, set always-on-display, noticed how quickly it was draining, turned off aod, and the battery keeps draining like it's still on. The first time I noticed it, it was at 1% battery, but I wasn't able to charge it. An hour or so later, it was still a 1%, seemingly functioning normally, so I have no idea what's going on.
Even with AOD on it should last for about 48h continuously, so there's definitely something strange here :(
Could you try installing 1.14 (or whatever you were using before) again and seeing if the issue resolves?
Just got a new watch, it had 1.14 installed and while I don't have this nice chart. After I had it charge to about 60% I went to set it up via GadgetBridge and in that small window it dropped to 45%. I haven't had this more than 24 hours, presumably it'd have drained in way less than a day at that rate. I have 1.15 on now and it seems ok? I'd imagine there's an edge case where the battery can drain rapidly without the user's knowledge.
So I downgraded to 1.14, but was still having issues. I tried a few things like turning off some of the wake settings, but I was still having massive battery drain. Like almost dead by the end of the day. I was also having a problem with the connection hanging when it tried to reconnect, like if I walked away from my phone and it dropped the connection. I messed with a couple of the connection settings for the device, and my battery drain seems to have disappeared. Turning off "connect on connection from device" seems to have fixed the problem. I've only lost 5% since putting it on this morning.
Interesting, thanks for the update. If you upgrade to 1.15 keeping the connect on connection option off, is the battery life the same or worse? I'm trying to figure out if this is a 1.15 regression or something that goes further back
@mark9064 What's the expected battery life with the heart rate tracker? Because while I said it seems ok, it could still be draining much faster than it's supposed to. I fully charged yesterday around maybe this time? And I'm at around 56% right now. So it sounds like my watch might be in a much worse state.
Edit: Found where to get the battery chart.
Looking at it, it seems like there's spurts where the battery level drops rapidly. I'm not getting consistent heart rate data and it sort've looks like the spikes in usage are when presumably it's sending data over bluetooth.
Day to day battery life completely depends on how much you use it, whether HR is on, screen brightness, AOD etc. If you put the pinetime into sleep notification mode with BLE off and don't wake it, the battery drain should be low (about 5% / day). You might need to collect data over multiple days to see this as measurements can be noisy. If your idle battery life is about what's expected, then what you get in real world usage is likely a function of how much you're using it and what features you have switched on (eg at the highest brightness level the battery will be completely drained in about 10 hours of screen on time). If idle battery life is poor then that implies a problem
Just to be sure: the battery is actually draining to the point where the watch has no power left and turns off? Otherwise we could also be talking about a bug in the percentage calculation while the battery is actually fine.
@mark9064 well unfortunately as a new user I don't have reference to what the normal rate is. I'm thinking my issue might be that I'm kind of getting frustrated that I'm not getting heart rate data consistently out of the thing, so I've been fiddling with it. It might be that the screen is on, and the constant tweaks to Bluetooth settings from the phone might be making the watch drain faster than normal. But I can't seriously imagine that I'd be able, or that it'd programmed such that it's possible to drain ~8% in 45 minutes? I mean it roughly tracks the 10 hour battery life with the screen on...
Ah yeah, don't read into the percentage too much - there's no fuel gauge and instead battery percentage is estimated from the voltage. So when the battery is under load the voltage will sag and the percentage will initially appear to drop faster than it actually is dropping. That's why you'll see those sudden dips followed by flat lines in gadgetbridge.
The heart rate sensor is pretty bad hardware wise so don't expect great results with it, especially under motion or when exercising. Better than the current implementation is possible, but not hugely better (I've researched this quite a bit). Assuming you're running base 1.15, heart rate is only measured when the screen is on. #2322 adds background measurements and is part of the upcoming 1.16
If you do the idle test as described above, you'll know whether you have idle drain issues or not. 5% a day over a couple days should be about expected
@mark9064 Oh...interesting ok, I'll try to make a mental note not to trust the battery levels then. Funny, the heart rate sensor exactly matches what I suspected. Ok, then I want to upgrade to 1.16 then.
Try downgrading to 1.13.0. If downgrading to 1.13.0 improves battery life, then try bisecting with git bisect start 1.14.0 1.13.0.
When 1.14.0 was released, my battery life dropped from ~1 month to a few days. After downgrading to 1.13.0, the battery life returned to ~1 month. My settings are: lowest brightness, Bluetooth off, AOD off, heart rate monitor off, only double tap to wake, step counter off, and chimes every 30 minutes. My 1.13.0 battery life is less than a day with the heart rate monitor on.
@signedbit from what you said, it sounds an awful lot like it's the heart rate tracker that's cratering battery life, although there might be a bug introduced in 1.15 that's compounding. @mark9064 What's the typical code path for this thing? From reading the docs it's strictly single threaded where it's scheduling "tasks" via function pointers, is it cycling through all the code listed, or can things get disabled / skipped over? Also are there any major changes to the accelerometer / Bluetooth?
Since it sounds like 1.1.5 and prior track data with the screen on, I'd double check those, since one could be activating the screen more often and maybe there's some issue with how it's being sent.