← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The GPS is not sending positions fast and regularly enough

Stops itGPS

What ArduPilot says:

“Not healthy” is not about satellites: the receiver has a fix, but its messages come too slowly or unevenly. ArduPilot wants a position every 200 ms (5 Hz). It marks a GPS unhealthy when two messages in a row come more than 245 ms apart, when the average gap reaches 215 ms, when the data keeps arriving more than 50 ms later than expected, or when the receiver itself reports a fault (a DroneCAN GPS does).

What to do, most likely first

  1. The receiver runs at its factory rate, often 1 Hz, because ArduPilot is not configuring it.

    CheckGPS_AUTO_CONFIG is 0, or GPS1_TYPE is 5 (plain NMEA). In a log, the Delta field of the GPA message is the time between messages: it should stay at 200 ms.

    FixFor a u-blox module set GPS_AUTO_CONFIG 1 and GPS1_TYPE 1 (auto), connect both data wires and reboot: ArduPilot then sets the rate itself.

  2. The receiver cannot keep up: too many satellite systems at once, or a rate above 5 Hz.

    CheckGPS1_RATE_MS below 200 asks for more than 5 Hz, which its own description warns some receivers cannot sustain. Older and clone modules also slow down with every system switched on.

    FixSet GPS1_RATE_MS to 200. If that is not enough, limit the systems with GPS1_GNSS_MODE, for example 65 (GPS and GLONASS) or 5 (GPS and Galileo), and reboot.

  3. Extra data crowds the link to the receiver: raw data logging is on.

    FixSet GPS_RAW_DATA to 0 unless you need raw satellite data for post-processing.

  4. A DroneCAN GPS reports itself unhealthy, or its messages are held up on the CAN bus.

    CheckThe node's status in the ground station's DroneCAN screen; many other nodes on the same bus, or a missing terminator, delay messages.

    FixCheck the bus wiring and termination, and update the GPS node's firmware.

Parameters to look at

ParameterWhat it is
GPS1_RATE_MSGPS update rate in milliseconds
GPS_AUTO_CONFIGAutomatic GPS configuration
GPS1_TYPEGPS type
GPS1_GNSS_MODEGNSS system configuration
GPS_RAW_DATARaw data logging
The code that sends it

PreArm: GPS N: not healthy

libraries/AP_Arming/AP_Arming.cpp AP_Arming::gps_checks() · Open in ArduPilot Copter-4.7.1

Written here for Copter 4.6. In the tool you choose your vehicle and version, see your own parameter values beside the ones named here, and drop a flight log to have every message in it explained.

Open it in the Message & Error Explainer