Note on Garmin OEM GPS auto-off mode

17-Mar-2019

Introduction

Many OEM GPS receivers have a 1PPS (one Pulse Per Second) output which marks the precise instant of the UTC second. Especially during power-up, but also during times of poor reception, the precise time is not known. The question is what happens to the 1PPS signal in these cases?

For most GPS receivers the 1PPS output is suppressed when the time is not known precisely. GPS receivers sometimes have a feature called TRAIM (Timing Receiver Autonomous Integrity Monitoring) which guarantees that if the 1PPS pulse is present then it is accurate, which is to say that if the pulse would not be accurate then it is disabled.

This behavior is the correct approach. It allows trust in the 1PPS output. However it also means that the 1PPS output is not always present. If a user must have a 1PPS pulse regardless of reception then a GPSDO (GPS Disciplined Oscillator) is the solution. GPSDO are massively popular for applications requiring continuous precise time and/or frequency via GPS.

The purpose of this note is to explore a feature in certain Garmin OEM GPS receivers that allow the 1PPS to continue even when it is known to be in error. This is the so-called auto-off mode.

Garmin auto-off ON or OFF

If one enables Garmin auto-off mode (aka auto-off on) this means the 1PPS is automatically turned off when the precise time is not known. This is typically how one should use a GPS/1PPS pulse and is the recommended operating mode.

If one disables Garmin auto-off mode (aka auto-off off) this means the 1PPS continues to occur, even though the receiver knows it is no longer the precise time. This is a dangerous mode to use, it creates unchecked ambiguity in the quality of the GPS/1PPS pulse, and I would not recommend that anyone ever use this mode.

Still, what happens if you use the auto-off off mode?

Garmin GPS16 / GPS16x / GPS18 / GPS18x OEM receivers

Garmin makes a delightful set of OEM GPS receivers. Here we test the model 16 and model 18. These are very popular for outdoor embedded use, trivial to setup, minimalist by design, highly reliable and rugged. A single cable is used for power (typically 5 VDC) and ground, RS232 input and output, and a 1PPS output. It's the perfect package.

Note the current versions are GPS16x and GPS18x. The "x" means "high-sensitivity", which is a polite way of saying that the original versions GPS16 and GPS18 had terrible reception. Therefore if you have a choice avoid the old GPS16 and GPS18 at all costs and use the new GPS16x or GPS18x instead.

Photos

Bottom side, Garmin GPS16x-LVS and GPS18-LVC:

Top side, GPS16x and GPS18 receivers along with RS232/serial/USB adapter for NMEA communication:

TAPR/TICC timestamping counter and hp 5071A 1PPS/10 MHz time/frequency reference:

Garmin GPS18 results

Given how GPS receiver chips are designed we would expect a clean 1PPS during times of good reception and we would expect that the 1PPS would begin to drift or wander when reception is poor. When reception again becomes good the 1PPS should jump back to being on-time.

This is exactly what happens with the GPS18. I did not have to artificially create poor reception for this experiment. The antenna location was not ideal and the receiver was a GPS18 (rather than a GPS18x) which means it often got poor reception with no assistance from me.

Plot: GPS18, phase, 5 hours, ±1 µs full-scale

Below is 5 hours of 1PPS phase measurement. By "phase" we mean the time difference between the Garmin GPS 1PPS and the cesium standard. The plot scale is 1 microsecond or 200 ns/div. Two features are immediately obvious. First, there are numerous large spikes in the data, both positive and negative. Second, most of the time the GPS/1PPS is very close to on-time. For example, the 1PPS standard deviation for the unblemished period from 3 to 3.5 hours is 36 ns. For a 20(?) year old compact portable outdoor integrated gps antenna+receiver this level of timing precision is quite good.

Plot: GPS18, phase, 5 hours, ±10 µs full-scale

Below is the same plot, but zoomed out by a factor of ten. Now the character of the frequent, wild excursions in the GPS/1PPS is more visible. Looking at the NMEA data, each of these corresponds to a temporary period of low to no reception. The numerous spikes look roughly triangular in shape; a slow ramp and a sharp jump.

