The GPS has no 3D fix yet
What ArduPilot says:
- PreArm: GPS N: Bad fix
The GPS with that number (1 or 2) is connected, but has not yet worked out a position in three dimensions, which takes at least four satellites. Every configured GPS must have a 3D fix, not only the one in use. A copter runs this check only when it needs a position: the flight mode uses GPS (Loiter, PosHold, Auto, Guided, RTL, Drift and others), a circular or polygon fence is on, or Super Simple is on.
What to do, most likely first
The GPS was powered only a moment ago, or is indoors.
CheckThe ground station shows the fix type and the number of satellites. The first fix after a long break can take a few minutes.
FixTake the aircraft outdoors with a clear view of the sky and wait for a 3D fix.
Something on the aircraft drowns the satellite signal: a video transmitter, a camera, a USB 3 cable or a companion computer next to the antenna.
CheckThe satellite count falls when you power that device.
FixMount the GPS higher and further away (a mast), with its flat antenna facing the sky and nothing conductive above it.
A second GPS is configured but is not there, or cannot see the sky.
CheckThe message says GPS 2, and
GPS2_TYPEis not 0.FixIf no second GPS is fitted, set
GPS2_TYPEto 0 and reboot.You are arming in a mode that needs GPS although you do not mean to use it.
FixIndoors or without GPS, arm in Stabilize or AltHold.
Flying without GPS on purpose is described by parameters: GPS1_TYPE and GPS2_TYPE 0, so that ArduPilot does not wait for a receiver, and flight modes that need no position.
Parameters to look at
| Parameter | What it is |
|---|---|
GPS1_TYPE | GPS type |
GPS2_TYPE | GPS type |
FENCE_ENABLE | Fence enable/disable |
FENCE_TYPE | Fence Type |
SUPER_SIMPLE | Super Simple Mode |
Where to do it:Setup & Tuning GuideSetup & Tuning Guide
The code that sends it
PreArm: GPS N: Bad fix
libraries/AP_Arming/AP_Arming.cpp AP_Arming::gps_checks() · Open in ArduPilot Copter-4.7.1