[LinuxPPS] gps_nmea error
Hal V. Engel
hvengel at astound.net
Mon Aug 11 21:41:01 CEST 2008
On Monday 11 August 2008 10:36:43 am Ritter, Nicholas wrote:
> Here is my pps output that Hal and I think is screwy:
> > Here is my ppstest output:
> >
> >
> >
> >
> >
> >
> >
> > ./ppstest /dev/gpspps0
> >
> > trying PPS source "/dev/gpspps0"
> >
> > found PPS source "/dev/gpspps0"
> >
> > ok, found 1 source(s), now start fetching data...
> >
> > source 0 - assert 1218249194.821427087, sequence: 362781 - clear
> >
> > 0.000000000, sequence: 0
> >
> > source 0 - assert 1218249195.821418989, sequence: 362782 - clear
> >
> > 0.000000000, sequence: 0
> >
> > source 0 - assert 1218249196.821427057, sequence: 362783 - clear
> >
> > 0.000000000, sequence: 0
> >
> > source 0 - assert 1218249197.821418825, sequence: 362784 - clear
> >
> > 0.000000000, sequence: 0
>
> I think I have problems with the build and configuration of the box. I
> am going to start over and see where it leads me. I noticed that ntp has
> it's own gps driver, should I still apply a patch?
>
>
>
> BTW - does anyone have suggestions on PC hardware that makes a good NTP
> server? I have budget to buy a computer for this if needed, but I have
> not found a hardware buildout that assurs better clock stability than
> another, yet I have read multiple sources that said that some
> motherboards are good and some are bad, but that is hit or miss. I don't
> have budget for hit/miss and was looking to see if anyone had
> suggestions on a vendor (HP vs. Lenovo vs. Dell, etc.)
Have a look at this:
http://www.febo.com/pages/soekris/
"When fed with a quality reference signal at 10MHz to drive the system clock,
and a quality PPS signal to provide timetags, it can keep time to within a few
hundred nanoseconds ."
You may not need this level of accuracy. It all depends on how accurate you
need your time server to be. For many uses sub millisecond times are more
than good enough and with a correctly setup refclock and ntp on a normal PC
you should be able to achieve this. My machine even with widely flutuating
temperatures and loads will keep the clock to within 200 microseconds at all
times. My machine is using an unmodified off the self motherboard.
The hardware from the above web site is not exactly a "PC" but it is x86
hardware that is intended for building network appliances. It does require
some customizations to the hardware to get the kind of accuracy he claims (sub
microsecond at all times). But it is doable if you are not affraid to do some
hardware mods. He is also using a stripped down BSD kernel but you should be
able to do something like this with Linux using the LinuxPPS patches. In
addition the types of mods he has done to that hardware could also be done to
a normal PC motherboard.
I think what most of us here are seeing is that almost all PCs have very cheap
crystal occillators that are not temperature corrected (I suspect that
motherboard vendors pay about $0.50 each for these - very cheap). Even worse
are that some PCs have uncompensated occillators with a built in frequency
radomizer to reduce RF interferance (spread spectrum) that should be avoided
unless the BIOS allows this to be disabled. Which means that you are likely
limited to after market motherboards since most name brand PCs have BIOS that
will not let you disable spread spectrum. Uncompensated occillators can
easilly drift by several parts per million with normal room temperature
changes even in temperature controlled rooms and in non temperature controlled
situations can have much larger changes to the occillator frequency (on the
order of 10 to 20 PPM).
For example, I typically open my windows at night to allow the house to cool
down and the temerature can drop by as much as 15C and sometimes more from
it's peek. The occillator in my PC likely drifts throught out the day by
about 15 PPM because if this. If my machine is temperature stable and is not
loaded it will keep time to within a few microseconds but if there are
significant room temperature changes the clock can get off by as much as 200
microseconds. So temperature changes along with the uncompensated clock
occillator of your typical PC are a huge factor in how accurately ntp will
maintain the time on your box. The other significant factor is variability in
the latancy of the PPS interupt handler which you can control to some extent
by limiting how much your machine is loaded. This is simply the nature of the
beast and the only way to get around this is to either find hardware that is
specifically build for timing which is likely hard to find and expensive or to
modify existing hardware which requires some techincal experise. (Not quite
true there is a web site that talks about using a temperature probe to track
the temperature near the occillator and using that data to feed a temperature
compensation correction into ntp and getting significantly improved results.)
Basically the above system has had the cheap occillator replaced by a highly
stable one. I don't know exactly what occillator he used to drive this clock
but on ebay you can get OCXO occillators that are good for about +- 0.01 PPM
for as little as $30 plus shipping that should allow you to achive that level
of performance. So you could do the whole mod for under $200 including the
powersupply for the OCXO but not including labor. Less costly would be to
find a TCXO in the correct package and frequency to replace the one on the
motherboard and just replace the uncompensated occillator. This should cost
less than $30 for parts. TCXO's should get the occillator drift down to less
than 1 PPM which would reduce temperature drift by over 90% compared to an
uncompensated occillator while being a fairly low cost and simple to do mod.
>
>
>
> Also, When I attached minicom to the serial port, I see the GPS data
> coming in, should I see something else? I don't know what to look for to
> actually "see" the PPS pulse. I reduced the number of sentences sent by
> my Garmin 18 LVC to to just the three time related sentences, despite
> NTP only paying attention to the one sentence.
>
>
>
> Could the DATUM setting and NMEA version setting of the GPS have an
> impact? In that NTP would not be able to parse a particular datum string
> format?
>
>
>
> Here is what I see via minicom:
>
>
>
> $GPRMC,161840,A,4302.2074,N,08925.2269,W,000.0,291.6,090808,001.8,W*7D
> $GPGGA,161840,4302.2074,N,08925.2269,W,2,07,1.5,281.3,M,-34.4,M,,*71
> $GPGLL,4302.2074,N,08925.2269,W,161840,A*3F
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ml.enneenne.com/pipermail/linuxpps/attachments/20080811/9816e4f7/attachment-0001.htm
More information about the LinuxPPS
mailing list