Loiter Mode – ‘PreArm: Need Position Estimate’ Error Despite Valid GPS Fix (Matek H743, No Optical Flow Yet)”

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.


:package: 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

:wrench: 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

:red_exclamation_mark: 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.


:red_question_mark: Questions:

  1. Does the ~20° yaw offset between actual and reported heading cause EKF to reject the GPS-based position?
  2. Is it possible that the GPS yaw check fails even if EKF3 IMU0 is using GPS is shown?
  3. Should I disable the yaw error bit from EK3_GPS_CHECK, or is the root problem the compass orientation/calibration?
  4. With GPS + barometer + external compass only (no optical flow), should Loiter mode work reliably?
  5. Any way to further debug why EKF is not accepting position as valid?

Thanks in advance for any help — much appreciated!