AtomicGPSClock

AtomicClockImage


      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