GPS-based universal clock generator using PIC16F628

GPS satellites and GPS Ground Segment need extremely accurate timing to allow GPS users to know their own position on the Earth. Rubidium and Cesium clock generators are extensively used and maintained to synchronize and generate the signals that our inexpensive navigator gets from the GPS satellites orbiting at 20000 Km. Many commercial systems use the same GPS signals to extract time marks or high-frequency clock references with atomic-like accuracy, and with the appropriate hardware this opportunity is available also for amateurs and hobbysts. With the project described in these pages, the microwave frequency counters and signal generators we have in our home-labs will have an absolute accuracy in the range of 10ppb (parts-per-billion) without relying on external calibration facilities.

universal clock generator


Almost all commercially available GPS OEM modules provide a 1pps output, synchronized with GPS time. This pulse could be used as a reference to generate accurate high-frequency clocks, but special design has to address the short-term jitter affecting the 1pps signal. As a general guideline, an oven-stabilized crystal oscillator who guarantees the short-term stability is synchronized with the GPS 1pps for the long-term accuracy.

An alternate, and simpler, solution uses the higher frequency synchronization signal (10KHz) that the Rockwell’s Jupiter GPS is able to provide. Ideally, a simple PLL frequency multiplier with a loop bandwidth in the range of 50~100mHz is all you need to complete the equipment. We have bought a couple of these modules on E-bay and we started some experiments with them.


The projects is straightforward and basically simple. As anticipated in the previous section, it is a PLL multiplier with few auxiliary blocks to get more flexibility and to monitor the GPS status without the need of a PC.

The /2000 divider of the PLL has 8 taps at most used frequencies from 10KHz to 20MHz: an output selector controlled by the uP forwards the selected one to the main output of the equipment. One or more auxiliary outputs at fixed frequency can also be implemented to drive more instruments that need different master-clock frequencies. The PLL loop bandwidth is intentionally limited to 1/10~1/20Hz to cut-off short-term frequency jitter of the 10KHz GPS reference. As a consequence, a VCXO (Voltage Controlled Crystal Oscillator) has been chosen to avoid all instabilities and drifts outside the loop bandwidth. No temperature stabilization has been adopted: the only precautions taken have been to supply the VCXO with a dedicated 5V regulator and to keep it in a closed box protected from sudden temperature variations. A varicap in series with a 20MHz crystal gives a ±300Hz correction range, therefore excess drifts at extreme cold or warm ambient temperatures could not be corrected by GPS synchronization. A larger correction range could be reached, in theory, but at the price of oscillator Q reduction and, as a consequence, a greater phase noise that could prevent the use of this clock generator for LO generation in narrow-band microwave transverters. A LOCK signal turns-on an indicator LED and informs the uP that the phase loop is locked.


For more detail: GPS-based universal clock generator using PIC16F628

Current Project / Post can also be found using:

  • gps based universal clock project
  • GPS clock synchronisation project using pic
  • digital gps clock diy
  • gps based digital clock project pdf

Leave a Comment

= 4 + 3

Read previous post:
Low cost temperature data logger using PIC and Processing

This project describes an easy and inexpensive way of adding a digital thermometer and data logging feature to a PC....

Scroll to top