A smartphone (assume it to be an Android) usually displays the battery percentage from 0 to 100%. I am assuming that this is the usable capacity of the battery. I have several questions:

  1. How exactly does it measure the remaining capacity? Assuming a battery is rated to be 3.2V, it might be providing 3.3 V when fully charged and the minimum required voltage of the phone might be 3V. Does the 0-100% refer to 3V to 3.3V? Is this calibration made only once during the time of manufacture?

  2. How is the remaining capacity measured so accurately? Are the measurements averaged over a period? If so, what is the sampling frequency and how many reading are averaged to get the final?

  3. How is the remaining capacity % measured when the phone is charging? I guess the output voltage might be different when it is charging.

  4. How is calibration of battery percentage affected by ambient temperature? I am aware that batteries nowadays have temperature sensors. Is the temperature used to calculate the battery capacity remaining or the optimum charging rate?

  5. Assuming battery consumption is not linear as the battery discharges... (intensive games, etc). How does the smartphone handle variable discharge rates? There exists multiple apps to re-calibrate batteries. How do they work?

  6. How does the OS determine battery usage of each app? Is it just based on CPU cycles and screen time or is there some actual measurement of power dissipation?

  • 2
    \$\begingroup\$ Short answer: the battery pack or the android main board has a "battery fuel gauge" IC which keeps track of the charge state of battery. You cannot achieve that level of precision by only measuring voltage. \$\endgroup\$
    – user57037
    Dec 22, 2014 at 6:54
  • \$\begingroup\$ bq27200 is an example of a battery fuel gauge IC. \$\endgroup\$ Dec 22, 2014 at 6:57
  • \$\begingroup\$ Well noted. So how does the battery fuel gauge IC do all the above? \$\endgroup\$
    – navigator
    Dec 22, 2014 at 7:10
  • \$\begingroup\$ batteries discharge in a non-linear fashion, with respect to voltage. The battery manufacturers can do thousands of hours of testing and batch quality control to very accurately characterize their batteries, and form a voltage/temperature/capacity relationship and from this they can map the charge state to a battery % for display to humans in something we can understand. \$\endgroup\$
    – KyranF
    Dec 22, 2014 at 8:13
  • 2
    \$\begingroup\$ @navigator, it might as well be magic. I think they essentially integrate current over time (Coulomb counting). But I think they have also implemented learning schemes. The fuel gauge learns the capacity of the specific cell, and tracks capacity as it decreases over time. \$\endgroup\$
    – user57037
    Dec 23, 2014 at 17:33

1 Answer 1


As mentioned in the comments, it uses fuel gauge. There are several algorithms for Li-Ion chemistry, and the gauge might use one or more of them.

The most basic one is the Columb counter. The fuel gauge has a current shunt with an amplifier and measures the consumed current, sums it over time and compares it to the programmed battery capacity.

An addition to the Columb counter is impedance tracking, in which the fuel gauge tries to measure the battery's impedance. A lithium ion cell has a specific impedance for each state of charge, so an estimate can be made regarding the amount of charge left.

The fuel gauge usually has its own temperature sensor to compensate for various temperature related effects.

It reports its status via I2C (SMbus in some cases) to the main processor.

  • \$\begingroup\$ "compares it to the programmed battery capacity" - how does it account for the effective capacity drop by ageing and cycling (depending on depth of discharge)? \$\endgroup\$ Dec 22, 2014 at 18:47
  • 1
    \$\begingroup\$ There are internal algorithms (Most fuel gauges have an internal MCU) that take into account average temperature and the number of cycles. \$\endgroup\$
    – Lior Bilia
    Dec 23, 2014 at 7:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.