The battery failsafe has triggered
What ArduPilot says:
- Battery N is … N.NV used N.N mAh
The battery monitor sends this, only while armed, the moment a battery crosses a failsafe level. “low” and “critical”: the voltage stayed under BATT_LOW_VOLT or BATT_CRT_VOLT for BATT_LOW_TIMER seconds (10 by default) without a break, or the charge left (BATT_CAPACITY minus the mAh used) fell under BATT_LOW_MAH or BATT_CRT_MAH, which acts at once. “missing, last:” means the monitor has given no reading for 5 s. The numbers are the voltage now and the mAh used since power-on. The aircraft then does what BATT_FS_LOW_ACT or BATT_FS_CRT_ACT says.
What to do, most likely first
The battery is running down: the failsafe is doing its job.
CheckThe voltage is near the threshold and the mAh figure fits the flight time.
FixLand now, or let the failsafe action bring it back; do not change mode to keep flying. Next time land earlier.
The voltage sagged under load for longer than the timer: a tired, cold or too small battery, or a long climb at full throttle.
CheckIn the log the battery voltage dips in step with the throttle and recovers when it eases, while few mAh have been used.
FixLand, then fly a battery that suits the current the aircraft draws.
BATT_FS_VOLTSRC1 makes the failsafe compare the sag-compensated (resting) voltage instead of the raw one.The thresholds or the voltage calibration do not fit this battery.
CheckA full battery sets it off within the first minutes; compare the shown voltage with a multimeter.
FixCalibrate the voltage reading, then set the thresholds for your cell count: the Setup & Tuning Guide's battery failsafe step works them out.
“missing, last:”: the monitor stopped reporting (a loose power module lead, a DroneCAN or smart battery that dropped off the bus).
CheckThe voltage in the message is the last one received.
FixLand and check the monitor's wiring. ArduPilot takes no action of its own for a missing monitor, and while it is silent no low-battery failsafe can come.
Each level is announced once and stays set until the flight controller is rebooted; on Copter it then blocks arming with “Battery failsafe”. With BATT_LOW_TIMER 0 the voltage failsafes never trigger: only the mAh ones are left.
Parameters to look at
| Parameter | What it is |
|---|---|
BATT_LOW_VOLT | Low battery voltage |
BATT_CRT_VOLT | Critical battery voltage |
BATT_LOW_MAH | Low battery capacity |
BATT_CRT_MAH | Battery critical capacity |
BATT_LOW_TIMER | Low voltage timeout |
BATT_FS_LOW_ACT | Low battery failsafe action |
BATT_FS_CRT_ACT | Critical battery failsafe action |
BATT_FS_VOLTSRC | Failsafe voltage source |
Where to do it:Failsafe ExplainerSetup & Tuning Guide
The code that sends it
Battery N is … N.NV used N.N mAh
libraries/AP_BattMonitor/AP_BattMonitor.cpp AP_BattMonitor::check_failsafes() · Open in ArduPilot Copter-4.7.1