[ntp:questions] Single GPS/PPS time source gets marked as a falseticker
David Lord
snews at lordynet.org
Fri Jul 15 14:37:44 UTC 2011
Michael Eder wrote:
> Again we are talking effectively what happens. There is a good deal of
> logic what to do if the NMEA and/or pps does not come in and if the system
> clock is significantly different from either the NMEA or pps. A whole day
> on the lab bench with a scope on both the pps and the NMEA these never
> happen. The pps comes in and by definition it must be represent the second
> + 1 of the previous NMEA string. This is exactly the same logic that gpsd
> uses and is why we tell NTP that the NMEA has an offset.
>
> We scope the oscillator also and it is a very expensive oceanographic device
> that adjusts for temperature automatically.
>
>
> Sounds like a common problem and I note when we add an additional network
> clock the problem seems to go away.
>
> I note there are multiple SHM segments in NTP. Anyone tried writing the pps
> time into two locations to fix this problem?
Did you try my suggestion of marking the NMEA as prefer rather
than the PPS?
server 127.127.28.0 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.0 time1 0.680 refid NMEA
server 127.127.28.1 minpoll 4 maxpoll 4
fudge 127.127.28.1 refid PPS
instead of:
server 127.127.28.0 minpoll 4 maxpoll 4
fudge 127.127.28.0 time1 0.680 refid NMEA
server 127.127.28.1 minpoll 4 maxpoll 4 prefer
fudge 127.127.28.1 refid PPS
David
> -----Original Message-----
> From: questions-bounces+meder=whoi.edu at lists.ntp.org
> [mailto:questions-bounces+meder=whoi.edu at lists.ntp.org] On Behalf Of unruh
> Sent: Thursday, July 14, 2011 5:50 PM
> To: questions at lists.ntp.org
> Subject: Re: Single GPS/PPS time source gets marked as a
> falseticker
>
> On 2011-07-14, Michael Eder <meder at whoi.edu> wrote:
>> Not using gpsd, just writing the NMEA time and receive time into SHM
>> (0) like gpsd does. The pps does the same to SHM (1). Effectively
>> the pps code
>
> sounds like a bad procedure. You want to make sure that the nmea actually
> gets associated with the second marker that the interupt marks.
> Your nmea time will be off by 600ms from the true time, and could well
> confuse ntpd.
>
>> just increments the second from the NMEA string and writes it to SHM.
>> We need certain values from the NMEA string so have not looked into
>> anything but the ASCII strings. PPS comes in on a high priority
>> interrupt so it gets serviced very quickly. Actually the PPS
>> conditions an oscillator that we
>
> So when the pps comes in, you can read the system clock and you know how
> many usec the clock is out from true time-- you just do not know how many
> seconds. Then you can read the system time when the nmea comes in and
> determine how many seconds the system time is out from the true time (but
> not how many usec.) But combining the two, you can zero in on how many
> seconds and usec your system clock is out.
>
> interrupt-> read system time nnnn.uuuuuu
> nmea ---- rrrr at system time mmmm.vvvvvv
>
> d=(mmmm.vvvvvv-nnnn.uuuuuu)*1000000)/1000000
>
> (d should be 0, since it should be within a second of interrupt)
>
> Then in the shm ntp packet, the sent and received times are nnnn.uuuuuu, and
> the remote received and sent are (rrrr+d).000000 where I am assuming that
> the time between the nmea packet and the pps interrupt is under a second--
> ie the nmea sentence designates the time of the interrupt that is less than
> one second in the past. One could always throw the item away if d is not
> equal to 0. If, like in the Garmin 18x, the time of the nmea is close to a
> second late, then you could always put in a shift in defining d.
> d=int(mmmm.vvvvvv-nnnn.uuuuuu)*1000000.-500000.)/1000000
> Ie, you want whatever writes into the shm to associate the nmea time with
> the pps time, and since (except for unusual circumstances) the system clock
> is assumed to keep reasonably good time (eg be out by not more than say
> 10000 PPM) you can use it as the flywheel to enable you to do that
> association.
>
>> use to keep time in the event we lose the GPS (out in the ocean on a
> buoy).
>> The tests I am running are in the lab so we are always getting the
>> NMEA and PPS.
>>
>>
>>
>> -----Original Message-----
>> From: questions-bounces+meder=whoi.edu at lists.ntp.org
>> [mailto:questions-bounces+meder=whoi.edu at lists.ntp.org] On Behalf Of
>> Rob
>> Sent: Thursday, July 14, 2011 4:13 AM
>> To: questions at lists.ntp.org
>> Subject: Re: Single GPS/PPS time source gets marked as a falseticker
>>
>> Michael Eder <meder at whoi.edu> wrote:
>>> We have looked at our GPS on a scope, the PPS it is dead on and the
>>> NMEA (just one sentence) is also reliable with about a 680 ms latency
>>> and 10 ms jitter.
>> Again, are you using gpsd?
>>
>> If so, you may want to try removing the (huge) 680ms offset inside
>> gpsd instead of in ntpd.
>> There is a place in the code where a fixed offset is added to time
>> obtained using NMEA (because the gpsd author does not want
>> configurable items) and it cannot be correct for every possible receiver.
>>
>> Again, it is better to switch from NMEA to the native binary protocol
>> of the receiver.
>>
>> _______________________________________________
>> questions mailing list
>> questions at lists.ntp.org
>> http://lists.ntp.org/listinfo/questions
>
> _______________________________________________
> questions mailing list
> questions at lists.ntp.org
> http://lists.ntp.org/listinfo/questions
More information about the questions
mailing list