# FPV Drone Current Sensor and Voltage Calibration: Accurate mAh and Battery Monitoring
Flying until your OSD says “Land Now” but the battery is already at 3.2V per cell? Or landing with 40% left because the OSD is way off? Inaccurate current sensor readings lead to damaged batteries or unnecessarily short flights. This guide shows you exactly how to calibrate your current sensor and voltage readings for precise mAh tracking.
## Why Current Sensor Calibration Matters
Betaflight uses current sensor data to calculate **mAh consumed** — the fuel gauge for your quad. Without calibration:
– **Over-discharge**: OSD says 1100mAh used, but you’ve actually pulled 1400mAh — your battery dips below 3.0V
– **Under-utilization**: OSD says 1300mAh used, but only 900mAh was consumed — you land early with plenty left
A properly calibrated sensor lets you fly to exactly 80% discharge (the safe limit for LiPo longevity).
## Types of Current Sensors
| Sensor Type | Accuracy | Requires Calibration | Found On |
|————|———-|———————|———-|
| Onboard ADC shunt | Medium | Yes (every build) | Most AIO and stack FCs |
| External current sensor IC (INA228, INA139) | High | Yes (less often) | Premium FCs |
| ESC telemetry (BLHeli_32) | Medium-High | Yes | BLHeli_32 ESCs with telemetry wire |
| Virtual (calculated from throttle) | Low | Very often | Whoop boards without shunt |
## Step 1: Voltage Calibration
Voltage calibration is fast and only requires a multimeter:
1. Connect a fully charged battery
2. Measure voltage at the XT60/XT30 connector with a multimeter
3. Read the voltage displayed in Betaflight (top bar)
4. Adjust scale until they match:
“`
# CLI method:
set vbat_scale = 110 # Default. Increase if Betaflight reads low, decrease if high
set vbat_divider = 10 # Hardware divider ratio. Usually 10:1
“`
**Formula**: `Corrected Scale = Current Scale × (Multimeter Reading ÷ Betaflight Reading)`
Example: Multimeter shows 16.8V, Betaflight shows 16.4V → `110 × (16.8/16.4) = 112.7`
## Step 2: Current Sensor Calibration (The Accurate Method)
### Method A: Charger Method (Recommended)
1. Fly a full pack normally
2. Note the “mAh Drawn” value from OSD after landing (e.g., 1050mAh)
3. Charge the battery fully and note how many mAh the charger puts in (e.g., 1200mAh)
4. Calculate the correction:
“`
New Scale = Current Scale × (Charger mAh ÷ OSD mAh)
New Scale = 400 × (1200 ÷ 1050) = 457
“`
### Method B: Current Meter Method
Use a clamp meter or bench power supply to measure actual current at a known throttle level, then adjust:
“`
set ibata_scale = 400 # Default scale
set ibata_offset = 0 # Current offset at zero throttle
“`
### Fine-Tuning by Battery Percentage
| OSD mAh vs Charger mAh | Action |
|————————|——–|
| OSD reads HIGHER than charger | DECREASE ibata_scale |
| OSD reads LOWER than charger | INCREASE ibata_scale |
| Within 5% error | Good enough — stop calibrating |
## Step 3: Offset Calibration
Current offset removes “phantom” current draw when motors are stopped:
1. Plug in battery with props OFF
2. In Betaflight Power & Battery tab, check “Amperage” reading
3. If it reads 0.2–1.0A with motors idle, adjust offset:
“`
set ibata_offset = 20 # In 0.01A units (20 = 0.20A)
“`
Make it read as close to 0.00A as possible.
## Step 4: OSD Warning Setup
Once calibrated, set intelligent battery warnings:
“`
set battery_capacity = 1300 # Your battery capacity in mAh
set vbat_min_cell_voltage = 330 # Warning at 3.3V per cell
set vbat_max_cell_voltage = 430 # Max cell voltage
set vbat_warning_cell_voltage = 350 # Land Now at 3.5V per cell
“`
## Calibration Values Reference
| Flight Controller | Typical ibata_scale | Notes |
|——————-|———————|——-|
| SpeedyBee F405 V3 | 210–260 | Uses INA219 sensor |
| GEPRC F722 AIO | 100–180 | Onboard shunt |
| HAKRC F722 | 350–470 | Wide variation |
| JHEMCU F405 AIO | 100–200 | Calibrate per board |
| BetaFPV F4 AIO | 250–350 | Whoop boards drift |
## Recommended Current Sensing Hardware
For build-your-own systems, premium flight controllers with dedicated INA228 current sensors deliver ±2% accuracy out of the box. Browse [uavmodel.com](https://uavmodel.com) for flight controllers with precision current sensing, or add an external current sensor module to upgrade any existing build.
## Watch: Betaflight Current Sensor Calibration
## Calibration Checklist
– [ ] Voltage matches multimeter reading (±0.1V)
– [ ] Current reads 0.00A with motors stopped
– [ ] mAh drawn matches charger input within 5%
– [ ] Battery warnings set appropriately
– [ ] OSD displays “Battery Average Cell Voltage” and “mAh Drawn”
– [ ] Calibrated after a full “normal” flight (not hovering)
Accurate current sensing transforms your OSD from a rough guess into a precision fuel gauge. Spend 15 minutes calibrating, and you’ll never damage a battery from over-discharge again.
