A health flag, put into words for the transmitter's screen
What ArduPilot says:
- Bad GPS Health
- Bad or No Terrain Data
- Bad LiDAR Health
- Bad Accel Health
- Bad AHRS
- No RC Receiver
Also explained here: 6 more
- Bad Compass Health
- Bad Baro Health
- Bad Gyro Health
- Bad Logging
- Geofence Breach
- Bad OptFlow Health
These short lines are not sent by a sensor. The code that feeds telemetry to the transmitter (the Yaapu script over FrSky or CRSF/ELRS, Spektrum) looks at the health flags a ground station gets in SYS_STATUS and, at most once every 5 seconds, turns the first unhealthy one into words. Only one is shown at a time, in this order: GPS, gyro, accelerometer, compass, barometer, rangefinder (“LiDAR”), optical flow, terrain, fence, AHRS, receiver, logging. Unhealthy means present, switched on and not working right.
What to do, most likely first
“Bad GPS Health”: a GPS was found, and its data now comes late or not at all.
CheckOn a ground station, look at the GPS status and the pre-arm messages about the GPS.
FixCheck the GPS cable and its port; a GPS that drops out on the ground will drop out in the air.
“Bad AHRS”, “Bad Gyro Health”, “Bad Accel Health”: the attitude estimate is not ready, or a calibration is missing or failed.
CheckNormal for the first half minute after power-on. Later, look for pre-arm messages about the EKF, the gyros or the accelerometers.
FixKeep the aircraft still while it starts, so the gyros can calibrate; calibrate the accelerometers if that was never done.
“Bad Compass Health”, “Bad Baro Health”, “Bad LiDAR Health”, “Bad OptFlow Health”: that sensor is switched on and gives no good data.
CheckThe pre-arm message for the same sensor says more: read it on a ground station.
FixFollow that message. For a rangefinder or optical-flow sensor: wiring, port and type parameters.
“No RC Receiver”: the receiver was seen earlier and is in failsafe now. “Bad Logging”: logging is on and has failed.
CheckReading “No RC Receiver” on the transmitter means telemetry still gets down while the sticks do not get up. For “Bad Logging” see “Logging failed”.
FixTreat a lost uplink as a radio failsafe: range, antennas, the receiver's wiring. For logging, check the card.
“Geofence Breach”: the aircraft is outside its fence. “Bad or No Terrain Data”: terrain following is in use and there is no terrain data for this place.
FixFor the fence, fly back inside or let the fence action do it. For terrain, let the ground station load the data before take-off, or put the terrain files on the card.
The transmitter shows only the first flag on the list, and never the reason. Connect a ground station and read the pre-arm messages before deciding anything.
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
The code that sends it
Bad GPS Health
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_sensor_status_flags() · Open in ArduPilot Copter-4.7.1
Bad or No Terrain Data
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_sensor_status_flags() · Open in ArduPilot Copter-4.7.1
Bad LiDAR Health
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_sensor_status_flags() · Open in ArduPilot Copter-4.7.1
Bad Accel Health
libraries/AP_RCTelemetry/AP_RCTelemetry.cpp AP_RCTelemetry::check_sensor_status_flags() · Open in ArduPilot Copter-4.7.1
And 8 more messages, sent from the same places.