Amateur Radio
 
Home Page
Menu

AMTOR
Portable Operating
Batteries
G4AON Universal Receiver
G4AON Companion Transmitter
G4AON SSB TX
Audio CW Filter using SMD parts
Simple vertical antennas
6m quad antennas
6m J-Pole antenna
Simple spectrum analyser
Radio Mods
PA0RDT Active Antenna
GPSDO
WiFi Remote antenna Switch
Making 49:1 Ununs
Making QRO L-Match boxes

 

Building GPS disciplined oscillators

While there are low cost GPS locked, or disciplined, oscillators available from various sources, it is straightforward to make one. Examples include the entirely logic based one by G3RUH, "Yet another GPSDO", and this one by Lars Walenius and further refined by ZL1BPU.

I will not include all the details, as these are covered elsewhere. However having had print boards made by JLCPCB that fit nicely into a tidy case, I will share details of the project for anyone interested in making one.

The main problem is obtaining a high grade ovened crystal oscillator without spending a small fortune on a new one. There are many surplus ovens offered on AliExpress and eBay from China, but their quality is unknown. I was fortunate in obtaining an NEC Toyocom one a few years ago.

The performance of this particular unit is incredible and has around 1/10th of the short term "jitter" of a Leo Bodnar GPSDO (the original dual BNC version). The overall short term stability is not easy to measure as the only reference I have is a rubidium oscillator that may be less stable than this unit. This is a plot of this particular GPSDO compared to a Leo Bodnar one, the red trace is this GPSDO, the Leo Bodnar one is in green. The reference is a rubidium and the test instrument is a TinyPFA with TimeLab software.

By adjusting the time constant via the Arduino, a compromise between lock time and short term stability can be reached. The settings depend on the stability of the oven and the configuration is covered in the original text by Lars. The circuit needed to produce a high stability GPSDO is surprisingly simple, and uses no difficult to obtain parts. The original ZL1BPU pages include details of the Lars version and are currently still available here: ZL1BPU GPSDO

The results of using different time constants with an NEC oscillator and a Ublox Neo M8T module are shown below, the green trace is with 120 seconds and the magenta is with a 30 second time constant:

The original circuit is more or less, this one (PDF): ZL1BPU GPSDO circuit

This is the circuit of the one I built, and it is also available as a PDF: GPSDO circuit

A print board layout for the above circuits is available as a Sprint 6 layout

The Sprint 6 layout

Notes to accompany board layout for the Lars Walenius and Murray Greenman GPSDO units

The board layout was based mainly on the circuits by Murray Greenman. It was produced in Sprint Layout 6 and manufactured by JLCPCB in China.

The width of the board was chosen to fit into a Camdenboss case type CMCB00002 (CPC stock these). It is a tight fit in the case, use M3 hexagonal posts to space the board above the side fixing brackets.

Ovens
I am using an NEC Toyocom oven type TCO-6703N, which was obtained surplus several years ago. It is an SC cut crystal in an oven that takes approximately 7 minutes to stabilise in temperature. The specification is a little vague:

Supply Voltage:  12V
Power Consumption:  1A max (warm-up), 300mA typical (operating)
Output:  5V CMOS Compatible
Temperature Stability:  +/-2.5x10^-9
Ageing:  +/-2x10^-10 (per day), +/-3x10^-8 (per year)
Frequency trim:  +/-0.3ppm (0-5V)

Most of us will be using surplus Voltage controlled crystal ovens, there are many variations of these and some experimentation may be needed. The components in the "as built" diagram are primarily intended to be used with a similar oven to that used by myself. Murray Greenman used an oven that had a supply of 12V and a control Voltage in the region of 0 to 5V. Over that control Voltage range the oscillator output at 10 MHz changed by approx. +/-7 Hz, a much greater swing than my NEC oven.

Optional components are catered for on the board to provide a separate 5V supply for a CTI type oven, these also have a similar output frequency swing to the original oven used by Murray,

Nec Ovens typically have a 12V supply and around half of the CTI oven control Voltage vs frequency change, they also have a built in frequency trim pot, in this case the 10K trimming resistor and the 47K fixed resistors can be omitted, and a link from the 39K resistor taken directly to the oven Voltage control input. This is shown in the PDF of the one I built, which can be compared to the circuits of the Lars and Greenman units, that used additional components.

The output of an NEC oven appears to be a fairly good square wave with peaks that do not drop below zero, or exceed +5V. In this case the oven can be directly connected to pin 1 of IC1. Tests with a CTI oven showed a rough square wave with significant peaks below zero and above +8V, in this case consider adding a 1N4148 diode from pin 1 IC1 to ground (cathode to pin 1) and suitable resistors to limit the Voltage swing.

Circuit updates by Mike, G8GYW
Mike noted that the 1pps output of a typical 3.3 Volt powered GPS module may not reliably trigger IC 4, replace the original 74HC14 with 74HCT14.
The inductance of the long track from IC1 pin 2 to IC2 and IC5 causes ringing of the square wave, add a series resistor to dampen this.

