GPSDO YT 10 Mhz Lcd 2x16 With LED, UTC Time and GPS Localisation.

4,507

23

59

About: Hi, i'm electronic technician but it's my hobby too. I like to do and try many projects just for fun :)

Hi guys,

What is a GPSDO ? GPSDO means: GPS disciplined oscillator. GPS for global positioning system. All GPS satellites are equipped with synchronized atomic clock. GPS module receives these signals from several satellites. And by triangulation, it knows his location. But here, what interests us is the pulse per second that is found on the module. With this precise pulse (from atomic clock), we can do a very very accurate oscillator. What for ? For reference, for calibration of frequency counter or just for fun to have one in his lab.

For more explanation on how calibration is working. Go to my first instructable just here:

https://www.instructables.com/id/GPSDO-YT-Discipli...

So i did a frequency generator of 10.000000000 Mhz + or - 0.000000001 Mhz

Let's begin

Step 1: Here Is the Schematic

I improved schematic. I added a pot for the 12v version. Like that almost any 7404 or 7414 is working.

And i added LED support. Optional as well.

Basic projet could be only the uC atmega without LCD and LED. Output will be the same. But add some monitoring device is more fun :)

Step 2: Some Parts You Will Need.

GPS module. You can buy a cheap one.... any will do.

But you will need to find where is the pulse is. When a led is on the device. Best thing to do is to put a wire from the led to the 7404. Or now on ebay i saw some availables with on board GPS pulse output.

If your module isn't configure to have 1 pulse per sec (1 pps) and 0 pps when antenna are signal is missing, you will need to setup the GPS module. If you buy a ublox 6m. It's by default.

Step 3: OCXO

Oscillator OCXO. Simple or double, 5v or 12, sine or square will do.

Step 4: LCD 2x16

LCD is optional. If you install one. Only pin 1 to 14 is needed. For pin 15 and 16 (backlight), install a diode and wire exactly like picture.

Step 5: Those for Gps Module

This cable is:

High Frequency Coaxial Connective Cable Cord RP-SMA Female Connector IPX

and antenna:

28dB LNA Gain 1575.42MHz RP-SMA Male GPS Active Antenna Stronger Signal

Step 6: PCB

For PCB i used the toner transfer method. Not perfect but ok for this project. I'll give you PCB to print at next step.

Step 7:

Here is the file you will need to do the PCB. Top one is mirror for toner transfer method. I also added the gerber files if you want to use a professional way.

Step 8: Check Voltage

Before to add atmega and 7404, voltage must be checked.

I know my heat-sink is HUGE but i'm using what i have :) An old pc heatsink

Don't pay attention to my crocs with my socks lol

Step 9: LED Board

I did a board for the LED. At the end i glued the transistors on the metal box.

I'll give you pcb file on next step.

I suggest these flat cable. If by mistake you plug the cable upside down, no worry. everything will be fine. Just no LED will turn on. That's all.

Step 10: LED Board Files

The files for the little board

Step 11: Program Your ATMEGA and Below Here Is the .HEX File

You need an Atmega328p and the .hex file below. You must also choose the right fuses bits.(E0 D9 FF)

They are many way to do that:

-stk500

-USBasp (see next step)

-USBtiny (see next step)

-Arduino to program another atmega328p (search on internet, many how to availble)

Myself, i'm using a stk500 with ISP directly in Atmel studio. You can use any other method. A lot of cheap programmer are available on ebay. Next step show an ease alternative.

You must choose the right fuse bit. Here is Picture of stk500 fuses bits. (E0 D9 FF)

-Be sure that external oscillator is selected and the low.ckdiv8 clock is unchecked. See picture. Pay attention, when the external clock fuses bit, you must provide an external clock to program or run the code. In other words, connect the Oscillator in xtal1 pin.

So for short, send the gpsdo.hex file to the Atmega328p and program the fuses bits. (E0 D9 FF)

Step 12: Program Your ATMEGA With Avrdude and a USBasp or USBtiny

This method is very simple and cheap. search on ebay or amazon for USBasp or USBTiny. It's between 2 and 5$.

Plug in your USBasp or USBtiny device in your computer and let Windows detect the device (it will report driver not found). If a window pops up asking to search for driver, just close it or click on Cancel.

At this point, download and run Zadig, it should detect the USBasp or USBtiny, or any libusb device that you have. Then in the selection box (see picture), choose libusb-win32 (v1.2.6.0), click on Install Driver, and wait for the installation to complete.

Check in device manager for atmel usb device = ok. No excalmation mark anymore

Download avrdude 6_3 with HEX.rar here below on this page and unzip files in a folder. You will have 5 files, see pictures.

