← All tools

Message & Error Explainer

What an ArduPilot message means and what to do about it

Українська

This mode needs a position estimate, and there is none

Stops itFlight modesCopter only

What ArduPilot says:

The mode you asked for flies by position (Loiter, PosHold, RTL, Auto, Guided, Circle, Brake, SmartRTL, Drift, Follow, ZigZag, Throw), and, armed, the copter has no position it trusts: the EKF, ArduPilot's position and attitude estimator, has neither a good absolute position (GPS) nor a relative one (optical flow, visual odometry), or the EKF failsafe is active. The copter stays in its present mode.

What to do, most likely first

  1. The copter took off before the EKF had a position: the GPS had no fix yet, or had one for too short a time.

    CheckIn the ground station the GPS shows no 3D fix or only a few satellites; in the log there is no “is using GPS” before take-off.

    FixBefore take-off wait for the message “EKF3 IMU0 is using GPS” (and the same for IMU1), or arm in Loiter: its arming checks refuse to arm without a position.

  2. The position was lost or rejected in flight: jamming, a GPS glitch, or an EKF failsafe.

    Check“GPS Glitch or Compass error” or “EKF variance” comes before the refusal.

    FixFly back in AltHold or Stabilize, which need no position; then find the cause under those messages.

  3. The EKF has no position source at all: EK3_SRC1_POSXY is 0, or no GPS is fitted.

    FixWithout a position source only Stabilize, AltHold and Acro can be flown. To use the other modes, fit a GPS and set EK3_SRC1_POSXY to 3.

  4. The EKF is waiting for a heading: with no usable compass it cannot start using the GPS.

    CheckThe log lacks “yaw alignment complete”, or pre-arm messages name the compass.

    FixCalibrate the compass, or check that the one in the GPS module is detected.

Parameters to look at

ParameterWhat it is
EK3_SRC1_POSXYPosition Horizontal Source (Primary)
GPS_TYPE1st GPS type
FLTMODE1Flight Mode 1
FLTMODE2Flight Mode 2
FLTMODE3Flight Mode 3
The code that sends it

requires position

ArduCopter/mode.cpp Copter::set_mode() · 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