This may take the title of simplest...and certainly the world's scruffiest 10MHz GPSDO.
A while back I did a teardown of one of the cheap ebay u-blox LEA-6T GPS modules...
https://www.eevblog.com/forum/projects/ebay-u-blox-lea-6t-gps-module-teardown-and-initial-test/msg886887/#msg886887It seems time to try to turn it into a 10MHz GPSDO. As mentioned it the previous thread, one of the good thing about the LEA-6T is two independently programmable pulse / frequency outputs. It also has simultaneous serial NMEA and USB data interfaces. The module is capable of putting out 10MHz, and although I found it usable for setting my frequency counter on a 10 second gate, it jitters badly because it is a non-integer divide of it's internal TCXO. If it hadn't been for this I might have been inclined to use it as-is, but I wanted a stable clock to slave my synthesized signal generator to. Also, I've had an ebay Efraton/Datum 105243-003 10MHz OCXO sitting around for some time waiting for this application.
The first breadboard is shown below. I decided to use a 1MHz as the lock frequency with the GPS, It is an integer divide, and 1MHz is a useful output frequency. This makes the circuit even simpler than James Miller's simple GPSDO because it only needs a single divide by 10 stage (his relied on the Jupiter GPS with 10kHz output). I used half of a 74HC390 (divide by 5 followed by divide by 2 to maintain a 1:1 mark:space). I will probably use the other half to provide a 5MHz output too.
For the phase comparator I went for a 74HC4046 (VCO disabled) rather than a simple XOR gate so that I could experiment with the different comparators; and also because it has self-biased frequency inputs, so that I could AC couple the 3V3 signal from the LEA-6T and provide accidental back-drive protection. The loop filter is very simple, with quite a long time constant of 10s (100k / 100uF Tant). I haven't yet managed to improve on this yet, but it does require Phase comparator 3 (the RS flip-flop one), I couldn't get reliable pull-in on PC1 (XOR) and PC2 seemed far too aggressive and hunted whatever the filter constants. I think the problem here is that, although there isn't non integer divide jitter at 1MHZ, there is still the characteristic GPS sawtooth superimposed on the signal as it isn't possible to sawtooth correct at higher than 1Hz and with data correction.
I found that the Efratom OCXO has a 68k internal pulldown on its VFC input, so I had to buffer it with a CMOS opamp. That's about it, I paralleled the 100uF with a 100n to help with its ESR at 1MHz and put a 100R/100nF on the output of the opamp to help block HF noise into the OCXO. There's minimal supply decoupling at this stage and the VFC signal is on a clip lead! I also haven't split out the cable and adapter board supplied with the GPS module so the 1MHz signal is passing down the cable from my modified module alongside supply, 1pps, serial data etc. As I said, decidedly scruffy at this stage.
Performance wise I am quite surprised. The OCXO has a measured frequency offset of 5.2 Hz /volt on the VFC input (26Hz over a 5 volt range), therefore 1mV shift equates to 5.2mHz / mV or 5.2e-10 of 10MHz. I found that the OCXO control voltage settles to a stability to less than 1mV within 6 minutes of a cold start, this includes GPS lock time (using my external active antenna, upstairs ceiling height), and OCXO warm up of 3 minutes (pretty fast). From a warm start the control voltage stabilizes to the 1mV level within about half the time, it 'rings' around the lock frequency but settles reasonably smoothly. The control voltage shifts by a couple of mV as the oven fully stabilizes but then remains stable within 1mV over several hours.
I don't have the equipment to evaluate the output purity of the OCXO and a 5e-10 level is nearly two orders of magnitude better than my counter can resolve, but the OCXO control voltage is clean on the scope with no visible sawtooth remaining.
I'm not sure about the merits of Phase locking at as high as 1MHz rather than 1Hz or 800Hz (I've seen mentioned in the u-blox timing app note). It does make it very easy to filter the comparator output pwm and avoids the jitter generated by several decades of asynchronous 74HC390 dividers. Opinions welcomed.
The other photo shows the frequency counter (previously adjusted in reciprocal mode with the LEA-6T pulse output set to its maximum 60s pulse rate), OCXO VFC control voltage, and comparator PC3 output waveform (not very interesting really!).
The next stage I guess it to actually build it (proper Manhattan this time), at least I know that noise wont be a problem. I also need to work out a reliable lock indication method, maybe monitoring the VFC shift using a micro (and decoding and displaying NMEA data at the same time), or maybe just a front panel monitor socket. I also need to implement some 50R output buffers using ACT14s.
I hope this has some entertainment value anyway.