GPS assisted 10 MHz frequency reference

A GPS assisted 10 MHz frequency reference with 0.002Hz accuracy controlled by an Arduino Nano
Project
I own some frequency counters and signal generators, but when measuring one with another they do not show the same frequency on their display. The do not seem to be very accurate, all of them have normal crystals as their reference. But some of them have a 10MHz reference input at the back. So creating a 10MHz reference solves that problem.
Some people buy a 10MHz Rb-reference, but that device also has to be calibrated and it is also quite expensive, around $200,-. Another problem I have is that I do not own any calibrated frequency counter, therefore I am not able to calibrate it. So I need a reference which calibrates itself.
There are a lot of old 10MHz oven controlled oscillators on ebay for around $20,-, they come from old GSM stations but work just fine for our purpose. So I bought one and started this project on a breadboard. I will use the GPS system to calibrate the oscillator with a 0.005 Hz accuracy.
There are a lot of these kind of projects on the internet. Some of them use a pll, but those take days to calibrate. Most of those projects use a GPS receiver with a 10kHz output as a reference for the PLL. But these GPS receivers are not very common anymore and if you can get hold of one it will be an old one which is less accurate then todays GPS receivers. The GPS receiver I use is a GlobalTop FGPMMOPA6H. It is cheap and has a 1 PPS (Pulse per second) output with less than 10ns jitter. But a 1 Hz output cannot be used together with the PLL method, so I will have to count the amount of rising edges of the oscillator which occur within a certain timespan instead. The long term stability of the OCXO I got is 2x10E-10/day and the short term stability (Allen variance) < 10E-11. The reference should get the same specs after it has successfully calibrated itself.
Features
OCXO Measurements
I did some measurements on the Oscilloquartz 8663-XS OXCO I use. Here are the results.
Current draw @ 12V:
measured: I(cold) = 490mA datasheet: <8W --> I(cold) <666mA
measured: I(warm) = 200mA datasheet: <2.5W --> I(warm) <208mA
Uout = 2,12Vpp sinewave datasheet: >+4dBm / 50 Ohm
Frequency control:
Voltage range: 0-10V
f(0v) = 10000091.5 Hz
f(10V) = 10000099.0 Hz
measured: Δf = 7.5 Hz datasheet: > 3Hz
Schematics
The project contains to schematics and PCBs. One is the main board and the other the power supply.
The power supply generates a 12V, 5V and 3.3V output. The 3.3V output is for the GPS, the 12V for the OCXO the 5V is for the rest of the components.
The OCXO Q1 is on the main board and is the oven controlled oscillator. It works on 12V and will consume about 7W when warming up to about 50 Celsius. After that it will consume less than 2.5W. Before the actual frequency measurements can start the OCXO has to be at the right temperature. The temperature is being measured by U1, a TMP 100 I2C temperature sensor. The sensor is a smd device which is placed underneath the OCXO to get an accurate temperature reading. The counting is started when the temperature is above 45 Celsius and if it has not risen for 30 seconds. The OCXO is wrapped with some insulation to minimize temperature changes. The temperature reached when warmed up is around 55 Celsius.
The output of the OCXO is a 2Vpp sine wave and is converted to a square wave by a high speed comparator (U6). The output of the comparator is divided by 2 and then by 5 by 2 4-bit decade counters (IC5) to get a 5MHz and a 1MHz signal. If you do not need those you can remove IC5 and X8-X11 together with their accompanied capacitors and resistors to save some money. All the signals are buffered by a MC3487 line driver and are terminated with a 100nF capacitor to 50Ohm resistor to get the correct output impedance and to keep any DC from entering the line driver.
The 10MHz signal from the comparator is also fed into U7, a 32 bit counter. U7 will count the amount of rising edges between a certain amount of 1PPS pulses from the GPS module (U2). To get the desired accuracy the counter has to start and stop counting exactly on the 1 PPS rising edges. This is being done with the help of the D-type flip-flop IC4. The Arduino requests a new measurement by setting the CAPTURE signal high. The next rising edge of the 1PPS signal, which is connected to the CLK of the flip-flop, will start the actual counting of the 10MHz signal by making ~CCLR of U7 high. Every 1PPS pulse is also used to execute a ISR by the Arduino. It keeps track of the amount of 1PPS signals there has been since the counting started. When the desired amount of 1PPS signals has reached the counter is being read by the Arduino and the CAPTURE signal is set to low to clear the counter on the next 1pps pulse. The 1PPS signal is also attached to the RCLK input of the counter. A rising edge on RCLK will copy the current counter value to a register. This register will not change until the next rising edge on RCLK so the Arduino has 1s to read the counter register until it changes again. The counter has an 8 bit output (Y0-Y7), so 4 bytes has to be read to get the 32 bit value. The byte to read can be selected using the ~GAL, ~GAU, ~GBL and ~GBU signals.
When the Arduino has read the counted value it can calculate the difference between the desired and the measured count. It will set the voltage of a 12 bit DAC (U4) with I2C interface to adjust the OCXO output frequency. U3 is used to convert the 0 - 4.095V output of the DAC to 0 – 10V which is the input range of the OCXO adjustment pin. The DAC uses an very accurate low noise voltage reference REF5040 instead of its own internal reference. The frequency resolution is 7.5Hz / 4096 = 0.0018Hz.
IC4B is used to generate a 2Hz signal with a 50% duty cycle out of the 1PPS signal. U9 is used to buffer the 1PPS, 2Hz and GPS serial interface. It is also used to drive the 2Hz and Locked LEDs.
Since the Arduino Nano has limited output pins the LCD display is connected through a I2C interface. R8 and R9 are pull up resistors required by the I2C bus.
PCB
The main board contains several SMD components. I used my home made SMD oven to solder these on the board. A heat gun will also work. With some patience it will also be able to solder the components on the pcb with a solder iron with thin point. The temperature sensor is placed underneath the OXCO. I used some heat conducting paste to make an optional thermal connection between the two. Just be sure to solder the SMD components before soldering the other components. All high frequency connectors are SMA type connectors. I like to use BNC connectors on the outside of the case, so I bought SMA to BNC converter cables. The BNC side is screwed on the front and back panel of the case.
Software
When the Arduino is started it will wait until the OCXO has reached the desired temperature and the GPS has at least 3 fixes. Because warming up takes about 15 minutes the GPS will normally have more than 3 at the time the desired temperature has been reached.
The Arduino will start the measurement with a 10s interval. Then it will set the DAC to the calculated voltage to correct the frequency. The accuracy of the output frequency will be 0.1Hz at this time. After that a measurement interval of 100s is taken and after that 1000s will be taken to get a 1mHz accurate measurement. When the measured frequency is less than 0.005Hz of the desired frequency of 10MHz the system is considered LOCKED. It will repeat the 1000s interval measurements. Taking 1000s intervals will also eliminate the jitter of the 1PPS signal. It will take about 20 minutes to get to a LOCKED status from the start of the measurements after warming up for about 15 minutes.
Signals
See the logic analyser output for this explanation. The Arduino is setting CAPTURE high during the ISR just after receiving the 1PPS signal (1). At the next 1PPS positive edge the CCLR is set to high by the flip-flop (2), enabling the counter. On each rising edge of the 1PPS signal the current counted value is stored to a register of the counter. After 10 seconds the last stored value is read by the Arduino during the ISR and CAPTURE is set to low (3). This will clear the counter on the next 1PPS rising edge (4). This sequence is then repeated with an interval of 100 seconds and 1000s after that.
Measurement
I do not have any calibrated equipment. The only two ways I could check if the reference is working as expected was using a logic analyser and count the amount of rising edges between two 1PPS pulses. The other measurement I did was measuring the 10kHz output of a Navman Jupiter GPS with my frequency meter. The frequency reference was connected to the 10MHz reference input of the frequency meter. Both measurements were spot on, as expected. I attached the output of those as images to this article. I hope to come across someone here in the Netherlands who has a calibrated frequency meter to do some further checking.
I own some frequency counters and signal generators, but when measuring one with another they do not show the same frequency on their display. The do not seem to be very accurate, all of them have normal crystals as their reference. But some of them have a 10MHz reference input at the back. So creating a 10MHz reference solves that problem.
Some people buy a 10MHz Rb-reference, but that device also has to be calibrated and it is also quite expensive, around $200,-. Another problem I have is that I do not own any calibrated frequency counter, therefore I am not able to calibrate it. So I need a reference which calibrates itself.
There are a lot of old 10MHz oven controlled oscillators on ebay for around $20,-, they come from old GSM stations but work just fine for our purpose. So I bought one and started this project on a breadboard. I will use the GPS system to calibrate the oscillator with a 0.005 Hz accuracy.
There are a lot of these kind of projects on the internet. Some of them use a pll, but those take days to calibrate. Most of those projects use a GPS receiver with a 10kHz output as a reference for the PLL. But these GPS receivers are not very common anymore and if you can get hold of one it will be an old one which is less accurate then todays GPS receivers. The GPS receiver I use is a GlobalTop FGPMMOPA6H. It is cheap and has a 1 PPS (Pulse per second) output with less than 10ns jitter. But a 1 Hz output cannot be used together with the PLL method, so I will have to count the amount of rising edges of the oscillator which occur within a certain timespan instead. The long term stability of the OCXO I got is 2x10E-10/day and the short term stability (Allen variance) < 10E-11. The reference should get the same specs after it has successfully calibrated itself.
Features
- 4x 10MHz outputs
- 2x 5MHz outputs
- 2x 1MHz outputs
- 2 Hz output
- 1 PPS output
- 2x20 LCD
- short calibration time
- 0.005 Hz accuracy
OCXO Measurements
I did some measurements on the Oscilloquartz 8663-XS OXCO I use. Here are the results.
Current draw @ 12V:
measured: I(cold) = 490mA datasheet: <8W --> I(cold) <666mA
measured: I(warm) = 200mA datasheet: <2.5W --> I(warm) <208mA
Uout = 2,12Vpp sinewave datasheet: >+4dBm / 50 Ohm
Frequency control:
Voltage range: 0-10V
f(0v) = 10000091.5 Hz
f(10V) = 10000099.0 Hz
measured: Δf = 7.5 Hz datasheet: > 3Hz
Schematics
The project contains to schematics and PCBs. One is the main board and the other the power supply.
The power supply generates a 12V, 5V and 3.3V output. The 3.3V output is for the GPS, the 12V for the OCXO the 5V is for the rest of the components.
The OCXO Q1 is on the main board and is the oven controlled oscillator. It works on 12V and will consume about 7W when warming up to about 50 Celsius. After that it will consume less than 2.5W. Before the actual frequency measurements can start the OCXO has to be at the right temperature. The temperature is being measured by U1, a TMP 100 I2C temperature sensor. The sensor is a smd device which is placed underneath the OCXO to get an accurate temperature reading. The counting is started when the temperature is above 45 Celsius and if it has not risen for 30 seconds. The OCXO is wrapped with some insulation to minimize temperature changes. The temperature reached when warmed up is around 55 Celsius.
The output of the OCXO is a 2Vpp sine wave and is converted to a square wave by a high speed comparator (U6). The output of the comparator is divided by 2 and then by 5 by 2 4-bit decade counters (IC5) to get a 5MHz and a 1MHz signal. If you do not need those you can remove IC5 and X8-X11 together with their accompanied capacitors and resistors to save some money. All the signals are buffered by a MC3487 line driver and are terminated with a 100nF capacitor to 50Ohm resistor to get the correct output impedance and to keep any DC from entering the line driver.
The 10MHz signal from the comparator is also fed into U7, a 32 bit counter. U7 will count the amount of rising edges between a certain amount of 1PPS pulses from the GPS module (U2). To get the desired accuracy the counter has to start and stop counting exactly on the 1 PPS rising edges. This is being done with the help of the D-type flip-flop IC4. The Arduino requests a new measurement by setting the CAPTURE signal high. The next rising edge of the 1PPS signal, which is connected to the CLK of the flip-flop, will start the actual counting of the 10MHz signal by making ~CCLR of U7 high. Every 1PPS pulse is also used to execute a ISR by the Arduino. It keeps track of the amount of 1PPS signals there has been since the counting started. When the desired amount of 1PPS signals has reached the counter is being read by the Arduino and the CAPTURE signal is set to low to clear the counter on the next 1pps pulse. The 1PPS signal is also attached to the RCLK input of the counter. A rising edge on RCLK will copy the current counter value to a register. This register will not change until the next rising edge on RCLK so the Arduino has 1s to read the counter register until it changes again. The counter has an 8 bit output (Y0-Y7), so 4 bytes has to be read to get the 32 bit value. The byte to read can be selected using the ~GAL, ~GAU, ~GBL and ~GBU signals.
When the Arduino has read the counted value it can calculate the difference between the desired and the measured count. It will set the voltage of a 12 bit DAC (U4) with I2C interface to adjust the OCXO output frequency. U3 is used to convert the 0 - 4.095V output of the DAC to 0 – 10V which is the input range of the OCXO adjustment pin. The DAC uses an very accurate low noise voltage reference REF5040 instead of its own internal reference. The frequency resolution is 7.5Hz / 4096 = 0.0018Hz.
IC4B is used to generate a 2Hz signal with a 50% duty cycle out of the 1PPS signal. U9 is used to buffer the 1PPS, 2Hz and GPS serial interface. It is also used to drive the 2Hz and Locked LEDs.
Since the Arduino Nano has limited output pins the LCD display is connected through a I2C interface. R8 and R9 are pull up resistors required by the I2C bus.
PCB
The main board contains several SMD components. I used my home made SMD oven to solder these on the board. A heat gun will also work. With some patience it will also be able to solder the components on the pcb with a solder iron with thin point. The temperature sensor is placed underneath the OXCO. I used some heat conducting paste to make an optional thermal connection between the two. Just be sure to solder the SMD components before soldering the other components. All high frequency connectors are SMA type connectors. I like to use BNC connectors on the outside of the case, so I bought SMA to BNC converter cables. The BNC side is screwed on the front and back panel of the case.
Software
When the Arduino is started it will wait until the OCXO has reached the desired temperature and the GPS has at least 3 fixes. Because warming up takes about 15 minutes the GPS will normally have more than 3 at the time the desired temperature has been reached.
The Arduino will start the measurement with a 10s interval. Then it will set the DAC to the calculated voltage to correct the frequency. The accuracy of the output frequency will be 0.1Hz at this time. After that a measurement interval of 100s is taken and after that 1000s will be taken to get a 1mHz accurate measurement. When the measured frequency is less than 0.005Hz of the desired frequency of 10MHz the system is considered LOCKED. It will repeat the 1000s interval measurements. Taking 1000s intervals will also eliminate the jitter of the 1PPS signal. It will take about 20 minutes to get to a LOCKED status from the start of the measurements after warming up for about 15 minutes.
Signals
See the logic analyser output for this explanation. The Arduino is setting CAPTURE high during the ISR just after receiving the 1PPS signal (1). At the next 1PPS positive edge the CCLR is set to high by the flip-flop (2), enabling the counter. On each rising edge of the 1PPS signal the current counted value is stored to a register of the counter. After 10 seconds the last stored value is read by the Arduino during the ISR and CAPTURE is set to low (3). This will clear the counter on the next 1PPS rising edge (4). This sequence is then repeated with an interval of 100 seconds and 1000s after that.
Measurement
I do not have any calibrated equipment. The only two ways I could check if the reference is working as expected was using a logic analyser and count the amount of rising edges between two 1PPS pulses. The other measurement I did was measuring the 10kHz output of a Navman Jupiter GPS with my frequency meter. The frequency reference was connected to the 10MHz reference input of the frequency meter. Both measurements were spot on, as expected. I attached the output of those as images to this article. I hope to come across someone here in the Netherlands who has a calibrated frequency meter to do some further checking.
Project Elements
breadboard-1.jpg (JPG, 186.88 KB)
First attempt on a breadboard
jupiter-gps-10khz-output.jpg (JPG, 69.36 KB)
Frequency measurement of the 10kHz output of a Navman Jupiter GPS receiver.
scope-10mhz-out.png (PNG, 17.6 KB)
Scope image of the 10MHz signal
Power supply schematics (PNG, 24.12 KB)
Schematics of power supply
photo-1.jpg (JPG, 170.2 KB)
Finished project just before putting it in a case
logic-analyzer.png (PNG, 23.65 KB)
Logic Analyzer output
In a case front view (JPG, 186.81 KB)
case-panel-front-20160522205939.JPG (JPG, 355.04 KB)
Case panel front
case-panel-back-20160522205939.JPG (JPG, 220.35 KB)
Case panel back
In a case top view (JPG, 887.94 KB)
breadboard-2.jpg (JPG, 193.72 KB)
Its starting to work
Test - result warm-up (JPG, 76.59 KB)
Test - warm-up and stabilization after switch on over a time period of 100 min.
Test - Frequency fluctuations (JPG, 105.41 KB)
Test - Frequency fluctuations over a time period of 1500 min.
PCB Power supply (PNG, 60.33 KB)
Log file
(TXT)
GlobalTop-FGPMMOPA6H-Datasheet-V0A.pdf
(PDF)
GPS module datasheet
oscilloquartz 8663.pdf
(PDF)
OCXO Datascheet
10MHz Reference Rev C Gerber.zip
(ZIP)
Gerber files
Eagle CAD files.zip
(ZIP)
EAGLE CAD files
10MHz Reference Arduino Firmware REVC.zip
(ZIP)
10MHz Reference Arduino Firmware REV C
Discussion (50 comments)

