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

Bob kb8tq kb8tq at n1k.org
Wed Mar 9 18:53:01 UTC 2022


Hi

If you have a clock in motion and want to send it a time signal, 
the speed of light will always get into the process. A nanosecond
is roughly 30 CM. To hit a half nanosecond, you need to know the 
location to within 15 CM. If you are doing this by survey techniques
( = GPS), that would be related to the sum of the location errors on 
both ends. 

If your drone is moving at 15 KPH, that’s a bit over 4 m/s. Roughly 
speaking, you would need updates at > 10 per second to keep 
this from dominating the result. This would be true of both survey 
and direct time of flight measurements. 

If the objective is to to this in real time, that’s a lot to work out. Is 
post processing an alternative in this case? 

Getting a nanosecond ( or even 10’s of nanoseconds ) with NTP is 
not what the protocol is designed to do. With PTP, hitting this level
involves a lot of traffic *and* a stable ( = time invariant ) link between
the devices involved. Even then it struggles as you head below
the 100’s of ns over something other than a hard wired connection. 

Bob

> On Mar 9, 2022, at 8:00 AM, Krishna Makhija <km5es at virginia.edu> wrote:
> 
> 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