How to relax GPS fix or parameters?

Hi,
I have a drone, running Arducopter 4.something, everything is working fine, no bad behaviors, but I have an issue:
I have an very old GPS on it, it does get a 3D lock (the GPS led flashes), in ArduCopter I see it has about 10 satellites and HDOP of 0.9-1.4m,
but I can’t switch to LOITER or POSHOLD, I get the error that position is needed. Sometimes (less than more) it works, but most times it does not, even after 10 minutes. When it works, I do get the ArduPilot message “EKF3 is using GPS”. When so, I can switch to loiter.
I relaxed GPS_HDOP_GOOD to 2.7m and minimum satellites to 5 and also relaxed the weight of GPS in vertical position calculation, but same behavior.
What parameters do I need to relax to allow me to fly in GPS assisted modes even with less than ideal accuracy? This prevents me from actually flying as I can’t go away more than 50 m as I need a visual clean sight in case something happens and RTL can’t be engaged of course. I understand that this can lead to poor Loiter or RTL behavior, but it’s better than not flying at all.

There is only a small number of compromises you can do for the old GPS units, as you’ve discovered.

  1. GPS_GNSS_MODE to select just specific constellations, usually just GPS and GLONASS for older GPS units
  2. GPS_MIN_ELEV sometimes better, sometimes worse - but always dispels the false “I’ve got 16 satellites, why dont we have a 3D fix?”
  3. GPS_HDOP_GOOD rarely helps, the EKF is watching a whole lot of other GPS data too, like speed and altitude
  4. start from an elevated platform (wooden table) to get up away from the ground - you dont have to land on it :slight_smile:
  5. and best for last - buy a newer GNSS unit, they are much improved and quite cheap, could probably even be retrofitted in the case of the unit you have now.

Just a couple of examples:
http://www.mateksys.com/?portfolio=m10q-5883

Thanks for the info!
The GPS itself does get a GPS fix as it’s led blinks as per it’s manual.
I usually power up, leave it on the ground for 1 minute, then arm, fly to 10 m high and keep it there in a stable position in ALT hold mode. Sometimes I can switch to loiter, most times not. Not even after 10 minutes.
I know I can buy a new GPS and it’s cheap, I have some spares ones :slight_smile: I thought that changing a param is easier than switching the GPS. No reason to throw away a GPS that works perfectly fine. I should mention that I used it over the years (last 7-8 years) and it used to get better locks (I mean really fast) in ArduCopter. But, over time, I updated from ArduCopter 2.0, 3.0, 4.0 and so on and now it gets a Ardu lock very rare. That’s why I suspected I can tweak a param to fix this.
From what I remember, it used to work very fast in 3.x and maybe 4.0 too. Only in the latest weeks/months I noticed it can’t switch to LOITER anymore. So 4.1 or 4.2

EDIT: I just relaxed all the EK3 gate and noise params related to the GPS, I’ll see how it goes on the next flight.

GPS_GNSS_MODE,65
Try that GPS_GNSS_MODE - since Gallileo and Beidou have come along the older GNSS units easily get overwhelmed. For example where I am Beidou shows a lot of sats but a poor HDOP so it is essentially useless, or just holds up everything else.

Thanks!
Will try. I think it’s default now, 0, so all constelations.
I should mention I’m in Europe.

a value of 65 will be fine, probably best.

(instead of spawning new thread, my question kinda fits this one)

Greetings,

My drone (4.4.7) refused to arm while having 6 sats. Basically it lost the RC, failsafe landed in dense bush. I bashed there, and wanted to fly it back, so I didn’t have to carry it through dense vegetation. I left my remote at the clearing, but I had a phone with QGC, so built up a quick plan “take off to 30M, fly to clearing, land”. QGC was showing 6 sats, but it refused to arm “Prearm failed: need position fix”. And I could not find anywhere to reduce number of sats or override that (disabling all prearming checks in QGC “Safety” tab didn’t help).
Any settings to force it to arm and transit ? (i ended up bashing through the bush with it this time)

6 satellites will often not be enough to get a good fix for navigation, despite what many assume about GNSS.

A count that low points to antenna damage or very poor view of the sky. The fix is…to fix one or both of those things.

potentially both factors, as that airframe takes 5 minutes to get basic 4 sats, then another 5 mins to get 8 sats, very rarely get more than that. Also being in the bush, probably was a bit shielded, so couldn’t get more than 6 this time.
GPS is Matek M10Q-5883.

That doesn’t sound like nominal behavior for an M10. Suggest checking the antenna wiring and placement. And get it in a place where the sky is unobstructed.

You may consider simply replacing the module entirely.

well, antenna is on top of the GPS receiver unit assembly, no wiring, so it’ll have to be a replacement. Still, is there a way to dumb down the prearm position criteria ?

You can increase GPS_HDOP_GOOD to 250 or so and see what happens.

Without a fix at all, you won’t be able to execute anything in auto mode, though, and no amount of prearm overrides will fix that.

Thanks, I’ve increased GPS_HDOP_GOOD to 250, also gone through settings and set sample rate to 10Hz (as per specs of M10Q receiver), put ticks to force using all satellite systems (instead of default “0” = “unchanged”), and enabled saving the state (hopefully will help with quicker starts).

Test flight gave me jumping between 7 and 8 satellites within couple of minutes, though it took a while to “finalize” the position fix (when on OSD the number of sats stops flashing, it sets the HOME and starts counting distance from it).
Anyway, it’s a progress.

On the other hand, in flight it still pops with GPS OR COMPASS GLITCH … GLITCH CLEARED all the time, so it may be a glitchy GPS receiver unit.

Those Glitch messages are not necessarily related to the GPS position being poor, but could also be the compass calibration (or interference) and vibrations.
If you could share a .bin log that would be handy.
Also I think it’s unwise to select all constellations, either manually or by default.
In the old days many GNSS units only worked with certain constellations, so the default value of 0 didnt matter so much. Now there is more constellations and your GNSS unit can use there all, it is still very possible to be overwhelmed by them. It’s usually better to select just the two or three that work best in your region.

interestingly, today’s attempt at test flight failed completely: for >20 minutes no satellites picked up.
It slowly figured out approximate position (I imagine from INU picking up Earth rotation, like the “real airplanes”). And no logs got saved today. Something gone really wrong with this frame… No recent crashes, no component replacements.
How long do these electronic units suppose to last ? This drone got 228 flights/38 hours logged.

i think i found the problem: dry solder joint on pin 17 (PA3) of STM32F405 microcontroller. Resoldered, now satellites found much faster.