A battery failsafe from the last flight is still set
What ArduPilot says:
- PreArm: Battery failsafe
While it was armed, the battery went below a low or critical limit (BATT_LOW_VOLT, BATT_CRT_VOLT, or the capacity limits BATT_LOW_MAH and BATT_CRT_MAH) and a battery failsafe was raised. The failsafe stays set after landing, and the copter will not arm again while it is.
What to do, most likely first
The battery is flat: this is the flight that used it up.
FixFit a charged battery and reboot the flight controller: the failsafe is cleared by the reboot, not by the new battery alone.
The battery was swapped without powering the flight controller off (it stayed on USB, for example).
FixReboot the flight controller. If it counts used capacity, the reboot also sets that back to zero.
The limits do not suit the battery, so a healthy pack trips them under load.
CheckThe Failsafe Explainer shows, from your parameters, at what voltage and capacity each stage fires.
FixSet the limits for your pack with the battery failsafe step of the guide.
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_CAPACITY | Battery capacity |
Where to do it:Failsafe ExplainerSetup & Tuning Guide
The code that sends it
PreArm: Battery failsafe
ArduCopter/AP_Arming.cpp AP_Arming_Copter::board_voltage_checks() · Open in ArduPilot Copter-4.6.3
ArduCopter/AP_Arming_Copter.cpp AP_Arming_Copter::board_voltage_checks() · Open in ArduPilot Copter-4.7.1