I'm setting up my Ultimate GPS and see two very similar commands in the GlobalTop PMTK Command Packet document:
$PMTK220 'set NMEA port update rate', which can be set up to 10Hz
$PMTK300 'controls the rate of position fixing activity', which can be set up to 5Hz ('FixInterval must be larger than 200ms')
I want to set my GPS for use at low speeds (1 - 5m/s) with the max rate of position reporting to the best of the Ultimate GPS capability. If the GPS can only take a new fix every 200ms (5Hz) using PMTK300 I can't see any purpose for using the PMTK220 faster than 5Hz, it would just be reporting same data twice (i.e pairs of sentences would be identical?)
Am I understanding these commands correctly?
thanks
Ultimage GPS: PMTK220 vs PMTK300
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- adafruit_support_mike
- Posts: 67454
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
Your general view of the two parameters is right: the NMEA update rate controls how often the GPS module emits NMEA sentences, and the fix update rate controls how often the module checks the satellites and updates its position registers.
Not all NMEA sentences contain position data though. The $GPSV set provide diagnostic information about the number of satellites the module can see and what kind of fix it has for each one. There's also some redundancy. The $GPRMC and $GPGGA sentences contain the same position data, but have different sets of additional information and arrange the information differently.
If you've disabled enough kinds of NMEA output that every sentence contains position data, then yeah, having the NMEA update rate go faster than the fix update rate would give you redundant data.
Not all NMEA sentences contain position data though. The $GPSV set provide diagnostic information about the number of satellites the module can see and what kind of fix it has for each one. There's also some redundancy. The $GPRMC and $GPGGA sentences contain the same position data, but have different sets of additional information and arrange the information differently.
If you've disabled enough kinds of NMEA output that every sentence contains position data, then yeah, having the NMEA update rate go faster than the fix update rate would give you redundant data.
- ninja2
- Posts: 10
- Joined: Thu Jul 31, 2014 5:08 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
Thanks Mike, very useful and interesting.
Now I'm wondering: If I set the FixInterval to minimum (highest frequency), and set GSA, GSV, RMC & VTG sentences to report as fast as possible, might that give me more accurate, higher resolution position information than if I reported RMC/VTG just as frequently but GSA/GSV only occasionally (i.e. in the former case, more knowledge of the satellites helps the MT3339 calculate position more precisely) ?
cheers
Now I'm wondering: If I set the FixInterval to minimum (highest frequency), and set GSA, GSV, RMC & VTG sentences to report as fast as possible, might that give me more accurate, higher resolution position information than if I reported RMC/VTG just as frequently but GSA/GSV only occasionally (i.e. in the former case, more knowledge of the satellites helps the MT3339 calculate position more precisely) ?
cheers
- adafruit_support_mike
- Posts: 67454
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
If you want speed, disable everything but one of $GPRMC or $GPGGA.
The module will scan the satellites and update its position once per fix update interval. The NMEA sentences don't have any effect on that. The ones like $GPSV are just a courtesy so you know what the module is seeing. The standard set of output sentences are there to make sure any external hardware running a user interface has enough information to tell the person using the device what's going on.
Since you're writing the software that will talk to the module, you have the freedom to choose what sentences you want and when you want them.
If you know you have a fix and all you care about is position data, everything but a $GPRMC or $GPGGA sentence will be unnecessary overhead. You can tell the module to emit them while it's waiting for a fix after power-up, or as diagnostic data if it loses its fix, then shut down everything but one position sentence per fix update interval once you know the fix is good.
The module will scan the satellites and update its position once per fix update interval. The NMEA sentences don't have any effect on that. The ones like $GPSV are just a courtesy so you know what the module is seeing. The standard set of output sentences are there to make sure any external hardware running a user interface has enough information to tell the person using the device what's going on.
Since you're writing the software that will talk to the module, you have the freedom to choose what sentences you want and when you want them.
If you know you have a fix and all you care about is position data, everything but a $GPRMC or $GPGGA sentence will be unnecessary overhead. You can tell the module to emit them while it's waiting for a fix after power-up, or as diagnostic data if it loses its fix, then shut down everything but one position sentence per fix update interval once you know the fix is good.
- ninja2
- Posts: 10
- Joined: Thu Jul 31, 2014 5:08 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
OK I've got it now. thanks again,
- MusicManArt
- Posts: 12
- Joined: Sat Aug 30, 2014 7:32 am
Re: Ultimage GPS: PMTK220 vs PMTK300
Mike,
The 220 and 300 are reversed in the Adafruit_GPs.h file.
The 220 and 300 are reversed in the Adafruit_GPs.h file.
- adafruit_support_mike
- Posts: 67454
- Joined: Thu Feb 11, 2010 2:51 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
Could you post the relevant lines please?
- Franklin97355
- Posts: 23912
- Joined: Mon Apr 21, 2008 2:33 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
If that last comment was to musicmanart I think he was confused by a datasheet that didn't reference the GPS Adafruit is using.Could you post the relevant lines please?
- MusicManArt
- Posts: 12
- Joined: Sat Aug 30, 2014 7:32 am
Re: Ultimage GPS: PMTK220 vs PMTK300
franklin97355 wrote:If that last comment was to musicmanart I think he was confused by a datasheet that didn't reference the GPS Adafruit is using.Could you post the relevant lines please?
I think it was directed at me. But still confused as to why PMTK would be different. At any rate mine is working now.
- ninja2
- Posts: 10
- Joined: Thu Jul 31, 2014 5:08 pm
Re: Ultimage GPS: PMTK220 vs PMTK300
Is this true, or not ?MusicManArt wrote:The 220 and 300 are reversed in the Adafruit_GPs.h file.
- MusicManArt
- Posts: 12
- Joined: Sat Aug 30, 2014 7:32 am
Re: Ultimage GPS: PMTK220 vs PMTK300
MTK messages (which are MediaTek chipset specific) seem to be different between GPS receiver manufactures. I'm now using shield_sdlog.ino unmodified except for UNO specific items and it is working fine with PMTK_SET_NMEA_UPDATERATE which is 220 according to the "confidential" G.Top document located here: http://www.adafruit.com/datasheets/PMTK_A08.pdfninja2 wrote:Is this true, or not ?MusicManArt wrote:The 220 and 300 are reversed in the Adafruit_GPs.h file.
If you use a different GPS receiver than the Adafruit receiver, this data may not apply...
Art
Please be positive and constructive with your questions and comments.