There are two chips in the Pandora for battery control, the TWL actually does the charging (and a lot of other things, too) and the BQ gives us a fuel gauge. The TWL charges the battery by monitoring voltage and dumping current into it; when the battery reaches 4.3 volts, it is "full" at which point the TWL slows the charge rate and starts monitoring resistance on the battery to top it off. As the battery fills, the resistance increases and the amount of power required by the system decreases. When this reaches a certain threshold (drop below 80ma), it triggers a full battery alert and stops charging. There was a theory that because of the new ultra efficiency that Notaz was able to get us, the power required to actually run the system would sometimes drop so low that it would make the TWL think the battery was full. There is some merit to this, you may be able to test it yourself: if you charge the battery until it reads 100% (but continues to charge beyond this point to top it off) and then start getting it to do something to waste a bit of power (turning the LCD brightness up to full should be enough) it should never stop charging, even hours later, because the TWL is still detecting a high power usage; close the lid, the LCD shuts off, power consumption drops below the threshold and it stops charging within seconds (sometimes). That's one of the places the software shut off comes in. In any case, this hardware cut off doesn't happen until it reaches 4.3V anyway.
Voltage measurement isn't a very good way of accurately detecting how much power is left in a battery though: if you increase the load substantially, it can have an effect of pulling the detected voltage down; release the load and the voltage jumps back up. Even in normal operation, you can get swings of up to 10% difference depending on what you were doing. It can be a good starting estimate, but I doubt people would be happy if the gauge in the bottom corner made jumps from 90 to 80% suddenly just because they started PCSX.
That's where the BQ chip comes in. It tracks current in and out of the battery directly. As the TWL is charging, the BQ is recording the amount of current going into the battery. The BQ is supposed to know how much current total the battery can hold, so as it records current going into the battery (and coming out of it) it can calculate the amount of power left in the battery and an accurate estimate of how much time it would take to complete the (dis)charge at the current rate. When I got my second Pandora, I noticed it would have problems reaching 100%: it would get to about 83% and then stop. On some occasions I would turn it on and it would be 100%, but then discharging it would reach about 18% and suddenly the battery was empty and it would die. My theory goes that there is a small bit of corrosion on the contacts of the recent CC Pandoras (from having been sitting around unpopulated for months), not enough to cause major problems, but enough to change the resistance between the battery and the BQ chip ever so slightly. This increased resistance means that the BQ is detecting less current going into and out of the battery than there actually is, so when the TWL has successfully reached 4.3V and has actually dumped 4000ma into the battery, the BQ has only detected, say, 3300ma. TWL stops charging, BQ only reads 83%, people complain. The reverse could also be true: if it someone does reach a point where it knows the battery is full, you can use up the full 4000ma but the BQ has only recorded 3300ma or so: the Pandora shuts down even though the gauge still reads 17% remaining. I "fixed" mine by sending it through several charging cycles until the BQ chip "learned" that there was only 3300ma in the battery (the battery was still 4000ma, just the BQ couldn't figure that out anymore).
If I'm right, this is strictly a hardware problem that has the potential to affect only CC boards released in the last 6 months (maybe as far back as 12 months? I'm terrible with time frames) or so. Older CC boards were soldered before corrosion could begin, and new GC boards are all brand new and being handled properly so no fear there. In any event, there is absolutely nothing in the software that would change any of this behavior, it is all done in hardware and the new kernel shouldn't make a difference.
Oh, new theory! What if, in the old kernel, the power consumption is high enough that the TWL never stops the charge? The TWL keeps dumping power into the battery long after it is full, the BQ keeps tracking this inbound current and raises the meter, the battery is overcharging and releasing most of the excess as heat, until it finally reaches 100% and the software control kicks in and shuts it down. This is the very reason the software daemon was required, on some Pandora's the battery would be full but because of system load the TWL couldn't detect it, so the BQ stepped up and forces it to stop before damage can occur. Maybe under the new kernel the power consumption is low enough that the TWL properly detects the end of charge when it happens, even if that is the point where the BQ chip only reads 83%.
To do a complete learning cycle, you need to charge the battery to full (ie, until the TWL stops charging, even if the BQ doesn't say 100%) and then immediately shut down the Pandora completely. Leave it off for at least 5 hours. Turn it back on and begin a discharge cycle. I turned my brightness up to full, wifi on no power saving, running a tight while loop and a background wget downloading a huge file into /dev/null and it only took 6 hours. Once it reaches 3V, the system will shut itself down to save itself. Let this happen, leave it off for at least 1 hour before plugging it in to charge back to full. You may need to repeat this 2 or 3 times before it learns.
Again, I think the problem isn't with software or the battery, I think the problem is that the BQ chip isn't accurately detecting the current going in or out of the battery due to changes in resistance. It's really sensitive to that. Even though it claims 83% when it stops charging, it should still give you the same 10+ hours of use that the rest of us are getting, it just doesn't know it. Since correcting my BQ meter (properly, there's a bit of story in my adventure in trying to fix this
) I haven't had any problems, I get full 10-14 hours of use out of my Pandora right alongside my first one doing the exact same work so at the very least this is going to be some people's problem, though maybe not everyone's.
TL;DR; if you're in a situation where the battery doesn't seem to be charging past 85% (or so, it will vary) fully "charge" your Pandora until it stops, immediately shut down and leave it off for at least 5 hours. Turn it back on and discharge until it shuts down, leave it off for at least an hour before plugging it in to charge back to "full". You may need to do this 2 or 3 times but it will eventually figure out where 100% is.