I did a lot of work in Lady Heather to add timing message arrival time analysis capability. Heather has a "set the system clock to receiver time" function that is intended to be used on systems without access to something like NTP. By knowing the arrival time of the last byte of the timing message, Heather can set the system clock more accurately. You can specify the message arrival time offset of the message time code or Heather uses a pre-computed typical value for the receiver.
Heather has a mode that can analyze and calculate the message timing offset for any receiver / cpu combination. During the analysis it plots the message arrival time offset in milliseconds, the jitter in the message arrival time, and ADEV/HDEV/MDEV and TDEV of those values. When you exit message analysis mode it analyzes a histogram of the arrival time data to calculate an "optimum" arrival time offset to use for the system + receiver. Most timing receivers that can operate in binary mode have rather consistent arrival times. Some NMEA receivers can be quite good and others are rather problematic. Some receivers have rather consistent time for long periods and then jump to a new "stable" value. Also, doing other things on the system during the analysis can cause spikes in the data. Attached is a table of the arrival time offsets and standard deviations of several receivers.
Here are the results of measuring the difference between the time code in a GPS receiver time message and the arrival time of the last byte of the message. POSITIVE values mean that the receiver sends the timing message AFTER the 1PPS pulse that it describes. The table also shows the standard deviation of the message arrival times. The test configuration was a Compaq N610C laptop (2 GHz Pentium, hardware serial port) running Linux Ubuntu Mate 15.10). The time of the message arrival was from the system clock synced to NTP. The receivers were tested in native binary protocol and, if supported, NMEA. The com port was running at the default value for the receiver. If not specified that was 9600:8:N:1 Data was collected after the receiver had been tracking satellites for at least 1 hour and averaged over 4 hours. The timings were also checked and agree with those on a Raspberry PI 3 and a quad-core 3 GHz box. Although measuring the arrival time of the first byte of the timing message makes more technical sense (less variation due to timing message length and baud rate) these measurements are of the last byte of the message. This was chosen to assist people trying to sync a clock to a GPS receiver without relying on the 1PPS pulse. They are also useful to people that want to know how long they have to process a timing message (like to set a sawtooth compensation delay line) before the next 1PPS pulse comes out. A few receivers appear to not fully sync their timing message to some reference clock. This causes the timing message arrival time to follow a ramp curve. The ramp size is fairly small in most receivers. Device Protocol Firmware (msg-arrival) sdev (msecs) ============= ============ ================ ========= ===== Thunderbolt TSIP App:3.0 GPS:10.2 43.7 * 6.2 (gold box) Thunderbolt TSIP App:2.22 GPS:10.2 54.6 * 10.2 (red box) Resolution-T TSIP GPS:1.26 99.4 * 5.4 Res-T SMT TSIP GPS 2.7 393.2 * 63.7 Res-T SMT Motorola(12ch) HW 3010 SW:0.03.0 519.7 * 49.1 Starloc II TSIP App:1.10 GPS:1.2 266.0 * 7.2 Nortel NTBW50AA TSIP GPS 10.4 60.8 * 1.2 (made by Trimble) Nortel NTGS50AA TSIP GPS 10.5 50.8 * 2.4 (made by Trimble) Nortel NTPB15AA TSIP GPS 10.1 62.8 * 1.4 (made by Trimble) Nortel NTPX26AB TSIP GPS 10.1 59.8 * 1.4 (made by Trimble, aka Nortel GSPR) NVS NC08C-CSM BINR 115.2K CSM24 04.08 20/10/14 40.7 * 7.3 Ublox LEA-6T binary 6.02 (36023) 206.0 * 4.4 Ublox LEA-6T NMEA 6.02 (36023) 144.5 * 11.1 Ublox Neo6M binary 7.03 (45969) 197.1 * 9.3 Ublox Neo6M NMEA 7.03 (45969) 137.6 * 8.4 Ublox 7 binary 1.00 (59842) 178.4 * 2.6 Ublox 7 NMEA 1.00 (59842) 146.2 * 7.9 Ublox NEO-8M binary 2.01 (75350) 207.7 * 9.1 Ublox NEO-8M NMEA 2.01 (75250) 181.2 * 8.0 V.KEL SIRFIII binary GSW3.2.5 417.0 * 6.1 V.KEL SIRFIII NMEA GSW3.2.5 385.0 * 5.0 Navspark Mini bin+NMEA 115.2K 1.7.27 15.8.18 170.8 * 7.1 Navspark NS-T bin+NMEA 115.2K 2.1.05 15.1.29 153.8 * 7.1 (Venus 822T) Venus 838T bin+NMEA 9600 2.1.05 15.1.27 208.3 * 7.5 (Venus 838T) Adafruit Ultimate NMEA 461.9 * 49.8 Skylab SKM53 NMEA 149.0 * 37.8 (actual value is not stable -100 .. -500 seen) Jupiter-T Zodiac 93.07 1245.5 * 3.3 Juptier-T Motorola(8ch) 93.07 284.5 * 3.2 Jupiter Pico Zodiac 14.00 11/28/05 1232.2 * 0.4 (ramps -1225 .. -1245 over 130 minutes) Jupiter Pico Motorola(8ch) 14.00 11/28/05 295.1 * 1.8 Motorola UT+ Motorola R5122U1112 260.5 * 3.7 Synergy M12+ Motorola P273T12T11 208.5 * 1.4 Z3812A SCPI X98-4-A -949.6 * 0.8 (ramps 945 .. 955 over 16 seconds) Z3801A SCPI 19.2K 3543A -979.8 * 2.0 Symmetricom UCCM-P 57.6K 1.0.0.2-01 127.1 * 3.6 (ramps -122 .. -132 over 10 seconds) Trimble UCCM-P UCCM-P 57.6K 2.0.1.6-01 281.0 * 3.2 Trimble UCCM UCCM 57.6K 3.0.0.11-0 286.2 * 3.1
_______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.