GPS boards
I used an eBay board fitted with a UBlox module. The GPS needs to provide a one pulse per second output and should be powered using a pair of wires directly connected to the 5V pads located near to the main 7805 regulator. Any backup battery on the board can be removed and a larger capacity backup battery, such as a CR2450 (with a series diode) used. One of these batteries should sustain the GPS module storage for around 5 years. The battery holder used was a Renata HU 2450N-1-LF from CPC. The image below shows one of these eBay boards before it was modified, note the USB socket.

Configuration of Ublox GPS modules is easy, provided you use a board that is fitted with a USB socket. On initial power up, the module will probably output 1 pulse per second from GPS satellites after satellite lock and require no changes, however the Ublox U-Center configuration software is free and is straightforward to use. If you use a timing module (such as the M8T), the location to an accuracy of around 1 metre needs to be set, the modules will run a "survey" routine to determine the position over a period of several hours, this is done using the U-Center software. Once configured, there is no need to use the USB socket again.

An alternative, and probably better, source of a genuine M8T is a complete board already fitted with one from the GNSS Store

The board fixings are for an eBay GPS board that cost less than £10, not surprisingly at this price these boards usually come with a fake Ublox Neo GPS module, often labeled “Neo-6M” or even one labeled as a “Neo M8N” that appeared as a Neo N7M in the Ublox U-Center configuration software! Buyer beware.

The mounting holes for the GPS boards that I used are M3 size, and are very close to the GPS module, I used 2mm (M2) bolts and insulating washers, the GPS board sits above the main board using 25mm long m2 bolts.

Using a genuine Ublox Neo M8T (the timing version) can provide improvements in time pulse stability, and potentially frequency stability, when used in the fixed position mode with an outdoor antenna that has a clear sky view. Another advantage of an M8T is that in fixed position mode, it will lock with just a single satellite in view, potentially allowing for a much shorter time to "lock". A genuine M8T costs around ten times the cost of a board from eBay with a fake module, removing the fake and fitting an M8T is not for the faint hearted. A cheap board with a “Ublox Neo-6M” will work and give reasonable performance at a fraction of the cost of replacing it with a genuine timing GPS module. The improvement in short term stability, between a navigation and a timing module, is that you will reduce the short term frequency wandering by around half that of a navigation module compared to the timing version, provided you use an antenna with a good sky view and have set the location accurately in the module setup.

The SMA antenna socket on the GPS board I used was removed and re-fitted at 90 degrees to allow for neater antenna cable routing if using a Camden case. The easy way to remove an SMA socket is to de-solder the centre pin, then heat the body of the socket using a large bit in your soldering iron, letting the socket drop to the bench when the solder melts. An alternative would be to mount the GPS board by its SMA socket directly to the case.

I also removed the ceramic patch antenna which is often fitted on these boards. Heat the pin on the antenna side until you are able to move it with the soldering iron bit, then using a pen knife prise the patch antenna away from the print board. There is only the pin holding the antenna to the board, plus weak glue that softens when hot.

Choice of capacitor and resistor values
The circuit by Murray used larger capacitors and series resistors, compared to the circuit originally used by Lars. Using an NEC oven, I found 10uF caps in place of the 22uF (Murray) worked OK. I haven't tried 4.7uF as used by Lars. All the resistors were 1% metal film, the 1nF NC0 capacitor was a ceramic one. My NEC oven has a trimmer to set the frequency, the adjustment trimmer on the board was not used.

Choice of IC types
74HC series of IC are used throughout, except for IC4 which is a 74HCT14. IC 1 is a Schmitt-trigger input inverter which should ensure a clean switched input to IC2 occurs. IC5 can be either a 74HC14 or 74HC04. Fitting the ICs in sockets is recommended. As my NEC oven outputs a square wave of 0 to 5V, I connected it directly to pin 1 of IC1, without any other components.

Board layout errors
The holes for the GPS battery connector, time setting and LCD connector are too small for the connectors I used. Do not drill them larger, in the case of the battery connector it is easy to file the corners off the connector pins to make it fit the holes. I directly connected the time setting and LCD wiring.

IMPORTANT wire a braid directly between the Arduino ground pin (the one adjacent to D2) and the ground pin of the TIC (pin 8 of IC3).

Basic software configuration
Both the Lars and Murray Arduino “Sketches” work fine with an Arduino Nano v3. The Arduino software (Sketch) is available from the Murray Greenman site in the earlier link. I would avoid using a fake copy Arduino, only buy them from reputable sources, such as main electronic component distributors.

If using a GPS board that can be configured for multiple satellite (GNSS) networks, there is no advantage between using GPS+Galileo, GPS only, or Galileo only. I haven't used the Russian or Chinese satellites, which have poor stability compared to the USA or European ones. I use an outdoor “mushroom” GPS antenna, if using an “ice hockey puck” type of antenna on a window ledge, using GPS+Galileo may give more available satellites.

