I thought i might add my own $0.02 as this is something i've been working on for some time (i.e. trying to figure out which gps module is best for my OSH project).

The MTK3339 is ok, but my current round of hardware design has been putting the neo6m, Quectel L80 and MTK3339 up against each other and the MTK3339 is the worst performer of the lot (which is not to say its bad), but the jitter is higher and the sensitivity lower. To be fair, the neo has a better antenna then the other two as im using these modules:

https://cdn-shop.adafruit.com/1200x900/790-03.jpg
http://media.rs-online.com/t_large/F9084085-01.jpg

which are the same size for the L80 and MTK, but for the neo i have something like this:

http://img.dxcdn.com/productimages/sku_312527_1.jpg

The neo does the best (its also amazingly configurable), followed by the L80 then the MTK in terms of how jittery they are, but the biggest issue is the MTK3339 is more prone to dropping out where the other two continue to maintain a gps signal (some of this can possibly be blamed on my board design, however both the L80 and MTK use a nearly identical board design).

Having said all that, when it comes to the time clients, they will often slighly prefer the neo based unit (and if i take that away its the L80), but the difference once you hit the network is insignificant (unless the MTK looses its fix). If your to presume the module goes somewhere with a good skyview, theres not alot to split the three. The L80 is harder to get where the neo and mtk are readily available from a million sources (but i cant get the neo in a form factor that i like for my project).

I've also put these three up against commercial units with interesting results, but thats another story.

Regards, Paul


On 17/11/17 05:21, Joe Smith wrote:
I'm not too concerned about the accuracy of the PPS. This particular GPS receiver is pretty high quality. https://learn.adafruit.com/adafruit-ultimate-gps/overview It delivers the NMEA data and the PPS. A number of online resources describing similar projects and the GPSD Time Service HOWTO page all speak highly of it. I just wasn't sure if there was a way to get an idea of the clock accuracy using chronyc. Mainly just to be sure I didn't do anything wrong with the settings.

On Thu, Nov 16, 2017 at 12:57 PM, Bill Unruh <un...@physics.ubc.ca <mailto:un...@physics.ubc.ca>> wrote:



    William G. Unruh __| Canadian Institute for|____ Tel:
    +1(604)822-3273 <tel:%2B1%28604%29822-3273>
    Physics&Astronomy _|___ Advanced Research _|____ Fax:
    +1(604)822-5324 <tel:%2B1%28604%29822-5324>
    UBC, Vancouver,BC _|_ Program in Cosmology |____
    un...@physics.ubc.ca <mailto:un...@physics.ubc.ca>
    Canada V6T 1Z1 ____|____ and Gravity ______|_
    www.theory.physics.ubc.ca/ <http://www.theory.physics.ubc.ca/>

    On Thu, 16 Nov 2017, Joe Smith wrote:

        I'm trying to determine the best way to get an idea of my
        clock accuracy now that I'm
        getting the PPS signals. Is that "chronyc tracking"? When I do
        "chronyc sources" or "chronyc
        sourcestats" those seem to indicate NMEA offsets that are on
        the order of 40-60ms.


    NMEA is a prety terrible clock. a) the receiver decodes and
    composes the nmea
    sentances when it is not busy doing something else. The sentences
    are delivers
    at something like 30Kbaud, ( which is about 3000 bytes per second)
    The sentences
    are about 50 bytes long, so just getting in a sentence takes about
    a 30ms of
    a second. And each sentence has a slightly different length so the
    arrival of
    the end of the sentence varies with its length. All of these
    things mean that
    nmea is useless for accruracy better than about 10ms even if you
    compensate
    for the average time delay.

    You cannot estimate the accuracy of the PPS from the nmea
    sentences. It is
    like trying to estimate the accuracy of a stopwatch by using a
    water clock.



        debian@beaglebone:~$ chronyc sources
        210 Number of sources = 2
        MS Name/IP address         Stratum Poll Reach LastRx Last sample
        
===============================================================================
        #? NMEA                          0   4   377    14 -59ms[ 
        -59ms] +/-  107ms
        #* PPS                           0   4   377    12
        -1985ns[-2545ns] +/- 1792ns
        debian@beaglebone:~$ chronyc sourcestats
        210 Number of sources = 2
        Name/IP Address            NP  NR  Span  Frequency Freq Skew 
        Offset  Std Dev
        
