[ntp:questions] got the Sure GPS on order, how do I program it

Terje Mathisen "terje.mathisen at tmsw.no" at ntp.org
Wed Mar 7 18:43:25 UTC 2012

unruh wrote:
> ....
>>> While it is true that the device does work out of the box, one might
>>> want to change things, and for that a manual is crucial.
>> Helpful, certainly, but not crucial.  You can just the program kindly
>> provided by one of the helpful, regular posters here, Terje Mathisen.
>> Play!  Have fun!  Enjoy discovering the device!
> Trying to figure out the exact format of commands to send to accomplish
> something is not "play". It is an exercise in futility. commands have
> very very specific syntax, and discovering that syntax and what any
> particular command does by trial and error is hopeless.

Which is exactly why my program will list all valid commands if you run 
it with a /? parameter:

C:\>nmea-mtk.exe /?
nmea-mtk (c) 2011 Terje Mathisen
Syntax: nmea-mtk [options]

Default with no options is to enable WAAS and GGA

  -b baud (default 9600)
  -p port (default \\.\COM1)
  -c command (send $command*xxCRLF to gps, can be repeated)
  -t seconds (echo all NMEA sentences for t seconds

Documented commands and responses:

$PMTK000*     : Test packet
$PMTK010,001* : Output system message
$PMTK101*     : Hot restart
$PMTK102*     : Warm restart
$PMTK103*     : Cold restart
$PMTK104*     : Factory reset

$PMTK251,4800*: Set baud rate (0,4800,9600,19200,38400,57600,115200)

$PMTK300,307* : Set position fix interval (307 ms is the shortest on my 
Sure boa
$PMTK400*     : Query Position fix interval
$PMTK500,n*   : Current Position fix interval (in ms)

$PMTK301,2*   : Set DGPS mode (0:off, 1:RTCM, 2:WAAS)
$PMTK401*     : Query DGPS mode
$PMTK501,n*   : Current DGPS mode status

$PMTK313,1*   : Enable SBAS (0:disable)
$PMTK413*     : Query SBAS
$PMTK513      : Current SBAS Status

$PMTK314,-1*  : Turn on default NMEA sentences
$PMTK314,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0* : Turn on GGA only
     The sentence order is GLL, RMC, VTG, GGA, GSA, GSV, GRS, GST,
     (5 undocumented sentences), MALM, MEPH, MDGP, MDBG, ZDA, MCHN
$PMTK414*     : Query NMEA sentences
$PMTK514      : Current NMEA sentences

$PMTK320,0*   : Turn off (0) or on (1) power saving mode (test only!)
$PMTK420*     : Query power saving mode
$PMTK520,n*   : Current Power saving mode

$PMTK330,0*   : Set Datum (0 = WGS84)
$PMTK430*     : Query Datum
$PMTK530,n*   : Current Datum used

$PMTK331,6377397.155,299.1528128,-148.0,507.0,685.0* : Set custom datum
     (semi-major axis,eccentr.,WGS84 dx offset, dy, dz)
$PMTK431*     : Query Custom Datum
$PMTK531,n*   : Current Custom Datum used

$PMTK390,n*     : Set Flash settings: write_count,hz,baud,
     GLL,RMC,VTG,GSA,GSV,GGA,ZDA,MCHN (default NMEA sentences to output)
$PMTK490,n*     : Query Flash settings
$PMTK590,n*     : Current Flash settings

$PMTK604*     : Query FW version
$PMTK704,v1,v2,v3*: FW version numbers
$PMTK605*     : Query FW release info
$PMTK705,releaseStr,ModelID*: FW release

I.e. I've tried to include all the working commands I've been able to 
locate in the various documentation files.

- <Terje.Mathisen at tmsw.no>
"almost all programming can be viewed as an exercise in caching"

More information about the questions mailing list