Brooks Shera's GPS-Controlled Frequency Standard  

Several years ago I became interested in detecting weak extraterrestrial radio signals. This interest may sound slightly bizarre, but let me assure you that there are valid scientific reasons for it. This activity is greatly benefited if a stable and accurate frequency reference is available. The best I had was a WW II surplus BC-221, a unit designed to check the Army's tank transmitters. It was a marvel in its day, but a little lacking for my present purposes.

So a project began. The goal was to produce an inexpensive, but highly accurate, frequency standard by synchronizing a local crystal (or Rb) oscillator to the GPS atomic clocks. The project was started in the Spring of 1997 and a prototype was designed and operating in the late Fall of that year. Several months of experimentation and testing resulted in a design that produces a frequency accuracy better than one part in 10 to the 11. The cost of the device, exclusive of a commercial GPS receiver and a local oscillator, is less than $75.

Synchronization is accomplished by measuring the phase difference between the local oscillator and the 1 pulse-per-second timing signals from a commercial GPS receiver. The circuit computes and generates a control voltage that varies the frequency of the local oscillator so as to keep the phase difference constant -- a phase-locked loop.

The main challenges of the design result from (1) the large discrepancy in frequency between the local oscillator (typically 5 MHz) and the 1 PPS GPS signals, (2) the need to suppress the random jitter in the timing of the GPS signals (SA) purposely introduced by the DoD (note: early in 2000 the DoD discontinued this purposeful degradation of the GPS signals and the accuracy of the frequency standard improved considerably), and (3) the requirement that the controller be adaptable to oscillators with widely different stabilities.

The project has been described in an article that appears in the July '98 issue of the amateur radio journal, QST. Most of the information presented here is the result of ongoing experimentation and testing that was done after the article was submitted. .

Important Information for Builders of the Controller

A nice printed circuit board ($21.50) is available from A & A Engineering, Anaheim, CA (714) 952-2114, their webpage has ordering information and a photo of the PCB.

NEW Construction and Setup Notes (last revised June 11, 2001): Notes

Some Questions and Answers (last revised June 11, 2001): Q&A

PC software to convert the controller's ASCII output for easy plotting with a spreadsheet, including the source code and some hints, courtesy of Gary Sanders, WB0BZR, (62 Kbytes). An updated version handles both PIC code vsn 1.29 and 1.33 output formats (12 Kbytes) . Download both files if you don't have the instructions included in the original version.

The PIC source code for a single chip frequency divider that takes a 10 MHz input and produces 9 square wave outputs - one for each frequency decade from 100 kHz to 0.001 Hz (1000 s period), courtesy of Tom Van Baak, PIC16C84 frequency divider code (zip format, 4 K bytes)

To see an application of the gps frequency standard and some photos of beautiful units built by Richard Ewing (KO7N) and Jimmy Oldaker (W7CQ) look at their EME webpage.

NEW Another fine example of a completed gps frequency standard can be found at the G3RUH webpage of James Miller. In addition to photos of the handsome unit James constructed he provides a very useful manual (63kb). James took an HP Z3801A gps-disciplined standard (often available on eBay) and discarded everything but the high quality ovenized 10 MHz HP10811 crystal oscillator unit and the power supply module. He then built his frequency standard using a Rockwell 12-channel gps receiver and the PIC-based controller described here. The G3RUH webpage also describes many of James projects and articles, including his famous and widely duplicated G3RUH 9600 baud Packet Radio Modem.

Below is a picture of the controller together with a GPS antenna and, in the background, a 20 year old HP frequency standard that is locked to the GPS atomic clocks by the controller. The result is a frequency standard that is perhaps 1000 times more accurate than when HP manufactured it.

The digital meter on the front panel of the controller shows the voltage that is being applied to the oscillator in the HP 5328 to discipline it on to the frequency of the GPS atomic standards. The controller also provides an ASCII data stream that can be monitored and recorded to watch the operation of the system.

The graph below highlights one of the challenges mentioned above - the jitter in gps timing. The data for the plot were collected from the ASCII port of the controller using it only as a phase meter. The controller inputs were the 1 pps timing ticks from a Motorola Oncore gps receiver and the 10 MHz signal from a Efratom FRK-L Rubidium frequency standard. Each dot represents the time (phase) difference between the two signals averaged over 30 seconds. The rms jitter is 36 nanoseconds (ns) and excursions of 100 ns or more are evident. If we force our local oscillator to follow these short-term gps phase fluctuations its potential frequency accuracy will be greatly reduced.