==============================================================================
        NMEA                       64  29  1009     -8.352  14.888   
        -48ms  9366us
        PPS                        10   3   145     -0.000   0.136   
         -2ns  3981ns
        debian@beaglebone:~$ chronyc tracking
        Reference ID    : 50505300 (PPS)
        Stratum         : 1
        Ref time (UTC)  : Thu Nov 16 13:04:35 2017
        System time     : 0.000000898 seconds slow of NTP time
        Last offset     : -0.000000564 seconds
        RMS offset      : 0.000011269 seconds
        Frequency       : 39.580 ppm fast
        Residual freq   : -0.000 ppm
        Skew            : 0.138 ppm
        Root delay      : 0.000000001 seconds
        Root dispersion : 0.000025743 seconds
        Update interval : 16.0 seconds
        Leap status     : Normal

        The "chronyc tracking" output seems to indicate (if I'm
        understanding the documentation
        correctly) that the accuracy is pretty good. Am I interpreting
        this correctly?


    The PPS accuracy is largely determined by the interrupt handling
    time, which
    is something like a usec. It depends, so that if the the pps comes
    in when the
    computer is reading a disk (which used non-interruptable
    interrupts) it will
    be delayed by many microseconds.  But yes, the PPS should be
    pretty good. as
    tracking says it has a rms offset of about 10us. Most of that is
    delay, so the
    accuracy is probably about 10us, The precision is much better, in
    the hundreds
    of ns range.

    The only way you could estimate more accurately is to run the PPS
    to a scope,
    and have the system send out a pulse say on the parallel port at a
    predetermined time (say 100 usec after the top of the hour using
    polling of
    the clock to say when to send out that pulse) and see what the
    actual offset
    is on the scope.





        On Wed, Nov 15, 2017 at 11:48 AM, Bill Unruh
        <un...@physics.ubc.ca <mailto:un...@physics.ubc.ca>> wrote:


              William G. Unruh __| Canadian Institute for|____ Tel:
        +1(604)822-3273 <tel:%2B1%28604%29822-3273>
              Physics&Astronomy _|___ Advanced Research _|____ Fax:
        +1(604)822-5324 <tel:%2B1%28604%29822-5324>
              UBC, Vancouver,BC _|_ Program in Cosmology |____
        un...@physics.ubc.ca <mailto:un...@physics.ubc.ca>
              Canada V6T 1Z1 ____|____ and Gravity ______|_
        www.theory.physics.ubc.ca/ <http://www.theory.physics.ubc.ca/>

              On Wed, 15 Nov 2017, Joe Smith wrote:

                    Thank you so much!! With the lock NMEA it is no
        longer ignoring the
                    pulses. I should be able
                    to make adjustments to the offset and whatnot to
        get the clock
                    accuracy down to where I need
                    it.


              NMEA can never give better than 10s of ms accuracy. The
        problem is that when
              the gps receiver sends out an NMEA sentence is arbitrary
        and even the length
              of the sentence is to an extent arbitrary. To get better
        accuracy, it is the
              PPS that gives it. However the pps conveys only the
        information of when the
              turnover of the second occurs, not which second that is.
        That is what the NMEA
              is needed for. (and once the system has that once , it
        really no longer needs
              the NMEA) since the system clock is sufficiently regular
        that it can figure
              out which second the pulse belongs to for at least many
        hours, and usually for
              months.

              Thus: chrony is switched on. Chrony uses the NMEA
        sentences ( or infomation
              from network ntp servers) to get the system clock
        disciplined to 10's of ms.
              The PPS now takes over, and the clock then gets
        disciplined to microsecond
              accuracy. If the PPS is interrupted for some reason, the
        system clock carries
              over the seconds information for hours to days until the
        PPS works again.



                    On Wed, Nov 15, 2017 at 2:02 AM, Miroslav Lichvar
                    <mlich...@redhat.com <mailto:mlich...@redhat.com>>
        wrote:
                          On Tue, Nov 14, 2017 at 03:45:41PM -0500,
        Joe Smith wrote:
                          > I rebuilt chrony with --enable-debug and
        ran with -d -d
                    Below is some
                          > output although I'm not 100% sure what it
        means. Tried
                    looking at the
                          > source code to see if I could ascertain
        the cause but I was
                    unable. I let
                          > it run for a bit and here's some sample
        output. The pattern
                    just seems to
                          > repeat over and over.

                          The "sync=0 dist=1.5" part says the system
        clock is not
                    synchronized,
                          which suggests it's not trying to lock to
        the NMEA source.
                    Looking at
                          your config again, I see now that the PPS
        refclock is missing
                    "lock
                          NMEA".

                          Alternatively, you could try to remove
        noselect from the NMEA
                    line, so
                          chronyd can synchronize the clock to the
        NMEA source first and
                    then
                          it can switch to PPS.

                          > 2017-11-14T20:34:22Z
        refclock.c:520:(RCL_AddCookedPulse)
                    refclock pulse
                          > ignored offset=0.003559951 sync=0
        dist=1.500000000
                          > 2017-11-14T20:34:23Z
        refclock_shm.c:104:(shm_poll) SHM
                    sample ignored
                          > mode=1 count=1202324 valid=0
                          > 2017-11-14T20:34:23Z
        sources.c:356:(SRC_AccumulateSample)
                    ip=[NMEA]
                          > t=1510691656.723338336 ofs=0.080481
        del=0.200000
                    disp=0.009623 str=0
                          > 2017-11-14T20:34:23Z
        sourcestats.c:583:(SST_DoNewRegression)
                          > off=1.007180e-01 freq=6.636850e-05
        skew=3.159318e-04 n=16
                    bs=0 runs=10
                          > asym=0.000000 arun=0
                          >
                          > On Tue, Nov 14, 2017 at 10:36 AM, Miroslav
        Lichvar
                    <mlich...@redhat.com <mailto:mlich...@redhat.com>>
                          > wrote:
                          >
                          > > On Tue, Nov 14, 2017 at 07:40:33AM
        -0500, Joe Smith wrote:
                          > > > Thank you for the quick response
        Bill... The PPS is
                    coming in on
                          > > /dev/pps1
                          > > > which is what I have in the refclock
        entry in my
                    chrony.conf file. When
                          > > run
                          > > > the cat command corresponding to that
        device I get:
                          > > >
                          > > >
        debian@beaglebone:~/ntp-gps-server/pps-overlay$ cat
                          > > > /sys/devices/virtual/pps/pps1/assert
                          > > > 1510661769.997836084#571264
                          > >
                          > > That looks good. The configuration also
        looks good. I
                    guess the only
                          > > thing that could be wrong is the offset
        value on the SHM
                    line. Does
                          > > the machine have an internet connection?
        It might help if
                    you could
                          > > configure it with an NTP server and
        remove the lock option
                    from PPS to
                          > > see if it works that way and to see if
        the offset of the
                    NMEA source
                          > > needs to be adjusted.
                          > >
                          > > If that doesn't work, recompiling chrony
        with debug
                    support
                          > > (--enable-debug) and running chronyd
        with -d -d should
                    show why it's
                          > > ignoring the PPS samples.







Reply via email to