← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The EKF cannot start until the GPS has been identified

Stops itPosition and attitude estimate (EKF, AHRS)

What ArduPilot says:

Before it starts, the EKF (ArduPilot's position and attitude estimator) sizes its memory from the GPS's delay, and the GPS driver knows that delay only once it has identified the receiver. While it waits the EKF does not start, nothing can arm, and this line repeats every 10 s: as information at first, as a warning from 15 s after boot and as an error from 30 s. It never gives up by itself.

What to do, most likely first

  1. GPS1_TYPE names a specific receiver type, but no GPS answers on its port.

    CheckThe GPS status in the ground station is No GPS. With GPS1_TYPE 1 (AUTO) or 0 (none) the EKF does not wait for a missing GPS; with any other value it waits for ever.

    FixConnect the GPS and check its wiring and port (SERIALn_PROTOCOL 5, its TX to the port's RX). If the type was a guess, set GPS1_TYPE to 1; if no GPS is fitted, to 0. Reboot.

  2. A u-blox GPS is connected but has not yet told the flight controller which generation it is.

    CheckThe line appears once or twice after power-on and stops by itself within about 30 s. If it never stops although the GPS shows a fix, the flight controller can hear the GPS but cannot ask it anything.

    FixWait. If it never stops, repair the wire from the flight controller's TX to the GPS's RX.

  3. The GPS is wired receive-only on purpose (one wire, or a port shared with something else).

    CheckGPS_AUTO_CONFIG is 1 or 2, so the flight controller keeps trying to configure a GPS it cannot reach.

    FixSet GPS_AUTO_CONFIG to 0 and reboot: the GPS is then used as it is and the EKF takes a default delay. Configure the receiver beforehand in its own software.

The EKF waits only when one of its sources is the GPS: EK3_SRC1_POSXY, EK3_SRC1_VELXY, EK3_SRC1_POSZ or EK3_SRC1_VELZ set to 3, or EK3_SRC1_YAW set to 8.

Parameters to look at

ParameterWhat it is
GPS1_TYPEGPS type
GPS_AUTO_CONFIGAutomatic GPS configuration
GPS1_DELAY_MSGPS delay in milliseconds
EK3_SRC1_POSXYPosition Horizontal Source (Primary)
SERIAL3_PROTOCOLSerial 3 (GPS) protocol selection
SERIAL4_PROTOCOLSerial4 protocol selection
The code that sends it

EKF3 waiting for GPS config data

libraries/AP_NavEKF3/AP_NavEKF3_core.cpp NavEKF3_core::setup_core() · 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