Back to resources
How to repair IBM thinkpad 240 batteries (02K6608,02K6606)

Caution Li-ion cells are dangerous be very careful when disassembling your battery pack - only do this if you know what you're doing this page is meant as an educational guide not a how to. If you follow the procedure here and kill yourself I will consider it a gift to the gene pool. You are on your own. Anything stupid that your do is your own fault. If you can't understand this stop reading here

My IBM thinkpad 240 battery (02K6608,02K6606) died the other day. I bought a new one it cost 139 pounds (that's about $200). So I decided to find out why. I bought some new Li-ion cells the same size [only slightly higher capacity 1500mAh vs 1400mAh]. Reassembled and guess what no improvement. So I investigated further here's what I found....

The battery is quite clever it has a bq2040 smart battery interface chip, which in turn has an eeprom in which it keeps track of the battery. Most batteries connect the smart battery chip to the battery so as it always has power, however there is a battery protection chip that disconnects the bq2040 from the battery if it thinks something bad is happening (for example the battery is running down) - so you can corrupt your eeprom by unpluging the battery when the eeprom is being written by the bq2040 (or in my case the bq2040 which does a write at the end of the discharge cycle was a little too optimistic about where the end was going to be, and got caught short by the battery protection chip during a particularly deep discharge). But that's ok becuase the bq2040 can rewrite the eeprom under instruction from the computer - execpt that IBM disabled this feature of the bq2040. Here's how to read and write the eeprom of the bq2040 the old fashioned way.

First the actual battery board prepared in the usual way using chalk mix because IC numbers don't scan. (Try looking at an IC number with a light straight on - you can't - but you can put very fine chalk powder in the indent where the number is, and then scan). NB the white gloop on the lm35 is important. The lm35 is a precision temperature sensor which is used so that the BIOS/H8 can determine end of charge. It needs to sense the battery temperature not the board temp. The white goop is thermally conductive.



Large version

Click on a chip for more info.


Connections to examine/modify EEPROM.


How to read eeprom. (You can do this with or without the cells attached)

The reading procedure is in the 24C01 datasheet and the data format is in the bq2040 datasheet.
The original contents of my dead battery's ROM as binary or od-ish
The new contents of my battery's ROM as binary or od-ish [I've replaced the old cells with 1500mAh ones]

Interface ckt


Code to read eeprom as text or html
Code to write eeprom as text or html