brian_mk 1 year ago
Near the beginning of the article you give the following mesurement results for the OCXO...
Frequency control:
Voltage range: 0-10V
f(0v) = 10000091.5 Hz
f(10V) = 10000099.0 Hz
That cannot be correct. If it is, then you will never be able to set the frequency to exactly 10MHz.
The closest you will get is 10000091.5 Hz with the control voltage set to 0V!
Frequency control:
Voltage range: 0-10V
f(0v) = 10000091.5 Hz
f(10V) = 10000099.0 Hz
That cannot be correct. If it is, then you will never be able to set the frequency to exactly 10MHz.
The closest you will get is 10000091.5 Hz with the control voltage set to 0V!
Reply
Show more
0 Comment(s)

Salvaneschi 3 years ago
Further to my previous message most probably I will get PCB made here in Italy and as the minimum nr is 5 units per type I will dispose them to anyone interested at the price of Euro 25/set of two plus postage.
I have also three questions and would appreciate if anyone could help and/or clarify:
A) as I need more 10 MHz ports at least two extra and I do not need the 1 MHz ones, do you think I can connect out (pin5) of U6 (10 MHZ) to pin 9 of U8 (3A) after "cutting track" from pin 13 of IC5B the 74AC390 in order to get 10 MHz on the 1 MHz outputs?
B) I have problems in sourcing the MCP4726A0 but can only the A2 in a short time (the A0 delivery is appx 6 months from Farnell), the difference is in the I2C address: the A0 is 1100000 meanwhile the A2 is 1100010. Is it possible to use the A2 0x60 and 0x62 in HEX, maybe modifying the firmware? I have seen the firmware file has a line for the MCP4726 and it is very easy to change and recompile. Suggestions?
C) I would like to get one 25 MHz output to feed a LNB for ham satellite use (QO-100 with downlink at 10.something GHz) as the quartz reference mounted in the LNBs are not stable at all and the frequency shifts a lot, not acceptable. Do you have any suggestions, Something external would be in order.
I think it is all. Thank you very much and kindest regards
Aldo Salvaneschi IZ3QRP (also ZS6BFT)
Hello everyone, just came across this project and am very much interested in building it as my actual reference has stopped working and after lot of stressing trying to fix it I decided to replace it.
Has anyone available one set of pc boards to sell? I would very much appreciate otherwise if anyone is interested I might get some done sharing costs.
Thank you.
Aldo IZ3QRP
I have also three questions and would appreciate if anyone could help and/or clarify:
A) as I need more 10 MHz ports at least two extra and I do not need the 1 MHz ones, do you think I can connect out (pin5) of U6 (10 MHZ) to pin 9 of U8 (3A) after "cutting track" from pin 13 of IC5B the 74AC390 in order to get 10 MHz on the 1 MHz outputs?
B) I have problems in sourcing the MCP4726A0 but can only the A2 in a short time (the A0 delivery is appx 6 months from Farnell), the difference is in the I2C address: the A0 is 1100000 meanwhile the A2 is 1100010. Is it possible to use the A2 0x60 and 0x62 in HEX, maybe modifying the firmware? I have seen the firmware file has a line for the MCP4726 and it is very easy to change and recompile. Suggestions?
C) I would like to get one 25 MHz output to feed a LNB for ham satellite use (QO-100 with downlink at 10.something GHz) as the quartz reference mounted in the LNBs are not stable at all and the frequency shifts a lot, not acceptable. Do you have any suggestions, Something external would be in order.
I think it is all. Thank you very much and kindest regards
Aldo Salvaneschi IZ3QRP (also ZS6BFT)
Hello everyone, just came across this project and am very much interested in building it as my actual reference has stopped working and after lot of stressing trying to fix it I decided to replace it.
Has anyone available one set of pc boards to sell? I would very much appreciate otherwise if anyone is interested I might get some done sharing costs.
Thank you.
Aldo IZ3QRP
Reply
Show more
1 Comment(s)

Codfishcatfish 4 years ago
Hi Joost, any idea on the stuck at calibrating issue please.
Reply

breedj 4 years ago
Are you using the latest firmware?
What's the voltage at the output of the opamp? Does the voltage change when calibration starts?
What does the lcd display?
How many satellites do you receive?
It should take about half an hour to finish calibrating.
What's the voltage at the output of the opamp? Does the voltage change when calibration starts?
What does the lcd display?
How many satellites do you receive?
It should take about half an hour to finish calibrating.
Reply

Codfishcatfish 4 years ago
Showing 6 satellites and the yes I’m using the latest firmware. Display says 100000000-hz >>Calibrating <<
Output from the op amp does not alter from 5.2vdc before and after calibrating.
Output from the op amp does not alter from 5.2vdc before and after calibrating.
Reply

breedj 4 years ago
Thats not good. So the DAC voltage does not change at all after you started the device and it has warmed up?
After warming uo the OCXO doesn't the lcd show something like 10000000+0.0**Hz? Don't you have the * before the letters Hz in the beginning? See attachment for an example. The last digit and the + sign can change though. It might say 10000000-0.2**Hz. After a while an extra digit should appear in the place of the first *, later on the last * should also be changed into a digit.
Lets check the following:
{
waitForOcxoTemperature();
waitForGps();
handleMeasurement();
printLcd();
}to:
void loop()
{
setDACValue(0);
delay(2000);
setDACValue(0x0FFF);
}
The DAC output should change from 0V to 4,096V and back each two seconds. The opamp output should change between 0V to 10V and back at the same time.
Please let me know the outcome of these tests. Then we can continue our search.
Regards,
Joost
After warming uo the OCXO doesn't the lcd show something like 10000000+0.0**Hz? Don't you have the * before the letters Hz in the beginning? See attachment for an example. The last digit and the + sign can change though. It might say 10000000-0.2**Hz. After a while an extra digit should appear in the place of the first *, later on the last * should also be changed into a digit.
Lets check the following:
- The reference voltage on pin 6 of the DAC. It should be around 4.096V
- The voltage on pin 1 of the DAC should change over time.
- Do you use the correct DAC, the MCP4726A0. If the last digit is not 0 you might have to change the address in the code.
- Are R8 and R9 4k7 resistors.
- Is there a 1PPS on pin 2 of the arduino?
- What OCXO do you use?
- Is there 10MHz on pin 1 and pin 2 of U7?We can change the sketch a bit to test if the DAC and the opamp are working properly by changing loop function line 95 from:
{
waitForOcxoTemperature();
waitForGps();
handleMeasurement();
printLcd();
}to:
void loop()
{
setDACValue(0);
delay(2000);
setDACValue(0x0FFF);
}
The DAC output should change from 0V to 4,096V and back each two seconds. The opamp output should change between 0V to 10V and back at the same time.
Please let me know the outcome of these tests. Then we can continue our search.
Regards,
Joost
img-20201018-180444.jpg (48kb)
Reply
Show more
1 Comment(s)

Gary Hogg 4 years ago
Hi All,
I have the No satellites found message. On investigation, I found that the data going to D12 is only 0.8v Pk/ Pk
instead of about 3v so I cut the track & put it through a comparitor to get 5v pk/pk. but as soon as I connect it to back to the line feeding D12 it drops down again. So my question is is my Nano faulty or is there some thing in the software that needs changing, or do I have a wrong version Nano. It is a 5v Nano & the data going to the LCD is 5v pk/pk. Any help would be appreciated.
Regards,
Gary
I have the No satellites found message. On investigation, I found that the data going to D12 is only 0.8v Pk/ Pk
instead of about 3v so I cut the track & put it through a comparitor to get 5v pk/pk. but as soon as I connect it to back to the line feeding D12 it drops down again. So my question is is my Nano faulty or is there some thing in the software that needs changing, or do I have a wrong version Nano. It is a 5v Nano & the data going to the LCD is 5v pk/pk. Any help would be appreciated.
Regards,
Gary
Reply

