Unlike traditional lead-acid batteries where the charge level can be estimated simply by looking at the voltage, the estimation of the charge level of Lithium (LFP) batteries is more complex. Each LFP lithium battery manufacturer has its own strategy for determining the percentage charge level (SoC).
The algorithm to establish the right SoC for a lithium battery is therefore complex and therefore depends on each manufacturer, it is a question of calculation and drift.
In this article, we explain how your battery’s BMS to LFP calculates this percentage and why it’s crucial to “sync” your batteries regularly.
The measurement method: Coulomb counting
To display a percentage of charge (SoC – State of Charge), LFP batteries do not use voltage, but a method called Coulomb ( Ampere-Hours) counting.
Imagine a water meter at the inlet of a tank.
- The BMS (Battery Management System) uses an ultra-precise built-in shunt (a measuring resistor) to count every amp that goes in (charge) and every amp that goes out (discharge).
Each battery therefore has its own shunt to account for energy. - This is the most reliable method for lithium, as the voltage curve of lithium is too flat to be used as an accurate indicator.
Why does the percentage become false? (The drift phenomenon)
However, no sensor is perfect.
There are therefore two main factors that can distort the calculation and therefore the percentage displayed over time:
- The sensor error: If the current sensor has even a small margin of error (e.g. 1%), and the battery cycles for weeks without ever reaching 100%, the displayed SoC will “drift” from reality. The BMS could show 50% while the battery is actually at 40%.
- The “Battery Bank” effect: Imagine this drift if there are three batteries in parallel in a battery bank. The current naturally splits into three, which reduces the intensity measured by each unit. This can increase the relative margin of error of the reading.
This is called drifting.
The solution: Synchronization (the “Reset”)
However, there is a technical solution to this phenomenon of drift, and that is synchronization !
How do we overcome these challenges and fix the display?
High synchronization (reset to 100%)
When you charge an LFP battery bank and the voltage of each battery reaches a maximum threshold (say 55.5 V for a 48 V system), the battery is physically full.
Even though the SoC displayed by the BMS was 85%, the latter acknowledges that this internal voltage of 55.5 V is irrefutable proof that the battery is charged. It will then refresh the percentage display, which will then instantly change from 85% to 100%.
Important note: From that moment on, we consider ourselves to be on a solid basis (a true 100%). That’s why
it’s crucial to set up chargers to reach this voltage periodically. If you never reach it, the displayed SoC will become fake over time.
Low synchronization (reset to 0%)
The opposite is also true for a complete discharge. If a cell’s voltage touches its
In short
The accuracy of the SoC calculation is based on a balance between ampere-hour metering and validation by limit voltages. Although metering is effective on a daily basis, only synchronization (reaching the high or low voltage threshold) guarantees an absolute benchmark.
So make sure that the configuration of your equipment (inverters/regulators) allows you to periodically reach the synchronization voltages (e.g. 55.5 V in 48 V) to prevent the display from moving away from reality.