How accurate is calculated/measured mAh

The app calibration screen provides a battery real capacity (mAh) based on historical charge cycle data being logged by the app.

First, it's important to differentiate the 2 types of phones:

  • Phones providing real mA measures
  • Phones not providing mA measures while charging (main screen shows "Estimated: xx mA" while charging)

The first category of phones, with real mA measures, will calculate real battery capacity mAh no matter how the app is configured.


The second category requires special attention and the app need to be configured in this way:

  • A battery profile must be created with the manufacturer's specified battery capacity (mAh) and the AC charger output power or
  • The in-use capacity must be set to the manufacturer's specs
  • The AC charger output power must be set matching charger's specs.

The app will then use 3 simple facts to determine the real battery capacity:

  • Charging can't go over the charger output power (frequently 1000mA).
  • From 0% to 50%, phone uses the maximum charger capacity.
  • Above 50% charging rate is lowered to protect battery from aging faster.

If the charging consistently goes over the charger power, it means the defined mAh is over-estimated and the app will adjust the results accordingly.

If the charging consistenly stays lower than charger power while screen is off, it means the defined mAh is under-estimated and the app will adjust the results accordingly.


So it's important to set the original battery capacity when using extended battery as it is easier to adjust over-estimated values than adjust under-estimated because the later requires the screen to be switched off. While screen is on charging is always lower than charger power hence the need to have the screen off.

Whether the battery capacity is set to 2000mAh or 20.000mAh the app will easily discover a lower battery capacity because the charging (mA) will consistently be above actual charging power between 0% and 50%.


Here is a way to correlate the results: Charging times increase with battery capacity, eg a 3500mAh battery must take longer to charge than a 2100mAh battery.


A) BMW corrects the measured mA based on maximum readings vs entered charger output power without any corrections. Actual corrections would require to know the charger voltage as well (which differs from device to device). So entering a higher value like you did calculate is the thing to do.

Those corrections are only made if the measured mA is higher than the entered max mA while charging between 0% and 50%, that's when the interval voltage is the lowest and the charging will be the highest.


B) Screen off detection is useful when trying to determine if entered capacity (mAh) is lower that it really is. In screen off, consumption is minimal and charging will get very close to maximum charging capacity, so if the app finds out between 0% and 50% (after that charging gets slower) that charging is not close to max charging capacity, it will adjust calculations upward.

As for the spikes, the app tolerates 1 or 2 consecutive spikes and consider 3 consecutive spikes as an over-estimation.

With a 30 minutes interval upward-correction is impossible if turning on screen even for one second indeed.

Those settings gave the best results as far as I could tell.

I use 10 minutes and that yields very good results so far on all similar (estimated mA) devices. 5 minutes was the old default and might yields a little more accuracy.