INAV Battery, current sensor and power limits: CLI settings

Voltage and current sensor scale and offset, cell count and cell voltages, capacity and its warning levels, RTH energy margin, and the current and power limiter. Cells, voltages, capacity and limits sit in the battery profile.

35 settings in INAV 9.1. Each range and value list is read from the release's src/main/fc/settings.yaml, each default from the release's settings.yaml, with each constant and C type resolved by INAV's own settings.rb against the SITL and flight-controller target headers, so a board's own config can still change it. Set one with set name = value, then save. Paste a diff all into the CLI checker to test it against any release.

SettingTypeRange or valuesDefault 8.09.09.1Notes
airspeed_adc_channel # uint8
global
0 to 6 set by the target
needs USE_ADC
✓✓✓ ADC channel to use for analog pitot tube (airspeed) sensor. If board doesn't have a dedicated connector for analog airspeed sensor will default to 0
bat_cells # uint8
battery profile
0 to 12 0
needs USE_ADC
✓✓✓ Number of cells of the battery (0 = auto-detect), see battery documentation. 7S, 9S and 11S batteries cannot be auto-detected.
bat_voltage_src # uint8
global
RAW, SAG_COMP RAW ✓✓✓ Chose between raw and sag compensated battery voltage to use for battery alarms and telemetry. Possible values are `RAW` and `SAG_COMP`
battery_capacity # uint32
battery profile
0 to 4294967295 0 ✓✓✓ Set the battery capacity in mAh or mWh (see `battery_capacity_unit`). Used to calculate the remaining battery capacity.
battery_capacity_critical # uint32
battery profile
0 to 4294967295 0 ✓✓✓ If the remaining battery capacity goes below this threshold the battery is considered empty and the beeper will emit long beeps.
battery_capacity_unit # uint8
global
MAH, MWH MAH ✓✓✓ Unit used for `battery_capacity`, `battery_capacity_warning` and `battery_capacity_critical` [MAH/MWH] (milliAmpere hour / milliWatt hour).
battery_capacity_warning # uint32
battery profile
0 to 4294967295 0 ✓✓✓ If the remaining battery capacity goes below this threshold the beeper will emit short beeps and the relevant OSD items will blink.
cruise_power # uint32
global
0 to 4294967295 0 ✓✓✓ Power draw at cruise throttle used for remaining flight time/distance estimation in 0.01W unit
current_adc_channel # uint8
global
0 to 6 set by the target
needs USE_ADC
✓✓✓ ADC channel to use for analog current sensor input. Defaults to board CURRENT sensor input (if available). 0 = disabled
current_meter_offset # int16
global
-32768 to 32767 set by the target ✓✓✓ This sets the output offset voltage of the current sensor in millivolts.
current_meter_scale # int16
global
-10000 to 10000 set by the target ✓✓✓ This sets the output voltage to current scaling for the current sensor in 0.1 mV/A steps. 400 is 40mV/A such as the ACS756 sensor outputs. 183 is the setting for the uberdistro with a 0.25mOhm shunt.
current_meter_type # uint8
global
NONE, ADC, VIRTUAL, FAKE, ESC, SMARTPORT ADC ✓Δ✓ ADC, VIRTUAL, FAKE, ESC, SMARTPORT, NONE. The virtual current sensor, once calibrated, estimates the current value from throttle position.
9.0: new values SMARTPORT
idle_power # uint16
global
0 to 65535 0 ✓✓✓ Power draw at zero throttle used for remaining flight time/distance estimation in 0.01W unit
limit_attn_filter_cutoff # float
global
0 to 100 1.2
needs USE_POWER_LIMITS
✓✓✓ Throttle attenuation PI control output filter cutoff frequency
limit_burst_current # uint16
battery profile
0 to 4000 0
needs USE_POWER_LIMITS
✓✓✓ Burst current limit (dA): the current which is allowed during `limit_burst_current_time` after which `limit_cont_current` will be enforced, set to 0 to disable
limit_burst_current_falldown_time # uint16
battery profile
0 to 3000 0
needs USE_POWER_LIMITS
✓✓✓ Time slice at the end of the burst time during which the current limit will be ramped down from `limit_burst_current` back down to `limit_cont_current`
limit_burst_current_time # uint16
battery profile
0 to 3000 0
needs USE_POWER_LIMITS
✓✓✓ Allowed current burst time (ds) during which `limit_burst_current` is allowed and after which `limit_cont_current` will be enforced
limit_burst_power # uint16
battery profile
0 to 40000 0
needs USE_POWER_LIMITS && USE_ADC
✓✓✓ Burst power limit (dW): the current which is allowed during `limit_burst_power_time` after which `limit_cont_power` will be enforced, set to 0 to disable
limit_burst_power_falldown_time # uint16
battery profile
0 to 3000 0
needs USE_POWER_LIMITS && USE_ADC
✓✓✓ Time slice at the end of the burst time during which the power limit will be ramped down from `limit_burst_power` back down to `limit_cont_power`
limit_burst_power_time # uint16
battery profile
0 to 3000 0
needs USE_POWER_LIMITS && USE_ADC
✓✓✓ Allowed power burst time (ds) during which `limit_burst_power` is allowed and after which `limit_cont_power` will be enforced
limit_cont_current # uint16
battery profile
0 to 4000 0
needs USE_POWER_LIMITS
✓✓✓ Continous current limit (dA), set to 0 to disable
limit_cont_power # uint16
battery profile
0 to 40000 0
needs USE_POWER_LIMITS && USE_ADC
✓✓✓ Continous power limit (dW), set to 0 to disable
limit_pi_i # uint16
global
0 to 10000 100
needs USE_POWER_LIMITS
✓✓✓ Throttle attenuation PI control I term
limit_pi_p # uint16
global
0 to 10000 100
needs USE_POWER_LIMITS
✓✓✓ Throttle attenuation PI control P term
rssi_adc_channel # uint8
global
0 to 6 set by the target
needs USE_ADC
✓✓✓ ADC channel to use for analog RSSI input. Defaults to board RSSI input (if available). 0 = disabled
rth_energy_margin # uint8
global
0 to 100 5 ✓✓✓ Energy margin wanted after getting home (percent of battery energy capacity). Use for the remaining flight time/distance calculation
thr_comp_weight # float
global
0 to 2 1 ✓✓✓ Weight used for the throttle compensation based on battery voltage. See the [battery documentation](Battery.md#automatic-throttle-compensation-based-on-battery-voltage)
use_control_profile #
was controlrate_profile
uint8
battery profile
0 to 3 0 ✓Δ✓ Control profile to switch to when the battery profile is selected, 0 to disable and keep the currently selected control profile
Renamed from controlrate_profile in 9.0. INAV 9.0 merged the PID and rate profiles into one control profile; this battery-profile setting kept its range 0-3 and default 0. source
vbat_adc_channel # uint8
global
0 to 6 set by the target
needs USE_ADC
✓✓✓ ADC channel to use for battery voltage sensor. Defaults to board VBAT input (if available). 0 = disabled
vbat_cell_detect_voltage # uint16
battery profile
100 to 500 425
needs USE_ADC
✓✓✓ Maximum voltage per cell, used for auto-detecting the number of cells of the battery in 0.01V units.
vbat_max_cell_voltage # uint16
battery profile
100 to 500 420
needs USE_ADC
✓✓✓ Maximum voltage per cell in 0.01V units, default is 4.20V
vbat_meter_type # uint8
global
NONE, ADC, ESC, FAKE, SMARTPORT ADC
needs USE_ADC
✓Δ✓ Vbat voltage source. Possible values: `NONE`, `ADC`, `SMARTPORT`, `ESC`. `ESC` requires ESC telemetry enabled and running. `SMARTPORT` requires SmartPort Master enabled and running.
9.0: new values SMARTPORT
vbat_min_cell_voltage # uint16
battery profile
100 to 500 330
needs USE_ADC
✓✓✓ Minimum voltage per cell, this triggers battery out alarms, in 0.01V units, default is 330 (3.3V)
vbat_scale # uint16
global
0 to 65535 set by the target
needs USE_ADC
✓✓✓ Battery voltage calibration value. 1100 = 11:1 voltage divider (10k:1k) x 100. Adjust this slightly if reported pack voltage is different from multimeter reading. You can get current voltage by typing "status" in cli.
vbat_warning_cell_voltage # uint16
battery profile
100 to 500 350
needs USE_ADC
✓✓✓ Warning voltage per cell, this triggers battery-warning alarms, in 0.01V units, default is 350 (3.5V)

✓ present, Δ changed in that release (hover for what changed), — not in that release. “needs USE_…” is the build option the setting is compiled with: a target that does not define it has no such setting.Descriptions are INAV's own, from settings.yaml.

Other sections

What changed between releases: 8.0 → 9.0 · 9.0 → 9.1. Machine-readable: params.json (9.1.0), GPL-3.0 like the firmware it comes from.