The chosen estimator is not the one in use
What ArduPilot says:
- not using configured AHRS type
- Config Error: EKF1 not available
- invalid EKF type
AHRS_EKF_TYPE says which estimator should supply position and attitude (3 is EKF3, the default). Another one is doing the job right now: usually DCM, the simple back-up, because the EKF has not started. A copter cannot fly on DCM, so it will not arm. The comparison is made only when a compass is in use.
What to do, most likely first
The EKF has not started yet: these are the first seconds after power-on.
FixWait 10 to 20 s; “AHRS: EKF3 active” tells you it has taken over.
The chosen EKF is switched off.
Check
AHRS_EKF_TYPEis 3 andEK3_ENABLEis 0, orAHRS_EKF_TYPEis 2 andEK2_ENABLEis 0.FixUse EKF3: set
AHRS_EKF_TYPEto 3 andEK3_ENABLEto 1, then reboot.The EKF cannot start because it is waiting for the GPS or ran out of memory.
CheckLook further up the messages for “EKF3 waiting for GPS config data” or “EKF3 not enough memory”.
FixSolve that message; this one follows from it.
“EKF1 not available” is a start-up error: AHRS_EKF_TYPE is 1, an estimator removed long ago. Set it to 3 and reboot.
Parameters to look at
| Parameter | What it is |
|---|---|
AHRS_EKF_TYPE | Use NavEKF Kalman filter for attitude and position estimation |
EK3_ENABLE | Enable EKF3 |
EK2_ENABLE | Enable EKF2 |
GPS1_TYPE | GPS type |
COMPASS_USE | Use compass for yaw |
Where to do it:Setup & Tuning Guide
The code that sends it
not using configured AHRS type
libraries/AP_AHRS/AP_AHRS.cpp AP_AHRS::pre_arm_check() · Open in ArduPilot Copter-4.7.1
Config Error: EKF1 not available
libraries/AP_AHRS/AP_AHRS.cpp AP_AHRS::init() · Open in ArduPilot Copter-4.7.1
invalid EKF type
libraries/AP_AHRS/AP_AHRS.cpp AP_AHRS::pre_arm_check() · Open in ArduPilot Copter-4.7.1