In recent flights I have noticed that the MP hud now states “Bad Battery” when the BATT_FS_LOW_ACT triggers. I was just wondering when the change from “Low Battery” to “Bad Battery” was made - because I was quite confused when I first got the message.
I had the same thing happen but could not find the error or event when reviewing the flight logs. I also tested the battery and it seems like it was just a low battery. I was worried I would have to replace the battery, but that does not seem to be the case. If it was indeed a “Low Battery” I believe the language should be changed back to avoid confusion.
Bad battery comes from the sensor health message sent via mavlink by the flight controller. Since it is a single bit, there is no distinction between low battery, overheated battery or anything else. Changing it to “Low Battery” could create misunderstanding on systems with intelligent batteries.
Thank you Eosbandi for clarifying the “Bad Battery” message. Given that this message is a general indication of a fault(s) with the battery I suggest that the message display to the pilot be more general i.e. “Battery Error”. The Ardupilot documentation I find, under Battery Failsafe, specifically states that the ground station HUD will display “Low Battery!”. The documentation should be updated to the correct message. I suggest that the documentation explains the message as you did.
Looking at this a bit more, it is clear that Arducopter has specific messages for “Battery Failsafe” and battery low i.e. from a recent log “Battery 1 is low 10.47v used 259 man”. What is more, I interpret the condition of a battery being below BATT_LOW_VOLT and or BATT_LOW_MAH as that of a condition or state not necessarily and error. I would argue that is better classified as a warning. Could not the code be altered to pass this state along via Mavlink as was evidently done in the past?
Digging deeper in a quick review of MAVlink documentation, it is evident that battery monitoring is rightfully in-depth. One can see under Microservices, Battery Protocol, message “BATTERY_STATUS”, there is a MAV_BATTERY_CHARGE_STATE (https://mavlink.io/en/messages/common.html#MAV_BATTERY_CHARGE_STATE) explained as “State for extent of discharge, provided by autopilot for warning or external reactions”. This intern has a value MAV_BATTERY_CHARGE_STATE_LOW (https://mavlink.io/en/messages/common.html#MAV_BATTERY_CHARGE_STATE_LOW) explained as “Battery state is low, warn and monitor close”. It seems that the low battery state is being passed to the ground station via Mavlink. If it is, why is it not being used as a message for the pilot rather than the more generic and misleading “Bad Battery”?