Dead reckoning: flying on an estimated position, without GPS
What ArduPilot says:
- ERR FAILSAFE_DEADRECKON (Subsys 31)
The EKF lost its position source (usually GPS) and is estimating position from the wind and drag model alone, which works only when that model is set up (EK3_DRAG_BCOEF_X, EK3_DRAG_BCOEF_Y). “Dead Reckoning started”: in a mode that needs position the copter takes the FS_DR_ENABLE action at once (2, RTL, by default) while the estimate is still usable. “Dead Reckoning timeout”: FS_DR_TIMEOUT seconds (30 by default) have passed, the estimate is no longer trusted and the EKF failsafe follows. “Dead Reckoning stopped”: the position source is back.
What to do, most likely first
The GPS was lost in flight: jamming, spoofing protection, an antenna or cable fault.
CheckGPS.Status and GPS.NSats in the log drop right before “Dead Reckoning started”.
FixLet the copter use the time it has: the default action flies it home while the estimate lasts. If you see it, take over in AltHold before the timeout.
FS_DR_TIMEOUTis longer than the estimate stays good: the position error grows with every second and with every change of wind.FixChoose
FS_DR_TIMEOUTfrom a test: fly with the GPS switched off by an auxiliary switch near you and see how far the estimate wanders in that time.
“ERR FAILSAFE_DEADRECKON-1” is written when the action is taken. On a copter without the drag model set up, dead reckoning never starts: losing the GPS leads straight to the EKF failsafe.
Parameters to look at
| Parameter | What it is |
|---|---|
FS_DR_ENABLE | DeadReckon Failsafe Action |
FS_DR_TIMEOUT | DeadReckon Failsafe Timeout |
EK3_DRAG_BCOEF_X | Ballistic coefficient for X axis drag |
EK3_DRAG_BCOEF_Y | Ballistic coefficient for Y axis drag |
FS_EKF_ACTION | EKF Failsafe Action |
Where to do it:Failsafe ExplainerSetup & Tuning Guide