Article

Calibrating Betaflight's voltage and current sensors: multimeter check, amperage scale and an accurate mAh count

The battery numbers in your OSD are only as good as the scale values behind them. The Betaflight wiki puts the difference plainly: voltage sensing is usually quite good from the factory, while current sensing varies a lot from board to board and should be calibrated. So the voltage needs a quick check, and the current sensor needs a few packs of real work before you can trust the mAh counter.

Why bother with current at all? Oscar Liang points out that voltage sags under load and jumps around in flight, so it is not the most accurate measure of what is left in the pack. For freestyle and cinematic flying he finds voltage alone usually good enough. For racing and long range, where you need to know exactly when to land, the mAh count from the current sensor is the better guide, but only once it is calibrated.

Check the voltage first

Take the props off. Measure a battery with a multimeter or a battery checker, then plug it into the quad and connect to Betaflight Configurator. Compare your reading with the voltage shown in the Power & Battery tab. Oscar Liang treats a difference within 0.1 V as acceptable.

If the reading is further off:

  1. Click Calibrate at the bottom right of the Power & Battery tab.
  2. Enter the voltage you measured.
  3. Click Calibrate again and let Betaflight apply the new voltage scale.

If no voltage shows up at all, check that Voltage Meter Source is set to Onboard ADC. The tab also offers ESC Sensor, which takes the voltage from ESC telemetry, and None. In the CLI the voltage scale is vbat_scale.

Pick a current source that actually exists

Before calibrating anything, make sure there is a sensor to calibrate. Oscar Liang's tip is to look at the ESC: a current sensor usually looks like a large resistor near the power pads. If it is there, set Current Meter Source to Onboard ADC. If the ESC has no sensor and you select Onboard ADC anyway, you get random readings.

The other options in the tab are ESC Sensor (current from ESC telemetry, supported by some 32-bit ESCs), MSP Sensor/OSD Slave for an external device connected over MSP, None, and in the CLI a virtual sensor that estimates current from throttle position. Oscar finds the ADC sensor usually the easier choice. A virtual sensor is not very accurate, but properly set up, he says, it is better than nothing.

Then add two elements to the OSD: Battery current draw (live amps) and Battery current mAh drawn (capacity used so far).

What the scale and offset do

Betaflight converts the ADC voltage from the sensor into amps with this formula, according to the Power & Battery tab documentation:

Current [A] = ADC [mV] x 10 / amperage scale + offset / 1000

The scale sits in the denominator, so it works backwards: a higher scale makes the quad report less current. If the OSD shows more mAh than you really used, raise the scale. If it shows less, lower it. In the CLI the values are ibata_scale and ibata_offset.

Oscar Liang says you can usually leave the offset at zero. When he does touch it, it is a small adjustment so the reading sits at or near zero amps with the quad on the ground.

Calibrate with a charger

This is Oscar Liang's preferred method, because it needs no extra equipment and no running motors on the bench.

  1. Fully charge a pack: 4.20 V per cell for LiPo, 4.35 V for LiHV.
  2. Fly it until it is nearly empty, around 3.5 V per cell.
  3. After landing, write down Battery current mAh drawn from the OSD.
  4. Charge the pack back to the same voltage you started from and note how many mAh the charger put in.
  5. In the Power & Battery tab, write down the current Amperage Meter Scale.
  6. Calculate the new value:

new scale = old scale x (OSD mAh drawn / mAh charged)

Oscar's example: the OSD showed 1520 mAh, the charger put back 1703 mAh and the scale was 400, so the new scale is 400 x 1520 / 1703 = 357. Betaflight only takes whole numbers, so round the result.

Expect to repeat this two or three more times before the numbers agree. Use a pack in good condition: an old or abused battery may have lost capacity and throws the result off.

Calibrate in the field

Without a charger that shows mAh, or without a laptop, you can still get close. Bring three or four fully charged packs and compare the OSD reading with the capacity printed on the pack.

Oscar Liang's example: the scale is 400, you fly a 1000 mAh pack until it is empty and the OSD shows 900 mAh. You want the OSD to read about 10% higher, a little more to allow for the charge left in the pack, so you lower the scale by 10% to 360. Fly the next pack and repeat. Without a laptop, change the value in the OSD menu under Features, Power, IBAT Scale.

Calibrate with an ammeter

The Betaflight wiki describes a bench method for anyone with an ammeter:

  1. Take the props off.
  2. Put the ammeter in series between the battery and the quad. The wiki suggests an XT60 extension with one lead cut.
  3. In the Motors tab, raise throttle until the ammeter shows about 1 A.
  4. In the Power & Battery tab, write down the current from the ammeter and the current Betaflight reports.
  5. Repeat at least three times at different currents between 0 and 5 A, without exceeding the ammeter's rating.
  6. Run a linear regression on the pairs (the wiki links a spreadsheet that does it). Multiply the scale you tested with by the slope, and subtract the intercept in mA from the offset.

The wiki adds that shunt resistors usually have an offset smaller than ±1000 mA, while Hall effect sensors have much larger offsets. Oscar Liang is less keen on this method: at low current the readings jump around on both the OSD and the multimeter, for example between 3.2 and 3.7 A, which makes precise measurements hard.

The ceiling at full throttle

Even a perfect calibration has a limit. The flight controller's ADC reads at most 3.3 V, and that is usually what caps the current it can measure. Above that point the reading stays flat even when the real current keeps rising, so the reported mAh can be lower than what you actually used. The wiki's advice is to keep an eye on battery voltage as well.

Set the warnings to match

With both readings accurate, set the thresholds in the same tab. The Betaflight documentation says the warning voltage should leave enough to land safely, usually 3.6-3.5 V per cell, and the minimum voltage should sit where damage is imminent, usually 3.3 V. Below 3.3 V a pack starts to get damaged, can stop holding a charge and can even become dangerous.

Enter the pack capacity as well: Betaflight uses it to work out the remaining capacity in percent. From Betaflight 2026.6 the tab supports up to three battery profiles, each with its own cell voltages, capacity and capacity alert percentage, which is handy if one quad flies packs of different sizes.