Codfishcatfish 4 years ago
Hi Gary I also had this problem. You need to comment out any lines with Print and Printn and recompile. Excess memory usage .
Worked for me
De spence M0STO
PS: mine still stuck at Calibrating :(
Worked for me
De spence M0STO
PS: mine still stuck at Calibrating :(
Reply

Gary Hogg 4 years ago
Hi Spence,
Thanks for that I will give it go when my right angel programming cable arrives. I might get bored & remove the Nano. I have a new Siglent 10" touch screen scope coming tomorrow. I will test out the UART decode on it.
Gary
Thanks for that I will give it go when my right angel programming cable arrives. I might get bored & remove the Nano. I have a new Siglent 10" touch screen scope coming tomorrow. I will test out the UART decode on it.
Gary
Reply

Gary Hogg 4 years ago
I have spent many hours trying to make this unit work. The D12 pin was definitely configured as an output with 24 Ohms to ground. I took another Nano board & programmed it with the demo program for Tiny GPS, which receives GPS through the software serial Rx port & sends time, latitude, longitude, etc & satelites found. I connected Tera term program via the UPS connection on the Nano. When I connected the GPS output to the softwareserial Rx pin, no data was received & the GPS signal drop to about 0.8v when I connected it to the softwareserial Tx pin, data was immediately Rxd & the GPS is not dropped in amplitude. I edited the 10Mhz Ref program by swapping D12 & A7 pins, Now the GPS signal is at 2.9v. I have the 1PPS but still the LCD display is showing Sat elites = 0, the same GPS signal simultaneously going to the separate Nano board with the GPS demo program & connected to my Toughbook with Tera term running is showing 8 satellites ???? Has anyone had similar issues ?
Reply

breedj 4 years ago
Hi Gary,
Pin D12 is programmed as an input at line 133. But that line is actually redundant because in the SoftwareSerial library the pin is also configured as an input by function void SoftwareSerial::setRX(uint8_t rx), which is called in the constructor.
When you disconnect the GPS from the nano the GPS should output an 3.3V signal. If that is not the case then the GPS module is not working properly. But because you can read the data with TeraTerm I think the GPS is functioning correctly.
If D12 configured as an input and it is 24 Ohm after it actually is has been configured than I suspect that port is not functioning correctly. I think you should test the function of D12 or replace the nano. You can test it with a simple sketch which reads D12 and writes to D13 which is the LED on the nano. Be sure to configure D12 as input and D13 as output. See below for the test sketch.
A 5V nano should be perfectly able to read 3.3V data, a comparator should not be nescessary. Signals above 3V are considered high by the nano.
As you can see in the SoftwareSerial code the first parameter of the constructor is used as the receive pin. So for SoftwareSerial ss(GPX_RX_PIN, GPX_TX_PIN);
GPX_RX_PIN should be 12. The GPX_TX_PIN (A7) is actually not used at all and actually A7 cannot be used as a digital pin at all. So it would not work. The same for A6 as well.
Constructor from SoftwareSerial.cpp:
SoftwareSerial::SoftwareSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /* = false */)
///////////////////// test sketch ///////////////////////////
Regards,
Joost
Pin D12 is programmed as an input at line 133. But that line is actually redundant because in the SoftwareSerial library the pin is also configured as an input by function void SoftwareSerial::setRX(uint8_t rx), which is called in the constructor.
When you disconnect the GPS from the nano the GPS should output an 3.3V signal. If that is not the case then the GPS module is not working properly. But because you can read the data with TeraTerm I think the GPS is functioning correctly.
If D12 configured as an input and it is 24 Ohm after it actually is has been configured than I suspect that port is not functioning correctly. I think you should test the function of D12 or replace the nano. You can test it with a simple sketch which reads D12 and writes to D13 which is the LED on the nano. Be sure to configure D12 as input and D13 as output. See below for the test sketch.
A 5V nano should be perfectly able to read 3.3V data, a comparator should not be nescessary. Signals above 3V are considered high by the nano.
As you can see in the SoftwareSerial code the first parameter of the constructor is used as the receive pin. So for SoftwareSerial ss(GPX_RX_PIN, GPX_TX_PIN);
GPX_RX_PIN should be 12. The GPX_TX_PIN (A7) is actually not used at all and actually A7 cannot be used as a digital pin at all. So it would not work. The same for A6 as well.
Constructor from SoftwareSerial.cpp:
SoftwareSerial::SoftwareSerial(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic /* = false */)
///////////////////// test sketch ///////////////////////////
int ledPin = 13; // LED connected to digital pin 13 int inPin = 12; // pushbutton connected to digital pin 12 int val = 0; // variable to store the read value void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin 13 as output pinMode(inPin, INPUT); // sets the digital pin 12 as input } void loop() { val = digitalRead(inPin); // read the input pin digitalWrite(ledPin, val); // sets the LED to the button's value }
Regards,
Joost
Reply

Gary Hogg 4 years ago
Hi Joost,
Thanks for your reply. I have replaced the Nano once already, but I can replace it again, I have about 10 new ones. I was wondering if my softwareserial.h was corrupted. Which is why I tried the Tiny GPS sketch.
As I said, I had to put the GPS data into the Tx pin. I had 11 satelites shown on this test yesterday. I am not sure how to replace my softwareserial.h file. when I have succeeded in doing this, I will put the original sketch back in & see what happens, if it still fails I will buy an oscilloquarts star 4 & be done with it.
Do you have any idea how many working ones of this project are out there ?
Regards,
Gary
Thanks for your reply. I have replaced the Nano once already, but I can replace it again, I have about 10 new ones. I was wondering if my softwareserial.h was corrupted. Which is why I tried the Tiny GPS sketch.
As I said, I had to put the GPS data into the Tx pin. I had 11 satelites shown on this test yesterday. I am not sure how to replace my softwareserial.h file. when I have succeeded in doing this, I will put the original sketch back in & see what happens, if it still fails I will buy an oscilloquarts star 4 & be done with it.
Do you have any idea how many working ones of this project are out there ?
Regards,
Gary
Reply

breedj 4 years ago
Hi Gary,
It is a weird situation. Did you use the SoftwareSerial library which comes with the software you can download at the top of this page? Do you already use the latest? I've done an update a few months ago.
Can you send me your SoftwareSerial.h and cpp files. I'd like to have a look. Maybe the have been changed. Send them to joost.breed.quicknet@gmail.com
I know about 5 or 6 people who have build it. I think they all are working.
Regards,
Joost
It is a weird situation. Did you use the SoftwareSerial library which comes with the software you can download at the top of this page? Do you already use the latest? I've done an update a few months ago.
Can you send me your SoftwareSerial.h and cpp files. I'd like to have a look. Maybe the have been changed. Send them to joost.breed.quicknet@gmail.com
I know about 5 or 6 people who have build it. I think they all are working.
Regards,
Joost
Reply

Gary Hogg 4 years ago
Hi Joost,
My brother in law in UK who is a a software boffin,
was going to change the program to use the normal com port, while he was going through the code, he came across ss where both TX & RX were configured as RX. Once this fixed, I tried it & D12 pin is no longer pulled to ground. within 30 minutes I had 6 satellites shown on the LCD.
Thanks for your help & interest.
Best regards,
Gary
My brother in law in UK who is a a software boffin,
was going to change the program to use the normal com port, while he was going through the code, he came across ss where both TX & RX were configured as RX. Once this fixed, I tried it & D12 pin is no longer pulled to ground. within 30 minutes I had 6 satellites shown on the LCD.
Thanks for your help & interest.
Best regards,
Gary
Reply

breedj 4 years ago
Gary,
Great he could help out.
I was curious why you had this problem and noticed I fixed this same issue around April this year without knowing it. I've have never had this problem myself, so I could not remember this issue. The last few days I was only looking at the current code version to try and solve your problem, but I now noticed you where using an older version. The code line I added to my comment just above the test sketch 2 days ago also contains the fix.
Altough it works fine I do advise you to download and use the newer code REVBa I have uploaded in April, it has some other improvements as well. The GPSDO will lock faster, has an hold-over mode and will be a bit more accurate. You can download it at the top of this page when you click the Software tab.
I'm glad it worked out well though.
Regards,
Joost
Great he could help out.
I was curious why you had this problem and noticed I fixed this same issue around April this year without knowing it. I've have never had this problem myself, so I could not remember this issue. The last few days I was only looking at the current code version to try and solve your problem, but I now noticed you where using an older version. The code line I added to my comment just above the test sketch 2 days ago also contains the fix.
Altough it works fine I do advise you to download and use the newer code REVBa I have uploaded in April, it has some other improvements as well. The GPSDO will lock faster, has an hold-over mode and will be a bit more accurate. You can download it at the top of this page when you click the Software tab.
I'm glad it worked out well though.
Regards,
Joost
Reply

Gary Hogg 4 years ago
Hi Joost, I have changed to your REVBa now, which does report sats quicker. Can you tel me why the sats are found & then lost, bearing in mind the antenna is not moving.
Regards,
Gary
Regards,
Gary
Reply

breedj 4 years ago
Hi Gary,
Loosing some of the sats is normal in the first 5 minutes. But after that you should have a steady amount. But it all depends on the location of your antenna. I do not now of any other reason why you would loose sats.
Place it near a window. I usually receive around 8 up to 12 sats with the antenna located at my window. The top floor of my house is made of wood. That might help. The coax of the antenna is around 6m long, cable length should not by much of a problem.
Regards,
Joost
Loosing some of the sats is normal in the first 5 minutes. But after that you should have a steady amount. But it all depends on the location of your antenna. I do not now of any other reason why you would loose sats.
Place it near a window. I usually receive around 8 up to 12 sats with the antenna located at my window. The top floor of my house is made of wood. That might help. The coax of the antenna is around 6m long, cable length should not by much of a problem.
Regards,
Joost
Reply
Show more
1 Comment(s)

Gary Hogg 4 years ago
Hi All,
Can anyone suggest a good external GPS antenna please.
Can anyone suggest a good external GPS antenna please.
Reply

breedj 4 years ago
You can use any active GPS antenna with the correct plug. A cheap one will do just fine. I have 6 different antennas, they all work equally well.
Reply

Gary Hogg 4 years ago
Hi Joost, Thanks, RS has free shipping to me & cheep GPS antennas.I should have next week. I was monitoring the the GPS input to the Arduino board with my scope which decodes UART ascii, the first part of the text is there & a few digits, but not a whole line. Hopefully the Antenna will fix this.
Reply

Gary Hogg 4 years ago
Hi Joost,
Following on from the No Satellites topic. My garage is my workshop, & has a tin roof,
the only window which has a carport over it, also with a tin roof. My GPS antenna has a 5 meter cable, & is on the tin roof which would make a good ground plane, which is probably insignificant at that frequency. I normally monitor the D12 pin with a scope set to decode serial ASCII. If I turn the unit off & back on, in about 2 minutes I am seeing time being decoded, It takes another 15 to 30 m before I have a 3D fix which then shows calibrating & 4 or 5 satellites used on the LCD. After an another 30 minutes these satellites are gone & No GPS Fix is shown, & they don't come back. I have connected Pin 5 of the GPS module through an op-amp buffer to an LED on the front panel which flashes when there is no fix & no 1PPS. This is a busy LED !!!!! When I have more time, I may power up what is left of my cheap Chinese 10Mhz ref which died (& has no backup or warranty & the supplier's English suddenly gets worse), which still has a working UBLOX GPS module, & see what that does, Maybe my GPS module is now faulty ??
Regards,
Gary
Following on from the No Satellites topic. My garage is my workshop, & has a tin roof,
the only window which has a carport over it, also with a tin roof. My GPS antenna has a 5 meter cable, & is on the tin roof which would make a good ground plane, which is probably insignificant at that frequency. I normally monitor the D12 pin with a scope set to decode serial ASCII. If I turn the unit off & back on, in about 2 minutes I am seeing time being decoded, It takes another 15 to 30 m before I have a 3D fix which then shows calibrating & 4 or 5 satellites used on the LCD. After an another 30 minutes these satellites are gone & No GPS Fix is shown, & they don't come back. I have connected Pin 5 of the GPS module through an op-amp buffer to an LED on the front panel which flashes when there is no fix & no 1PPS. This is a busy LED !!!!! When I have more time, I may power up what is left of my cheap Chinese 10Mhz ref which died (& has no backup or warranty & the supplier's English suddenly gets worse), which still has a working UBLOX GPS module, & see what that does, Maybe my GPS module is now faulty ??
Regards,
Gary
Reply
Show more
1 Comment(s)

