← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

The EKF has not finished starting

Stops itPosition and attitude estimate (EKF, AHRS)

What ArduPilot says:

The EKF is ArduPilot's position and attitude estimator; one copy of it (a core, or lane) runs for each IMU it is told to use. “not started” means the copies have not been created yet: that happens about 1 s after boot and is put off while the GPS is still being identified. “still initialising” means a copy exists but does not call itself healthy yet: it needs 1 s of sensor data and 1 s more to settle, and on the ground its position and height must stay within 1 m of where they started.

What to do, most likely first

  1. It was powered on moments ago.

    CheckWait 10 to 30 s with the aircraft still. “EKF3 IMU0 initialised” and “EKF3 IMU0 tilt alignment complete” show that it is moving on.

    FixNothing to change: arm once the message is gone.

  2. The aircraft is being moved, or stands on something that shakes (a running car, a boat), so the estimate never settles.

    CheckThe message stays while you carry the aircraft and clears a few seconds after you put it on firm ground.

    FixStart it on firm, still ground. If it was moved a lot during start-up, reboot it there.

  3. EKF3 is selected but not switched on, so it can never start.

    CheckAHRS_EKF_TYPE is 3 and EK3_ENABLE is 0.

    FixSet EK3_ENABLE to 1 and reboot.

  4. The EKF is waiting for a GPS that the parameters promise but that never answered.

    Check“EKF3 waiting for GPS config data” repeats every 10 s in the messages.

    FixSee that message: wire the GPS, or set GPS1_TYPE to what is really fitted.

A barometer whose reading wanders (sunlight or wind on the sensor, a board still warming up) moves the height by more than 1 m and keeps the EKF “initialising”. Cover the barometer with open-cell foam and give a cold board a minute.

Parameters to look at

ParameterWhat it is
AHRS_EKF_TYPEUse NavEKF Kalman filter for attitude and position estimation
EK3_ENABLEEnable EKF3
EK3_IMU_MASKBitmask of active IMUs
GPS1_TYPEGPS type
The code that sends it

EKF2 not started

libraries/AP_AHRS/AP_AHRS.cpp AP_AHRS::pre_arm_check() · Open in ArduPilot Copter-4.7.1

EKF3 still initialising

libraries/AP_NavEKF3/AP_NavEKF3_core.cpp NavEKF3_core::InitialiseVariables() · Open in ArduPilot Copter-4.7.1

EKF3 not started

libraries/AP_AHRS/AP_AHRS.cpp AP_AHRS::pre_arm_check() · Open in ArduPilot Copter-4.7.1

EKF2 still initialising

libraries/AP_NavEKF2/AP_NavEKF2_core.cpp NavEKF2_core::InitialiseVariables() · 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