-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Battery and Power Management
This guide covers battery monitoring, power limiting, and related features in INAV. For complete technical details, see the official Battery documentation. This wiki page is a draft - feel free to edit if you see anything incorrect or unclear.
- Enable
VBATfeature for voltage monitoring - Enable
CURRENT_METERfeature if you have a current sensor - Calibrate voltage scale (
vbat_scale) - Calibrate current sensor (
current_meter_scale,current_meter_offset) - Set battery capacity (
battery_capacity) - Configure power limits to protect your battery (optional)
- Add battery OSD elements for monitoring
-
Enable voltage monitoring:
feature VBAT -
Calibrate voltage - Measure your battery voltage with a multimeter, then adjust:
set vbat_scale = 1100 # Adjust until FC matches multimeter reading -
Configure cell voltages (in 0.01V units):
set vbat_max_cell_voltage = 420 # 4.20V - fully charged (LiPo) set vbat_warning_cell_voltage = 350 # 3.50V - warning alarm set vbat_min_cell_voltage = 330 # 3.30V - critical alarm
INAV will auto-detect the number of cells when you plug in the battery.
Battery voltage drops under load (sag). INAV can calculate the unloaded voltage:
set bat_voltage_source = SAG_COMP # Use sag-compensated voltage (recommended)
# or
set bat_voltage_source = RAW # Use raw measured voltage
Sag compensation provides more stable readings for alarms and telemetry.
-
Enable current monitoring:
feature CURRENT_METER set current_meter_type = ADC -
Calibrate - Use a multimeter in series or check against charger data:
set current_meter_scale = 400 # Adjust for your sensor set current_meter_offset = 0 # Offset at zero current
If you don't have a hardware sensor, INAV can estimate current from throttle:
set current_meter_type = VIRTUAL
set current_meter_scale = 200 # Calibrate based on actual mAh usage
set current_meter_offset = 100 # Current when disarmed
Calibration method: Fly a battery, note INAV's reported mAh, charge the battery noting actual mAh, then:
new_scale = (reported_mAh / actual_mAh) * old_scale
Track remaining capacity in mAh or mWh:
set battery_capacity_unit = MAH # or MWH for energy
set battery_capacity = 2200 # Your battery capacity in mAh
set battery_capacity_warning = 660 # Warning at 30% (660mAh left)
set battery_capacity_critical = 440 # Critical at 20% (440mAh left)
The OSD battery gauge will show remaining capacity. The battery must be full when plugged in (>= 4.1V per cell for LiPo).
Automatically limit throttle to protect your from over-current.
- Prevents exceeding battery C-rating
- Avoids damaging voltage sag
- Extends battery life
- Prevents ESC overheating
- Meets power-limited racing class rules
Power limiting uses "continuous" and "burst" limits:
- Burst: High power allowed for short time (punch-outs, climbs)
- Continuous: Sustained power limit for normal flight
When you exceed continuous, you use "burst reserve". When reserve runs out, throttle reduces smoothly back to continuous limit.
Example: Protect a 1500mAh 4S 50C battery (75A burst, 50A continuous):
battery_profile 1
set limit_cont_current = 500 # 50A continuous (500 deci-amps)
set limit_burst_current = 750 # 75A burst
set limit_burst_current_time = 100 # 10 seconds burst (100 deci-seconds)
set limit_burst_current_falldown_time = 20 # 2s smooth ramp-down
Calculate your limits:
Continuous limit (dA) = battery_mAh × continuous_C_rating / 100
Burst limit (dA) = battery_mAh × burst_C_rating / 100
Example for 1500mAh 50C/75C battery:
Continuous = 1500 × 50 / 100 = 750 dA = 75A (but use 500 = 50A for safety margin)
Burst = 1500 × 75 / 100 = 1125 dA = 112.5A (use 750 = 75A for safety margin)
Limit by watts instead of amps (useful for racing classes):
set limit_cont_power = 8000 # 800W continuous (8000 deci-watts)
set limit_burst_power = 10000 # 1000W burst
set limit_burst_power_time = 50 # 5 seconds
You can use both current AND power limits together - the most restrictive applies.
Add these OSD elements to see limiting in action:
- Remaining Burst Time: Shows how much burst reserve is left
- Active Current Limit: Shows current limit (blinks when limiting)
- Active Power Limit: Shows power limit (blinks when limiting)
When you see blinking, the system is actively reducing throttle to protect your battery!
set limit_cont_current = 0 # Disables current limiting
set limit_cont_power = 0 # Disables power limiting
INAV supports up to 3 battery profiles. Use different profiles for different batteries:
battery_profile 1
set bat_cells = 3
set battery_capacity = 2200
set limit_cont_current = 500
battery_profile 2
set bat_cells = 4
set battery_capacity = 1500
set limit_cont_current = 600
Switch profiles:
- In Configurator GUI (Battery tab)
- Via OSD menu
- CLI command:
battery_profile 1 - Stick commands (see Controls)
Auto-switching: Enable BAT_PROF_AUTOSWITCH feature to auto-select based on cell count:
feature BAT_PROF_AUTOSWITCH
- Voltage: Enable voltage monitoring, set scale and cell voltages
- Current: Select sensor type (None/ADC/Virtual), calibrate
- Capacity: Set capacity and warning/critical thresholds
- Power Limits: Configure current/power limits (continuous and burst)
- Battery Profiles: Create profiles for different batteries
OSD shows "NF" (Not Full):
- Battery isn't considered full on plugin (< 4.1V/cell for LiPo)
- Charge battery fully or reduce
vbat_max_cell_voltage - 140mVthreshold
Capacity drains too fast:
- Calibrate current sensor using charger method
- Check for interference affecting current readings
Power limiting too aggressive:
- Reduce
limit_pi_pandlimit_pi_iin advanced settings - Increase continuous limit if battery can handle it
Power limiting causes oscillation:
- Decrease
limit_pi_pfor smoother response - Increase
limit_attn_filter_cutoffto reduce noise
Maintains constant thrust as battery voltage drops:
feature THR_VBAT_COMP
set thr_comp_weight = 1.0
Estimates time/distance until RTH needed (requires GPS, current sensor, capacity in mWh):
set battery_capacity_unit = MWH
set idle_power = 50 # Power at zero throttle (5.0W)
set cruise_power = 1200 # Power at cruise throttle (120W)
| Feature | CLI Command | Configurator Tab |
|---|---|---|
| Voltage monitoring | feature VBAT |
Configuration → Battery |
| Current sensor | feature CURRENT_METER |
Configuration → Battery |
| Auto battery switching | feature BAT_PROF_AUTOSWITCH |
Configuration → Battery |
| Throttle compensation | feature THR_VBAT_COMP |
Configuration → Battery |
- Official Battery Documentation - Complete technical reference
- OSD Configuration - Add battery elements to OSD
- Controls - Stick commands for battery profiles
- Settings Reference - All battery-related settings
- Always calibrate voltage and current sensors with real measurements
- Start conservative with power limits, increase gradually
- Use mWh for capacity if you want accurate flight time estimates
- Monitor in flight using OSD elements to verify settings
- Set limits to protect, not restrict - 80-90% of max spec is good practice
- Test on bench before flying with new power limit settings
INAV Version Release Notes
8.0.0 Release Notes
7.1.0 Release Notes
7.0.0 Release Notes
6.0.0 Release Notes
5.1 Release notes
5.0.0 Release Notes
4.1.0 Release Notes
4.0.0 Release Notes
3.0.0 Release Notes
2.6.0 Release Notes
2.5.1 Release notes
2.5.0 Release Notes
2.4.0 Release Notes
2.3.0 Release Notes
2.2.1 Release Notes
2.2.0 Release Notes
2.1.0 Release Notes
2.0.0 Release Notes
1.9.1 Release notes
1.9.0 Release notes
1.8.0 Release notes
1.7.3 Release notes
Older Release Notes
QUICK START GUIDES
Getting started with iNav
Fixed Wing Guide
Howto: CC3D flight controller, minimOSD , telemetry and GPS for fixed wing
Howto: CC3D flight controller, minimOSD, GPS and LTM telemetry for fixed wing
INAV for BetaFlight users
launch mode
Multirotor guide
YouTube video guides
DevDocs Getting Started.md
DevDocs INAV_Fixed_Wing_Setup_Guide.pdf
DevDocs Safety.md
Connecting to INAV
Bluetooth setup to configure your flight controller
DevDocs Wireless Connections (BLE, TCP and UDP).md\
Flashing and Upgrading
Boards, Targets and PWM allocations
Upgrading from an older version of INAV to the current version
DevDocs Installation.md
DevDocs USB Flashing.md
Setup Tab
Live 3D Graphic & Pre-Arming Checks
Calibration Tab
Accelerometer, Compass, & Optic Flow Calibration
Alignment Tool Tab
Adjust mount angle of FC & Compass
Ports Tab
Map Devices to UART Serial Ports
Receiver Tab
Set protocol and channel mapping
Mixer Tab
Set aircraft type and how its controlled
Outputs Tab
Set ESC Protocol and Servo Parameters
Modes Tab
Assign flight modes to transmitter switches
Standard Modes
Navigation Modes
Return to Home
Fixed Wing Autolaunch
Auto Launch
Configuration Tab
No wiki page currently
Failsafe Tab
Set expected behavior of aircraft upon failsafe
PID Tuning
Navigation PID tuning (FW)
Navigation PID tuning (MC)
EZ-Tune
PID Attenuation and scaling
Tune INAV PID-FF controller for fixedwing
DevDocs Autotune - fixedwing.md
DevDocs INAV PID Controller.md
DevDocs INAV_Wing_Tuning_Masterclass.pdf
DevDocs PID tuning.md
DevDocs Profiles.md
OSD and VTx
DevDocs Betaflight 4.3 compatible OSD.md
OSD custom messages
OSD Hud and ESP32 radars
DevDocs OSD.md
DevDocs VTx.md
LED Strip
DevDocs LedStrip.md
Programming
DevDocs Programming Framework.md
Adjustments
DevDocs Inflight Adjustments.md
Mission Control
iNavFlight Missions
DevDocs Safehomes.md
MultiWii Serial Protocol
MSP V2
MSP Messages reference guide
MSP Navigation Messages
INAV MSP frames changelog
Telemetry
INAV Remote Management, Control and Telemetry
MAVlink Control and Telemetry
Lightweight Telemetry (LTM)
Tethered Logging
Log when FC is connected via USB
Blackbox
DevDocs Blackbox.md
INAV blackbox variables
DevDocs USB_Mass_Storage_(MSC)_mode.md
CLI
iNav CLI variables
DevDocs Cli.md
DevDocs Settings.md
VTOL
DevDocs MixerProfile.md
DevDocs VTOL.md
TROUBLESHOOTING
"Something" is disabled Reasons
Blinkenlights
Sensor auto detect and hardware failure detection
Pixel OSD FAQs
TROUBLESHOOTING
Why do I have limited servo throw in my airplane
ADTL TOPICS, FEATURES, DEV INFO
AAT Automatic Antenna Tracker
Building custom firmware
Default values for different type of aircrafts
Source Enums
Features safe to add and remove to fit your needs.
Developer info
Making a new Virtualbox to make your own INAV[OrangeRX LRS RX and OMNIBUS F4](OrangeRX-LRS-RX-and-OMNIBUS-F4)
Rate Dynamics
Target and Sensor support
Ublox 3.01 firmware and Galileo
DevDocs Controls
DevDocs 1wire.md
DevDocs ADSB.md
DevDocs Battery.md
DevDocs Buzzer.md
DevDocs Channel forwarding.md
DevDocs Display.md
DevDocs Fixed Wing Landing.md
DevDocs GPS_fix_estimation.md
DevDocs LED pin PWM.md
DevDocs Lights.md
DevDocs OSD Joystick.md
DevDocs Servo Gimbal.md
DevDocs Temperature sensors.md
OLD LEGACY INFO
Supported boards
DevDocs Boards.md
Legacy Mixers
Legacy target ChebuzzF3
Legacy target Colibri RACE
Legacy target Motolab
Legacy target Omnibus F3
Legacy target Paris Air Hero 32
Legacy target Paris Air Hero 32 F3
Legacy target Sparky
Legacy target SPRacingF3
Legacy target SPRacingF3EVO
Legacy target SPRacingF3EVO_1SS
DevDocs Configuration.md
Request form new PRESET
DevDocs Introduction.md
Welcome to INAV, useful links and products
UAV Interconnect Bus
DevDocs Rangefinder.md
DevDocs Rssi.md
DevDocs Runcam device.md
DevDocs Serial.md
DevDocs Telemetry.md
DevDocs Rx.md
DevDocs Spektrum bind.md
DevDocs INAV_Autolaunch.pdf