Codfishcatfish 4 years ago
Has anyone got stuck at calibrating? Should this not lock offer 20 minutes? Mine always shows calibrating.... shame as project it complete .....
Reply

breedj 4 years ago
What type of Ocxo do you use. And what is the display showing about the frequency? It should first calibrate to +-0.1Hz then to +-0.01Hz then it will try ro get to ++0.001Hz. Does the accuary change at all? What is the control voltage of the ocxo after 30 minutes?
Reply

Codfishcatfish 4 years ago
Hi Joost, I have the same setup as your project with the 8663-xs and the Vref is about 7.71vdc (Pin 3) on my fluke at 61c and the Vc is 5.15vdc (Pin 2) on the OCXO and 3 days. Please the attached images as this hasn’t changed.
Always Calibrating
Always Calibrating
img-0878.JPG (1841kb)
img-0879.JPG (2268kb)
img-0879.JPG (2268kb)
Reply
Show more
1 Comment(s)

Codfishcatfish 4 years ago
Hi Joost, finally got my project complete with 10 satellites in view most of the time but stuck at calibrating with ng—- in the corner. OXCO warm, plenty of satellites in view, just can’t understand why it’s not going to locked.
Waited for 3 days and still on calibrating.
Regard Spence
Waited for 3 days and still on calibrating.
Regard Spence
Reply
Show more
1 Comment(s)

Codfishcatfish 4 years ago
Hi Gary. I would suspect the boards are still on route. I’ve been waiting for some goods from China for 3 months. I will look at the Heeber’s tonight and check them over and send you the version which is the latest. Francois has received his boards and so has my other friend so please don’t lose faith.
De Spence M0STO
De Spence M0STO
Reply
Show more
0 Comment(s)

Gary Hogg 4 years ago
Hi Codfishcatfish,
The boards you sent me have not turned up, so I will order some myself. I cannot open the gerber file on Proteus Ares. Can you tell if the CAD file 10MHz Reference Rev B CAD is the correct file which is the same board as one shown at the beginning of this project. I have ordered parts for that board.
Regards,
Gary
The boards you sent me have not turned up, so I will order some myself. I cannot open the gerber file on Proteus Ares. Can you tell if the CAD file 10MHz Reference Rev B CAD is the correct file which is the same board as one shown at the beginning of this project. I have ordered parts for that board.
Regards,
Gary
Reply
Show more
0 Comment(s)

Codfishcatfish 4 years ago
Hi Joost, I have nearly finished my build apart from the GPS module (its taking a long time to arrive). I have hooked up another GPS module with TX, PPS, VCC, GND they are very similar with 9600bps etc (L80 Module), however I keep getting no satellites found. I also can't debug because the OCXO is blocking the USB port. I know the GPS module is receiving packets however wondered if your software was tuned to the firmware on the FGPMMOPA6H or was set to only lock to certain GPRMC or GPGGA packets and ignore other packets?. Since the GPS roots direct to the Arduino I figured there isn't anything in the path that could have failed etc. Even with an external antenna connected 0 satellites found. I also read your information in the Sketch about playing about with the code will result in "no satellites found", code is unchanged.
Any help much appreciated.
Kind regards Spence de M0STO
Any help much appreciated.
Kind regards Spence de M0STO
Reply
Show more
0 Comment(s)

mickmoane 4 years ago
Hi
Do you have a BOM that includes the MPN's or a supplier BOM as i cannot find some of the parts
Do you have a BOM that includes the MPN's or a supplier BOM as i cannot find some of the parts
Reply

F1CHF 4 years ago
I got the transformator from Farnell
and it is super OK to solder ...
and the price is quite good
he gives me 15 volts AC ...not 12 !
so it is OK for the first regulator (12 volts)
I found that I must add a jumper to have ground
continuity on my board (so take care)
francois F1CHF
and it is super OK to solder ...
and the price is quite good
he gives me 15 volts AC ...not 12 !
so it is OK for the first regulator (12 volts)
I found that I must add a jumper to have ground
continuity on my board (so take care)
francois F1CHF
Reply

F1CHF 4 years ago
I didn't see your answer
so I have ordered another item on Farnell
I will try to make a cut and paste for the part number
Francois F1CHF
1689094144303 TRANSFORMATEUR 16VA 12V44303
quite cheap ...
so I have ordered another item on Farnell
I will try to make a cut and paste for the part number
Francois F1CHF
1689094144303 TRANSFORMATEUR 16VA 12V44303
quite cheap ...
Reply

breedj 4 years ago
Hi Francois,
I is a Block VCM 25/1/12 25 VA
https://www.block.eu/en_EN/productversion/vcm-25112/
But a few weeks ago someone noticed that there was an error in the PCB. I'll try to correct it this week. So do not use the current files for the power supply yet.
I is a Block VCM 25/1/12 25 VA
https://www.block.eu/en_EN/productversion/vcm-25112/
But a few weeks ago someone noticed that there was an error in the PCB. I'll try to correct it this week. So do not use the current files for the power supply yet.
Reply

F1CHF 4 years ago
About the transformer what is the trade name
IE54-1B or IE54-18 ? from Myrra compagny ?
what is the level for the output ? at least 12 !
15 or 18 volts ?
this one
https://www.google.com/search?q=transformer+EI54-18&source=lmns&tbm=shop&bih=606&biw=1008&client=firefox-b-ab&hl=fr&ved=2ahUKEwiT45ekwrXpAhXOw4UKHSRJA1sQ_AUoAnoECAEQAg#spd=11497525824804601587
or
https://www.thierry-lequeu.fr/data/myrra/EI54.pdf
44308 seems good
thanks
Francois
F1CHF at free.fr
IE54-1B or IE54-18 ? from Myrra compagny ?
what is the level for the output ? at least 12 !
15 or 18 volts ?
this one
https://www.google.com/search?q=transformer+EI54-18&source=lmns&tbm=shop&bih=606&biw=1008&client=firefox-b-ab&hl=fr&ved=2ahUKEwiT45ekwrXpAhXOw4UKHSRJA1sQ_AUoAnoECAEQAg#spd=11497525824804601587
or
https://www.thierry-lequeu.fr/data/myrra/EI54.pdf
44308 seems good
thanks
Francois
F1CHF at free.fr
Reply
Show more
7 Comment(s)

F1CHF 4 years ago
looking for PCB
Is somebody has a PCB free to sell ?
paypal and sent to France
regards and take care ..
Francois
F1CHF at FREE.FR
Is somebody has a PCB free to sell ?
paypal and sent to France
regards and take care ..
Francois
F1CHF at FREE.FR
Reply

bonhug 4 years ago
I have 4 of each that I can post from Hong Kong. Sadly the LT1097 also needs the power pins switching. Also, I used a different 3v3 regulator on the PSU board as my local supplier didn't have the one in the original drawing. Mine uses a 3v3 regulator with the same pinout as the other 78xx regulators.
I have changed the layout a little and added some more surface mount decoupling capacitors near some of the i2c components. Therefore, the part numbering will be different on Joost's board compared to mine. However, it does agree with the schematic that will accompany the board.
If anyone would like a pair (the PSU and main board), send me an address and I'll put them in the post for the cost of the padded envelope and postage. brendan@bonhug.com
Regards
Brendan
Update: I no longer have any main boards available.
I have changed the layout a little and added some more surface mount decoupling capacitors near some of the i2c components. Therefore, the part numbering will be different on Joost's board compared to mine. However, it does agree with the schematic that will accompany the board.
If anyone would like a pair (the PSU and main board), send me an address and I'll put them in the post for the cost of the padded envelope and postage. brendan@bonhug.com
Regards
Brendan
Update: I no longer have any main boards available.
Reply
Show more
5 Comment(s)

Codfishcatfish 4 years ago
Hi, I have fixed issue with LT1097. How do I email you my revision for you to inspect? Kind regards Spence
Reply

breedj 4 years ago
Hi David,
Not for this version. My next version will support both of them, but it will not be ready soon. So you might want to change this version or make a hack. The gain of the opamp needs to be changed and the frequency resolution in the software needs to be altered as well. I think that's it.
Not for this version. My next version will support both of them, but it will not be ready soon. So you might want to change this version or make a hack. The gain of the opamp needs to be changed and the frequency resolution in the software needs to be altered as well. I think that's it.
Reply

breedj 4 years ago
I checked the files and got a bit confused. The gerber files attached to this project already contained the change. So I corrected it a few years ago. I only forgot to upload the correct schematics and board files. So anyone who used the gerber files got a board with the correction. Everyone who used the Eagle files and made their own gerber files got a board with the connections still swapped. So I appologise for the mistake I made.
Reply
Show more
9 Comment(s)

bonhug 4 years ago
Just a head up for those still making this, the power supply pins for U3 (LT1097) are transposed on both the schematic and board. (Or they are with my version of Eagle?)
Also, if anyone is making boards, the mounting hol;e at the lower left of the PCB (next to the OCXO) is too tight against the OCXO so normal size washers can't be used.
However, Joost, thanks again for making this public and mine is now working happily.
Also, if anyone is making boards, the mounting hol;e at the lower left of the PCB (next to the OCXO) is too tight against the OCXO so normal size washers can't be used.
However, Joost, thanks again for making this public and mine is now working happily.
Reply
Show more
1 Comment(s)

bonhug 6 years ago
Breed, thank you for making your design public. Although I know that there has been a similar design published in Elektor recently, I would rather build yours as I already have some of the components.
Are you still working on this or have you abandoned the design? If you are still working on it, I'll be patient otherwise I'll probably build version 1 of your design.
Regards
Brendan Hughes
Are you still working on this or have you abandoned the design? If you are still working on it, I'll be patient otherwise I'll probably build version 1 of your design.
Regards
Brendan Hughes
Reply

Jack Buechler 6 years ago
A very clever design - I will wait too for your V2 - I am planning to use it as a calibrator.
i hope you will finish it soon.
Can you ask who wants a PCB?? I do !
I guess I can send your CAD file to a PCB manufacturer to make it? Never done that before - but I guess thats how it works?
Manny thanks
Jack - London
i hope you will finish it soon.
Can you ask who wants a PCB?? I do !
I guess I can send your CAD file to a PCB manufacturer to make it? Never done that before - but I guess thats how it works?
Manny thanks
Jack - London
Reply

breedj 6 years ago
Hi Brendan,
Nice to hear you like my project.
I've seen the other project. It's a nice and simple design, but it lacks low noise components like a good DAC and stable voltage reference.
I'm still planning to finish version 2, but I have little time for my projects lately. I hope to finish it in a few months though. I still have to design a new low noise power supply. I'm also planning to add some extra functionality in software. I'll post an update when I'm ready. And feel free to inform about my progress some time later.
Regards,
Joost
Nice to hear you like my project.
I've seen the other project. It's a nice and simple design, but it lacks low noise components like a good DAC and stable voltage reference.
I'm still planning to finish version 2, but I have little time for my projects lately. I hope to finish it in a few months though. I still have to design a new low noise power supply. I'm also planning to add some extra functionality in software. I'll post an update when I'm ready. And feel free to inform about my progress some time later.
Regards,
Joost
Reply
Show more
4 Comment(s)

AndersG 7 years ago
I noted that you are using a used OXCO. Thing is that they tend to have a limited lifespan and the reason they are pulled from equipment and resold on eBay is that they are approaching a point where they can no longer be "pulled" right. Is this something you have investigated?
Reply

breedj 7 years ago
Hi Anders,
I've tested a few different models from ebay and they all work very well. For all of them the control voltage is set around the center of the range for a 10MHz output. So I do not think they cannot be 'pulled' right.
My theory is that these are not sold on ebay because of their limited lifespan. I think they are salvaged from old 2G / 3G mobile phone equipment. These are replaced with newer 4G models or because of some other faulty component.
I've tested a few different models from ebay and they all work very well. For all of them the control voltage is set around the center of the range for a 10MHz output. So I do not think they cannot be 'pulled' right.
My theory is that these are not sold on ebay because of their limited lifespan. I think they are salvaged from old 2G / 3G mobile phone equipment. These are replaced with newer 4G models or because of some other faulty component.
Reply
Show more
1 Comment(s)

Nicola Bersani 7 years ago
Hello Joost, i have an ocxo Morion MV89, do you think is possible to insert it replacing the oscilloquartz (same supply voltage) or schematic shall be modified?
i follow your project, is very interesting and i will try to build one, could you reveal something of the version 2 ? :-D
thank you
Nicola
i follow your project, is very interesting and i will try to build one, could you reveal something of the version 2 ? :-D
thank you
Nicola
Reply

