Unhealthy GPS in Arducopter even with good NSat and HDOP

Hi everyone,

I am using a Here 3+ GPS for my quadcopter. Up until last week, the drone flew well without any issues. From the last 3 days, it is getting “Unhealthy GPS” error. The Satellite count is being maintained above 15 in general and the HDOP is coming to as low as 0.54. Despite these, the drone is drifting a lot in the Loiter and AUTO modes. The Altitude and Yaw are maintaining well. The flight behaviour in Alt_hold mode is good.

I have also replaced the GPS module, yet the issue remained. I am attaching the log files of a hover flight and an AUTO mission flight. Any suggestions and troubleshooting tips are sincerely appreciated.

Hover flight log

AUTO mission flight log

Thanks for the help..!

Solar activity does influence GPS position accuracy and reliability.

Another aspect is interference, do you have USB 3 devices on board.

Regarding HDOP, it is not a measurement of accuracy. It’s just a proxy for potential accuracy. It was used in the past when the GNSS receivers ware incapable of producing an accuracy estimation.

1 Like

No, there aren’t any USB3 devices on board.
The drone flew well until a couple of weeks ago in similar weather conditions.

3 weeks ago there were no solar flares:

Your GPS is actually perfectly fine (15 sats and 0.54 HDOP is great). The real issue is Compass-mot (magnetic interference from your motors).

It seems that When you increase throttle, the high current flowing through your wires creates a magnetic field. This “blinds” your compass. ArduPilot sees your compass pointing one way, but your GPS says you’re moving another way. Because of this conflict, the flight controller loses trust and gives you the “Unhealthy GPS” error.

Move your GPS/Compass module as far as possible from the battery, ESCs, and power wires (use a taller GPS mast if you can). Also make the magnetic calibration if needed.

In my opinion, your drone isn’t “lost,” it’s just “confused” by the magnetic noise from the motors

We have done the Compass-Mot calibration during the time of assembly and since then, there is no change in either the motors or propellers or battery or GPS position. Also, the heading of the drone is working fine, if there is any compass error, the heading should also fluctuate right..?

@amilcarlucas based on your theory, other drones should also be facing this issue right, have you heard of any such incidents?

You mean HUD probably. Actually, if you check your XKF1[0].Yaw log, your heading is fluctuating it is performing sudden resets. You can twist your power wires the positive and negative wires going from the battery to the motors and ESC together.

Thanks @MehmeTuncekin, i will look into it.
Also, as an additional information, here are my GPS settings:

I have an Emlid Reach M2 PPK as a secondary GPS. As my GPS_AUTO_SWITCH is set to “Use best” and my PPK (GPS2) does show a higher satellite count (upto 32) than GPS 1 (upto 19), I think the PPK is being used for navigation. Although, this parameter is unchanged for a long time, I have to check the settings change in the PPK end. If navigation or something like that is enabled in the PPK recently, that might be making the Flight controller to use it for navigation.

I’ll update here once i get a clarity on the PPK configuration.

One one of your GNSS receivers delivers positions at a rate lower than 5Hz you get the “Unhealthy GPS” error.

The solution is to change the GNSS_MODE parameter to limit the amount of satellite constellations processed.

Mag and GPS course divergence is not a GPS health check.

Hello all,

As I mentioned, the GPS was set to use best instead of only primary, the Emlid PPK was being used all these days for the navigation since it had higher satellite count. But recently its firmware has been updated from version 28 to 33, only after that the PPK gave “Unhealthy GPS” error despite still having higher satellite count than Here 3+.

Is anyone familiar with what might happen because of the Emlid Reach firmware update or can suggest in diagnosing this?

The solution is described 2 posts above. And is marked as solution.

Have you understood it? And tested it?

Too many satellites increase the GNSS processor load, reducing the update rate and causing the unhealthy GPS error.

Many satellites are good, but too many are bad.