Personal battery-powered devices range from single-cell devices such as cell phones to multi-cell devices such as electric cars. Range anxiety is a common issue among all battery-operated electronics. Users are anxious if they can catch the end of the movie before the battery on their tablet runs out of charge, or if they can drive their electric car to the next charging station before they get stranded on the freeway. The battery fuel gauging system is the component responsible for determining the energy remaining in the battery. In this article, a battery fuel gauging system used in single-cell applications is described. This is followed by a discussion of the various algorithms used by the fuel-gauging system to determine battery capacity along with the pros and cons of the algorithms. This article also discusses some factors that must be considered when selecting a fuel-gauging system for a battery-operated consumer application.

Figure 1 shows the block diagram of a generic battery fuel gauge. It consists of at least two analog-to-digital converters (ADCs), one of which is dedicated for measuring the battery current. The second ADC is multiplexed and can be used to measure battery voltage, battery temperature or used as a general purpose ADC. The measured battery voltage, current, and temperature are sent to a microprocessor which implements the fuel-gauging algorithm. The microprocessor contains battery chemistry specific information, such as cell impedance or cell capacity as a function of voltage, in its non-volatile memory. An on-chip or external regulator provides a regulated supply to power the microprocessor, ADCs, and other support circuitry. The battery fuel gauge communicates with the rest of the system using standard protocols such as I2C communication.

Using the circuitry shown in Figure 1, the simplest algorithm to estimate the battery capacity is to measure the battery voltage and use Figure 2 to estimate the battery capacity. Figure 2 shows a typical battery voltage curve of a Lithium-Ion (Li-Ion) battery as a function of battery capacity. Given a battery voltage, the battery capacity can be obtained from this graph. Figure 2 also shows that battery capacity decreases as the number of charge-discharge cycles increases. The voltage-based technique is simple to implement and provides an accurate value of maximum battery capacity (QMAX) when there is no load on the battery. However, the actual usable battery capacity (QUSABLE) is less than the maximum capacity because of the battery’s internal impedance (Figure 3). An average value of the battery impedance (RBAT) can be used to estimate the usable capacity, but this estimate could have large errors because RBAT is a function of battery temperature, age, and state-of-charge (SoC). While in principle a large multidimensional lookup table can be used to correct for battery resistance, this requires extensive characterization of the battery and circuitry for the computation of the resistance.

An improved solution over the voltage-based method is the Coulomb counting technique. In this technique, the charge flowing into and out of the battery is integrated to get an accurate estimate of the remaining capacity. This technique works well, if the battery’s initial state-of-charge is accurately known. Once the initial battery capacity is known, by integrating the total current, an estimate of remaining capacity is obtained. The main issue with this technique is that the battery self-discharge is not accounted for as the self-discharge current does not flow through the external circuit. This can lead to an inaccurate estimate of the battery’s capacity. The battery self-discharge can be modeled, but these models have large errors and the self-discharge varies with temperature and battery age.

To address the concerns of the above two methods, one can use both the voltage and current information along with battery temperature to predict the battery capacity. In this method, the battery open circuit voltage measurement is made when the battery is unloaded and current measurement is done when the battery is being charged or discharged. The battery voltage is continuously measured, even during no-load conditions. The continuous voltage measurement is used to update the battery’s current state-of-charge using the graph in Figure 2.

Then, when a load is applied, the Coulomb counting technique is used to measure the net charge entering or leaving the system. After the load is removed and the battery has had time to relax, a new battery voltage measurement is performed. Using the two battery voltage measurements and the net charge measurement, the maximum battery capacity can be estimated [3]. Real-time battery impedance also can be calculated by using the measured current, the no-load battery voltage (at the given SOC and temperature) obtained from the lookup tables, and the measured loaded battery voltage. Thus, with the measured maximum capacity and battery impedance value, an accurate estimate of the remaining usable capacity can be obtained.

Selecting a fuel-gauging IC

The key considerations when selecting a fuel-gauging IC are algorithm accuracy, quiescent current, and the number of external components such as regulators and sense resistors needed by the IC for normal operation. The fuel-gauging IC is powered up even when the actual load to the battery is turned off to periodically measure the open circuit voltage. Any energy used by the fuel gauge reduces the system run time. Therefore, the IC must have low quiescent current. The fuel-gauging IC needs a regulated power supply for the ADCs, microprocessor, and other blocks, and a sense resistor to measure the battery current. Ideally these components must be integrated onto the IC to reduce bill of materials (BOM) count and board space. An example of such an IC is the bq27520 IC, which incorporates the low dropout (LDO) regulator.

System level considerations include the gauge’s location (pack side vs. host side), gauge initialization and algorithm development. In pack side gauges, the IC is located on the battery pack itself. This allows the gauge to be synchronized with the battery at all times and provide instant information about the pack. In host-side gauges, the gauge must be appropriately initialized each time the battery pack is inserted. In pack-side gauges, the battery manufacturer develops the algorithm, so the system integrator just has to query the battery pack for various parameters. One disadvantage of the pack-side is that the IC must be discarded when the battery pack becomes unusable, which potentially could increase the system’s overall cost. In host-side gauges, the system integrator must have fuel-gauging expertise and must account for the time needed to develop the algorithm in the development schedule.


In summary, estimating battery capacity is a complex task as there are many interrelated parameters which affect the battery capacity. Simple algorithms could lead erroneous results which could potentially result in reduced run time of the system. Therefore, when designing a fuel-gauging system both IC and system level trade-offs must be considered.


1.    Yevegen Barasukov, “Challenges and Solutions in  Battery Fuel Gauging,” Texas Instruments.
2.    “System Side Impedance Track Fuel Gauge with Integrated LDO,”  BQ27520 Data Sheet (SLUSAP0) Texas Instruments, December 2011  
3.    “Theory and Implementation of Impedance Track™ Battery Fuel-Gauging Algorithm in bq2750x Family,” Application Note (SLUA450), Texas Instruments, January 2008.

About the Author

Karthik Kadirvel is a mixed-signal design engineer in the nano-power energy harvesting group at Texas Instruments. He holds a Doctoral degree from the University of Florida. Karthik can be reached at