[time-nuts] Re: Phase coherence with 2x GPSDO

Krishna Makhija km5es at virginia.edu
Fri Mar 18 00:57:28 UTC 2022


Good day everyone,

I ran a few additional tests to figure this issue out. The first test
involved using one GPS antenna for both units. I found that while phase
coherence was better in general, there was still a fair bit of disagreement
between them. I then tried to use the 1PPS from one GPSDO as reference to
the other one, and looked at the 10 MHz from each unit on a scope. There
was a fixed phase offset between both 10 MHz signals +- 5-8 ns of error.
Which means that even if I gave an error-free PPS as reference the
oscillators would *still* not be in enough agreement for my application.
Which in turn means implementing a PTP system would be pointless as well.

On a somewhat related note, does anyone know why the F9T modules only give
2.5 ns of timing accuracy? RTK GPS has 1 cm RMS of positioning error which
should theoretically be 33 ps in timing. Where does the 2.5 ns error come
from?

On Wed, Mar 9, 2022 at 3:26 PM Mattia Rizzi <mattia.rizzi at gmail.com> wrote:

> Hi
> The timestamping in a real implementation should be done in the FPGA or on
> a SoC integrated in the FPGA. Since you have a SDR you could implement a
> timestamping core.
> This timestamping core takes the samples from the ADC and calculates the
> time of arrival relative to the sampling clock.
> If you have already a datalink between the drone and the base station, you
> can use the symbol of the data layer, in that way you can have a lot of
> freedom in the implementation of the sync algorithm.
>
> >Since there is some
> non-deterministic computational overhead, you need to take several such
> measurements and calculate what the mean time of flight would be and
> correct the offsets accordingly. Is that correct? Please let me know if I
> am wrong because I really need to fix this issue.
>
> No, in an actual implementation it's deterministic.
> You're receiving a frame, the timestampjng core gives you a timestamp for
> each symbol. If you use 802.15.4-CSS, which has 4 MHz chirps as symbol, you
> can get down to 0.5ns RMS noise *for each symbol* (SNR of around 15 dB),
> indeed if you make an average with more symbols you can get better results,
> but there's a limit on how many timestamps you can average (mainly depends
> on the stability of you sampling clock).
>
> You can run a simple protocol like a stripped down version of PTP, and if
> you're able to embed it into layer 1 (you've an SDR, you can do it) then
> it's for free, and you can get a high synchronization rate for free. You
> can also get two-way ranging for free.
>
> Il Mer 9 Mar 2022, 19:23 Krishna Makhija <km5es at virginia.edu> ha scritto:
>
> > Hello Mattia,
> >
> > Thanks for the paper. Please correct me if I understood wrong, but it
> seems
> > like you are calculating the time of flight between timestamped signals
> to
> > synchronize two spatially separated clocks. Since there is some
> > non-deterministic computational overhead, you need to take several such
> > measurements and calculate what the mean time of flight would be and
> > correct the offsets accordingly. Is that correct? Please let me know if I
> > am wrong because I really need to fix this issue.
> >
> > How would it work if one of the units was moving relative to the other? I
> > am going to have one of these on a drone and flying around. I admit I
> never
> > looked too deep into NTP/PTP but I always figured there would be a
> constant
> > variability owing to the steady motion. With GPSDOs as others have
> pointed
> > out, there are further errors induced due acceleration (vibrations on a
> > piezoelectric cause sinusoidal frequency errors), and temperature changes
> > (the drone rover unit will see more airflow as compared to the base
> unit),
> > but as of now I am trying to make sure I can get it to work with that
> > notwithstanding at least.
> >
> > P.S. The Mini-JLT <
> > https://www.jackson-labs.com/index.php/products/mini_jlt>
> > is designed for drones. It has a special mode where it updates its
> position
> > in real-time. There is also a gyro with a Kalman filter running on a
> > real-time operating system which is supposed to reduce the effect of
> > vibrations. It does not eliminate that effect entirely but it does
> mitigate
> > it by a factor of 10.
> >
> > On Mon, Mar 7, 2022 at 2:11 PM Mattia Rizzi <mattia.rizzi at gmail.com>
> > wrote:
> >
> > > Hi,
> > > You can definitely get sub-ns precision using a 4-8 MHz bandwidth
> > wireless
> > > protocol. You are not limited by the sampling period. In my previous
> > work I
> > > used 802.15.4-CSS (chirp based modulation), implemented by me in a SDR.
> > The
> > > sampling rate was 32 ns but with crosscorrelation and sample
> > interpolation
> > > you can get down to half ns precision (1 sigma)
> > >
> > > See:
> > >
> > >
> >
> https://www.researchgate.net/publication/261329724_Timestamping_and_ranging_performance_for_IEEE_802154_CSS_systems
> > >
> > >
> > >
> > >
> > >
> > > Il giorno lun 7 mar 2022 alle 19:39 Krishna Makhija <
> km5es at virginia.edu>
> > > ha
> > > scritto:
> > >
> > > > Thanks Mattia. What did you use for your Layer 1? I need to place one
> > of
> > > > the SDRs on a drone and one on the ground so a fiber or LAN cable is
> > > out. I
> > > > could use WLAN but can you get sub-nanosecond performance over wi-fi?
> > My
> > > > initial guess would be no but I am not certain.
> > > >
> > > > Michael: I've had the same question but I can't see how it could
> > > > possibly "know" its own frequency error/uncertainty. What would it
> > > > reference to? I'll try asking the manufacturer anyway.
> > > >
> > > > Regards,
> > > > Krishna
> > > >
> > > > On Mon, Mar 7, 2022 at 11:46 AM Mattia Rizzi <mattia.rizzi at gmail.com
> >
> > > > wrote:
> > > >
> > > > > Hello Krishna,
> > > > > what is your end application? How far away are those boards?
> > > > > If each SDR can communicate to each other, you can run PTP over an
> > > ad-hoc
> > > > > Layer 1.
> > > > > I was able to get timestamps out of a 2.4 GHz chirp-based protocol
> > with
> > > > > less than 0.5ns RMS noise and two-way ranging error down to 10-20
> > > > > centimeters, using two SDR.
> > > > >
> > > > >
> > > > > cheers
> > > > >
> > > > > Il giorno dom 6 mar 2022 alle ore 23:48 Krishna Makhija <
> > > > > km5es at virginia.edu>
> > > > > ha scritto:
> > > > >
> > > > > > Hello Tom,
> > > > > >
> > > > > > Yes, the GPSDOs are working well. However, when I use each as a
> > > > reference
> > > > > > to a separate radio, I find there is a slow phase change over
> time
> > > > > between
> > > > > > said radios. I imagine this is expected since there will always
> be
> > > some
> > > > > > error between two discrete oscillators. However, I am hoping to
> use
> > > the
> > > > > PPS
> > > > > > and FEE metadata to compute what the phase *should* have been in
> > > > > > post-processing. So far, it is not working out for me. I am
> > wondering
> > > > if
> > > > > > that is even possible or if my math is just wrong.
> > > > > >
> > > > > > Bob,
> > > > > >
> > > > > > The SDRs have an LO running at 150 MHz (~6.66 ns) so a PPS wander
> > of
> > > +-
> > > > > 10
> > > > > > ns is >360 deg. With a common-mode reference I see a small phase
> > > change
> > > > > (+-
> > > > > > 3-4 deg) but that is not an option for my application.
> > > > > >
> > > > > > Where does the PPS offset come from? Isn't it from the
> positioning
> > > > error?
> > > > > > Typical GPS receivers have 1-3 m of positioning error which
> should
> > > give
> > > > > > you +- 10 ns. Why is this a "dream" performance? It should be
> > > expected
> > > > > from
> > > > > > any modern GPS receiver.
> > > > > >
> > > > > > Thanks for your inputs so far.
> > > > > >
> > > > > > Krishna
> > > > > >
> > > > > > On Sun, Mar 6, 2022 at 4:30 PM Bob kb8tq <kb8tq at n1k.org> wrote:
> > > > > >
> > > > > > > Hi
> > > > > > >
> > > > > > > They *are* phase coherant to within 360 * 100/ 10 = 36 degrees.
> > You
> > > > > > > can get them to *maybe* ten degrees with this and that done
> here
> > or
> > > > > > there.
> > > > > > >
> > > > > > > If you want them within a degree, no you can’t do that directly
> > > with
> > > > > GPS.
> > > > > > > If your definition of phase coherent is zero degrees, a pair of
> > > > SDR’s
> > > > > > off
> > > > > > > the
> > > > > > > same buffered clock will have issues with that definition in
> the
> > > real
> > > > > > > world
> > > > > > > of temperature wandering around …..
> > > > > > >
> > > > > > > Bob
> > > > > > >
> > > > > > > > On Mar 6, 2022, at 2:04 PM, Krishna Makhija <
> > km5es at virginia.edu>
> > > > > > wrote:
> > > > > > > >
> > > > > > > > Hi Bob,
> > > > > > > >
> > > > > > > > I am currently getting +- 10 ns nominal. The antennas are
> > > currently
> > > > > > > almost
> > > > > > > > next to each other (roughly 1-2 inches apart). Yes, they
> should
> > > be
> > > > > > > outside
> > > > > > > > of each of their farfield zones. Here is the PPS offset I am
> > > seeing
> > > > > > > during
> > > > > > > > measurement:
> > > > > > > > [image: image.png]
> > > > > > > > And this is the frequency error I am seeing:
> > > > > > > > [image: image.png]
> > > > > > > > Overall, the GPSDOs seem to work pretty well. But the
> question
> > > > still
> > > > > > > > remains if one can hope to get them to be phase coherent,
> > either
> > > in
> > > > > > > > real-time or in post-processing.
> > > > > > > >
> > > > > > > > Jeremy: I bought these items by writing to them. I chose to
> > > place a
> > > > > > > > purchase order (since I did it through my organization), but
> > you
> > > > > might
> > > > > > be
> > > > > > > > able to order by talking to them directly and paying using a
> > > credit
> > > > > > card.
> > > > > > > >
> > > > > > > > On Sun, Mar 6, 2022 at 1:51 PM Bob kb8tq <kb8tq at n1k.org>
> > wrote:
> > > > > > > >
> > > > > > > >> Hi
> > > > > > > >>
> > > > > > > >> How close are you trying to get?
> > > > > > > >>
> > > > > > > >> How far apart are the GPSDO’s?
> > > > > > > >>
> > > > > > > >> A “run of the mill” number would be out around 100 ns. A
> > “pretty
> > > > > good”
> > > > > > > >> number is in the 20 ns range. A “crazy good” number would
> be 2
> > > ns.
> > > > > To
> > > > > > > >> do better than this, you likely would need to go to a more
> > > exotic
> > > > > > > >> configuration
> > > > > > > >> on the GPSDO.
> > > > > > > >>
> > > > > > > >> Bob
> > > > > > > >>
> > > > > > > >>> On Mar 6, 2022, at 12:55 PM, Krishna Makhija <
> > > km5es at virginia.edu
> > > > >
> > > > > > > wrote:
> > > > > > > >>>
> > > > > > > >>> Hello,
> > > > > > > >>>
> > > > > > > >>> I am new to the whole precision time-keeping game (and to
> > this
> > > > > > mailing
> > > > > > > >>> list) so I apologize in advance if my question is too naive
> > or
> > > > has
> > > > > > been
> > > > > > > >>> answered already in your mailing list.
> > > > > > > >>>
> > > > > > > >>> Is it possible to have two separate GPSDOs, each with their
> > own
> > > > > > > antennas,
> > > > > > > >>> be phase coherent to each other? I have a Jackson-Labs Fury
> > > > > > > >>> <https://www.jackson-labs.com/index.php/products/fury>
> and a
> > > > > > Mini-JLT
> > > > > > > >>> <https://www.jackson-labs.com/index.php/products/fury>. I
> am
> > > > using
> > > > > > > each
> > > > > > > >> to
> > > > > > > >>> provide a 10 MHz reference to two separate software-defined
> > > > radios
> > > > > > > >> (SDRs).
> > > > > > > >>> In my tests I find that the phase offset between said SDRs
> > has
> > > a
> > > > > slow
> > > > > > > >>> time-varying behavior. I know the frequency errors of the
> > > GPSDOs
> > > > > are
> > > > > > of
> > > > > > > >> the
> > > > > > > >>> order of parts per trillion which will show up as slow
> > > > time-varying
> > > > > > > phase
> > > > > > > >>> offsets but I was hoping to use the PPS offsets and
> > > instantaneous
> > > > > > > >> frequency
> > > > > > > >>> errors that I get from these modules (using SCPI commands)
> to
> > > be
> > > > > able
> > > > > > > to
> > > > > > > >>> "back out" or predict what that time-varying phase offset
> > would
> > > > be.
> > > > > > Is
> > > > > > > >> such
> > > > > > > >>> a thing possible? Currently, the time-varying phase change
> > does
> > > > not
> > > > > > > seem
> > > > > > > >> to
> > > > > > > >>> follow any discernible pattern and my attempts at backing
> out
> > > the
> > > > > > phase
> > > > > > > >>> change do not match my measurements.
> > > > > > > >>>
> > > > > > > >>> Here is the math I am using for calculating what I *think
> > *the
> > > > > phase
> > > > > > > >>> *should* be:
> > > > > > > >>> [image: image.png]
> > > > > > > >>> [image: image.png]
> > > > > > > >>>
> > > > > > > >>> [image: image.png]
> > > > > > > >>> Does any of this seem sensible? Any input is appreciated.
> > > > > > > >>>
> > > > > > > >>> TL;DR: Trying to get phase coherence between two separate
> > > GPSDOs
> > > > > may
> > > > > > > not
> > > > > > > >> be
> > > > > > > >>> possible but can you use PPS offsets and frequency errors
> > > > metadata
> > > > > to
> > > > > > > >>> correct for it in post?
> > > > > > > >>>
> > > > > > > >>> Regards,
> > > > > > > >>> Krishna
> > > > > > > >>>
> > > > > > > >>
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> <image.png><image.png><image.png>_______________________________________________
> > > > > > > >>> time-nuts mailing list -- time-nuts at lists.febo.com -- To
> > > > > unsubscribe
> > > > > > > >> send an email to time-nuts-leave at lists.febo.com
> > > > > > > >>> To unsubscribe, go to and follow the instructions there.
> > > > > > > >> _______________________________________________
> > > > > > > >> time-nuts mailing list -- time-nuts at lists.febo.com -- To
> > > > > unsubscribe
> > > > > > > send
> > > > > > > >> an email to time-nuts-leave at lists.febo.com
> > > > > > > >> To unsubscribe, go to and follow the instructions there.
> > > > > > > >
> > > > <image.png><image.png>_______________________________________________
> > > > > > > > time-nuts mailing list -- time-nuts at lists.febo.com -- To
> > > > unsubscribe
> > > > > > > send an email to time-nuts-leave at lists.febo.com
> > > > > > > > To unsubscribe, go to and follow the instructions there.
> > > > > > > _______________________________________________
> > > > > > > time-nuts mailing list -- time-nuts at lists.febo.com -- To
> > > unsubscribe
> > > > > > send
> > > > > > > an email to time-nuts-leave at lists.febo.com
> > > > > > > To unsubscribe, go to and follow the instructions there.
> > > > > > _______________________________________________
> > > > > > time-nuts mailing list -- time-nuts at lists.febo.com -- To
> > unsubscribe
> > > > > send
> > > > > > an email to time-nuts-leave at lists.febo.com
> > > > > > To unsubscribe, go to and follow the instructions there.
> > > > > _______________________________________________
> > > > > time-nuts mailing list -- time-nuts at lists.febo.com -- To
> unsubscribe
> > > > send
> > > > > an email to time-nuts-leave at lists.febo.com
> > > > > To unsubscribe, go to and follow the instructions there.
> > > > _______________________________________________
> > > > time-nuts mailing list -- time-nuts at lists.febo.com -- To unsubscribe
> > > send
> > > > an email to time-nuts-leave at lists.febo.com
> > > > To unsubscribe, go to and follow the instructions there.
> > > _______________________________________________
> > > time-nuts mailing list -- time-nuts at lists.febo.com -- To unsubscribe
> > send
> > > an email to time-nuts-leave at lists.febo.com
> > > To unsubscribe, go to and follow the instructions there.
> > _______________________________________________
> > time-nuts mailing list -- time-nuts at lists.febo.com -- To unsubscribe
> send
> > an email to time-nuts-leave at lists.febo.com
> > To unsubscribe, go to and follow the instructions there.
> _______________________________________________
> time-nuts mailing list -- time-nuts at lists.febo.com -- To unsubscribe send
> an email to time-nuts-leave at lists.febo.com
> To unsubscribe, go to and follow the instructions there.




More information about the Time-nuts_lists.febo.com mailing list