Voltage never lies, battery percentage is always a guess based on some algorithm…
If you’re coming from a commercial board and are wondering how to figure out how much battery you have left then this is the page for you!
Battery Voltage
As a battery depletes its voltage decreases…
bla bla… more to come…
Voltage inaccuracies on PC/Mobile
The reported voltage is based on the measurement on the controller itself. Any VESC compatible controller can measures the input voltage. This measurement is not ultra precise compared to what you’d see on a voltmeter, it some cases it can be off by as much as 1-2 Volts! This has no impact on your board’s performance, but you should take it into account when setting your voltage cutoffs and tiltback thresholds.
In 3rd party apps you may be able to adjust it (e.g. FloatControl lets you specify a voltage correction value)
How is Battery Percentage calculated?
Different methods exist…
a) Linear with 4.2V = 100% and X.XV = 0%, where X.X can be different values depending on the app and/or the cells used. Some cells (P45b) are only truly empty at 2.5V, many others at 3.0V
b) Cell-specific discharge chart. This is a more accurate method as no cells discharges linearly. Differences between cells can be significant so having accurate cell discharge curves is very helpful
c) Coulomb counting. This does not rely on voltage but it looks at the energy used. Can only be done correctly by a BMS since the controller may not know the history of the battery (Coulomb is a unit for energy, similar to Watthours). This is what the FM BMS uses
Battery Percentage in VESC Tool
The VESC tool currently calculates battery percentage based on battery voltage, but if you have a VESC compliant CAN BMS you may get coulomb counting as well…
By default VESC Tool tends to use a quite conservative (aka high) voltage where it considers cells to be empty. This seems outdated, based on older model Lithium Ion cells. This is why it tends to underestimate the remaining battery percentage.
Battery Percentage in Floaty and Float Control
Floaty and Float Control use battery cell specific discharge curves…
Floaty
Floaty uses two discharge curves, one for minimal currents and a second one for 20A discharge. It then uses the battery current to interpolate between these two.
Float Control
FC only uses the minimal current discharge curve, and once the board is in motion it takes the last idle battery percentage and it uses the net Watthours used vs the total Watthours available in the pack to adjust the percentage until the vehicle comes to a stop again.