Plot: GPS18, phase, 30 minutes, 20 µs full-scale

In the above plot the period from 4 to 4.5 hours looks interesting. Below is a zoom of that half hour. Now we can clearly see what is happening to the 1PPS. It looks like reception was lost 4 or 5 times. As expected, when reception is lost, the 1PPS begins to wander. The shape is not so much triangle as quadratic. The time error grows on the order of microseconds over minutes. Each time GPS reception is reestablished the 1PPS immediately returns to the correct time.

Plot: frequency, 30 minutes, auto scale

We convert the phase plot above to the frequency plot below. When raw phase data contains phase jumps converting phase to frequency tends to be dominated by frequency spikes. The frequency spikes in the plot below correspond exactly to the phase jumps in the plot above. Here the scale is 2e-5 or 20 ppm full-scale. It's not an interesting plot and the spikes need to be removed to see what's hidden.

Plot: frequency, 30 minutes, tau 1 s

To get a better look at the frequency of the 1PPS the 5 spikes were removed (Stable32->Check). Now the frequency plot is full of interesting effects:

Plot: frequency, 30 minutes, tau 10 s

The above plot is dominated by 16 MHz cycle-slip / quantization effects. Averaging by 10 cleans up the plot. What remains is just the frequency drift during each of the 4 or 5 episodes of lost reception. The duration of reception loss varies. The frequency drift rate varies over about a factor of two. Even the sign of the drift varies. The frequency error is near zero during periods of good reception.

Garmin GPS16x results

The Garmin GPS16x results were not pretty.

Plot: GPS16x, phase, 45 minutes

Because the GPS16x is a high-sensitivity "x" receiver it was actually quite hard to obtain poor GPS reception conditions in order to investigate how the 1PPS reacted to loss of reception. It took a dozen layers of wrapped aluminum foil before reception started to drop out. In this 45 minute plot two periods of GPS reception loss were observed. The first was from about minutes 10 to 23 and the second from minutes 27 to 29. This plot is zoomed to 1 µs scale or 200 ns/div. During good reception the 1PPS standard deviation is about 22 ns, much better than the Garmin 18.

Plot: GPS16x, phase, 45 minutes

Below is the full scale version of 1PPS phase showing two episodes of signal loss. In both cases there is a massive time jump at the beginning of reception loss. In the first case it was about +15 µs and in the second case it was about −140 µs. This is really bad. A slow phase drift would be expected when reception is lost (as in the case of the GPS18), but a sudden phase jump is quite unexpected and disastrous for timing. Not only that, but the magnitude of the jump both massive and massively variable.

Plot: GPS16x, frequency, 45 minutes

Converting to frequency we see not 2 but 4 spikes.

Plot: GPS16x, frequency, 45 minutes, tau 1 s

Deleting the spikes reveals the detail below.

Plot: GPS16x, frequency, 45 minutes, tau 10 s

Averaging by 10 better shows the frequency of the internal oscillator during the two episodes of reception-loss. In the case of the GPS16, unlike the GPS18, the frequency jumps when reception is lost. The magnitude of the jump differs considerably.

Conclusion

If at all possible use the newer "x" version of these receivers: GPS16x or GPS18x. The older receivers, GPS16 or GPS18, are not worth your time.

Do not ever use the auto-off disable mode. It's inaccurate, unpredictable, and unreliable. For whatever reason the GPS16 behaves much worse in this respect than the GPS18

If you have existing timestamps made from a GPS18 receiver in auto-off disable mode and if you have NMEA logs of reception you will be able to go back and determine which 1PPS were valid and which were not. With simple testing, as demonstrated above, you can determine the peak drift rate and thus bound your timestamps with the maximum expected error during periods of poor reception.

If you have existing timestamps made from a GPS16 receiver in auto-off disable mode the NMEA logs of reception will allow you to know when the 1PPS is invalid. But in spite of this it appears there is no way to retroactively determine the error in the pulses. Not only do the pulses drift but they jump. Neither the drift rate nor the magnitude of the jumps appear to be consistent. Thus fixing existing data made from a GPS16 is not possible.


Do you have comments/questions?