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.
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.
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.)
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.