breedj 7 years ago
Hi Nicola,
Using the MV89 will work just fine. You will only have to change the amplification of the opamp. The current design is for 0-10V. The MV89 works with 0-5V.
I've attached the schematics of what I have of my second version. I will probably add the power supply to the same pcb. I am also planning to add more OCXO footprints like the MV89, MV197 and the CTS 1960017.
The software will be different compared to the first version, also the micro controller is of another type. I've tested a new approach where I take the moving average of the 10MHz signal between each 1pps pulse for 2000s. This will will result in an accuracy around 0.5mHz (milli Hertz).
I've taken out the pll phase detector of my last project update. It did some tests with it but it does not make things more accurate of faster locking since the 1pps signal has a lot of jitter when looking at it for a short period (300s). All still work in progress though. I do not have a lot of time lately, so the project is currently on hold.
Using the MV89 will work just fine. You will only have to change the amplification of the opamp. The current design is for 0-10V. The MV89 works with 0-5V.
I've attached the schematics of what I have of my second version. I will probably add the power supply to the same pcb. I am also planning to add more OCXO footprints like the MV89, MV197 and the CTS 1960017.
The software will be different compared to the first version, also the micro controller is of another type. I've tested a new approach where I take the moving average of the 10MHz signal between each 1pps pulse for 2000s. This will will result in an accuracy around 0.5mHz (milli Hertz).
I've taken out the pll phase detector of my last project update. It did some tests with it but it does not make things more accurate of faster locking since the 1pps signal has a lot of jitter when looking at it for a short period (300s). All still work in progress though. I do not have a lot of time lately, so the project is currently on hold.
10mhz-reference-rev-d.png (271kb)
Reply
Show more
1 Comment(s)

CHARLES FERREIRA 7 years ago
bonjour
je suis votre réalisation depuis le debut
question
peut on utiliser un module gps U blox NEO7N a la place de votre référence
sans changement de soft arduino
la configuration du module gps est elle automatique ou faut il la mettre en mémoire avant
merci d,avance
cordialement
Ferreira Charles F1EVE
je suis votre réalisation depuis le debut
question
peut on utiliser un module gps U blox NEO7N a la place de votre référence
sans changement de soft arduino
la configuration du module gps est elle automatique ou faut il la mettre en mémoire avant
merci d,avance
cordialement
Ferreira Charles F1EVE
Reply
Show more
1 Comment(s)

Tom Pauwels 7 years ago
any updates on version 2 ?
Like to build one myself .. but would be stupid to make the v1 if v2 is almost ready ...
Regards
Tom
Reply

breedj 7 years ago
Hi Tom,
It is not ready yet, still in progress. I had little time the last few months. It will be around September when all is finished.
If you like I can add the CTS 1960017 to the schematics of V2, but you will have to send me either the datasheet or the pin layout and measurements of the pin distances and casing.
Regards,
Joost
It is not ready yet, still in progress. I had little time the last few months. It will be around September when all is finished.
If you like I can add the CTS 1960017 to the schematics of V2, but you will have to send me either the datasheet or the pin layout and measurements of the pin distances and casing.
Regards,
Joost
Reply
Show more
2 Comment(s)

behbeh 8 years ago
Hello Guys,
that do you think about this GPS receiver GT87 . You can put one output as frequency output from 1000Hz to 40Mhz. I used it for my dataloggers to have a good trigger frequency for the ad-converter...
"https://www.buerklin.com/de/gps-receiver-modul/p/64s3190"
Bernd
that do you think about this GPS receiver GT87 . You can put one output as frequency output from 1000Hz to 40Mhz. I used it for my dataloggers to have a good trigger frequency for the ad-converter...
"https://www.buerklin.com/de/gps-receiver-modul/p/64s3190"
Bernd
Reply

breedj 8 years ago
Bernd,
I'm planning to extend the software I have built for the NCSA so it can also be used a a datalogger. Because I sometimes need a datalogger.
I do not have any experience with mbed at this moment. But I think the STM32F746 Discovery board is a great board for your project since it contains 3x 12bit ADC's with 2.4Msps. You can use it up to 6Msps in triple mode. So you could turn it into a scope too or use it for SDR radio. But I think you might want to see what professional dataloggers look like and try to put that into your project. Maybe others have some ideas.
Joost
I'm planning to extend the software I have built for the NCSA so it can also be used a a datalogger. Because I sometimes need a datalogger.
I do not have any experience with mbed at this moment. But I think the STM32F746 Discovery board is a great board for your project since it contains 3x 12bit ADC's with 2.4Msps. You can use it up to 6Msps in triple mode. So you could turn it into a scope too or use it for SDR radio. But I think you might want to see what professional dataloggers look like and try to put that into your project. Maybe others have some ideas.
Joost
Reply

behbeh 8 years ago
hello,
I think so. I always used a same modul from Navsync. It have also a frequncy output . For my project it is perfect. We measure some data with a 32Bit ad converter for magnetellurics methode in the geophysics..
Thanks for your answer.
Sorry:
I have a question. I need help for the new project with a new mikrocontroller board to programm it under the mbed.org software. I buy a STM32F746 Disco board.
Do you have some ideas to build a fast datalogger?
Bernd
I think so. I always used a same modul from Navsync. It have also a frequncy output . For my project it is perfect. We measure some data with a 32Bit ad converter for magnetellurics methode in the geophysics..
Thanks for your answer.
Sorry:
I have a question. I need help for the new project with a new mikrocontroller board to programm it under the mbed.org software. I buy a STM32F746 Disco board.
Do you have some ideas to build a fast datalogger?
Bernd
Reply

breedj 8 years ago
Looks like a nice receiver. I expect it to have some jitter since the generated frequency is locked to the 1pss signal according to the datasheet. The 1pps has a 15ns accuracy. So the jitter will probably around 15ns I guess. I do not know if there is any averaging being done.
The GlobalTop GPS receiver I use has a maximum of 10ns jitter. And the software of the GPSDO will average out the jitter to a minimum. But the GT87 will be good enough for a lot of applications.
The GlobalTop GPS receiver I use has a maximum of 10ns jitter. And the software of the GPSDO will average out the jitter to a minimum. But the GT87 will be good enough for a lot of applications.
Reply
Show more
3 Comment(s)

CopterCarl 8 years ago
Hello,
I`m a newcomer on GPS- Systems, so I did my first experiments with the 1 pps signal of the FGPMMOPA6H and my Racal-Dana 1991 frequency counter. Because I have no communication with the PA6H, I use a Navilock NL- 402U (USB GPS- mouse) and the Win Program u-center 8.01 observing the receiving satellites. I think the PA6H is much better in receiving than an obsolete NL-402U. For my first tests, I use the GPS receiver stand-alone operation near the window (see picture). I build a little power supply (5V & 3.3V) near the PA6H. The 3.3V 1pps signal is converted by a transistor (LED to watch) to 5V TTL followed by a SN74128 50 ohm line driver to get it on my counter via a 1.5m coax, terminated by 50 ohm.
My Question is:
How many satellites you need, to get a useful 1pps Signal?
My next step was to put my Isotemp OCXO 91-30 oscillator in a Styrofoam box for a better temperature environment and more stability by the oscillator. It`s a kind of dewar vessel (see picture). I built the OCXO with power supply (10V) some years ago. Input Voltage is about 15V. The “inrush”- current is about 840 mA. 1h later it drops to 325 mA. After ca. 3h the current is 315 mA and I measured a stable Temperature of 60.3 °C on the surface of the oven. The total power consumption will be about 4.8 W. With the Styrofoam case open, there will be about 7W. In future I want to keep it permanently to a mains power supply.
The 5MHz sinus signal is converted to TTL level by a comparator circuit with a LT1016, followed by a SN74128 (I still had some “NOS” chips) line driver. This signal is my reference for my counter. Fortunately my counter has a PLL- frequency doubling stage and so I can use the 5 Mhz directly. I have a very stable constant voltage source of 5V and so I could trim the OCXO by a multiturn potentiometer to get as good as possible a 1.0000000000 s display, measuring period duration.
My counter (with recipromatic time error correction, assembled in 1994!) is able to handle overflow and has a resolution of 1ns. On the display you can see 00.000000xE-3 s by the maximal gate-time, the counter is able to handle(i.e. about 13s measure time). The last digit “x” must be ignored. I think the measurement error is about ±1ns. This is fantastic.
Perhaps I may add one proposal:
I think it could be nice, to have the possibility to use an external OCXO. This would mean, to change your layout again. A COAX socket fort the sinus signal, another for control voltage of the OCXO and a socket for the power supply.
What do you think of the idea?
Greeting
Carl
I`m a newcomer on GPS- Systems, so I did my first experiments with the 1 pps signal of the FGPMMOPA6H and my Racal-Dana 1991 frequency counter. Because I have no communication with the PA6H, I use a Navilock NL- 402U (USB GPS- mouse) and the Win Program u-center 8.01 observing the receiving satellites. I think the PA6H is much better in receiving than an obsolete NL-402U. For my first tests, I use the GPS receiver stand-alone operation near the window (see picture). I build a little power supply (5V & 3.3V) near the PA6H. The 3.3V 1pps signal is converted by a transistor (LED to watch) to 5V TTL followed by a SN74128 50 ohm line driver to get it on my counter via a 1.5m coax, terminated by 50 ohm.
My Question is:
How many satellites you need, to get a useful 1pps Signal?
My next step was to put my Isotemp OCXO 91-30 oscillator in a Styrofoam box for a better temperature environment and more stability by the oscillator. It`s a kind of dewar vessel (see picture). I built the OCXO with power supply (10V) some years ago. Input Voltage is about 15V. The “inrush”- current is about 840 mA. 1h later it drops to 325 mA. After ca. 3h the current is 315 mA and I measured a stable Temperature of 60.3 °C on the surface of the oven. The total power consumption will be about 4.8 W. With the Styrofoam case open, there will be about 7W. In future I want to keep it permanently to a mains power supply.
The 5MHz sinus signal is converted to TTL level by a comparator circuit with a LT1016, followed by a SN74128 (I still had some “NOS” chips) line driver. This signal is my reference for my counter. Fortunately my counter has a PLL- frequency doubling stage and so I can use the 5 Mhz directly. I have a very stable constant voltage source of 5V and so I could trim the OCXO by a multiturn potentiometer to get as good as possible a 1.0000000000 s display, measuring period duration.
My counter (with recipromatic time error correction, assembled in 1994!) is able to handle overflow and has a resolution of 1ns. On the display you can see 00.000000xE-3 s by the maximal gate-time, the counter is able to handle(i.e. about 13s measure time). The last digit “x” must be ignored. I think the measurement error is about ±1ns. This is fantastic.
Perhaps I may add one proposal:
I think it could be nice, to have the possibility to use an external OCXO. This would mean, to change your layout again. A COAX socket fort the sinus signal, another for control voltage of the OCXO and a socket for the power supply.
What do you think of the idea?
Greeting
Carl
gps-receiver.jpg (234kb)
thermobox.jpg (395kb)
counter.jpg (233kb)
thermobox.jpg (395kb)
counter.jpg (233kb)
Reply

CopterCarl 8 years ago
Yes, you're right.
You use the 1pps Signal with a phase jitter of about 10ns. It doesn't disturbing any longer. Both, the 10 Mhz OCXO and the GPS- receiver, have their own Sigma-Tau graph (Allan Deviation vs. time). The best control-time constant for the measuring system will be centered on the point of intersection.
With your last modifications you will have a very nice and good System .I would be happy if you could offer me the pcb prepopulated with the smd components after finishing your project.
Best regards
Carl
You use the 1pps Signal with a phase jitter of about 10ns. It doesn't disturbing any longer. Both, the 10 Mhz OCXO and the GPS- receiver, have their own Sigma-Tau graph (Allan Deviation vs. time). The best control-time constant for the measuring system will be centered on the point of intersection.
With your last modifications you will have a very nice and good System .I would be happy if you could offer me the pcb prepopulated with the smd components after finishing your project.
Best regards
Carl
Reply

