Hi
> On Mar 17, 2022, at 8:57 PM, Krishna Makhija <km...@virginia.edu> wrote: > > 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 the same “one sigma long average compare two to each other only look at the noise basis after corrections”, the F9T does a few hundred ps. Just like the RTK number, static offsets are not part of that calculation. Bob > > On Wed, Mar 9, 2022 at 3:26 PM Mattia Rizzi <mattia.ri...@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 <km...@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.ri...@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 < >> km...@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.ri...@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 < >>>>>> km...@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 <kb...@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 < >>> km...@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 <kb...@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 < >>>> km...@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@lists.febo.com -- To >>>>>> unsubscribe >>>>>>>>>> send an email to time-nuts-le...@lists.febo.com >>>>>>>>>>> To unsubscribe, go to and follow the instructions there. >>>>>>>>>> _______________________________________________ >>>>>>>>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To >>>>>> unsubscribe >>>>>>>> send >>>>>>>>>> an email to time-nuts-le...@lists.febo.com >>>>>>>>>> To unsubscribe, go to and follow the instructions there. >>>>>>>>> >>>>> <image.png><image.png>_______________________________________________ >>>>>>>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To >>>>> unsubscribe >>>>>>>> send an email to time-nuts-le...@lists.febo.com >>>>>>>>> To unsubscribe, go to and follow the instructions there. >>>>>>>> _______________________________________________ >>>>>>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To >>>> unsubscribe >>>>>>> send >>>>>>>> an email to time-nuts-le...@lists.febo.com >>>>>>>> To unsubscribe, go to and follow the instructions there. >>>>>>> _______________________________________________ >>>>>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To >>> unsubscribe >>>>>> send >>>>>>> an email to time-nuts-le...@lists.febo.com >>>>>>> To unsubscribe, go to and follow the instructions there. >>>>>> _______________________________________________ >>>>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To >> unsubscribe >>>>> send >>>>>> an email to time-nuts-le...@lists.febo.com >>>>>> To unsubscribe, go to and follow the instructions there. >>>>> _______________________________________________ >>>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe >>>> send >>>>> an email to time-nuts-le...@lists.febo.com >>>>> To unsubscribe, go to and follow the instructions there. >>>> _______________________________________________ >>>> time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe >>> send >>>> an email to time-nuts-le...@lists.febo.com >>>> To unsubscribe, go to and follow the instructions there. >>> _______________________________________________ >>> time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe >> send >>> an email to time-nuts-le...@lists.febo.com >>> To unsubscribe, go to and follow the instructions there. >> _______________________________________________ >> time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send >> an email to time-nuts-le...@lists.febo.com >> To unsubscribe, go to and follow the instructions there. > _______________________________________________ > time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an > email to time-nuts-le...@lists.febo.com > To unsubscribe, go to and follow the instructions there. _______________________________________________ time-nuts mailing list -- time-nuts@lists.febo.com -- To unsubscribe send an email to time-nuts-le...@lists.febo.com To unsubscribe, go to and follow the instructions there.