I create a batch file to program the chip with .hex and fuses bits in same time.

Connect USBasp or USBtiny cable in gpsdo board, see picture and turn on the project.

Double click on program usbxxx.bat

At the end, code and fuse bit are programmed, again see picture (black one)

Pay attention, with new fuses bits setting, clock must be now, external.

If programmation is ok and you see happen on lcd, check for oscillation. If you use 12v option, turn the pot

until something is lit on display. Use oscilloscope to adjust duty to 50% if you have one.

Step 13: Try Your Project

Before to put all the thing in a box. Try it. Be sure that all is working fine.

Here i fixed GPS module on heat-sink. I used an old transformer 16v AC. Too large for the project but again, i'm using what i already have.

Step 14: OCXO Insulation

If you want, you can insulate the OCXO with foam. Here i used depron foam. This is optional only.

Step 15: Holes in Your Box

Prepair your box. Do hole, put some paint! For square i'm using this tool, see picture.

Step 16: Time to Put All in a Box

Here i used a metal box.

Step 17: On Scope Results

Like you can see, sine wave is nice. 3,44V peak to peak. (1 volt/div)

Square wave is 2v/div

Here i'm using a 74LS04.

Step 18: Instruction Manual

At turn on GPSDO wait 15 minutes. He do nothing. This is for warming the OCXO and satellites reception.

If the OCXO is already hot, just push button to pass this wait time

Now begin calibration phases. 6 phases total. 1 second, 10, 60, 200, 900, and 1000 seconds. At 1000, uC is counting 1 billions of cycles (ticks) for exactly 10,000,000.000 Mhz

As soon this 1000 seconds achieved, uC keeps the pwm value in eeprom and continu at run mode.

Run mode is the same, 1000 seconds counted. If counter reach 10,000,000.001 or 9,999,999.999 the pwm value (16 bits) is adjusted plus or minus 1 and so on.

When GPSDO is in run mode, config is saved in eeprom. So if this one is turned off and on, GPSDO go directly in run mode. But be aware. If power if off for a while. You will probably need to do a whole reconfig process. Sometime even with pwm in eeprom, frequency have drifted to much. And, in run mode, the pwm is moving to slow (1/65535v) to correct the drift. In that case. Push putton at power on to set to default.

If for any reason, satellites are lost or weak (below than 3), gps pulse will be lost too. So pwm value will be not changed anymore until pulse come back. OCXO will run by itself at last good eeprom value. On scope you wont see difference when pulse is there or not.

If you press button, uC will stop counting and you will see UTC time and localisation for 10 seconds.

Localisation is in Degrees and decimal minutes (DMM). This is how to enter this on google map:

46 19.81750 N 072 35.33259 W

If you want to erase the eeprom value and restart calibration, just push button and hold at startup.

Step 19: Conclusion

I hope you will enjoy this project. Questions, commentary are welcome English or French.

3 People Made This Project!

Recommendations

  • Organization Contest

    Organization Contest
  • Paper Contest

    Paper Contest
  • Remix Contest

    Remix Contest

59 Discussions

0
None
DL4ZBB

Question 3 months ago on Step 19

Hello Yannick,
i cant register on the new site/forum. No registraion mail is comming back. I tried a lot.
My both units running. Both are in the run-mode.
One unit is reference for the counter and the other is connected to the counter.
Both LCD`s shows 10 Mhz.
But after a while both LCD`s shows a frequency lower then 10MHz. 20-40 KHz lower !!!
But the counter shows 10 MHz. So the LCD`s lie to me. If i press the button, LCD is going to 10 MHz. And after a while the same...
Best Regards
John

3 answers
0
None
Yannick99DL4ZBB

Reply 3 months ago

It depend of your email i think. Ok, the gpsdo are drifting because of the load probably. The lcd 10,000,000.000 display have a refresh rate of 1000 seconds but it's high precision. if you read 99800000 (10mhz -20k) it's becasuse you have 99800000hz. The display doesn't lie. But the counter you are using show 10mhz because the reference it's the same in input and output.
Now why the gpsdo are drifting ? Maybe the load is changing the frequency ? Maybe we can add a buffer at the output ? On my side as i remember, it wasn't drift at all...

0
None
DL4ZBBYannick99

Reply 3 months ago

Hi Yannick,
thanks... But input and output are not the same GPSDO. One for the counter and one for the reference.

Greetings
John

0
None
Yannick99DL4ZBB

Reply 3 months ago

I know john.... Try this: connect gpsdo1 to input and reset to default. Now the gpsdo will do at 10mhz with his load. Like that your counter will be good. After you will be able to check gpsdo2 with the counter.

0
None
DL4ZBB

Question 3 months ago on Step 13

Hi Yannick,
my 2 GPSDO`s running now for a few days.
Unit 1 shows me in the LCD 9,999,995.948 Hz
Unit 2 shows me in the LCD 10,000,000.512 Hz
What do you meen ? Unit 1 is not ok. Frequency is to low.

