VESC Voltage vs Battery Percentage

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.

1 Like

I’m new to the VESC world and I just finished my first build. I have the a 18s torquepack and ZBMS from ZBATTERY, but my VESC controller is consistenly reading about 2V less than my meter, the digital voltage readout on my variable current charger from Chi, and my ZBMS balance lights while at full.

I’m worried because this impacts the values I set for high/low voltage tiltback and low voltage shutdown. Is the common and are there any solutions?

It is common, but 2V is more than typical. Still nothing to worry about. Just set your cutoffs and tiltbacks accordingly (aka ~2V lower). In FloatControl you can adjust the voltage so for display purposes and battery percentage it will use the corrected value. Not sure if Floaty has this feature yet. VESC Tool doesn’t have it unfortunately

surfdado wrote, “Some cells (P45b) are only truly empty at 2.5V, many others at 3.0V.”
Can someone recommend the correct settings for my new 20s2p P45B pack?

What settings should I use under Motor Cfg → General, Voltage?

Are these settings appropriate for 20s2p P45B?
Motor Config → Additional Info, Setup

  • Battery Cells Series: 20
  • Battery Capacity: 9Ah

Refloat Cfg → Specs

  • High Voltage Tiltback = 20 x 4.3 = 86V (going downhill, prevents overcharge)
  • Low Voltage Tiltback = 20 x 3 = 60V (low battery)

Anything else I should optimize for the P45B?

Everything that’s said in the normal setup videos still applies. I ride P45b cells too yet I do not change my cutoffs specifically for it.

1 Like