NTP Low Cost GPS Clocks

I've been looking for low cost GPS units that work well with ntpd.

Many modern GPS units have a USB connection. Purists will shout that a GPS clock is no good if it doesn't have a PPS signal. I was curious about how well various units actually worked.

GPS 18 LVC

The Garmin GPS 18 LVC is popular because it is the lowest cost unit with a PPS signal. Unfortunately, it requires some soldering. (But not much.)

Here is the same signal from a GPS 18 LVC going through a splitter and into a serial port and a USB to serial adapter:
Offset, Jitter

The system collecting this data doesn't have PPS support. It's getting its time from a nearby machine that does have PPS support. The offset wobble on the USB port is the same magnitude as the offset on the collecting machine.

Note that there is more jitter on the signal from the serial port. I was expecting the USB connection to have more jitter. (The low level USB hardware is polled. There is no interrupt signal on a USB cable, but the polling is done by hardware.) This is on a Linux 2.6 kernel. I assume that means my Linux system is running the RS-232 in interrupt-batching mode. Sigh. Another glitch to chase.

My GPS 18 LVC is in a marginal location. At times, it can't see enough satellites to get a valid signal. While looking for data to make these graphs, I noticed that it sometimes gets confused and sends out data that it claims is valid but is off by a second. That happens when it is recovering from loss of signal.
Garmin GPS 18 LVC Glitch The first spike is a single event after a 10 minute gap followed by normal operation. The second splike is a single bad event after a 2 minute gap. The graphs are from peerstats so the raw data has been filtered by an unknown amount. (The clockstats from the NMEA driver doesn't tell you how many good/bad samples it received during the last polling interval.)

Here is another example. The raw data shows 8 bad samples at 1 minute intervals, then a 20 minute gap, followed by another bad sample.

GPS 18 USB

The GPS 18 USB version is ready to go and low cost, but it doesn't have a PPS signal.

Unfortunately, it isn't supported by any of the current drivers so I wrote a new one. Offset, Jitter

One advantage of writing your own driver is you get to include the statistics that you are interested in., The red diamonds are the number of sattelites visible. The blue band (and scattered boxes) show the number of valid samples since the driver was last polled. Normally, there is one per second. Anything that isn't in the top band indicates that it couldn't see enough satellites to extablish a valid position (and time) for some of the one-second slots between polls. The Fix parameter is another indicaton of general health. 2 is 2D, 3 is 3D, 4 is 2D with WAAS. 5 is 3D with WAAS. (I've seen 4 and 5 occasionally.)

I also tried gpsd and the SMH driver. Offset, Jitter (It works better after I tweaked the SHM driver. This fix hasn't made it to the official source pool yet.)

SiRF: Navibe GM720, AmbiCom GPS-USB, Globalsat BU-353

SiRF makes a chip set that is used in several low cost USB receivers. The SiRF III is very sensitive and works reliably in locations where my Garmin GPS 18 won't work at all. Unfortunately, it doesn't work very well for keeping time.

The Navibe GM720 is one example.

The AmbiCom GPS-USB Rev 2.0 appears to be very similar. I have an older model (non Rev 2.0) that uses the previous version of the SiRF chip set. It is about as sensitive as the Garmin GPS 18, aka not very. (It was very inexpensive.)

The Globalsat BU-353 is physically different, but uses the SiRF III chipset.

Here is a graph showing several units: Offset

Globalsat also makes the MR-350P which does have a PPS signal. Unfortunately, the PPS signal isn't wide enough for my system to grab. I haven't found a command to make it wider nor have I built a pulse stretching gizmo yet.

GPSClock 200

I also have a GPSClock 200 It was the lowest cost unit I could find when I ordered it many years ago. So as long as I'm collecting graphs, here is another one. Offset
Note that this is on the other side of the second boundary from most of the other graphs.

Several GPS clocks

Here are several units all plotted on the same graph. Offset These were all run without any time1 fudge to correct the time. Note that the GPSClock 200 is on the other side of the 0 line from the other units.