breedj 8 years ago
The Aperture Uncertainty is not of any concern with this project since it only occurs when sampling at IF. I am currently sampling at 1Hz.
The adaptive correction paper is quite interesting, but is only usefull when no sattelites can be received for a very long period of time and critical systems like GSM transmitters.
In my current revision most of the ICs are already running at 3V3. I think I will probably change the ones which still use 5V to 3V3 as well in the next revision. Only the output buffers will probably be running on 5V to get the desired output voltage. That way I can get rid of two level converter ICs as well. Then the design will only consist of 11 main components and some coupling capacitors and a few resistors.
The adaptive correction paper is quite interesting, but is only usefull when no sattelites can be received for a very long period of time and critical systems like GSM transmitters.
In my current revision most of the ICs are already running at 3V3. I think I will probably change the ones which still use 5V to 3V3 as well in the next revision. Only the output buffers will probably be running on 5V to get the desired output voltage. That way I can get rid of two level converter ICs as well. Then the design will only consist of 11 main components and some coupling capacitors and a few resistors.
Reply

CopterCarl 8 years ago
Indeed this is a very nice chip. The only thing which I find really unnerving is the range of 3.15V to 3.45V supply operation ;).
I have found this interesting article on the AD page (see attachment). I guess it's nothing new but it is good to know about it. I am looking to understand this paper “Adaptive Correction Method for an OCXO…”
I have improved my thermal case for the OCXO and exchanged the LM 317 by a low drop voltage regulator from LT. So I can use 12V and lower power consumption.
Carl
I have found this interesting article on the AD page (see attachment). I guess it's nothing new but it is good to know about it. I am looking to understand this paper “Adaptive Correction Method for an OCXO…”
I have improved my thermal case for the OCXO and exchanged the LM 317 by a low drop voltage regulator from LT. So I can use 12V and lower power consumption.
Carl
Aperture Uncertainty and ADC System Performance (228kb)
Adaptive Correction Method for an OCXO (256kb)
Adaptive Correction Method for an OCXO (256kb)
Reply

breedj 8 years ago
That antenna should work fine. I'm glad you could contact your GPS.
Thank you for the paper. I find it quite interesting. It says that a comparator adds more phase noise than an inverter. That's what Bernd Neubig wrote to me as well.
I also came across this device which I find also very interesting. http://www.linear.com/product/LTC6957-1
Thank you for the paper. I find it quite interesting. It says that a comparator adds more phase noise than an inverter. That's what Bernd Neubig wrote to me as well.
I also came across this device which I find also very interesting. http://www.linear.com/product/LTC6957-1
Reply

CopterCarl 8 years ago
Hi Joost,
thanks for your prompt and very clear reply.
I have used a BOB-FT232R for the communication and now I have “contact” to PA6H GPS-module via u-center :)
Your solution for the comparator with a SN74LVC1G04DBV is fine and of course really cheap. In the attachment you can find an interesting paper about sine-comparators.
Yesterday I received the external antenna from ebay. I hope, it will work.
Best regards,
Carl
thanks for your prompt and very clear reply.
I have used a BOB-FT232R for the communication and now I have “contact” to PA6H GPS-module via u-center :)
Your solution for the comparator with a SN74LVC1G04DBV is fine and of course really cheap. In the attachment you can find an interesting paper about sine-comparators.
Yesterday I received the external antenna from ebay. I hope, it will work.
Best regards,
Carl
Sine to TTL (100kb)
20161127-173725.jpg (255kb)
20161127-173725.jpg (255kb)
Reply

breedj 8 years ago
Hi Carl,
The reason I chose the FGPMMOPA6H was because the jitter of the 1pps was specified and quite good for a GPS receiver, about 1ns. It is also not very inexpensive when you buy it on aliexpress or ebay.
If you view the 1pps signal, trigger on it with your scope and compare a 10MHz signal with it you will see that the 10MHz signal is jumping around a but. That is because of the jitter of the 1pps signal (10ns). You will need to get the average of multiple (100 or more) measurements to get a good reading. Without that averaging you will never be able to get a stable reference. So that is what I am doing in my software. The new version will add phase measurement as well. So it will actually be able to measure the time between the 1pps signal and the next rising edge of the 10MHz signal.
A gps receiver will need to receive 4 satelites in order to get a accurate 1pps. Before that the 1pps signal will not be available it will be constantly high. If enough satelites are received the 1pps signal will start. I receive up to 11 or 12 satelites. The average is about 9 sattelites, which is excelent. I have to say that I placed the GPS antenna at a windows and are in my attic, which is made of wood. You can maybe place the antenna outside. I also use a 5m cable without any problem. That's because GPS antenna's have a amplifier inside them. The DC voltage for that is also supplied through the coax. The FGPMMOPA6H supplies that voltage, you will not have to add that yourself.
Thermal isolation is very good practice. It will warm up more quickly and the frequency will be more stable because of that. It will also draw less current that way.
I think it will be easy to add connections to an external OCXO. I can put the connections at the same spot where the OCXO is placed because an internal and external OCXO will never be used at the same time.
If you like to view how many satelites the FGPMMOPA6H is using you can use an FTDI serial to usb converter or use an arduino nano for that. A adruino on 5V will also work with the 3.3V RX signal, not problem. The arduino costs about €4 and a few minutes of programming. You can use u-center or VisualGPS to view the data.
If you are using the IsoTemp 91-30 it is best to terminate it with a 50 Ohms resistor to gnd. That way it will perform better.
If you want to make your design a bit cheaper you can replace the expensive comparator with a 220p capacitor, an inverter and a feedback resistor of 100k between its the input and output. I use the SN74LVC1G04DBV for the inverter. It costs only €0,50 or so instead of €9,-. You can have a look at my new schematic attached at my last project update how to do that.
Best regards,
Joost
The reason I chose the FGPMMOPA6H was because the jitter of the 1pps was specified and quite good for a GPS receiver, about 1ns. It is also not very inexpensive when you buy it on aliexpress or ebay.
If you view the 1pps signal, trigger on it with your scope and compare a 10MHz signal with it you will see that the 10MHz signal is jumping around a but. That is because of the jitter of the 1pps signal (10ns). You will need to get the average of multiple (100 or more) measurements to get a good reading. Without that averaging you will never be able to get a stable reference. So that is what I am doing in my software. The new version will add phase measurement as well. So it will actually be able to measure the time between the 1pps signal and the next rising edge of the 10MHz signal.
A gps receiver will need to receive 4 satelites in order to get a accurate 1pps. Before that the 1pps signal will not be available it will be constantly high. If enough satelites are received the 1pps signal will start. I receive up to 11 or 12 satelites. The average is about 9 sattelites, which is excelent. I have to say that I placed the GPS antenna at a windows and are in my attic, which is made of wood. You can maybe place the antenna outside. I also use a 5m cable without any problem. That's because GPS antenna's have a amplifier inside them. The DC voltage for that is also supplied through the coax. The FGPMMOPA6H supplies that voltage, you will not have to add that yourself.
Thermal isolation is very good practice. It will warm up more quickly and the frequency will be more stable because of that. It will also draw less current that way.
I think it will be easy to add connections to an external OCXO. I can put the connections at the same spot where the OCXO is placed because an internal and external OCXO will never be used at the same time.
If you like to view how many satelites the FGPMMOPA6H is using you can use an FTDI serial to usb converter or use an arduino nano for that. A adruino on 5V will also work with the 3.3V RX signal, not problem. The arduino costs about €4 and a few minutes of programming. You can use u-center or VisualGPS to view the data.
If you are using the IsoTemp 91-30 it is best to terminate it with a 50 Ohms resistor to gnd. That way it will perform better.
If you want to make your design a bit cheaper you can replace the expensive comparator with a 220p capacitor, an inverter and a feedback resistor of 100k between its the input and output. I use the SN74LVC1G04DBV for the inverter. It costs only €0,50 or so instead of €9,-. You can have a look at my new schematic attached at my last project update how to do that.
Best regards,
Joost
Reply
Show more
3 Attachment(s)
7 Comment(s)

CopterCarl 8 years ago
Hello,
Congratulations!
This is a very fascinating project. Some years ago, I started to build a DCF 77 assisted 5 MHz Oszillator. I realized how difficult it was to get a good solution. I used also the Pll- Stage with the 4046 Chip and a anolog feedback loop with a very long integration time. Only the 77.5 kHz Quartz for the receiver filter stage was about double the size of the GPS- device, you use today…
Inspiered by your project, I will start to do my own experiments. Last week I got the GPS PA6H and external antenna will follow soon from China.
My OXCO Isotemp OCXO 91-30 5 MHz is still alive and I did the first experiments with my RACAL-DANA 1991 frequency counter.
Your ppl- stage with the cc FET-source is very tricky. I was very surprised, that there are different 4046 PLL- Chips. There is a difference between a HCF4046B and a CD74HCT4046A, you use. The HCF Chip has a Zener- diode between pin 15 and ground pin 8 !!!
In your circuit diagram I do see a label ZEN at pin 15. But your design is alright.
In the attachment you will find one of the best articles (Amsat- Journal from Ulrich Bangert), I ever read, about the topic.
I am looking forward to your next steps in this nice project.
Best wishes
Carl
Congratulations!
This is a very fascinating project. Some years ago, I started to build a DCF 77 assisted 5 MHz Oszillator. I realized how difficult it was to get a good solution. I used also the Pll- Stage with the 4046 Chip and a anolog feedback loop with a very long integration time. Only the 77.5 kHz Quartz for the receiver filter stage was about double the size of the GPS- device, you use today…
Inspiered by your project, I will start to do my own experiments. Last week I got the GPS PA6H and external antenna will follow soon from China.
My OXCO Isotemp OCXO 91-30 5 MHz is still alive and I did the first experiments with my RACAL-DANA 1991 frequency counter.
Your ppl- stage with the cc FET-source is very tricky. I was very surprised, that there are different 4046 PLL- Chips. There is a difference between a HCF4046B and a CD74HCT4046A, you use. The HCF Chip has a Zener- diode between pin 15 and ground pin 8 !!!
In your circuit diagram I do see a label ZEN at pin 15. But your design is alright.
In the attachment you will find one of the best articles (Amsat- Journal from Ulrich Bangert), I ever read, about the topic.
I am looking forward to your next steps in this nice project.
Best wishes
Carl
Amsat- Journal (1395kb)
Isotemp OCXO 5 MHz (122kb)
Isotemp OCXO 5 MHz (122kb)
Reply

CopterCarl 8 years ago
That reminds me of my beginning in receiving the DCF77 Signal in 1977 and my Interests of Clocks. In the attachment you will find the tiitle page one of my first electronic magazin that I received as a gift (the 2nd was the “Halbleiterheft 1974 from ELEKTOR :) )…
During all the time I build some DCF- receiver and started to build frequency standards (with varying degrees of success)…My last System had an accuracy of ca. 0.3 E-9 (measured with a calibrated Rb-normal by a friend of mine). I think elektor has published a project to discipline an oscillator by the BBC broadcast signal of 200Khz (now on 198 kHz) in the early 1980s. For all I know, Radio France Inter will stop broadcasting by the end of this year.
I hope, DCF77 will stay a little bit longer in the “air”…
@Joost,
I think your solution of the phase comparator is absolutely perfect!
Carl
During all the time I build some DCF- receiver and started to build frequency standards (with varying degrees of success)…My last System had an accuracy of ca. 0.3 E-9 (measured with a calibrated Rb-normal by a friend of mine). I think elektor has published a project to discipline an oscillator by the BBC broadcast signal of 200Khz (now on 198 kHz) in the early 1980s. For all I know, Radio France Inter will stop broadcasting by the end of this year.
I hope, DCF77 will stay a little bit longer in the “air”…
@Joost,
I think your solution of the phase comparator is absolutely perfect!
Carl
mein-erstes-funkschauheft.jpg (1445kb)
Reply

breedj 8 years ago
Carl,
I actually used the 4046B symbol from the eagle library but am using a HCT4046A. I will change the symbol, it should not say ZEN but PC3. As you are pointing out there are different versions, two I think. Using the 4046B in this project will not work because it does not contain the comparator PC 3 which I am using for this project. Instead it has a zener diode at the pin 15 as you mentioned. Another difference is that the 4046B and HCF4046B can handle up to 1.1MHz where the HCT4046B can handle up to 24MHz. But I'm using it at 1MHz though. I've attached the datasheets of those 3 versions.
The setup with the PLL and the FET works quite well and stable when I tested in on a breadboard. I just ordered the pcb yesterday. I'll hope to have a finished version in December or January. Then we will see how well it all works.
Thank you for the document. Quite interesting.
Joost
I actually used the 4046B symbol from the eagle library but am using a HCT4046A. I will change the symbol, it should not say ZEN but PC3. As you are pointing out there are different versions, two I think. Using the 4046B in this project will not work because it does not contain the comparator PC 3 which I am using for this project. Instead it has a zener diode at the pin 15 as you mentioned. Another difference is that the 4046B and HCF4046B can handle up to 1.1MHz where the HCT4046B can handle up to 24MHz. But I'm using it at 1MHz though. I've attached the datasheets of those 3 versions.
The setup with the PLL and the FET works quite well and stable when I tested in on a breadboard. I just ordered the pcb yesterday. I'll hope to have a finished version in December or January. Then we will see how well it all works.
Thank you for the document. Quite interesting.
Joost
Datasheet of 74HCT4046A (836kb)
Datasheet of HCF4046B (243kb)
Datasheet of 4046B (326kb)
Datasheet of HCF4046B (243kb)
Datasheet of 4046B (326kb)
Reply

