Skip to content

Recently I found a used HP/Agilent 53131A counter on Ebay and the offer was too good to pass on. It arrived in good condition and fully working, but it lacked an OCXO timebase and the built-in TCXO is not very stable.

I started looking around for OCXO options and while you can buy them on Ebay, most of them are quite expensive (more than US$200).

While searching for DIY options I found some projects and one of them even provided Gerber files for download. Click here for the blog post describing the project.

I bought a used Morion MV89A OCXO on Ebay from a seller that had a good reputation, ordered PCBs from JLCPCB and the necessary parts from Mouser. I splurged and also populated the DAC and voltage reference to enable the automatic calibration, which is a lot more convenient than having to open up the counter for manually trimming the OCXO. The automatic calibration allows you to trim the timebase without having to remove the counter from the bench, you can keep it powered and the OCXO hot and in thermal equilibrium.

Gerber files and BOM can be found on Github. Two caveats regarding the BOM:

  • Don't populate R3. The BOM notes it as a 5k6 resistor but it should be "DNP". If you place R3, the LM361 comparator will have a wrong trigger level and there will be no clock output to the main board. This will cause a power-on self-test fail (GP-IB).
  • JP1 has to be soldered closed.

There is one other upgrade to be done, replacing the internal fan which has a very obnoxious whining sound which is especially irritating since the fan is always on when the counter is powered.



One of the main building blocks of the Rb-GPSDO is the part that measures the offset between the timing signal from the GPS and the LO. In this design, the measurements are done with a TDC7200 Time-to-Digital Converter by Texas Instruments. The following graphic is the TIC part of the whole circuit.

The 1PPS timing signal from the GPS is directly provided to the START input of the TDC7200 (U2).

The 10MHz signal from the LO is first fed into a sine-to-square block. An inverter (U8F) feeds the resulting square wave into a divide-by-20 stage formed by a 74HC390 decade counter. The output is a 500kHz signal which is connected to the STOP input of U2.

The TDC7200 needs a reference clock to calibrate its internal high-frequency ring oscillator. Since absolute measurement accuracy is not required for this GPSDO, conveniently the LO can also supply the reference clock. Another inverter stage (U8A) supplies the squared-up LO signal to the reference clock input of U2.

With this setup, each pulse of the 1PPS timing reference starts a measurement and the next rising edge of the 500kHz signal, which has a fixed phase relation to the LO output, stops the measurement. The time between START and STOP is a measure for the phase offset between the timing signal and the LO. The LO frequency is locked to the timing reference if the phase offset stays constant.

However, keeping the phase offset constant is quite difficult because of the uncertainty of the measurement and numerical issues when calculating the differences between consecutive measurements. For example, if the measurement uncertainty is 100ps, the frequency can drift 100ps/s without it showing up in the measurements. Due to the averaging necessary to eliminate the 1PPS noise (over thousands of seconds), errors will accumulate quickly as you keep adding measurements, each of them adding another 100ps/s of uncertainty.

Therefore, the most reliable way to lock the frequency of the LO is to lock its phase to the timing reference. Here, each measurement is independent of the previous, as it is referenced to a fixed phase difference. The necessity to average out 1PPS noise is still the same, but the measurement uncertainty does not add up.

It is advisable to supplement the TIC shown above with a counter for timestamping the 1PPS pulses from the GPS. The circuit as implemented has a capture range of 2 microseconds. If the phase ever drifts more than this, for example when there is no GPS coverage, the measured time interval will wrap. However, for the purpose of creating a frequency standard this is of no consequence.