On 02/21/14 01:52, Rob Janssen wrote:
Jeff Woolsey wrote:
On 02/20/14 12:21, Timothy Oefelein wrote:
One of the these days I'd like to get the hardware to run my own
Stratum 1 server, which would make the whole finding peers process
moot. :)
Not necessarily. Trust but verify your local reference clock against
other servers out there. For example, I'm currently seeing about
60ms of jitter/offset in the SHM refclock from gpsd managing a SiRF
II device. (It was 10 seconds off before I fixed gpsd not to request
messages it's ignoring anyway.). It's USB, but still I'd expect only
1-2ms of offset/jitter, which is fine for my purposes:
Using serial messages as a timesync (other than for determining the
time in seconds) is no good.
There is no good lock between the timing of the serial messages
relative to the real time value in them.
And when there is other traffic on the line, this becomes even more
apparent.
(not a 10 second difference though, you must have other issues!)
Serial message sources wandering around 60ms relative to the correct
time are quite common. Can be even more!
To have any value from a local GPS receiver, you need to use PPS.
This was easy in the days of RS232. I have a GPS module on a real
RS232 port (not USB) with PPS connected to DCD and timesync via gpsd.
It shows 0.001 in the jitter column. It would be even better with a
newer kernel that supports PPS in the kernel so it does not have to be
handled in the gpsd user process.
But GPS with only serial and no PPS - forget it. External sources on
a good internet connection will be better.
Rob
What we have here is an excellent example of the adage that all
generalizations are false. I am quite aware that PPS is necessary for
near-microsecond accuracy. It does bother me a bit, though, that some
such NTP servers out there have no other sources listed.
My objective was, and still is, to see how well I can do with no
additional outlay of funds, using GPS units that I already had about the
place or were purchased for other reasons. These are all consumer units
and do not have accessible PPS.
The SHM/gpsd setup I mentioned earlier is on a Raspberry Pi (Xmas gift)
using a Pharos 360 (SiRF II) on a Prolific serial-USB converter (both
from Microsoft Streets and Trips 2006, which came free from an estate).
gpsd puts it in SiRF binary mode instead of NMEA. (NTP doesn't have a
SiRF driver.) The initial 10-second offset was suspected to be
leap-second related (but it should be 16 seconds now). I managed to
eliminate it by adding code to gpsd to actually deselect a SiRF message
type that the comments said was being ignored. Now it wanders ~60ms and
I wonder if there's some issue with the SHM stuff. Old Pharos firmware
has certain problems and omissions (no UTC time, or PPS offset, for
example) in binary mode (paradoxically, NMEA here reports UTC to
millisecond precision (and no 10-second offset)) which may account for
this. gpsd advises against reflashing a SiRF. This is not my pool server.
Another example: A Garmin GPS V on a Keyspan USB serial port on a
PowerBook G4 running ntp. GPSy claimed that the device time was 0ms
behind the host. Hmmm. Very interesting. I gave it to ntp with the
generic NMEA driver and set the flag to use only the RMC sentence, and
got a consistent ~250ms offset. Fudged that and it's actually fairly
reasonable, in the 5ms offset region. Better than I expected from
NMEA. More about Garmins later. This also is not my pool server.
Quite some time ago I found an NTP refclock driver for the DeLorme
Tripmate, so I bought one on closeout. (Later I got another through
freecycle, but it's deaf.) The driver switches this unit to Rockwell
Zodiac (IIRC) binary mode. With a fudge value of 1.000 seconds, NTP is
consistently under 1ms of offset, the limiting factor here being the
real serial port strobe/sawtooth effect. That is about as good as a
real serial port at 9600bps can get. This is my pool server.
A similar long time ago (before the pool) I ran across an NTP refclock
driver for handheld Garmin GPS units. The driver puts them in GRMN
binary mode, not NMEA. For a particular model with specific firmware
versions, there is an oscillator offset counter to query which allows
NTP to achieve sub-millisecond accuracy. There may be other models that
work too, otherwise you only get sub-second accuracy. Again, the serial
port is the limiting factor. None of the Garmins I had at the time had
this counter available, alas. But the GPS V I mentioned was a later
acquisition and has not yet been tested, along with a 276C which I
actually use to navigate. The driver author had his NTP server
available, and I did see those sub-millisecond offsets.
===
Pretty much all of the GPS units I mentioned can be had for under $50
these days, as can some purpose-built bare timing receiver boards
(Encore, Jupiter, etc.). Tiny GPS boards for tiny microcontrollers are
similarly inexpensive, including a couple for the Raspberry Pi. All of
these have PPS available, and maybe someday I'll stick one on my Pi,
along with a WiFi dongle and solar power...
--
Jeff Woolsey {woolsey,jlw}@{jlw,jxh}.com first.last@{gmail,jlw}.com
Spum bad keming.
Nature abhors a straight antenna, a clean lens, and unused storage capacity.
"Delete! Delete! OK!" -Dr. Bronner on disk space management
"Card sorting, Joel." -me, re Solitaire
_______________________________________________
pool mailing list
[email protected]
http://lists.ntp.org/listinfo/pool