NMEA protocol GPS gives error Prearm : GPS is not healthy

i have been using NMEA protocol GPS on CUBE black running Arducopter 4.1.5
GPS baud rate is 115200 and its GPS position Update rate set to 5Hz. and GNSS constellation is GPS +NavIC

The arducopter configuration of the gps as follows:

Screenshot (570)

GPS is working well and its output format also verified ok.but when i change the flight mode to gps aided mode like Loiter ,auto,and RTL i got prearm message that Prearm:GPS is not healthy

what wrong in this configuration ?

What happens if you set the GPS type to AUTO?

I didn’t set that and try . Since it’s NMEA output I hava set NMEA gps type.

If i set GPS_TYPE 1 = 1 ( AUTO) it doesn’t recognise the gps and gps status showing on the mission planner is No GPS.

But I can see that gps fix led is blinking it’s shows 3D fix.

@rmackay9 can you help on this ?

Hi @kalai1219,

I think I’ll need to see an onboard log but the most likely reason is that the GPS is not updating at 5hz. Instead it is probably updating at a lower rate. If we see an onboard log I think we will probably see that it’s updating too slowly.

Thank for reviewing but as you can see in my 1st of this thread I have configured gps update rates to 5hz only which I have highlighted there in GNSS viewer software.

I will send on board log with LOG_DISARMED = 1.

hi @rmackay9
Here is the onboard log with LOG_DISARMED = 1
https://drive.google.com/file/d/1_C66ony60naeh61HusPzExF_qY9xvZJp/view?usp=sharing

Hi @rmackay9 have seen the log by any chance…is the gps update rate is ok ?

hi @rmackay9 i have checked GPS refresh time in flight log .is this ok


you can see in the response tab of GNSS viewer position update rate is 5HZ and NMEA message interval every thing looks ok to me.

I vaguely remember something like this happens if you try and run without a UBLOX gps as ublox protocal sends a lot more parameters than NMEA so it thinks the GPS isnt healthy when that data is missing but I could be wrong it was a long time ago.

plug in a secondary gps like a UBLOX M8N and the error should go away.

I had try that and it’s working…my aim is to work with what gps I have.

It will fly with the gps you have but its just getting the missing data from the second gps so it stops complaining or you can just ignore the error message.

how could we find which data is missing.

what are all the NMEA sentence ardupilot need to understand its health GPS?

The way everyone else has solved this issue is with a second UBLOX GPS, I have only seen it before when using some exotic RTK gps setups. The data its looking for is not part of the nmea protocol, its in the ublox protocol.

but i have set Fc gps protocol as NMEA right then why should it look for UBX protocol?

not sure, its possible it thinks the gps is configured incorrectly, have you disabled GPS_AUTO_CONFIG?

GPS _AUTO_CONFIG = 0 …,.as you can in the 1st post of this thread.

change EK3_GPS_CHECK to 3 it should ease up the prearm checks on the gps.


After setting also I got still pre arm: GPS Not healthy

What are the NMEA sentence is mandatory to understand ardupilot has good gps position?