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

gfwyzxj, jozefch and 3 Guests are viewing this topic.

Online thinkfat

  • Supporter
  • ****
  • Posts: 2152
  • Country: de
  • This is just a hobby I spend too much time on.
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1000 on: November 11, 2021, 11:19:07 am »
That looks very nice!

Note though, when you increase the "gain", you will adversely affect the short term stability. You will get a faster convergence but the higher the gain and the lower the integration time constant of the regulation, the closer the OCXO frequency will follow the GPS, which is exactly _not_ what you want.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: W3AXL

Offline bingo600

  • Super Contributor
  • ***
  • Posts: 1989
  • Country: dk
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1001 on: November 11, 2021, 12:57:56 pm »
Nice chassis  :-+
Makes the end product look prof.

/Bingo
 

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1002 on: November 11, 2021, 02:46:22 pm »
That looks very nice!

Note though, when you increase the "gain", you will adversely affect the short term stability. You will get a faster convergence but the higher the gain and the lower the integration time constant of the regulation, the closer the OCXO frequency will follow the GPS, which is exactly _not_ what you want.

Good point. I'll do another run with the gain back to 27. Maybe 30 just for a nice round number. I'm also planning on adding in a trimmable opamp setup to the control line for the OCXO so I can up the precision a bit. Right now my ppb swing is a little ridiculous going from 1 to 65535. Anyone have any example circuits for that? I tried a simple voltage divider by itself, but the internal bias voltage on the Bliley OCXO control line was causing all kinds of issues keeping the voltage centered with that setup. Thus the need for a little more "force" with an opamp output.
 

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1003 on: November 11, 2021, 07:37:42 pm »
Alright, time for more concrete numbers.

I've brought the GPSDO into work and set it up with a frequency counter logging absolute frequency to a CSV. The counter is connected to a big-boy 58503A GPSDO so hopefully I'll get some good data.
 

Offline AndrewBCN

  • Frequent Contributor
  • **
  • Posts: 571
  • Country: fr
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1004 on: November 11, 2021, 08:16:08 pm »
...
a big-boy 58503A GPSDO...

A great instrument some 20 years ago. Nowadays, the $10 u-blox Neo-M8N module in your Lars' DIY GPSDO runs rings around the obsolete GPS receiver in the HP.

In any case it could prove useful to "tune" the parameters of your Lars' DIY GPSDO (gain, time constant, temperature correction, etc) assuming you have good GPS signal reception at your workplace.

I suggest you explore thoroughly the performance of Lars' DIY GPSDO in its present minimally modified form before you add any further complexity (an op-amp, a higher-resolution DAC, a timing receiver, etc). You may find that it performs just fine as it is (when properly "tuned"), and that adding complexity has no effect at all on its performance.
 

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1005 on: November 11, 2021, 10:03:39 pm »
To be fair, I'm not Timenutz-level obsessed with accuracy. If my GPSDO can match the 58503A then I'll be beyond pleased.

And for those wondering if bad satellite view was part of the issue, you're probably right. With our roof GPS antennas I'm averaging 11-12 satellites and an HDOP of below 1 most of the time.  ^-^

Attached is a plot of the first hour and half on this setup. Not sure what happened at around 15:30 to cause the big dip, but it's working its way back to 10meg slowly. Notice after the initial loop lock it's been within +/- 3 mHz for the most part which I think is pretty darn okay for a cheapo GPSDO. Even the transient at 15:30 only dipped down to -9 mHz or so.

Again this is all trusting the 58503A to be accurate. It's been on for a couple weeks now and just came back from our cal lab recently. So probably decent enough.
 

Offline AndrewBCN

  • Frequent Contributor
  • **
  • Posts: 571
  • Country: fr
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1006 on: November 12, 2021, 12:30:21 am »
Well now you just need one more GPSDO.  ;D

APPLICATION OF THE 3-CORNERED HAT METHOD TO THE ANALYSIS OF FREQUENCY STABILITY
http://www.wriley.com/3-CornHat.htm
 

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1007 on: November 13, 2021, 06:50:33 pm »
22 hour plot, measured with the HP 53131A + HP 58503.