Detailed Arduino configuration
Lars produced a comprehensive set of notes on how to configure his GPSDO, the Murray version uses the same parameters.

Beware that “f2” referred to in the notes is not function key f2, but the letter f followed by 2 and <enter>. The warmup time is set by w420 <enter> for 420 seconds, etc. Save the settings by s1<enter>. All configuration is done via serial commands from the Arduino IDE program, you do not need to edit the Arduino Sketch.

Also note that you need to calculate the gain figure for your particular oven and also set the warmup time if your oven needs longer than 300 seconds to settle. The Arduino will not start to search for an oscillator lock until the warmup time is reached.

While you will obtain better frequency control using a long time constant, lock can take a seriously long time if you enter a value much in excess of the default 32 seconds. The value can be changed once lock occurs, but will then take ages to re-lock, or maybe not lock at all. My own experiments show a huge improvement in overall frequency stability using a time constant of 60 over that obtained with a time constant of 32. Measured against a rubidium standard, the stability with t=60 was within +/- 2 parts in 10^11 over a timescale of 30 minutes. By comparison, with a time constant of 32, the frequency excursion was up to 1.3 parts in 10^10.

Yet another GPSDO (yes I have built another one)

There is a long running thread on the EEV Blog projects forum covering this particular GPSDO:
https://www.eevblog.com/forum/projects/yet-another-diy-gpsdo-yes-another-one/

The circuit diagram, front/rear panel and PCB Gerber and drilling files for submission to a PCB manufacturer are available on Github:
https://github.com/vindoline/STM32-GPSDO_build

I used JLCPCB and they had no problem with the files as downloaded.

The front and rear panels are printed circuit board, which make a neat solution to the problem of cutting holes in panels.

While the above unit is neat and tidy, and is a very easy project to build, the stability is not as good as the Lars design by a significant amount. The limitations are mainly the CTI oven

The processor board is a STM32F411 "Black pill", which currently costs around 2 GBP from the WeAct Studio on AliExpress (the same manufacturer that supplies UK shops that resell them for 15 GBP).

Notes to accompany the above board:

1. The mini GPS boards that will fit the case and PCB usually have right angle pins that need removal and straight pins fitted. I opted for a "Ublox M8N" version, which appears to be a fake but at least it allows the use of GPS and Galileo constellations. I secured mine with a nylon nut and bolt plus a couple of nylon washers with the edge cut off to space mine from the PCB. My module came from AliExpress.

2. The temperature/humidity/pressure module doesn't need a nut/bolt, there is a hole for one but it isn't a problem to support it by the pins. Used in this project, the software doesn't do anything useful with the data except display the readings.

3. At the time of construction, I didn't have any spare ferrite beads so L1 is a wire link on mine. I replaced a couple of the 100 nF caps with 10 uF 16V electrolytics. I now have some beads and will fit one someday.

4. The 1306 OLED display is too large for the space between the PCB and the case top, and the fixing holes are not quite correct. I filed the top case half to about the thickness of a QSL card and it "just about fits". Nylon bolts have enough "bend" to fit the display. Bend the pins down slightly and solder directly to the pins as there isn't clearance for a socket to fit to the pins.

5. Do not fit the STM32 board in a socket, the rear panel cut out is placed for the board to be soldered directly in the PCB. Also, you do not need to fit the 4 programming pins, you can program/re-program via the USB socket. Hold the "BOOT0" button down while plugging in the USB cable, wait several seconds before releasing, Windows will then be happy and STM32 Cube programmer will see the USB port.

6. Those BNC sockets are a pain as they should be mounted tight against the PCB, but then the panel holes do not line up. If you position the sockets in the PCB and tighten the mounting nuts to the front panel, solder the wires and finally the mounting studs, you should be OK.

7. The CTI OSC5A2B02 ovens are not very stable, with the unit on "hold" the frequency will cycle up and down around 1 part in 10^10. Therefore it is not worth the expense of using a genuine timing GPS module, a cheap navigation grade GPS module is fine with this particular oven. Likewise an outdoor antenna is a waste of money with a CTI oven as a "puck" antenna on the window sill is good enough.

8. The board is marked "sine" and "square", these are the wrong way around on the PCB, the front panel is correct.

9. Adding closed cell foam insulation to the CTI oven made no difference to the stability.

The sine wave output is particularly clean, even though the filter is only a simple "T" network.

The firmware (sketch) for this board is available from Github:

https://github.com/jmnlabs/GPSDO_FreeRTOS

Anyone wanting to build this project will find a lot of assistance on the EEV Blog forum.

This is the overall stability compared to a rubidium reference, right click on the image and open in another tab for an enlarged view.


 

Protected by Copyscape Web Copyright Checker

 

Copyright © 2023, 2026 G4AON. All rights reserved.