OS reads battery voltage incorrectly

xd0

Member
Dec 26, 2010
38
1
0
On my HTC Aria long time ago I've noticed this weird thing - Android OS reads battery voltage incorrectly. It indicates 3800 mV when it's fully charged (showing 15-20% availability). If I remove battery at that time and make measurement directly on the battery I see that the it has 4170 - 4200 mV. Then after some usage OS shuts down phone. At that time OS indicates, that battery has around 3400 mV (0% capacity). If at that time I remove the battery and measure its voltage directly, I see that it actually has about 3950 mV. Misreading exists regardless of what particular battery I use (an old and good one or a brand new one)...

What it actually means is - HTC Aria can't use more than about 15% of the battery's capacity all the times... :(

Here is example of recent measurements:
4190 mV (actual battery voltage) == 3771 mV (OS measurement) -- full charge
3950 mV (actual battery voltage) == 3350 mV (OS measurement) -- OS shuts down device

How to fix it?

And where the problem is - in OS or in HTC Aria itself? If the problem is in OS, where to make those changes (perhaps it keeps some mapping table and it needs a correction)? (I can check it with different ROM's: Liberated, FR008, CM10, CM11). If the problem is with the device itself - how to reset it?

After I've bought the phone I remember (actually I have my notes from that time), that OS displayed the actual battery voltage just fine. Battery charged to its 100% and I run phone at its full capacity. Problem appeared after perhaps a year and a half or so of its usage. At that time I thought that it's time to replace battery with a new one (as a common reason to blame for short time phone usage after full charge)... Now I have 5 spare batteries (including native one), that all exhibit the very same behavior... Checking voltage directly on those batteries tells me, that the problem is not with batteries, but in the way, how OS reports their voltage in the system.

Please note: This thread is not about algorithm calculating availability percentage, but only about battery voltage measurements and how OS reports (or mis-report) it.