SlashDevin / NeoGPS

NMEA and ublox GPS parser for Arduino, configurable to use as few as 10 bytes of RAM
GNU General Public License v3.0
707 stars 195 forks source link

Inconsistent satellite count #121

Open hsuomal opened 5 years ago

hsuomal commented 5 years ago

I'm using v4.2.9 and seem to get inconsistant satellite count when using multiple GNSS talkers. Currently I have talkers GP, GL, GA and GN enabled on gps. (GN being the combined)

My code polls gps every 0.1s (with 4k large serial buffer ie. data loss inlikely). Before using data I check that fix.valid.location!=0 and gps.satellites_valid()=0 If neither of these fail, I'll do a while-loop to poll any data there is.

GPS coordinates seem valid all the time but satellite count sometimes has only partial satellite count (like some message was missed). Thats's normal, but when I move to a very bad location like outside to inside, satellite count keeps being very high (like 33) untill fix is probably lost totally. Sat count seems to not get smaller at all. I hope I'm not making a mistake when I think gps.sat_count should be number of satellites currently tracked.

I've also noticed that sometimes I see other talker IDs on talker field than GN, which is the last one to talk every second. Sat count is not low every time talker ID is not GN. This could be by using gps data between tarkers perhaps.

No difference if using explicit or implicit merging.

I'm parsing all these:

define NMEAGPS_PARSE_GGA

define NMEAGPS_PARSE_GLL

define NMEAGPS_PARSE_GSA

define NMEAGPS_PARSE_GSV

//#define NMEAGPS_PARSE_GST

define NMEAGPS_PARSE_RMC

define NMEAGPS_PARSE_VTG

No difference if FIX_MAX 1 or 2

define NMEAGPS_FIX_MAX 1

define NMEAGPS_KEEP_NEWEST_FIXES true

define NMEAGPS_SAVE_TALKER_ID

define NMEAGPS_PARSE_SATELLITES