The EKF cannot start until the GPS has been identified
What ArduPilot says:
- EKF3 waiting for GPS config data
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
GPS1_TYPEnames a specific receiver type, but no GPS answers on its port.CheckThe GPS status in the ground station is No GPS. With
GPS1_TYPE1 (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_PROTOCOL5, its TX to the port's RX). If the type was a guess, setGPS1_TYPEto 1; if no GPS is fitted, to 0. Reboot.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.
The GPS is wired receive-only on purpose (one wire, or a port shared with something else).
Check
GPS_AUTO_CONFIGis 1 or 2, so the flight controller keeps trying to configure a GPS it cannot reach.FixSet
GPS_AUTO_CONFIGto 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
| Parameter | What it is |
|---|---|
GPS1_TYPE | GPS type |
GPS_AUTO_CONFIG | Automatic GPS configuration |
GPS1_DELAY_MS | GPS delay in milliseconds |
EK3_SRC1_POSXY | Position Horizontal Source (Primary) |
SERIAL3_PROTOCOL | Serial 3 (GPS) protocol selection |
SERIAL4_PROTOCOL | Serial4 protocol selection |
Where to do it:Setup & Tuning GuideBoard & Wiring Planner
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