Clemgill 8 years ago
CopterCarl,
i built a frequency standard disciplined by the 162kHz of the French France-Inter station. Indeed it is very tricky, it took me many many months to develop and understand. Now I am reaching 10-8 stability.....Close to what you can get with a GPSDO... !
This has been - and is still today - a wonderful experience.
Gilles.
i built a frequency standard disciplined by the 162kHz of the French France-Inter station. Indeed it is very tricky, it took me many many months to develop and understand. Now I am reaching 10-8 stability.....Close to what you can get with a GPSDO... !
This has been - and is still today - a wonderful experience.
Gilles.
Reply
Show more
2 Attachment(s)
3 Comment(s)

GuusAssmann 8 years ago
What kind of antenna did you use on the GPS module?
The GPS data sheet shows the pin as NC.
The GPS data sheet shows the pin as NC.
Reply

breedj 8 years ago
The ladybird seems to be the same chipset. But is is not pincompatible with the GlobalTop GPS. Both manufacturers make different packages (pcb). If you want to use it you will have to use wires or make an adapter board.
I do have a set of PCB (power supply and main board) left of the first version. But you will have to cut some traces and solder some extra wires. I made some mistakes with that version. I've got some photo's which shows what to change. If you like to buy the pcb please drop me an e-mail to joost.breed.quicknet@gmail.com
Another option is to download the CAM files I have uploaded as part of this project. You can use those files to let them manufactor. You will have to order a minimum of 5 boards. But they only cost $9 for 5. That is very cheap. It also does not contain the mistake of my board.
But you can also wait for version 2 which will be finished in December or January. It will be more accurate and faster locking. But it will not use an arduino any more and will be all smd components. It will probably be possible to order those boards cheap from me either without components or even fully populated and programmed and tested if you do not want to do the smd soldering. I do not know the pricing yet.
I do have a set of PCB (power supply and main board) left of the first version. But you will have to cut some traces and solder some extra wires. I made some mistakes with that version. I've got some photo's which shows what to change. If you like to buy the pcb please drop me an e-mail to joost.breed.quicknet@gmail.com
Another option is to download the CAM files I have uploaded as part of this project. You can use those files to let them manufactor. You will have to order a minimum of 5 boards. But they only cost $9 for 5. That is very cheap. It also does not contain the mistake of my board.
But you can also wait for version 2 which will be finished in December or January. It will be more accurate and faster locking. But it will not use an arduino any more and will be all smd components. It will probably be possible to order those boards cheap from me either without components or even fully populated and programmed and tested if you do not want to do the smd soldering. I do not know the pricing yet.
Reply

GuusAssmann 8 years ago
Thanks, I've ordered an extra antenna.
There's a data sheet with number 1460543806-38937 and this has an NC for pin 11. Ladybird antenna, uses the same chipset.
Most likely I got this from a suppliers website.
Fortunatelly, the invoice does have the correct partnumber.
So hopefully it's correct.
One more question:
Can I purchase a PCB, the first version?
I cannot find out how to make a printable layout of the copper traces in Eagle.
So I cannot make a PCB myself.
There's a data sheet with number 1460543806-38937 and this has an NC for pin 11. Ladybird antenna, uses the same chipset.
Most likely I got this from a suppliers website.
Fortunatelly, the invoice does have the correct partnumber.
So hopefully it's correct.
One more question:
Can I purchase a PCB, the first version?
I cannot find out how to make a printable layout of the copper traces in Eagle.
So I cannot make a PCB myself.
Datasheet of GPS module (1612kb)
Reply

breedj 8 years ago
Which NC pin do you rever to? The GPS should be connected to pin 11 of the gps module which says EXT_ANT. You can download the datasheet as an attachment of this article.
I use a normal GPS antenna with sma connector. You can buy one for one at aliexpress or ebay for $5,- or so. Like this one: https://www.aliexpress.com/item/New-Car-Globalsat-gps-receiver-car-Amplifier-GPS-Navigation-Antenna-Aerial-with-SMA-Male-Connector-3M/32588280165.html
With that kind of antenna I receive around 8-11 satelites.
I use a normal GPS antenna with sma connector. You can buy one for one at aliexpress or ebay for $5,- or so. Like this one: https://www.aliexpress.com/item/New-Car-Globalsat-gps-receiver-car-Amplifier-GPS-Navigation-Antenna-Aerial-with-SMA-Male-Connector-3M/32588280165.html
With that kind of antenna I receive around 8-11 satelites.
Reply
Show more
3 Comment(s)

behbeh 8 years ago
Hello,
I found some mistake in the circut. The 2 Hz Signal is not 2 Hz but it is 2 Sek. (0.5Hz)
A D.Flipflop like 74AC74 in this config is a frequenzy divider. I 1 Second(1Hz) input signal would to 0.5 Hz(2 Sec).
Bernd
I found some mistake in the circut. The 2 Hz Signal is not 2 Hz but it is 2 Sek. (0.5Hz)
A D.Flipflop like 74AC74 in this config is a frequenzy divider. I 1 Second(1Hz) input signal would to 0.5 Hz(2 Sec).
Bernd
Reply

breedj 8 years ago
Hello Nicola,
Yes I can help you, no problem. You first need to find out things about the oscillator you are going to use. If you are going to use the 10811D then you will have to add a lot of extra components. That's because it uses a -5V to +5V control voltage instead of 0V to +5V. You will also need an extra 25V for the oven circuit.
I've attached the 10811D datasheet. It that the one you are planning to use? It might be easier and cheaper to use another oscillator. One which operates at 5V or 12V and does not need a negative frequency control voltage.
I'll contact you via e-mail to discuss your project further.
Joost
Yes I can help you, no problem. You first need to find out things about the oscillator you are going to use. If you are going to use the 10811D then you will have to add a lot of extra components. That's because it uses a -5V to +5V control voltage instead of 0V to +5V. You will also need an extra 25V for the oven circuit.
I've attached the 10811D datasheet. It that the one you are planning to use? It might be easier and cheaper to use another oscillator. One which operates at 5V or 12V and does not need a negative frequency control voltage.
I'll contact you via e-mail to discuss your project further.
Joost
10811D OCXO datasheet (205kb)
Reply

Nicola Bersani 8 years ago
hello Breedj compliment for your project, i wish modify your project for a gpsdo 10meg reference for my lab (i'm not interested to have 5 and 1 meg output), with at least 8 bnc output, could you help me sharing your "experience"? i have also a m8n gps for generate 1pps to lock with the oven (i think 10811D or similar) and a 4x20 lcd i2c managed by an Arduino Uno, thank you Nicola info@studiobersani.it 73 IW4EGX
Reply

breedj 8 years ago
Acutally for one second, when the signal is high. But I do not think the 2Hz signal is very useful for others. I am actually changing this signal into one which can be configured. It will be probably be configurable to any other frequency, as long as it is an integer devision of 10,000,000. So it can be 5MHz, 2.5MHz, 2MHz, 1MHz, 500kHz, 400kHz, 250kHz, 200kHz, 100kHz, 50kHz, 25kHz, etc. And I'll probably implement the possibility to configure a duty cycle or pulse with as wel. The signal can also be switched off to minimize phase noise when not used.
Reply
Show more
5 Comment(s)

ANGELO P.I. CERRETI 8 years ago
Hi, I see with interest this project, and I propose you to add two set of jumpers on U8 to select or not 1Mhz and 5Mhz outputs, and to select for all outputs 10Mhz jumping over U5A and U5B.
1000 sec sampling time is really a good idea, but I think is needed a good quality OCXO.
Good work!
IK5OOC Angelo
1000 sec sampling time is really a good idea, but I think is needed a good quality OCXO.
Good work!
IK5OOC Angelo
Reply

breedj 8 years ago
Thank you for the compliments. I'll add the jumpers to the pcb design.
I've taken 1000s as the interval because it is the only way to get a 1mHz accuracy in my measurement. I'm also thinking of changing the firmware a bit and take the average of multiple 1000s measurements to minimize the effect of the 1pps jitter.
Like you mentioned the choise of OCXO matters of coarse. There are many kinds of OXCOs, all with a different long term stability. But the frequency will always be around 10MHz +- 0.002Hz. The better the stability the less disciplining the firmware has to do. As you can see in the test result (second graph on page 1) there is a disciplining action after 500 minutes (from 900 to 1400 min.). The correction is about 0.2ppb (2mHz) for that step. How big that step is will actually depend on the OCXO specifications. In my case the DAC is 12bit. The OCXO I use can be corrected 7Hz with Vadj. Which leads to 7Hz/4096 = 0.0017Hz per step.
I've taken 1000s as the interval because it is the only way to get a 1mHz accuracy in my measurement. I'm also thinking of changing the firmware a bit and take the average of multiple 1000s measurements to minimize the effect of the 1pps jitter.
Like you mentioned the choise of OCXO matters of coarse. There are many kinds of OXCOs, all with a different long term stability. But the frequency will always be around 10MHz +- 0.002Hz. The better the stability the less disciplining the firmware has to do. As you can see in the test result (second graph on page 1) there is a disciplining action after 500 minutes (from 900 to 1400 min.). The correction is about 0.2ppb (2mHz) for that step. How big that step is will actually depend on the OCXO specifications. In my case the DAC is 12bit. The OCXO I use can be corrected 7Hz with Vadj. Which leads to 7Hz/4096 = 0.0017Hz per step.
Reply
Show more
1 Comment(s)

I.N. Noorhoff 8 years ago
The power board size is a bit strange : 133 x 88. Does it need to fit in a specific case ?
The (-) of C1 and the (-) of C4 are connected together but aren't connected to the other (-)'s.
The GPS draws only 25 mA and is the only part working on 3.3V. A local regulator near the GPS would simplify the design and power connector.
On Ebay i see various ocxo's (Trimble, isotemp), if they are electrically compatible it would be nice if the fit on the board as well.
I am not a radio amateur, are SMA connectors more common or better than oldschool BNC ? Right angled connectors would help getting the signals out of the box.
Cheers, Ivo
The (-) of C1 and the (-) of C4 are connected together but aren't connected to the other (-)'s.
The GPS draws only 25 mA and is the only part working on 3.3V. A local regulator near the GPS would simplify the design and power connector.
On Ebay i see various ocxo's (Trimble, isotemp), if they are electrically compatible it would be nice if the fit on the board as well.
I am not a radio amateur, are SMA connectors more common or better than oldschool BNC ? Right angled connectors would help getting the signals out of the box.
Cheers, Ivo
Reply

breedj 8 years ago
I did not aim for a standard size. It just happens to become that size. The other board is the maximum size my cad software can handle with the current license.
The regulator can be put on the main board. I did not think of that, I wanted to have all power supply components on the power supply pcb. It might generate some noise when putting the regulator near the OCXO. Which might add some additional phase noise.
I think it is a good idea to make it compatible with the Trimble and/or Isotemp ocxo's. But I cannot find any electrical specifications and footprint measurements of those. The Trimbles are actually cheaper and easier to get. When using them the gain of the opamp might have to be changed though.
I used BNC because it is used on all my equipment. I do not have any with SMA connectors. My scope, counters and signal generators all have BNC. All connectors on the pcb are SMA though. I did not use right angled connectors because it might not fit in smaller cases when using BNC outputs. But I guess it might be convenient if you want to have SMA as the output connectors because you can stick them through the case. The straight connectors have the same footprint. You can still do that if you like of coarse.
The regulator can be put on the main board. I did not think of that, I wanted to have all power supply components on the power supply pcb. It might generate some noise when putting the regulator near the OCXO. Which might add some additional phase noise.
I think it is a good idea to make it compatible with the Trimble and/or Isotemp ocxo's. But I cannot find any electrical specifications and footprint measurements of those. The Trimbles are actually cheaper and easier to get. When using them the gain of the opamp might have to be changed though.
I used BNC because it is used on all my equipment. I do not have any with SMA connectors. My scope, counters and signal generators all have BNC. All connectors on the pcb are SMA though. I did not use right angled connectors because it might not fit in smaller cases when using BNC outputs. But I guess it might be convenient if you want to have SMA as the output connectors because you can stick them through the case. The straight connectors have the same footprint. You can still do that if you like of coarse.
Reply
Show more
1 Comment(s)

G7ITT 8 years ago
Hi All, I have collected some of the more obscure parts for this project such as the OXCO and the GPS receiver. Is there a possibility that a PCB run bight be in the offing? I have limited resorces for PCB manufacture. How many others are interested in buying a PCB?
Reply

breedj 8 years ago
Before I order the PCB's I like to make some minor changes to the schematic. I got some feedback from Bernd Neubig who tested my reference.
These are the changes I'd like to make to lower the noise floor:
Most of these changes will decrease the noise floor and are quite easy to implement.
I also have a ballbark estimate for the costs. A set of PCBs will probably be around €13,-. A set populated with SMD components will probably cost around €30,-. I'm planning to let them be manufactured by allpcb.com
I hope you can all wait a little longer. I will have make the changes, test them and order the other OCXO's. But the end result will perform better and will be cheaper.
These are the changes I'd like to make to lower the noise floor:
- Add additional filtering in the feedback loop with a corner frequency well below 1Hz.
- Replace the 12V regulator with a low noise type and add some extra decoupling caps.
- Terminate the OCXO with a 50 Ohm resistor to match the impedance.
- Replace the comparator with a one stage logic inverter gate with feedback resistor.
- Use an opamp with less noise
- Add compatibility for different OCXO's like the Trimble and Isotemp which are much cheaper and easier to get. Adding a footprint for those on the PCB.
Most of these changes will decrease the noise floor and are quite easy to implement.
I also have a ballbark estimate for the costs. A set of PCBs will probably be around €13,-. A set populated with SMD components will probably cost around €30,-. I'm planning to let them be manufactured by allpcb.com
I hope you can all wait a little longer. I will have make the changes, test them and order the other OCXO's. But the end result will perform better and will be cheaper.
Reply

I.N. Noorhoff 8 years ago
The frequency reference PCB is 100 x 160, the power supply is 133 x 88. At PCBWay the can be made for 42 + 34 per 10 for the board plus 30 or 40 euro for the shipping. 100 x 160 is a bit big for the cheap boardhouses. Below 100 x 100 boards can be made at dritypcbs, itead or seeed for about 20 to 25 euro per 10.
Reply

breedj 8 years ago
I can arrange that. I've got my own smd oven so I can also offer the pcb prepopulated with the smd components. Or maybe there are people interested in a complete working reference? I will have a look at the costs for some scenarios.
Anyone who is interested please drop me an email: joost.breed.quicknet@gmail.com.
Anyone who is interested please drop me an email: joost.breed.quicknet@gmail.com.
Reply
Show more
11 Comment(s)

David Holman 8 years ago
I have a 10mhz OCXO and a GPS receiver from QRP Labs. The latter works really well due to its large antenna and runs on a 5VDC supply. I use it with my U3S transmitter on WSPR amateur radio activities. A version of your project using the 1pps signal is just what I'm looking for.
Reply
Show more
1 Comment(s)

Rob Tromp 8 years ago
Hi Joost,
Nice project and I will follow it with interest. Also the measurements that Bernd will perform are something to look forward to.
I have a more practical question. I didn't know this GPS receiver you are using. Nice and compact module, but it has an antenna integrated. Thinking on how to use this GPSDO, it most probably will be mounted in an enclosure and get a place on the workbench. That might become a problem, since you integrated the module on your PCB. Mostly the antenna needs a pretty clear view to the sky, certainly when you want to rely on high accuracy.
Did you run some tests on that or any thoughts on this?
Best regards,
Rob.
Nice project and I will follow it with interest. Also the measurements that Bernd will perform are something to look forward to.
I have a more practical question. I didn't know this GPS receiver you are using. Nice and compact module, but it has an antenna integrated. Thinking on how to use this GPSDO, it most probably will be mounted in an enclosure and get a place on the workbench. That might become a problem, since you integrated the module on your PCB. Mostly the antenna needs a pretty clear view to the sky, certainly when you want to rely on high accuracy.
Did you run some tests on that or any thoughts on this?
Best regards,
Rob.
Reply

breedj 8 years ago
Yes, you are absolutely right. And I do use a metal enclosure. Therefore I cannot use the integrated antenna. And I don't. If you have a look at the schematics and the pcb you will notice that I use an external GPS antenna with a built in amplifier. The external antenna can be connected to pin 11 of the GPS module. Its SMA connector (X1) is positioned next to the GPS module. I receive up to 12 satellites with it with the antenna at my attick window. I use an antenna with a 3m long coax cable.
Reply
Show more
2 Comment(s)

Bernd Neubig 8 years ago
I would be interested about test results of short-term stability (ADEV) and phase noise.
If you cannot do it, I would be ready to offer you to perform these tests for you - FOC of course, as I am very curious about the results.
Best regards
Bernd
DK1AG
If you cannot do it, I would be ready to offer you to perform these tests for you - FOC of course, as I am very curious about the results.
Best regards
Bernd
DK1AG
Reply

Fernando v garcia 7 years ago
I wish I had half your knowledge to tackle something like this.
Hopefully you will offer a kit in the future, even if it is only the PWBA and a programmed microcontroller. I can purchase the other components.
I'm also a time-nut.
Unfortunately my wife is not.
When we are going out in the evening, and she tells me she will be ready in "15 minutes", that usually means anything beween 30 and 45 minutes. :-)
Hopefully you will offer a kit in the future, even if it is only the PWBA and a programmed microcontroller. I can purchase the other components.
I'm also a time-nut.
Unfortunately my wife is not.
When we are going out in the evening, and she tells me she will be ready in "15 minutes", that usually means anything beween 30 and 45 minutes. :-)
Reply

