[Nexus One Android Development] hgmichna:
Failure report

I had done the discharge-charge cycle and subsequently tested the phone. It now correctly went down to 0% before shutting off. I counted that as a full success.

Unfortunately it did not last. Today the phone again shut down on its own exactly when the 15% warning appeared.

I had meanwhile upgraded CyanogenMod from 7.1 to 7.2, but as I understand it, that would not affect the battery chip.

This is a Google Nexus One with the kernel that comes with CyanogenMod. I have never tried another kernel and do not want to go that far, just to fix a faulty battery indicator.

Questions

Do I understand this thread (or the part of it that I could read within a reasonable time) correctly when I assume that the fault or flaw or whatever you would call it is solely in the battery control chip, which is inside the battery?

Is the wrong charge indication caused by the capacity loss of the battery over time? In other words, has my battery lost 15% of its capacity and therefore cops out at 15%?

If that is so, would buying a new, good, original battery solve the problem (until the battery degrades again)?

If yes, how can I make sure that a battery I order is good? I find that the market is swamped by third-party batteries that look original but really aren't.

The Battery Monitor app

I have successfully used a program called Battery Monitor (by Simmo) to cure some HTC Legend phones that suffer from an underreading voltage sensor, apparently caused by a hardware defect in these phones. The program has a voltage mode in which it calculates the charge percentage solely from the voltage. You can set the voltage limits. Details and a download link for an Android-2-compatible version are here: HTC Legend battery indicator underreads

I could imagine that this program may help a few of us by giving a more precise charge indication and a somewhat accurate estimate of the remaining runtime.

Its downside is that its indication jumps up and down somewhat, as you charge and discharge the battery. This is because the voltage depends on the current, which varies. Also, the program does not seem to take the discharge curve of a Li-Ion battery into account, but instead assumes a linear relationship between voltage and remaining capacity. This means that, as you discharge the battery, its indicator quickly goes down to the middle values between 70% and 30%, stays there for a relatively longer time, then goes down more quickly towards 01%.

My recommended starting point, if you want to try that program, is to set the max voltage to 4100 and the min voltage to 3400. From there you can do finer adjustments if necessary.

I know that this is not a really good solution, but if you want to get a better idea when your phone will shut down, it may help. Don't expect too much from it.

Low voltage warning app

I cannot understand why Android does not base its low-battery warning at least partly on the voltage. I mean, if it knows that the phone will shut down at some predetermined voltage, say, 3400 mV, why does it not warn at least when the voltage goes below 3450 or 3500 mV? To give a 15% warning exactly when the phone is already shutting down is so stupid! Does anybody know of a simple program that issues a low-voltage warning at some adjustable or self-learning level?

Edit 2012-06-27 - Another failure report

I have tried to discharge and connect the charger while the phone shut itself down three times. Twice I charged the phone fully while it was off, the third time I switched it on immediately after connecting the charger and switched it into airplane mode.

Every time I discharged it afterwards, it shut itself down around at around 15%. All in all I have tried four times. Once it worked, but only for the next single discharge. Ultimately it failed after all my attempts.

Four tries is not enough for reliable statistics, but it is a strong indication that everything I read here about the fix on a phone with just a standard CyanogenMod 7.2 kernel was just snake oil. At best the method described is extremely unreliable, to an extent that renders it useless for any ordinary user.

I would still be grateful for answers to the questions above that are still unanswered.