Averaging over a longer period than 30 s helps somewhat (the solid line on the graph is an exponential average of the 30-sec data over about 15 minutes), but large phase fluctuations lasting more than an hour are still evident. The origin of these long term variations is unknown (to me). They may be due partly to errors in the orbital periods of the gps satellites, transitions from one satellite to the next as they pass in and out of view, receiver time scale adjustments, and ionospheric effects. The residual shorter term fluctuations are probably due to SA (note: these data was taken before SA was turned off).

Whatever the cause of the jitter, a long integration time is needed to reduce it. My controller has switches that allow the user to select any of 7 filtering time constants - from a few minutes up to many hours. The longest times are probably only suitable for disciplining a very stable oscillator, such a Rb standard or a quartz crystal in a double oven.

The filter in the controller is an active second-order PI type, implemented as a 40-bit digital IIR filter programmed into an 8-bit PIC microprocessor (just in case you wanted to know). Much of the design time I devoted to this project was spent creating the software.

In addition to the microprocessor, the controller contains a few other IC's to measure the phase and to generate the control voltage. The phase-measuring circuit uses a 24 MHz xtal chip, a 16-bit binary counter, and a shift register. Its measurement accuracy is about 3 ns for a 30 sec averaging time. An 18-bit DAC generates the feedback control voltage under command of the CPU. The IC's are all available from DigiKey and other sources. A programmed PIC is available from the author (or you can program your own with my binary code file). A PC board ($21.50) is available from A & A Engineering, Anaheim, CA (714) 952-2114, their webpage has ordering information and a photo.

To see a closeup of the prototype controller circuit board, click here (size is about 2.5" by 5):" circuit board (84K bytes)

To see the Rb frequency standard I used, click here: Rb freq. standard (32K bytes)

Some results: GPS control of an inexpensive surplus Crystal Frequency Standard

This graph shows the control voltage that was applied by the controller to lock an Austron 1250A crystal frequency standard to the frequency of the GPS atomic standards (for convenience, I have converted the steering voltage to frequency units). The surplus 1250A had been sealed in its original packing since it was manufactured in 1987. The 50 hour graph shows that the correction needed becomes more and more negative as the 1250A tries to drift upward in frequency. Fortunately, the drift rate seems to be decreasing and there are no discontinuous jumps in the oscillator frequency. To see an expanded graph that shows the GPS jitter more clearly, click on the 50 hour plot. The filter algorithm in the controller has reduced the jitter from 36 ns to about 1 ns rms. The residual 1 ns jitter produces the spurious short-term frequency corrections of a few parts in 10 to the 11 that are evident in the expanded plot. As the crystal stabilizes, a longer filter time constant can be selected and the jitter will be reduced even further.

An Interesting Sidelight: Aging of a quartz oscillator

After the data for the graph above was obtained, I continued to record the ASCII output from the controller to see how the Austron 1250A frequency changed as time passed. The graph below shows the frequency change that that occured over a period of about 11 days. The total change was about 7 parts in 10 to the 9th. If the aging is due to a single process, like desorption of gases from the surface of the quartz, then we might expect the aging to behave logarithmically, like a first-order chemical reaction. To check this idea, I fitted the data with a log function: delta F = K log(1+ t/T), where t is time, and K and T are parameters adjusted to fit the data. The result was MUCH better than I expected. The graph shows the residuals from the fit (the difference between the data and fit) and they are negligible. Since the fit was so good, I became more bold and used the fitted model to predict the aging rate that we can expect for the next year. This is a long time to extrapolate but the fit was so good I couldn't resist. The prediction says that after a year the aging should be less than 1 part in 10 to the 11th in a 24 hour period (to see the prediction, CLICK ON THE AGING PLOT). Frankly, I doubt if it will get this good. We'll see.

Update: after 3 weeks (June 15, '98) the aging of the Austron 1250A is still following the logarithmic prediction with essentially negligble residuals. I find this rather astounding. Click here to see the latest plot AgingAfterThreeWeeks The curves on the graph have the same labels as the one above.

Further update (Feb. '99): The current aging rate is 6 parts in 10 to the 12th in a 24 hour period. This is somewhat BETTER than the prediction that was made 8 months earlier and was consider to be optimistic!

More to come...

The binary software for the controller's PIC 16C73 microprocessor (version 1.29): (3 K bytes)

NEW The LATEST version of the binary software for the controller's PIC 16C73 microprocessor (version 1.33): (3 K bytes)

NEW I have received numerous requests for reprints of the QST article from folks that that do not have access to QST. To satisfy this need I have put an Acrobat PDF-format file of the article here QST_GPS.pdf (796 Kbytes)

If you find these results interesting and have comments or questions you can contact the author, Brooks Shera, W5OJM, at . I would be happy to hear from you.

Last revised November 21, 2006