[time-nuts] Four hour cycle in GPS NMEA jitter

Trent Piepho tpiepho at kymetacorp.com
Fri Aug 11 20:24:55 EDT 2017

On Sat, 2017-03-25 at 15:28 +1300, Kiwi Geoff wrote:
> Obviously the proper fix is to get PPS working and I've known that all along.

Trent, you might want to test the 1PPS on the JN3 given that:

From the Telit JN3 Product Description_r5


4.3. Time Mark Pulse (1PPS)

A 1PPS time mark pulse is provided as an output with a width of 200ms.
This signal has not
been verified or characterized for all operational conditions.

I finally got around to using the PPS output of the Telit JN3.  It is indeed a great deal better than the NMEA output.

How much better?  I'm limited in that I don't have a precision time signal to compare against.  But comparing the PPS phase offset against the system clock at least gives the ability to compare NMEA vs PPS to whatever level of precision the frequency stability of the system clock over a 1 second tau provides.

I can say that if you are using a Linux Kernel PPS driver such as the GPIO PPS or UART PPS, then the jitter introduced on the Linux side is far greater than jitter in the PPS itself from the Telit JN3.  At least on my processor.  AFAIK, the kernel PPS system is the "best" time source one can use in Linux other than perhaps PTP/IEE1588.  So if you're trying to get good time in a Linux system, focusing on the GPS module itself isn't the place to expend effort.  Reduce the jitter on the Linux side in how you measure that PPS signal.

I designed the system to trigger logic in an on-SoC FPGA that starts a 50 MHz counter on the PPS edge, which can be read by the Linux kernel driver to subtract out the software interrupt latency.  This ends up being a huge win.  Standard deviation of the PPS phase offset vs the disciplined system clock is 8.441┬Ás if one were to use just the interrupt timestamps.  With the FPGA counter canceling the IRQ latency, this drops to 126 ns.

See density plot of the uncorrected vs irq latency corrected phase offsets of the PPS.  Notice the X axis log scale.  google link<https://photos.google.com/share/AF1QipPYw4jiJU6V7JOSTFqyGqEZjaDBFAQvbTDpJSyuqtcgwyUu3oDZT6ML72EF8PJRNQ?key=dVhQMlF3RWgzblVRVUpWOW5ORjYzbFZRS0lKbF9R>

[cid:1502496389.30697.41.camel at kymetacorp.com]

And for what it's worth, the terrible performance of the NMEA output is not present in the PPS.  Notice the different scale for PPS offset vs NMEA offset.
[cid:1502497472.30697.45.camel at kymetacorp.com]

-------------- next part --------------
A non-text attachment was scrubbed...
Name: nmeavsgps.png
Type: image/png
Size: 94524 bytes
Desc: nmeavsgps.png
URL: <http://www.febo.com/pipermail/time-nuts/attachments/20170812/3aabf5de/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ppshist.png
Type: image/png
Size: 36977 bytes
Desc: ppshist.png
URL: <http://www.febo.com/pipermail/time-nuts/attachments/20170812/3aabf5de/attachment-0003.png>

More information about the time-nuts mailing list