Sure, it's not the proper 3-cornered hat measurement. But it tells me that my GPSDO is definitely well within my definition of "good enough"
 
The following users thanked this post: AndrewBCN

Offline MIS42N

  • Frequent Contributor
  • **
  • Posts: 511
  • Country: au
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1008 on: November 13, 2021, 08:45:35 pm »
22 hour plot, measured with the HP 53131A + HP 58503.
I think your GPSDO is following the short term variations of the PPS too faithfully. You can verify this if the DAC shows a similar pattern (otherwise it could be a measurement artifact). I don't know how Lars system works but there is probably some variable you can fiddle with to reduce the effect. My very cheap GPSDO is usually within .001Hz.
 
The following users thanked this post: W3AXL

Offline AndrewBCN

  • Frequent Contributor
  • **
  • Posts: 571
  • Country: fr
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1009 on: November 13, 2021, 09:23:44 pm »
22 hour plot, measured with the HP 53131A + HP 58503.
...

Thanks for the excellent chart. The problem however is that you are measuring the frequency of one GPSDO using a counter + reference frequency of a second, much older GPSDO.

So all we can say is that the sum of the noise of the two GPSDOs is what the chart shows us (and it's quite good enough since its < 0.01Hz, in other words, < 1ppb).

But it is impossible to tell which GPSDO is the main source of the noise in the frequency readings: it could be Lars' GPSDO, or it could be the 25-year old HP GPSDO.

There are two possible solutions: either use a much better clock (IOW requires access to a properly calibrated atomic clock) or use the three cornered hat method (requires access to a 3rd GPSDO).

Or if you are content with good enough (1ppb), you can leave it at that.

Even if you decide to leave it at that, I would still however consider the advice from thinkfat:

That looks very nice!

Note though, when you increase the "gain", you will adversely affect the short term stability. You will get a faster convergence but the higher the gain and the lower the integration time constant of the regulation, the closer the OCXO frequency will follow the GPS, which is exactly _not_ what you want.

In summary, you want low gain and higher integration time constant. Which is also what MIS42N is hinting at btw.
 
The following users thanked this post: W3AXL

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1010 on: November 15, 2021, 04:28:48 pm »
Now I see what you guys are getting at.

I'm going to run another test overnight tonight. I've upped the TC to 96 (from 32) and my gain is back down to the original calculated 27.

I think we also have one of those fancy rubidium counters somewhere around here. Perhaps I could use that for the third corner of my hat...
 

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1011 on: November 18, 2021, 04:45:33 pm »
So I upped the TC to 96 for an overnight run, and it brought in the noise even more (first attachment). Again, like others have said at this low resolution the noise could easily be the frequency counter / HP GPSDO combo instead of my GPSDO under test.

I then upped the TC to 128, to see if I could get things to smooth out even more. Evidently that's a little too long for my GPSDO to find a good lock (second plot). So I'm trying out a TC of 100 tonight to see how that looks.

I also found the Dana-Racal counter I was thinking about. Unfortunately it's the standard 1992 model as opposed to the 1998 rubidium model I was hoping it was. Oh well.
 
The following users thanked this post: AndrewBCN

Offline AndrewBCN

  • Frequent Contributor
  • **
  • Posts: 571
  • Country: fr
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1012 on: November 18, 2021, 06:02:29 pm »
Thanks for the nice plots. TC of 96 vs TC of 100 is unlikely to make any difference, it seems you are already at the noise "floor" of your DUT and measuring setup.

And you'll probably notice when you get to try the u-blox M8T GPS timing module that it too makes absolutely no difference.
 

Offline FriedLogic

  • Regular Contributor
  • *
  • Posts: 115
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1013 on: November 19, 2021, 12:31:43 am »
...
a big-boy 58503A GPSDO...
A great instrument some 20 years ago. Nowadays, the $10 u-blox Neo-M8N module in your Lars' DIY GPSDO runs rings around the obsolete GPS receiver in the HP.

  The GPS is only one part of a GPSDO, and back in that era they did everything they could to minimize that part, such as using a good oscillator and the HP SmartClock. They had Selective Availability to deal with back then too.
  Some of these old GPSDOs work much better - or worse - than others, and they do need a good antenna setup and view of the sky, but they can be very good indeed.
  The quoted timing pulse accuracy for the old Motorola Oncore VP timing receiver was 50ns.... with SA on!

  It would be interesting to see a comparison between different generations of GPS receivers. Something else for the to do list.
 

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1014 on: December 05, 2021, 08:03:31 pm »
A word of warning

Don't buy these M8T modules: https://www.ebay.com/itm/334056332149

I've spent the last half hour trying to desolder one and I've come to the conclusion that module is actually glued to the PCB it's attached to. I was hitting it with progressively hotter air for a good five minutes, and even 360C wasn't enough to separate it. The module's shield had popped off several times during the attempt as well, and the solder on the castellations was visibly flowing, but the unit itself was firmly planted onto the PCB. At this point the module is probably dead, so I may try some more invasive cutting and grinding just to confirm my suspicions.

Just to make sure it wasn't operator error causing my issues, I tried reworking one of the donor NEO-6M boards I've got and was easily able to get it off within a minute without any hassle, and at only 300C air temp.

Pretty scummy of that seller. Unless they're not even aware of the fact and are lying about the 100% tested claim.
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 2152
  • Country: de
  • This is just a hobby I spend too much time on.
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1015 on: December 05, 2021, 11:40:17 pm »
I bought about 20 or so LEA-M8T on cut-outs from the same seller. They came off just fine, but they were not NEO, which are a smaller footprint overall.

The trick is not to go too hot, but to give it time. Those cut-outs are 6 layers with several ground planes in them, they can take a lot of heat. Backheating might help, maybe use a hotplate if you have one. I think my temperature was 330C with a lot of airflow, it still took a while to get the modules off. Give it time, allow even heating.
Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: W3AXL

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1016 on: December 05, 2021, 11:49:40 pm »
Did you run into issues with the shielding can popping off? That was the main issue I was facing. I don't want to shoot heat at all the delicate components inside the can and risk blowing them away.

I'll give it another shot tonight. Still, I'm fairly confident all the pads were liquid and yet the module wasn't budging.

EDIT

Alright, I was finally able to get the module off. You weren't kidding, I had to dump a surprising amount of heat into the board before it came loose. Ended up putting a thermocouple probe on the solder joints to find out that even at 340C air temp, the board was barely above 225C. Cranked up the heat to 380C and was able to get it off. Threw it onto one of the donor NEO-6M boards and it's working great so far.

We'll see if it makes my lock issues any better. The GPSDO does great with a full view of the sky, but I'm getting frequent unlocks back here at the apartment with a diminished view. Does anyone know if I have to configure any options for timepulse holdover, or does the M8T module just do that automatically?
« Last Edit: December 06, 2021, 01:11:48 am by axel »
 

Offline Johnny B Good

  • Frequent Contributor
  • **
  • Posts: 811
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1017 on: December 06, 2021, 02:29:57 am »
 It needs to be "Surveyed in" or else enter the exact co-ordinates manually before it can change into over-determined mode to keep locked to the time pulse with only a single satellite. You can set the unlocked mode to match locked mode in TP5 (Timepulse 5) (see attached image where I've used it to signal loss of satellite lock with a 4Hz 50% duty cycle pulse - I'm using a 100KHz 50% pulse to drive my PLL). As far as can remember, it defaults to 0Hz 0% duty cycle when not locked onto the required minimum number of satellites.

 When I 'surveyed in' my very first M8T, I assumed I could use the sub 0.01m deviation I'd observed from the deviation map's average position I'd been getting with the M8N as a target condition to complete the survey in operation along with the recommended 24 hour run time (both conditions need to be met to successfully complete  survey in operation).

 Of course, the deviation map only shows a 2D plot, leaving the altitude ranging up and down by some ten metres or so. I'd set the target deviation to a 'generous' 0.1m and the time to 24 hours. After 24 hours had elapsed, the survey in operation was still waiting for the deviation to reach my 'generous' 0.1m target so I let it run another 12 hours before giving up and trying a new deviation value just slightly above what I'd first used.

 The deviation had shrunk to just under 0.17m by then so I reset it to 0.17m, expecting to have to wait another day or two for the process to complete but, to my surprise, that change was used directly with what it had achieved at that point and successfully completed the survey in operation.

 The lesson I learnt here was that you could set a reasonably tight deviation value to start a 24 hour survey in operation and, if it looks like it's going to take several days to get anywhere close, you can always reset this to just above the currently achieved deviation value to force a successful survey in with the tightest deviation value possible within the constraints of your chosen survey time and current reception conditions.

 In short, set it for 24 hours and 0.1m and see where the reported deviation value drops down to after this period and just reset the deviation target value a fraction higher than that to force it into over-determined mode with the best achievable deviation value within the time and reception conditions you are working with. Given your current setup though, I suspect you'll be doing well to achieve less than a one metre deviation value (but you never know until you try).

 Even if you only manage a 2m deviation, you'd still be far better off simply by losing reliance on having to depend on locking to a minimum of four satellites with any navigation only qualified GPS/GNSS receiver such as the M8N.
« Last Edit: December 06, 2021, 02:55:24 am by Johnny B Good »
John
 
The following users thanked this post: W3AXL, Jacon

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1018 on: December 06, 2021, 11:48:13 pm »
Well after a day of trying to get a good survey-in value, I've found that the lowest my StdDev goes is about 8.5m. Not great at all.

Curious if that's enough to get a somewhat-decent timepulse holdover. Guessing the reflections from the surrounding buildings are still making my fix less-than-great.
 
The following users thanked this post: Johnny B Good

Offline Johnny B Good

  • Frequent Contributor
  • **
  • Posts: 811
  • Country: gb
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1019 on: December 08, 2021, 03:28:20 pm »
Well after a day of trying to get a good survey-in value, I've found that the lowest my StdDev goes is about 8.5m. Not great at all.

Curious if that's enough to get a somewhat-decent timepulse holdover. Guessing the reflections from the surrounding buildings are still making my fix less-than-great.

 I've been rather preoccupied with a couple of projects, hence the late reply. I did give your problem some thought but felt I couldn't offer anything more useful than the obvious one of experimentation using your best positional fix estimate to set the M8T into overdetermined mode which I assume you've already tried by now.

 Specialist GNSS timing/geodetic antennas can improve this situation but cost considerably more than a basic puck antenna. The expense being further compounded by the universal use of TNC connectors and 5/8 inch UNC threaded mounts (even more obscure than the 1/4 inch UNC tripod mount system common to cameras). A common feature with these timing/geodetic antennas is their ability to discriminate against unwanted reflections from "ground clutter" but in this case, it would seem your problem is more about "Sky Clutter" than ground clutter. :(

 With your current (hopefully soon to be remedied) situation, such an antenna upgrade didn't seem appropriate, hence my silence on the subject. However, since there haven't been any other replies over the past couple of days (it seems longer than that), curiosity impels me to ask whether you've had enough time to experiment further with the M8T sufficiently to have some initial test results to report.

 Also, of course, I've had time to consider how a timing receiver could overcome the effect of reflected signals when placed into overdetermined mode. If you're only interested in obtaining a stable frequency standard, absolute time accuracy doesn't matter just as long as the 'error' remains a fixed and constant one so setting the position to a 'best guess' value, even if it's tens of metres in error, to put the receiver into overdetermined mode is not necessarily going to be a bad option.

 The real issue with unwanted reflections arises when the direct signal is totally blocked, leaving only the main reflected signal as the signal source (the most likely scenario in an urban canyon environment). I'm no expert on how timing receivers deal with such grossly delayed signals (think hundreds of nanoseconds!) but I should imagine the impossibility of a very early arrival of a single direct line of sight received signal being 'outvoted' by a bunch of very much delayed reflected signals would be processed correctly by the receiver's navigation computation engine when running in overdetermined mode.

 You're not forced to fix the position by a "Survey in" operation, you're quite at liberty to manually fix the position to a best guess value, even if that turns out to be several metres (perhaps even tens of metres) adrift from the true position, so well worth giving this option a go.

 Anyway, that's my "Two cent's worth". :)
John
 

Offline 0xFFF0

  • Regular Contributor
  • *
  • Posts: 87
  • Country: de
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1020 on: December 08, 2021, 03:32:21 pm »
You can evaluate the DOP values. The smaller they are, the better. Values smaller than 1 are excellent. Larger 3 it will be damn bad.
 

Online thinkfat

  • Supporter
  • ****
  • Posts: 2152
  • Country: de
  • This is just a hobby I spend too much time on.
    • Matthias' Hackerstübchen
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1021 on: December 08, 2021, 05:16:48 pm »
Well after a day of trying to get a good survey-in value, I've found that the lowest my StdDev goes is about 8.5m. Not great at all.

Curious if that's enough to get a somewhat-decent timepulse holdover. Guessing the reflections from the surrounding buildings are still making my fix less-than-great.

You can constrain the precision and time during the survey-in. The receiver will then complete the survey-in automatically when both constraints are satisfied. I usually set the maximum time to half an hour and the precision to 0.5m (or even lower). The survey-in then usually stops once the desired precision is met. What also helps is to decrease the measurement interval so that the receiver computes the position more frequently. The M8T can do 4 measurements per second, this reduces the time for survey-in significantly.

Anyway, you need to have an antenna position that has a decent sky view. If you can only receive the satellites from reflected signals, forget it. Find a position that has a decent view southwards (if you're on the northern hemisphere).

Or, tell the receiver a somewhat accurate position. You can use Google maps, the precision is good to 1-2 meters or maybe better.

Everybody likes gadgets. Until they try to make them.
 
The following users thanked this post: Johnny B Good

Offline W3AXL

  • Regular Contributor
  • *
  • Posts: 90
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1022 on: December 08, 2021, 11:43:23 pm »
I've had it sitting for a few days now after setting up overdetermined mode. I used 1 day & 10m as my constraints and it seems to have helped significantly. I haven't lost lock a single time compared to the multiple times a day I was seeing with the 6M receiver.

I've also been adding more to Lar's code. It now processes and logs number of satellites and HDOP, as well as GPS time. I'm getting dangerously close to max program size however (97%), so I'm not sure how many more features I can add. I would've loved to have added in a function to enable survey-in and overdetermined modes from the serial console without having to remove the GPS module, but I don't have nearly enough space left to implement a UBX encoder/decoder system.

Has anyone tried porting Lars' code to an STM32? Seems like the next logical step.

EDIT

Hah, I answered my own question. I'll have to check this out at some point Thinkfat - https://www.eevblog.com/forum/projects/diy-gpsdo-project-w-stm32-tdc7200/. Too bad STM32 cores are unobtainium these days.
« Last Edit: December 08, 2021, 11:46:59 pm by axel »
 
The following users thanked this post: Johnny B Good

Offline AndrewBCN

  • Frequent Contributor
  • **
  • Posts: 571
  • Country: fr
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1023 on: December 11, 2021, 07:21:57 pm »
Hi,

I will be assembling a prototype of Lars' DIY GPSDO using an Arduino Uno clone and the TIC circuit, OCXO, u-blox NEO-M8N GPS, etc on a breadboard.

I have gathered the minimal set of components and right now this is what things looks like. The separate PCB is a LM317T regulator set to output 5.05V and it powers the OCXO separately. Also I am using a slightly different TIC circuit, proposed by Erik Kaashoek. I'll post some DSO captures of the TIC readings when I get the GPSDO working.
« Last Edit: December 11, 2021, 07:27:06 pm by AndrewBCN »
 

Offline JdaleH

  • Contributor
  • Posts: 27
  • Country: us
Re: Lars DIY GPSDO with Arduino and 1ns resolution TIC
« Reply #1024 on: February 01, 2022, 03:59:28 am »
Hi, I just finished the Qw3rtzuiop v2 gspdo with Bliley oxco.  I am having the "missing 10mhz" and "no lock" issue.  I added 100k resistors to HC390 from vcc to clock input and ground and increased R3 to 4.7k as suggested in the blog.  No help at all.  Since I have exactly the same build as the Qw3rtzuiop v2, are there any other mods I might need to make (hardware or software) to get it working?  Is the issue my Bliley?  I can measure the gpsdo output at 10mHz, so I think the Bliley is working.  However, when I try to use command h1 to see the vco range I get 0.  Any troubleshooting help is welcome.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf