[time-nuts] Phase measurement of my GPSDO

Tobias Pluess tpluess at ieee.org
Wed Aug 12 11:23:57 UTC 2020


Dear Colleagues

I have made some tests with my self-made GPSDO which we discussed on this
very list.
I was allowed to install it at my workplace and put the antenna on the
roof, with almost 360° free sky view.
(I will have to compare different oscillators anyways, so I could install
mine as well. I have also ordered some Rb standards which I will use for
further comparisons.)

OK what I did so far is just log the output of my GPSDO to a text file. My
software which runs on the GPSDO outputs every second the 1PPS phase error,
the OCXO current, board temperature, DAC value, #of satellites tracked and
the position accuracy.
The phase error is measured with a builtin TIC and is the time difference
between the 1PPS signal from the GPS module vs. the 1PPS signal derived
from my OCXO and is the input to my control loop which then forms a PLL.

I thought, maybe the measurements are of interest for some members of this
group, this is why I post this message and uploaded some of my measurement
data here:

https://hb9fsx.ch/files/gpsdo/measurement/

on the jpg images, one can see my antenna location. It is not optimal, I
know, but far better than at home on my window still! (unfortunately, I
could not use this very nice Trimble antenna seen on one of the pictures.)

In the Lady Heather screenshot, one can see, for comparison, the satellites
tracked by my GPSDO compared to the ones tracked by a commercial GPSDO.
Nice to see that the C/N0 values and the SV IDs seem to be the same, from
this I conclude that my PCB layout of the RF part seems to be acceptable
(otherwise the signal reception would be degraded I assume).

So far, my GPSDO runs for 210 hours and continuously logs its data. On the
picture `gpsdo_0_210.png` one can see the data from the full run. The
x-axis is in hours (obviously). Also note that I cut off the first couple
of minutes of the logged data (just because the control loop needs to
settle there and therefore the phase error is not so nice and would disrupt
the y-axis). Apparently, the phase error never becomes larger than +/-20ns.

On the picture `gpsdo_180_210.png` one can see the last 30 hours of my
measured data. During this time, the DAC value need to change only by 9
counts. I think the DAC value has a slight trend to go lower and lower,
this is perhaps because my OCXO was new and is still a bit aging. Phase
error stays within +/-15ns during the whole time!

On the image `gpsdo_pos_to_timing.png` one can see when the GPS receiver
automatically switches from positioning to timing mode. At the beginning, I
started a self-survey where I specified a desired position accuracy of
200mm. (What would be a sensible value for the desired position accuracy?)
On the lowest chart, I added the position standard deviation reported by
the GPS module. We can clearly see, at about time 9h, that the 200mm limit
is reached and the module switches from positioning mode to timing mode. At
this time, we can also see how the jitter behaviour of the phase error
changes slightly. I assume this is because the timing mode offers a better
jitter performance of the 1PPS output and therefore my phase error in the
end also becomes less noisy.

The last plot I have so far is `gpsdo_switch_filters.png` which is the data
recorded during the initial startup phase. In my GPSDO control software, I
use a PI controller where I automatically change the P and I coefficients
depending on how stable the phase error was previously. We can see that up
to approx. 0.35h, the DAC output follows the phase error rather quickly.
For startup, I optimised my control loop such that it has a time constant
of approx. 10sec, which allows the phase error to stabilise quickly. At
0.35h, the phase error was within certain limits for long enough time such
that the control software decides to switch the P and I coefficients such
that the control loop's time constant becomes approx. 100sec. From there
on, we can see how the DAC output immediately becomes more quiet and
stable. Later, the time constant is again increased to 1000sec. (I don't
know whether this is good for the OCXO I have - but somewhere I read that
the Oscilloquartz STAR4 uses 200sec as default but it could be much more,
this is why I increased it on my unit to 400sec.)

As I still don't have a proper DMTD system or anything similar which allows
me to `quickly` estimate the stability of my device, I made some
experiments and imported my logged data int Timelab. This can be seen in
the picture `timelab_estimated_from_dac.png`. The blue curve results when I
analyse the phase error. As expected, since this is essentially the
performance of the 1PPS signal, the curve goes lower and lower. (I imported
this data as "phase difference" and scaled it with 1e-9).
The pink curve results when I let Timelab analyse the DAC values. This idea
is actually from a colleague on this list. It assumes that the OCXO is
perfectly stable and the only instability comes from the DAC being
disturbed by the 1PPS noise. To analyse this, I imported the data as
"Frequency Difference" and scaled it appropriately (scaling factor is
7.6e-12 as I have approx. 5 to 6Hz tuning range of the OCXO per 16 Bits). I
am not sure how accurate this estimation will be, but if it is only close
to the reality then it appears that my GPSDO has a stability in the range
1e-12. According to John's comparisons here:

http://www.ke5fx.com/gpscomp.htm

this would mean it is slightly better than a BG7TBL and quite a bit worse
than a Tbolt with 10811A oscillator.

Comments welcome. I hope I get my two Rb standards soon and can then do
some DMTD tests.


Tobias
HB9FSX



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