Bernd Neubig 8 years ago
As reference you need at least a second OCXO whose short-term stability is either equal (comparable) or much better than the item under test. If about equal you can divied the result of ADEV by a factor SQRT(2). If the reference is much better, you get the correct result.
If you are only interested in tau shorten then then "time constant" of your disciplining algorithm, then the reference can be a 2nd GPSDO. However for higher taus these values are misleading, because both oscilaltor modules are "disciplined" to the same reference. In that case it is better to measure long tausa gain a highly stable free-running high precision OCXO or against a Cesium standard.
For the measurement you shoudl use the time-interval measurement technique of a fast frequency counter, which does not use interpolation - otherwise the interpolation function of the counter will make the data look better.
If you are only interested in tau shorten then then "time constant" of your disciplining algorithm, then the reference can be a 2nd GPSDO. However for higher taus these values are misleading, because both oscilaltor modules are "disciplined" to the same reference. In that case it is better to measure long tausa gain a highly stable free-running high precision OCXO or against a Cesium standard.
For the measurement you shoudl use the time-interval measurement technique of a fast frequency counter, which does not use interpolation - otherwise the interpolation function of the counter will make the data look better.
Reply

breedj 8 years ago
That's very interesting. I was wondering how I can do Allan deviation measurements. How can I do such measurements? What equipment will I need to do that? I guess that will require another calibrated oscillator. I only have another GPS with 10kHz output and a frequency counter with 10MHz ref input.
Reply
Show more
6 Comment(s)
Updates from the author
breedj 3 years ago
The advantage of the L76-L is that it can track up to 33 channels. It uses not only GPS like the GlobalTop but also GLONASS, Galileo and QZSS. I usually recieve around 19 satellites with the antenna at my attic window. With the GlobalTop I could receive 'only' 10 GPS satellites.
404wanderer 3 years ago
breedj 3 years ago
Do you already managed to get a GlobalTop GPS receiver? Then I would use the older board. The main reason for the new revision is that the GlobalTop is hard to find nowadays.
404wanderer 3 years ago
Tom Carlisle 3 years ago
Do you know where I can get a set of the PCB'S or do you have to make them yourself
Tom
404wanderer 3 years ago
breedj 3 years ago
I have two boards left of the newest revision. If you like I can send one to you for a 6 euro/dollar this incl. postage and packaging fee. Drop me an e-mail: joost.breed.quicknet@gmail.com.
Kind regards,
Joost
Tom Carlisle 3 years ago
Thanks, I have sent you and email to the address you listed above
let me know if you have got it
Tom
Tom Carlisle 3 years ago
Tom
Alexander Schermann 3 years ago
Thankyo Breed!
breedj 3 years ago
What do you like to know? You can post in you own language if you like?
But revision C is the latest version and it only differs from Rev B with the GPS receiver. The rest is the same.
I've changed all the files to download to Revision C.
Kind regards,
Joost
breedj 4 years ago
Matthias Otto Spinnler 4 years ago
breedj 4 years ago
Renee Nunez 4 years ago
Im new to your project, and would be interested in building one, but if you are still working on a newer version (V2) i will wait for it.
Will you be providing PCB's for it? or should I try to get them for the current design and build it with the latest updates.
Thank You.
Renee
Mansueto Grech 4 years ago
Regards
Mans
hg1dfb 4 years ago
Nicola Bersani 4 years ago
Deon du Rand 4 years ago
daddioo 4 years ago
I would like to make some changes on the PCB, I want to replace the GPS you assembled with an Ublox NEO-M8N, plus I want to modify the outputs to get eight 10Mhz and two 1PPS.
Please you can have the project file so I can make the changes, or if you want to make the changes yourself.
thanks a lot
Joseph
breedj 8 years ago
I've attached the current schematics to this post. Please have a look and let me know if I made a mistake.
Charles Allen 8 years ago
73, N4TVC, Randy
Jerome Odier 8 years ago
Thanks
breedj 8 years ago
breedj 8 years ago
R13 discharges C35 before the next measurement 1s later. You can see that in the second screenshot. Discharging takes about 10ms. But there is plenty of time to do the measurement before the voltage has dropped.
Without the current source the voltage will rise in an exponential fasion, the same shape it has while discharging, but rising instead of dropping. Without D1 the voltage would drop immediatly after the rising edge of the 1MHz signal is detected. Then it would be impossible to do a measurement. The voltage measurement will be taken in the interrupt routine caused by the 1pps signal. Also the counter will be read from a register in that interrupt routine. The counter is stored in the register when the external interrupt is detected. But it is being done asynchronously by the hardware without the intervention of the cpu. So there is no delay caused by the cpu when the counter is stored.
The 1MHz signal is taken instead of the 10MHz signal because of the maximum PLL speed.
Phase shift measurement long measurement (31kb)
-alpi_58- 8 years ago
have you considered the possibility to insert a trasformer 1:1 to separate the outputs galvanically?
For example I send you the datasheet of the transformers that can be found on the old Ethernet card..
Alberto
breedj 8 years ago
I have not considered that option. I also haven't seen any designs which have a galvanic separated output. It might be interesting though. The problem with the current design is that it has square wave signal outputs. So using a transformer would be a problem. Also the impedance might be a different. But I like to experiment with them. Please send be the datasheet if you have it. You can also drop me an e-mail at joost.breed.quicknet@gmail.com
Thanks,
Joost
Mansueto Grech 5 years ago
Came across this project and was woundering if you happen to have any pcb for the project.
Thank you and well done
breedj 5 years ago
Unfortunatly not. The boards I had are all gone. I'm not planning to get new ones either. So if you like to build this project you will have to order them using the gerber files you can download. See '10MHz Reference Rev B - CAM' for those files.
Mansueto Grech 5 years ago
thank you for the reply and information
bluetang2 5 years ago
Which software did you use for schematics and pcb?
Thanks
bonhug 4 years ago
I have this up and running but have adapted the software to run on a 16x2 LCD. It appears to work fine although I am still awaiting delivery of a 74AC390 which appear to be getting scarce. Therefore, the output stage is still not functioning.
However, please note that the power supply pins for the LT1097 appear to be transposed. Pin 4 should be ground and 7 should be VCC.
Thanks again for a great project
Brendan
Mats 4 years ago
Did you ever finalize the second version (SAM D20 version) of this project?
I would be more interested in building that one concidering all the improvements.
Thanks,
Mats
breedj 4 years ago
I started it , but I have not finished it yet. I wanted to do another redesign.
But I have too many projects going on. I will finish it, but I cannot tell you when.
Codfishcatfish 4 years ago
Kind regards Spence
breedj 4 years ago
Rob Tromp 4 years ago
It looks like your PCB design has been scaled. Did you change the year stamp into 2020 and with that change maybe something happened. What about the other components?
Regards, Rob.
Codfishcatfish 4 years ago
The PDU board that now a test bed (1335kb)
breedj 8 years ago
Jerome Odier 8 years ago
Gixy31 8 years ago
mickmoane 4 years ago
breedj 8 years ago