Battery life estimation considered impossible?

Richard A. Smith richard at
Thu Apr 17 06:40:21 EDT 2008

Martin Dengler wrote:

> 3. minutes_left = battery_capacity_pct / 0.59. From [1]. The magic
> constant is about 1.2 pct of battery capacity = 2 minutes of power;
> this is what I've observed and consistent with other reported
> capacities I've seen; but of course the approach is fatally flawed.

Sorry I'm a bit late to respond.  My attention has been elsewhere.

Accurate battery life estimation is going to present a challenge.  The 
first issues that come to mind are:

- The (eventual) large fluctuation of power draw once our power 
management efforts mature.  Sometime soon the XO will be constantly 
fluctuating between 2 Watts during auto-suspend and the 7W when its 
crunching.  Since this will be driven by the user's usage habits it will 
be difficult to predict.  Once this starts happening the above algo will 

- The XO has 3 different batteries and 2 different chemistries each with 
a different capacity.

- In classroom situations that use 2 batteries/XO and the Multi-Battery 
charger you may end up with a different battery every cycle.

- The available capacity of the battery changes based on the 
temperature. LiFePO4 less so.  NiMh more so.

- The capacity of the battery reduces every discharge/recharge cycle. 
Design specs for the battery are 50% left after 2000 cycles which works 
out that you can expect up to 10% loss per year.  The degradation curve 
for LiFePO4 is pretty much linear wrt time.  I've not seen a curve for 
NiMh.  NiMh is tricky since the ambient temp while charging has a large 
effect on its degradation.

The power draw is of course going to dominate the above issues and the 
good news is that by using the data from accumulated current register 
inside the battery you can get a very accurate reading on how much juice 
you have used between any 2 instances in time. (Assuming the battery 
isn't removed)  So if you were to take ACR readings and build up some 
sort of usage profile then that might get you close enough.

Batteries are also uniquely identifiable since the gas gage chip has a 
64-bit unique id and we repoort that in the battery driver.  So I 
suppose you could build up a little database over time of the profiles 
of all the batteries the XO has seen.

I use the ACR and battery ID in my power profile script.

See here for how to process ACR data:

I do think some sort of current power draw indication and history would 
be a useful item.  In particular it would be useful in assisting the 
user when working with a solar panel.  To maximize your results on solar 
you have to align the panel with the sun.  Watching the power draw 
should allow you to figure that out.  It just needs a few extra options 
for setting a faster sample rate, telling ohm not to suspend, and then 
present some sort of workload that makes the power draw fairly constant.

Richard Smith  <richard at>
One Laptop Per Child

More information about the Devel mailing list