Best Regards
John

4 answers
0
None
Yannick99DL4ZBB

Reply 3 months ago

Hi John, have you turned off and on the gpsdo for a while ? If yes, it's probably the problem. I know the pwm value is in eeprom but at power on, after 15 minutes, all components are not exactly at same temperature or voltage as before. Best pratice is to always stay the gpsdo turn on. Sometime is't quicker to push button to reset default values and reconfig all the thing. Also, if you are in run mode at perfect 10,000,000.000 and frequency change for 9,999,995.948 without touching nothing, we have definitely a stability problem. Gps pulse not good, or ocxo is drifting. Hard to tell

0
None
DL4ZBBYannick99

Reply 3 months ago

Hi Yannick,
ok, i make a reset with GPSDO 1
Both units have the same OCXO, Temperatur a.s.o.
I will trie.... I can build 2 more GPSDO. Have 2 Sets of PCB`s in spare...

Best Regards
John

0
None
DL4ZBBYannick99

Reply 3 months ago

Very good Yannick...

Greetings, John

0
None
DL4ZBB

Question 4 months ago on Step 13

Hi Yannick,
i think my GPSDO is ok now. The LCD shows the same we in your picture here and the GPSDO is running for 2 days.
And the config is stored in the EEPROM.
Could it be that the age from the OCXO is the problem ? I will build up a 2nd unit
and try the differend OCXO`s.
But if you release Version 1.5 let me know.
Thanks for your work, great project.
Best Regards
John

1 answer
0
None
DL4ZBB

Question 4 months ago on Step 18

Hi Yannick,
i`ve tried annother OCXO and now i can reach Phase 6 and then the RUN-Mode.
Unit is still on. But what is happend if i switch off. I have to wait for hours ???

LED 1 blinking
LED 2 on
LED 3 on
LED 4 on

LCD shows:
Run, 1000s, S=10
9,999,999.999Hz

But it takes a very long time to go in the RUN-Mode. So what is the next step ?
Still waiting ?

Best Regards
John

1 answer
0
None
Yannick99DL4ZBB

Reply 4 months ago

All good. it's the normal operation. 9,999,999.999 is 10mhz +- 0,001 ppm

0
None
DL4ZBB

Question 4 months ago on Step 18

Hello Yannick,
so now i`m ready and the GPSDO is "running" for a long time.
But i think the unit is hanging - or not ???
The Display shows:

PH5, 900s, S=08
8999999909
So, what is going on ? Waiting ?

Best Regards
John

2 answers
0
None
Yannick99DL4ZBB

Reply 4 months ago

It can happen sometime one second is bouncing. It's why you have a number beginning by 8 instead of 9. You should read 999999909. Anyway the pwm read 09. So it will increase the voltage and the next count should be beginning by 9. If you never reach 10 000 000.000 it's maybe the pwm is at his maximun. This give me an idea... You are not the first person with this problem. Maybe i could do a 1.5 version and if the pwm is at maximun value the display could give a error or something like that.

0
None
DL4ZBBYannick99

Reply 4 months ago

Thanks Yannick, i will wait and inform you...

Greetings, John

0
None
DL4ZBB

Question 5 months ago on Step 3

Hi Yannick,

i`m looking for parts. What OCXO-Typ should I buy? A 5 volt, or 12 volt type?

Is a NEO 8M GPS-Modul working ?

Thank you and greetings, John

3 answers
0
None
Yannick99DL4ZBB

Reply 5 months ago

Hi John, Yes neo 8 will be perfect. I tested this model myself. For OCXO it's up to you. Both will do. I also tried both. The important thing is the v ref. This one should be 0v to 5v. Some 12v model have a vref of 8v. In this case you must use an op-amp to match the uC 0-5v. So look the schematic before to be sure before to buy

0
None
DL4ZBBYannick99

Reply 5 months ago

Hallo Yannick,
danke für die Info. Mein OCXO hat eine Vref von 2,5 Volt und ist ein 5 Volt OCXO.
Habe erst mal NEO6 besorgt um sicher zu sein. Aber die Dinger sind ja preiswert.
Ich berichte dann wieder... momentan sind die Leiterplatten in der Fertigung.

Gruß Uwe
DL4ZBB

0
None
Yannick99DL4ZBB

Reply 5 months ago

Neo 6 is just fine. We only need the 1hz pulse, that's all.