Hi everyone,
I’m facing the following issue when trying to switch to Loiter mode:
PreArm: Need Position Estimate
This happens even though I have a strong GPS fix and compass calibration appears successful.
Setup Overview:
- Flight Controller: Mateksys H743-WLITE
- GPS Module: u-blox M8N with integrated compass (external compass only)
- Barometer: Onboard
- No Optical Flow / No Rangefinder connected yet
- No internal compass on FC
EKF Settings:
plaintext
KopyalaDüzenle
EK3_ENABLE = 1
EK3_SRC1_POSXY = 3 ; GPS
EK3_SRC1_POSZ = 1 ; Barometer
EK3_SRC1_VELXY = 3 ; GPS
EK3_SRC1_VELZ = 3 ; GPS
EK3_SRC1_YAW = 1 ; Compass
EK3_GPS_CHECK = 31 ; NSats + HDOP + speed error + position error + yaw error
Note:
- GPS has a 3D fix, 12+ satellites, HDOP around 0.9
- Compass points ~340° while facing magnetic north (expected 0°)
COMPASS_ORIENT = 0
(arrow forward), external compass only- Compass was calibrated using Mission Planner onboard method
Problem Summary:
Although all required GPS checkboxes are satisfied (based on the bitmask of EK3_GPS_CHECK = 55
), I consistently get “Need Position Estimate” when attempting to arm in Loiter mode. There are no GPS glitch messages, and EKF appears to be active.
Questions:
- Does the ~20° yaw offset between actual and reported heading cause EKF to reject the GPS-based position?
- Is it possible that the GPS yaw check fails even if
EKF3 IMU0 is using GPS
is shown? - Should I disable the yaw error bit from
EK3_GPS_CHECK
, or is the root problem the compass orientation/calibration? - With GPS + barometer + external compass only (no optical flow), should Loiter mode work reliably?
- Any way to further debug why EKF is not accepting position as valid?
Thanks in advance for any help — much appreciated!