Adjusting the reference oscillator of the HP-53310A Modulation Domain Analyzer

I bought my HP-53310A a couple of years ago and never adjusted it's reference oscillator because, well, it just looked fine and pretty close to what it should be. But I also built a GPS logger for my hiking activities and the U-Blox chipset (M9N) does have a PPS output that can be set to pretty much any frequency you want. So why not calibrate the 53310A's oscillator with the GPS? After all, my 53310A has the very-stable double-oven "10811-60111" oscillator (OCXO) so it would be a pity not to use its full capabilities.

First thing to check is how close the oscillator in the venerable modulation domain analyzer (MDA) is to a really good 10MHz, GPS-driven reference. Not that easy actually, because while the M9N chipset will have a stable PPS output adjusted and sync'ed to the second ("top of the second"), it cannot adjust it very smoothly. Basically the PPS output is sync'ed with the GPS chip's clock (48MHz) and thus every edge on the PPS signal is +/- about 21ns. The adjustments are very much discrete, and only longer term tests make sense with this kind of reference signal. This is explained in the M9N manual too: they recommend to chose 'PPS' output frequency that is an integer divisor of the chip's 48MHz clock to avoid too much jitter. For example, 8MHz is fine (48/6) but the standard 10MHz would not be. Here are a few frequency estimations of the GPS' PPS output:

Hewlett-Packard HP53310a measuring a 1MHz reference signal from a M9N GPS receiver Hewlett-Packard HP53310a measuring a 4MHz reference signal from a M9N GPS receiver
Hewlett-Packard HP53310a measuring a 8MHz reference signal from a M9N GPS receiver Hewlett-Packard HP53310a measuring a 10MHz reference signal from a M9N GPS receiver
Hewlett-Packard HP53310a measuring a 12MHz reference signal from a M9N GPS receiver Hewlett-Packard HP53310a measuring a 16MHz reference signal from a M9N GPS receiver
The U-Blox M9N chipset PPS output reference signal frequencies (1, 4, 8, 10, 12 and 16MHz) as measured with an unadjusted reference oscillator.
Wonder how I took these screenshots? Checkout my python script!

The error at 10MHz is 55mHz, a bit too much for my taste. For other frequencies the error is proportional, which we do indeed observe. The standard deviation is not completely linear though, and rises quite a bit over 10MHz, as the M9N datasheet suggested. Think about it: at 16MHz an adjustment by the 48MHz chip means a 30% difference immediately. Not exactly smooth. To be honest 55mHz may look big or small depending on the application. It's about 5.5x10e-9, not bad but "could do better". The question is now whether we can do better or not, and that boils down to what kind of fine adjustment we can perform on the 10811 oscillator. The 10811A specs say that the multi-turn trimmer, the only accessible adjustment, can change the output frequency +/- 10Hz across its entire 18 turns, or roughly 1Hz/turn. Currently we have about 1/20Hz of error, or 1/20 turn, or about 18 degrees. That is quite large, and it's thus reasonable to think that adjusting the trimmer could lead to a more accurate oscillator. Checking this beforehand is quite important: you don't want to play with the adjustment only to realize that HP uses a special robot that makes 0.001 degrees micro-adjustments, something you would then not be able to replicate at home. I think it should be relatively easy to make about 3 degrees adjustments, which would translate into about 1/100 Hz = 10mHz of accuracy. Hopefully we can do better, but at least it's clear 55mHz is not the best we can do. Trimmer time!

The 10811A manual says that an insulated screwdriver must be used. I tried first with a fully plastic driver (typically used for ferrite cores) but the trimmer is decidedly too hard to turn with a plastic tool. That's a good thing: you don't want that trimmer to move once it's set! I then switched to a standard eye-glasses type screwdriver and it worked fine. Tongue twisting is definitely required: just applying torque with no discernible motion of the pot is enough to move the frequency a few millihertz at least. Successive torquing without apparent motion can still make a difference, and is actually a good way to slowly move towards the optimum. After quite a bit of trial, error and hairs pulled (not that I have much left at this point!), I got it down to about 700 uHz of error. It's not reasonably possible to do better unless luck is used. Unfortunately it takes a long time to get a good frequency estimation and therefore one has to wait quite a bit between adjustments. The final frequency estimation after adjustment looks like this:

Frequency estimation after calibration
Final adjustments give an error of 753uHz, almost two orders of magnitude better than 55mHz!

At 9e-11 that's almost two orders of magnitude better than the 55mHz error we had before, great success! The 10811 also has a voltage-control input so that it could be locked to the GPS signal with a basic PLL, resulting in a real and potentially super-stable GPSDO. Come to think about it, I've never seen a GPSDO built around the superlative 10811 oscillator, maybe something to think about in the future...