How can I recover a bum battery?

Richard A. Smith richard at
Sat May 22 14:30:23 EDT 2010

On 05/22/2010 01:17 PM, Mikus Grinbergs wrote:

>> ok bat-dump-banks

>   1st battery, 1st boot :
>  Bank 0
>  ffb22ea8  00 00 00 00 00 30 70 78  00 18 01 90 6d 05 03 75
>  ffb22eb8  fe ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff
>   2nd battery, 1st boot :
>   Bank 0
>   ffb22e98  ff ff ff ff ff de ff ff  ff ff df 41 a2 00 a4 00
>   ffb22ea8  d4 00 00 02 00 00 00 26  10 01 00 00 00 00 00 00

The shadow ram inside the gauge chip has become corrupted.  Recently in 
XO-1.5 ESD testing we have discovered that the battery pack is 
susceptible to occasional corruption.   The long strings of 0xff are the 

Your 1st battery is on the virge of becoming unfixable.  Location 0x31 
(Bank 0 offset 0x11) is a magic location and contains the default values 
loaded into one of the chip registers when the gauge resets.  One of 
those bits puts the 1-wire interface into high-speed mode so 0xff is not 
a good setting.

I'm working on automatic detection and recovery of this condition in the 
1.5 EC code.  1.5 should already do a better job of throwing an error 
rather than just not do anything like the XO-1 firmware does.

To fix your battery try the following:

Get batman.fth and put it on a usb flash drive.

ok fload u:\batman.fth
ok batman-start
ok bat-rewrite-life

When you fload batman.fth you are going to get several <blah> not unique 
messages.  Those are harmless.

If the rewrite does not fix things look at bat-dump-banks again and 
verify that the values changed.  If they did and its still broke then w 
will have to look at other things.

Richard A. Smith  <richard at>
One Laptop per Child

More information about the Devel mailing list