Author Topic: Lars DIY GPSDO with Arduino and 1ns resolution TIC  (Read 91328 times)

MIS42N, Johnny B Good and 1 Guest are viewing this topic.

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #750 on: October 25, 2020, 11:23:31 pm »
I'd like to echo Paul's request - has anyone succeeded in establishing a value for TIC_min?

In the meantime I'm using the TIC values in Lars' report (120 and 1012) and have done a few short runs with time constants up to 1,500s and had no problems with locking.

I've attached some plots below. Any comments on the performance please? Any obvious issues?

Mike
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #751 on: October 26, 2020, 12:54:14 pm »
I found this on time-nuts. Does it shed any light on how to get the min and max TIC values?

https://www.mail-archive.com/time-nuts@lists.febo.com/msg00947.html

Mike
 
The following users thanked this post: Dbldutch

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 165
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #752 on: October 26, 2020, 01:13:17 pm »
I don't think so Mike, but thanks for digging this up.
There is some interesting stuff in this thread.

 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #753 on: October 29, 2020, 01:08:27 pm »
My M8T does not have the required firmware and although I found it and tried, I can't load it due to communication errors with the device. Upgrading the fw for the M8T apparently is not without risks. In any case, that's why I don't have access to Galileo.

Paul, are you sure it's because you weren't exceeding the maximum number of satellite systems the M8T can track? If you already had three selected then it would deselect Galileo.

Mike
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 165
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #754 on: October 29, 2020, 01:51:59 pm »
Hi Mike,
No that was not the problem. My M8T had old firmware that would not let me select Galileo.
I finally figured out where to find the new version and how to upload the new firmware and that solved the problem.
 

Offline thinkfat

  • Supporter
  • ****
  • Posts: 1360
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #755 on: October 29, 2020, 03:41:37 pm »
Finding the min and max should be really easy if you supplement the logging, printing the raw ADC values in addition, then setting up the GPSDO like described in the time-nuts posting.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Dbldutch

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 165
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #756 on: October 30, 2020, 03:08:11 pm »
Well, with the hint from thinkfat, I finally figured it out. Although the time-nuts postings did not help or clarify.

I indeed added a column in the status report to show the "raw" ADC-TIC values. When you apply the offset of 1,000, this extra column reveals what Lars had in mind with the filtx10 data. Unfortunately he did not elaborate what to do with the numbers which had us totally confused.

First of all, I used the procedure I outlined in my post just above. Set TC=4, wait for a lock. Then set the offset to 1,000 and wait until the ns numbers stabilize about around zero again. This will only take a minute but there will be no lock indication. In my software, this is shown as "****" in the sample below.

Now remember that when there is no lock, filtx10 shows the numbers x10. So the offset of 1,000 becomes 10,000 in the filtx10 column.

If you now look at the filtx10 data, all values above 10,000 "represent" the minimum value. To get that value so you can enter it into the system, you need to subtract 10,000. So as an example, if the value is 10,120, take off 10,000 to get 120. When you enter this value into the system, it will be divided by 10 to become 12 which is the intended value.

All values below 10,000 are the maximum values, divided by 10. So as an example, if the value is 9,950, the maximum value is 995.

I would capture at least a page or so of data in a spreadsheet and then calculate the average of the min and the max values.

These values can now be added into the system with l120 for min and l995 for max and then saved with s1 in the EEPROM.


The numbers in the added column with the ADC TIC values, are spot on to those calculated numbers above, so that must be it!
Here is a small abbreviated sample of my modified log: (excuse the formatting, I did my very best...)


Code: [Select]
Timestamp                ADC   pwm     time      ns        dac   temp   status   diff_ns   filtx10   
15:31:20.015 -> 995 134 4283   -6 35478 50.4   **** 10   9950
15:31:20.994 -> 997 135 4284   -3 35873 50.4   ****   2   9970
15:31:21.977 -> 995 138 4285     -6 35328 50.4   **** -2   9950
15:31:23.007 -> 994 141 4286   -7 34990 50.4   **** -1   9940
15:31:23.989 -> 12 132 4287     14 39274 50.4   **** 21 10120
15:31:25.018 -> 992 138 4288   -9 34614 50.4   **** -23   9920
15:31:26.006 -> 989 141 4289 -13 33731 50.4   **** -3   9890
15:31:26.987 -> 32 132 4290   31 44028 50.4   **** 44 10320
15:31:27.973 -> 16 142 4291   17 40721 50.4   **** -14 10160
15:31:29.002 -> 10 139 4292   12 39556 50.3   **** -5 10100
15:31:29.984 -> 991 130 4293 -10 35102 50.3   **** -23   9910

