AtomicGPSClock
Misc. Notes:
Windows Problems:
1) Too many to list!
2) GPS Detected as mouse, or mouse cursor jumps around.
This is a known bug and Microsoft has a fix see 283063.pdf
NMEA:
1) Continuos data stream output
2) NMEA 2.x = 4800 Baud 8 Bit No Parity 1 Stop Bit
3) NMEA 3.x = up to 38400 Baud
4) On the Garmin eTrex data is output in 2 second
intervals at the second on even seconds
5) No need to transmit data to GPS
6) To set time accurately:
a) Capture 1 stream and record
time
b) Add 2 seconds
c) Use first character of next
stream to trigger clock being set (will need to add a few milliseconds
though)
Garmin Protocol:
1) Complex protocol (Available from Garmin)
2) Possible to request time
eTrex:
1) Uses external power 3.0V to 3.3V Max (up to 280mA
during initial tracking). Anything more than 3.3V on a newer eTrex will
kill it!
2) Use simple linear power supply
3) Keep separate from computer supply if used in
permanent installation (eTrex needs power button pressed to turn on)
4) Possible to use power from mouse/keyboard port
on laptop for mobile solution
Software:
1) 3 Types
a) Stand alone application for
limited use (mobile/laptop)
b) Service for permanent installations
c) Service with server and clients
for network solution
d) Look into
time protocols (TCP/IP) that already exist, may be possible to use preexisting
client software on UNIX/Linux systems
2) Logging changes in time
a) Log file
b) Windows event log
More NMEA Info:
Output from my eTrex with firmware 2.14:
$GPRMC,021932,A,6545.2351,N,16855.9072,W,0.0,27.9,260903,6.5,W,A*2E
$GPRMB,A,,,,,,,,,,,,A,A*0B
$GPGGA,021932,6545.2351,N,16855.9072,W,1,06,1.3,277.3,M,-34.7,M,,*7C
$GPGSA,A,3,,07,08,09,11,20,,,28,,,,2.0,1.3,1.2*3F
$GPGSV,3,1,09,04,24,202,00,07,64,288,43,08,26,187,36,09,14,320,40*7E
$GPGSV,3,2,09,11,34,053,32,20,21,102,39,26,01,272,00,27,02,171,00*7B
$GPGSV,3,3,09,28,80,099,36*47
$GPGLL,6545.2351,N,16855.9072,W,021932,A,A*51
$GPBOD,,T,,M,,*47
$PGRME,5.8,M,7.0,M,9.1,M*2C
$PGRMZ,910,f,3*13
$GPRTE,1,1,c,*37
Formatting Information:
Sentence BOD
Function: Bearing (origin to destination waypoint)
Example: $GPBOD,,T,,M,,*47
Synopsys: bearing, T (degrees true), bearing, M (degrees magnetic), destination
waypoint ID, origin waypoint ID, checksum
Sentence RTE
Function: Waypoints in active routes
Example: $GPRTE,1,1,c,0*07
Synopsis: number of RTE sentences, number of this sentence, C/W (C=complete
list of waypoints in this route, W=first waypoint listed is start of current
leg), route identifyer, checksum
Sentence RMC
Function: Recommended mimimum specific GPS/transit data
Example: $GPRMC,120757,A,6545.2351,N,16855.9072,W,000.0,349.4,230100,004.1,W*78
Synopsis: time of fix (hhmmss), A/V (A=OK, V=navigation receiver warning),
latitude, N/S, longitude, E/W, ground speed (knots), course made good (true),
date of fix (ddmmyy), magnetic variation, E/W, checksum
So by looking at the first line of the transmission, you can see a valid
sentence being sent by a GPS ($GP), giving our geographic position in latitude
and longitude (GLL), at 65° 45.2351' North (6545.2351,N), 168°
55.9072' West (16855.9072,W) at 12:07:57 UTC (120757). The last few characters
indicate the validity of the data and include some error checking to make
sure that the transmission wasn't garbled.
Sentence RMB
Function: Recommended minimum navigation information (sent when a destination
waypoint is active)
Example: $GPRMB,A,,,,,,,,,,,,V*71
Synopsis: A/V (A=OK, V=navigation receiver warning), cross-track error
(nautical miles, 9.9 max.), L/R (L=left,R=right), origin waypoint ID, destination
waypoint ID, N/S, destination waypoint latitude, destination waypoint longitude,
E/W, range to destination (nautical miles), true bearing to destination,
velocity towards destination (knots), arrival alarm (A=arrived, V=not arrived),
checksum
Sentence GGA
Function: Global Positioning Fix Data
Example: $GPGGA,120757,5152.985,N,00205.733,W,1,06,2.5,121.9,M,49.4,M,,*52
Synopsis: time of fix (hhmmss), latitude, N/S, longitude, E/W, Fix quality
(0=invalid, 1=GPS fix, 2=DGPS fix), number of satellites being tracked,
horizontal dilution of position, altitude above sea level, M (meters), height
of geoid (mean sea level) above WGS84 ellipsoid, time in seconds since last
DGPS update, DGPS station ID number, checksum
Sentence GSA
Function: GPS dilution of precision* and active satellites
Example: $GPGSA,A,3,,05,06,,09,,,24,,29,30,,3.9,2.5,2.9*30
Synopsis: A/M (A=automatic selection of 2D or 3D fix, M=manual), 2/3
(2=2D, 3=3D fix), pseudo-random number (PRN) ID of satellites used for
fix (room for 12), PDOP (position dilution of precision), HDOP (horizontal
dilution of precision), VDOP (vertical dilution of precision), checksum
*DOP is an indication of the effect of satellite geometry on the accuracy
of the fix
Sentence GSV
Function: Satellites in view
Example: $GPGSV,3,1,11,04,17,062,00,05,76,073,39,06,22,189,41,07,00,034,00*74
Synopsis: number of sentences, number of this sentence, number of satellites
in view, satellite PRN, elevation, azimuth, signal strength (repeated for
up to four satellites per sentence), checksum