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

Mattia Rizzi mattia.rizzi at gmail.com
Wed Mar 9 19:40:04 UTC 2022


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.




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