Mystery solved.
« Last Edit: October 31, 2020, 11:27:59 am by Dbldutch »
 
The following users thanked this post: thinkfat, Mike99

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #757 on: October 30, 2020, 09:49:02 pm »
Mystery solved.

Nice work sir! I would never have figured that out.

Now, can I raise the enthusiasm to get hold of a PD26 to calculate x2?

Also, what is "k" and how is it entered? Lars has a value of 6 in his example while mine is 63.

Mike
« Last Edit: October 30, 2020, 09:55:49 pm by Mike99 »
 

Offline billy_gr

  • Newbie
  • Posts: 3
  • Country: gr
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #758 on: October 31, 2020, 06:50:27 am »
Also, what is "k" and how is it entered? Lars has a value of 6 in his example while mine is 63.

Mike
k is the Now acquiring value: of the Three hour averages: TIC+DAC+temp
 
The following users thanked this post: Mike99

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #759 on: October 31, 2020, 10:20:42 am »
My M8T had old firmware that would not let me select Galileo.
I finally figured out where to find the new version and how to upload the new firmware and that solved the problem.

Can you post some info about this? I have a bunch of M8Ts that I would like to upgrade and I can’t find the FW. 
That big spark at power up was by design!
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 165
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #760 on: October 31, 2020, 11:39:51 am »
Miti,
That process was described in post 482 on page 20.
 
The following users thanked this post: Miti

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #761 on: November 01, 2020, 12:54:51 pm »
Miti,
That process was described in post 482 on page 20.

Great, thanks! I have over 20 genuine M8T modules. If anyone is interested, I offer some for sale. They are salvaged from boards that were not working properly (other issues, not GNSS issues) but were conformal coated so hard to repair, and were scraped.
That big spark at power up was by design!
 

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #762 on: November 01, 2020, 10:53:10 pm »
It worked like a charm! And it did take about 30 - 40 seconds for me. I can see Galileo now but my question is, and I bet it is answered somewhere here but TLDR, does it have any benefit in the GPSDO? I'm very pleased with my Lars GPSDO, it stayed locked since spring and actually all I need is a reasonably accurate 10MHz source, and I think it does this. My time/volt nutness is still under control.
« Last Edit: November 01, 2020, 11:05:02 pm by Miti »
That big spark at power up was by design!
 

Offline Dbldutch

  • Regular Contributor
  • *
  • Posts: 165
  • Country: nl
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #763 on: November 02, 2020, 08:56:04 am »
Hi miti
I'm glad it worked!
The only benefit I see is that if you have a limited view of the sky, the additional constellation(s) and satellites will help to get a more stable 1PPS, and that will reflect directly on the GPSDO stability and precision. This worked sort of miracles in my particular situation.

What do you charge for an M8T?
 

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #764 on: November 03, 2020, 12:59:56 am »
Hi miti
I'm glad it worked!
The only benefit I see is that if you have a limited view of the sky, the additional constellation(s) and satellites will help to get a more stable 1PPS, and that will reflect directly on the GPSDO stability and precision. This worked sort of miracles in my particular situation.

That's my case as well. I have a small magnetic patch antenna that's installed in my basement window on top of a biscuits box to have a ground plane, so I only see sky on the west side of the house. Upgrade may help a bit.

What do you charge for an M8T?

As Italians would say, tutto mezzo prezzo. Half price of what it is in Mouser, Digikey, etc. so $45 + shipping, tested and upgraded.
That big spark at power up was by design!
 

Offline thinkfat

  • Supporter
  • ****
  • Posts: 1360
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #765 on: November 03, 2020, 08:11:22 am »
Hi miti
I'm glad it worked!
The only benefit I see is that if you have a limited view of the sky, the additional constellation(s) and satellites will help to get a more stable 1PPS, and that will reflect directly on the GPSDO stability and precision. This worked sort of miracles in my particular situation.

That's my case as well. I have a small magnetic patch antenna that's installed in my basement window on top of a biscuits box to have a ground plane, so I only see sky on the west side of the house. Upgrade may help a bit.

What do you charge for an M8T?

As Italians would say, tutto mezzo prezzo. Half price of what it is in Mouser, Digikey, etc. so $45 + shipping, tested and upgraded.

Is it a bare module, or mounted on some breakout board?
Everybody likes gadgets. Until they try to make them.
 

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #766 on: November 03, 2020, 11:35:50 am »
Just the module. As I said, salvaged from some boards.
That big spark at power up was by design!
 

Offline nealix

  • Contributor
  • Posts: 21
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #767 on: November 04, 2020, 04:33:21 am »
Newbie Question:

I received my Skytraq Venus838LPx-T timing PCB from Tindie, and I have finally put up my outdoor GPS antenna on a mast with
a 360 degree sky view.  The GPS module puts out NMEA sentences and after a short time gets lock and starts blinking the PPS LED.

When I see you guys talking about jitter and stability of the GPS module, what are you using to measure the 1 PPS output?
Are you using Timelab?  (The home page does not say anything about docs, but I assume they get installed when you install
the software?)  Or, is there any point in trying to measure the GPS module, rather than the full GPSDO project stability?

Or are you using some other method to look at the stability of the GPS module output?

Also, are there specific settings that should be made to this GPS timing module using the GNSS Viewer Software?

(I realize I am kind of circling around the edge of this project, sort of starting in parallel with my GPS receiver module
and also with the wiring of the OCXO unit.   The middle will fill in after I learn more about these edge parts.)

Thanks for any guidance/mentoring,

Neal
« Last Edit: November 04, 2020, 04:35:32 am by nealix »
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #768 on: November 05, 2020, 01:40:42 pm »
Paul, many thanks for looking at this for me. I have trouble producing those graphs because I use LibreOffice Calc and it is very slow and crashes frequently on large files. I also have Excel 2003 but that has a limit of 65k rows and 32k points for a chart.

Mike, take a look at Matlab or Octave (free Matlab clone). It's definitely worth it and gets things done much faster than messing with apreadsheet. Takes some getting used to, but handles big data sets much easier than Excel/Calc.

I just found a great open source program for plotting my GPSDO graphs:

https://veusz.github.io/

It's easy to use (just follow the 5 minute tutorial) and handles large csv files easily. Here's an example.

Mike
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #769 on: November 06, 2020, 06:02:58 pm »
My GPSDO will lock with tc=1500s (eventually!) and remain locked, but that's too long for my purposes so I've been doing some 24 hour tests with shorter time constants. Do the plots of diff_ns with increasing tc look a bit odd?

Mike
 

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #770 on: November 07, 2020, 03:05:33 am »
Newbie Question:

I received my Skytraq Venus838LPx-T timing PCB from Tindie, and I have finally put up my outdoor GPS antenna on a mast with
a 360 degree sky view.  The GPS module puts out NMEA sentences and after a short time gets lock and starts blinking the PPS LED.

When I see you guys talking about jitter and stability of the GPS module, what are you using to measure the 1 PPS output?
Are you using Timelab?  (The home page does not say anything about docs, but I assume they get installed when you install
the software?)  Or, is there any point in trying to measure the GPS module, rather than the full GPSDO project stability?

Or are you using some other method to look at the stability of the GPS module output?

Also, are there specific settings that should be made to this GPS timing module using the GNSS Viewer Software?

(I realize I am kind of circling around the edge of this project, sort of starting in parallel with my GPS receiver module
and also with the wiring of the OCXO unit.   The middle will fill in after I learn more about these edge parts.)

Thanks for any guidance/mentoring,

Neal

There are multiple ways to see the jitter in the 1PPS. I'm using the DSO, one way is to trigger from 1PPS on one channel while looking at a 10MHz signal from a GPSDO on another channel. Set the trigger mode to Normal, turn persistence to maximum and you'll get 1.png after awhile. Another way is to set the PPS output to 10MHz, trigger one channel from the GPSDO 10MHz output while the second channel displays the 10MHz from the GPS module, see 2.png. The jitter is the same in 1PPS and in 10MHz. I'm not sure if your GPS module can output 10MHz on the PPS though, Ublox can. Of course, both, the GPSDO and the GPS module under test, must be locked, otherwise they will drift.
« Last Edit: November 07, 2020, 03:19:10 am by Miti »
That big spark at power up was by design!
 

Offline Mike99

  • Regular Contributor
  • *
  • Posts: 75
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #771 on: November 09, 2020, 11:15:41 am »
Quote from: Miti
The jitter is the same in 1PPS and in 10MHz.

Are you sure about that? 10MHz is not an exact division of the u-blox clock frequency, doesn't that introduce additional jitter?

Mike
 

Offline thinkfat

  • Supporter
  • ****
  • Posts: 1360
  • Country: de
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #772 on: November 09, 2020, 11:18:04 am »
Quote from: Miti
The jitter is the same in 1PPS and in 10MHz.

Are you sure about that? 10MHz is not an exact division of the u-blox clock frequency, doesn't that introduce additional jitter?

Mike

Lots of that, yes. But of course you can use the 10MHz as a reference input to a PLL to clean up the jitter.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Mike99

Offline Miti

  • Frequent Contributor
  • **
  • Posts: 872
  • Country: ca
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #773 on: November 09, 2020, 11:48:09 am »
Quote from: Miti
The jitter is the same in 1PPS and in 10MHz.

