A barometer is not giving usable readings
What ArduPilot says:
- PreArm: Baro: …
The barometer measures air pressure, from which ArduPilot gets its height. “Baro: not healthy” means at least one of the barometers found at start-up fails a basic test: no reading for 0.5 s, a reading that has not changed at all for 2 s, a height that is not a number, or no ground calibration. Every barometer has to pass, not only the one in use. “Baro: GPS alt error …” is a different test, explained separately.
What to do, most likely first
A second barometer drops in and out: an external one on a long or loose cable, or the one inside a DroneCAN GPS module.
CheckThe ground station lists two or three barometers and one of them freezes or shows no pressure.
FixRepair the cable or connector of that sensor. If you never meant to have an external barometer, clear its bit in
BARO_PROBE_EXTand reboot.The built-in barometer stopped answering after start-up: a supply dip, or a failing chip.
CheckThe altitude in the ground station stands perfectly still instead of wandering by a few centimetres. A reboot brings it back for a while.
FixCheck the board's 5 V supply under load. If the barometer keeps freezing, replace the flight controller: height hold depends on it.
The ground calibration at start-up did not finish for that sensor.
CheckThere is no “Barometer N calibration complete” line for one of the barometers in the start-up messages.
FixReboot. If it repeats, treat it as the first or second cause.
In the log, error subsystem 18 (BARO) with code 4 marks the moment the barometer in use became unhealthy, and code 0 its recovery. In flight that is serious: land, and expect poor height hold until it recovers.
Parameters to look at
| Parameter | What it is |
|---|---|
BARO_PROBE_EXT | External barometers to probe |
BARO_EXT_BUS | External baro bus |
BARO_PRIMARY | Primary barometer |
BARO1_DEVID | Baro ID |
Where to do it:Firmware InspectorBoard & Wiring Planner
The code that sends it
PreArm: Baro: …
libraries/AP_Arming/AP_Arming.cpp AP_Arming::barometer_checks() · Open in ArduPilot Copter-4.7.1