The problem is that the batterystats.bin file is not that easy. I downloaded the source code of android, to check what does this file do exactly. But now all I know is that is not that simple. Try to calibrate it while you're watching current widget too till ypu got 0mA charging current.
Sent from my Desire HD using Tapatalk
@marosige,
Like I said before batterystats.bin is a serialized class which contains power usage information by various modules - that how Android OS derives statistics for battery usage screen.
Android power system is based on underline Linux power control system and information goes ONLY in one way from Linux battery driver up to Android OS...
And Linux battery driver gets its information from battery's fuel gauge chip.
There is NO WAY Android OS will register 4.2V as 100% and say 3.4V as 0% withing a fuel gauge chip which calculates, keep track and reports SOC (state of charge) of battery.
So, wiping batterystats.bin file is kind of woodoo magic in attempt to recalibrate that fuel gauge chip... I'm not attacking anyone but just sharing knowledge how it works, so no hard feelings.
Question how to do proper calibration? It all depends on what fuel gauge chip is used.
As an example my Galaxy Tab 10.1 is using bq20z75 fuel gauge chip by TI and proper calibration procedure is outlined here:
http://xdaforums.com/showthread.php?t=1215182
PS: speaking about having spare battery... if battery has build-in fuel gauge chip then there is no problem but in case of external chip there might be a problem.
bq20z75 chip stores charge/discharge cycle information internally and use it to adjust calculated capacity, probably no biggy if two batteries are the same capacity and the same age but it would completely through calibration Off in case if they are substantially different.