This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

GPS RMC and pvt parsing

As far as I could see, only GGA NMEA sentences are enabled by default. I want to check if RMC sentences deliver positions faster, and in my prj.conf I do the following: 

CONFIG_NRF9160_GPS_NMEA_RMC=y
CONFIG_NRF9160_GPS_NMEA_GGA=n

My question, do the pvt parsing take into account RMC sentences when the trigger for the GPS handler is FIX, or do I have to parse the RMC sentences myself, and set my GPS trigger to NMEA?

  • I cannot see any mention of CONFIG_NRF9160_GPS_NMEA_RMC or CONFIG_NRF9160_GPS_NMEA_GGA in the gps code. The only code I can see that may be relevant is the following in init_app:

    	u16_t nmea_mask     = NRF_CONFIG_NMEA_GSV_MASK |
    			      NRF_CONFIG_NMEA_GSA_MASK |
    			      NRF_CONFIG_NMEA_GLL_MASK |
    			      NRF_CONFIG_NMEA_GGA_MASK |
    			      NRF_CONFIG_NMEA_RMC_MASK;

    Regarding the quicker GPS fix, I have asked about this internally & will get back to you soon. It seems we are asking an external expert for some help regarding this.

  • When I look in the nrf9160_gps.c file in the drivers section of my project, I see that by default only gga sentences are enabled, 

    In the c file, I see

    #ifdef CONFIG_NRF9160_GPS_NMEA_GSV
    nmea_mask |= NRF_CONFIG_NMEA_GSV_MASK;
    #endif
    #ifdef CONFIG_NRF9160_GPS_NMEA_GSA
    nmea_mask |= NRF_CONFIG_NMEA_GSA_MASK;
    #endif
    #ifdef CONFIG_NRF9160_GPS_NMEA_GLL
    nmea_mask |= NRF_CONFIG_NMEA_GLL_MASK;
    #endif
    #ifdef CONFIG_NRF9160_GPS_NMEA_GGA
    nmea_mask |= NRF_CONFIG_NMEA_GGA_MASK;
    #endif
    #ifdef CONFIG_NRF9160_GPS_NMEA_RMC
    nmea_mask |= NRF_CONFIG_NMEA_RMC_MASK;
    #endif

    And seggeg greys out the  not defined, and I see that only GGA is enabled. If I in my prj.conf defines the variables as described above, I see that RMC is enabled, but GGA is not. 

  • I have been testing, and i get fix relatively fast using RMC sentences. The GPS driver doesn't deliver a fix using the RMC sentences, it seems it uses only GGA to deliver fix events. 

    In order to use RMC, I will have to manually parse the incoming NMEA sentences by hand. 

  • Great to hear that you are making progress! Is there anything else I should ask about internally regarding RMC sentencing & parsing the NMEA sentences?

Related