Are you sure about that? 10MHz is not an exact division of the u-blox clock frequency, doesn't that introduce additional jitter?

Mike

If your reference is a stable, in phase, GPSDO 10MHz, you don’t see that jitter, which is basically a pulse of a significantly  different length every now and then. Or if you’re unlucky and your scope triggers exactly when that pulse happens, you’ll always see it (I guess, to be validated) but the edge jitter that we’re talking about is the same. See my scope screen shot or try it yourself.
« Last Edit: November 09, 2020, 11:52:31 am by Miti »
That big spark at power up was by design!
 
The following users thanked this post: Mike99

Offline cncjerry

  • Supporter
  • ****
  • Posts: 1024
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #774 on: November 09, 2020, 06:54:17 pm »
I spent a lot of time with this circuit as well as another that changed out Lars' simple DAC for a two stage DAC system and used a TDC7200 for the TIC.  But prior to going that route, I had a number of issues that were pretty basic.  Your mileage may vary.

1) Make sure your PPS isn't overdriving the 4046.  If it is, and probably will be, use a simple voltage divider or variable resistor to bring it down below the 5V (if using 5V logic) and then use a 100 ohm resistor to help reduce the ringing.  There is usually a big spike on the 1PPS signals a that slew from zero to 5V pretty quickly.  That helped a lot for me.

2) Same thing with your 10Mhz input.  Square it up if needed using a two-transistor or other circuit from Wentzel.  Go here https://wenzel.com/library/ and search for squaring circuits.  I've always used the two-transistor as it was called.  You can also look at the TAPR TADD or TADD-2 or TADDD-2, can't remember all the 'D's in it, ha, input schematic.  Again. make sure it isn't under or overdriving your logic. This is on the return signal coming from the oscillator.

3) On circuits like Lars that use saw-tooth correction, again, make sure you have the logic levels correctly in phase and aren't overdriving the Arduino.  I had to use a voltage divider again.

4) Breadboards that have been used a few times start to loosen-up.  After a lot of prompting, I changed most of my little colored jumpers to single strande, tinned, 20 gauge wire.  I then doubled-up the key connections.  This took a lot of little jumps out.

5) One of the tests it to put it in hold so that initially the TIC is counting around 400 and then watch the output.  It should smoothly go or or down with the tic_max and tic_min close to tic_average.  ( I think Lars exposes these fields).  You can see the jumps caused by poor PPS conditioning, poor Oscillator return, etc pretty easily.  Bang on the table a little to see if it jumps.  Better yet, if you don't have a PCB, get a few of the solder-type breadboards from Amazon, EBay, Ali, etc and use them.  I think Lars circuit costs less than $20 so if you solder it up and need to throw it away a few times, so what. It's easier than fighting breadboard noise and ground loops.

6) If still using a breadboard, take a 20gauge wire, strip it off and slip it down the center channel.  Then mark where you need grounds, solder little wires to it, pull the chips, put the wire in the channel and use that as a single point of ground. 

7) Alternatively, take a piece of PCB stock and pull the stickum off the bottom of the breadboard on the ground channels.  Mark and solder the channels to the PCB.  You might need to put little solder bumps on the PCB to lift the channels up so you can keep the stickum on the rest of the breadboard.  You can do this for the ground runs from the bus lines as well.  Then put the breadboard back onto the channels for the rest of the circuitry.  You can also do this with a solder type board.   The large ground plane will help while maintaining flexibility.

8) Use a good oscillator or it really isn't going to work well.  Something that floats  all over the place is just never going to do much for you.  The GPS and TC can only do so much.  I used an HP 10811 and X72 Rubidium successfully and it took just a few hours to get the first lock and then a couple of weeks to keep it locked.   

9) You need bypass caps everywhere.  Especially diagonally across the 4046, HC390 and any other chips. The diagonal was a great idea from a friend.

10) back to the oscillator return.  Use an isolation transformer like an MCL T1-6T.  You don't ground the input side to anything.  You can bend the pins on one side and stick it down in a breadboad (if using one).  Make sure the input ground isn't grounding to the rest of the circuitry.

11) Power supply.  I had one for the GPS, another for the oscillator, another from the PC USB driving the Arduino, etc.  This is a bad idea and I had ground loops all over the place.  Some GPS have a 5v output but you need to minimize the number of supplies.  The isolation transformer helps with the oscillator because you need a ground to the EFC and if you have a long wire coming back from the oscillator output, that can cause a ground loop.

12) Wrap the oscillator in styrofoam to keep air currents from causing sudden shifts.

Hope it helps.

Jerry
 
The following users thanked this post: Dbldutch, sundance, thinkfat, Johnny B Good


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf