UBox MAX-7C based module RYN25AI use for GPSDO - Page 1
Forum section: electronics / general

author: calin
author_rank: Regular Contributor
timestamp: September 29, 2014, 09:58:15 pm
content: So ... I on a quest to get a relatively decent 10Mhz reference for my home lab. Obviously a GPSDO is the only "no calibration required" option. I got pretty much everything I need , an OCXO MV85A Morion (pretty darn good) and I was looking around to discipline the thing using GPS plus one of those Exton video distribution amplifiers that I already hacked to 50 ohm and tested to nicely carry 10MZ (the thing is rated for 30MHz).While browsing for a GPS module I stumbled over this module one e-bay - RYN25AI. Datasheet here -http://www.reyax.com/Module/GPS/RYN25AI/RYN25AI.pdfThe module is based on UBlox MAX-7C which, based on the datasheet, seem to have a programmable timing output .. which seems to be able to be programmed to output quite a wide range of frequencies .. even 10Mhz ... too damn good to be true at this price. The module sells for about 16-17$ so I got one just to test it. Other timing modules are in the 100$ range. At worst I will be left with a GPS receiver moduleDoes anyone have any idea how precise the MAX 7C is when it comes to timing output? I've been digging all the docs I could find but I cannot find anywhere rise time specs for this chip, stability info etc.MAX seems to be the version prior to the NEO series from UBlox ... in which they seem to have dropped the programmable timing. Except the LEA module which is dedicated for timing.

author: Melt-O-Tronic
author_rank: Frequent Contributor
timestamp: September 30, 2014, 04:33:56 am
content: Sorry, can't help on the UBlox. But I wanted to ask how your Morion OCXO is. I got one from China (eBay) and could only get -8.8 dBm out of it (spec is +5 to +9 dBm). Eventually, the seller sent a replacement. That one produces +5.9 dBm after warmup about 20% of the time. The other 80% of the time, it only outputs -25 dBm until it's fully warmed upANDI give it a sharp whack on the side. Is yours any better?

author: calin
author_rank: Regular Contributor
timestamp: September 30, 2014, 04:59:53 am
content: I got the 5V model, that is putting out 0 dBm (that arond 223mV RMS) . It seems that mine does put out that in a very nice clean sine.This is the OCXO data sheet -http://www.morion.com.ru/catalog_pdf/MV85-OCXO.pdf.

author: Melt-O-Tronic
author_rank: Frequent Contributor
timestamp: September 30, 2014, 06:27:15 am
content: Thanks and sorry for the hijack.Now back on topic, I remember seeing a discussion about the timing accuracy of a Ublox receiver (not sure which one exactly), but I can't for the life of me find it again. It was probably on time-nuts or someplace like that. Digging . . .

author: calin
author_rank: Regular Contributor
timestamp: October 14, 2014, 03:46:06 am
content: Long time no update on this thread .. but hey I got the GPS module from China. So I finally started doing somethingNow a have an UBLOX MAX 7C and an MV85A Morion OCXO plus the Extron video distribution amplifiers - the ADA 4 300MX.For now I hacked the Extron from 75ohm to 50 (had to get some 50 ohm from the bay). Very easy job just sliced off the 75ohm resitors and repled with 50. This part was darn easy hack .. tested with 10Mhz signal works a treat and indeed impedance is 50ohm.Now to PLL saga - I am a complete moron when it comes to RF stuff - but meh anyone shuld learn stuff somehow. So for a bit of sanity check here is what I did. I got the GPS module configured for fixed location and putting out an 1Mhz signal. Btw, indeed the MAX 7C is able to put out up to 10Mhz , but there is a catch. The internal oscillator is 48Mhz - so to put out 10Mhz it has to do fractional division and you get a horrible jitter at 10Mhz. 8Mhz for example is stable. So I went with 1 Mhz which is fixed division, checked jitter .. zero .. nada .. very stable. Got the OCXO, hooked up to PSU , added required adjust trimpot (mind you all is in hooked for now in air) and with the tongue at the right angle and a scope I got the 10Mhz sine in phase with the 1Mhz (you know the usual turn until they are both stable relative to each other). Counted how many periods of the 10Mhz I have in one period of the 1Mhz - spot on 10. So for sanity check I hooked my HP 5385A counter and it says 9.999992197 Mhz while counting the OCXO out. Of course the counter is off because each half hour or so seems to go up 1Hz, so the thing is drifting like a drunken sailor. I doubt the OCXO is that "drifty"Now for sanity check .. is my thinking and logic right when it comes to the "manual lock" I did ? Of course give the +/-What I intend to do in final is to use a decade divider like an 74HC390 and divide the 10Mhz to 1Mhz then phase lock that to the GPS. Right thinking or not ?Like I said, be kind, me learning RFEdit - a shot of the "locked" 10Mhz to the 1Mhz GPS

author: Melt-O-Tronic
author_rank: Frequent Contributor
timestamp: October 14, 2014, 05:09:35 am
content: If you want to learn about PLL's, you're in exactly the right spot.I probably shouldn't be tossing out advice here, so take anything I say as if it's from a self-mistaught amateur . . . because it is. So here are a few comments. Maybe something might be useful for you:I started experimenting with a square wave OCXO. I ran that through a 74HCT14 Schmitt trigger and through a pair of 74HCT390 counter/dividers. My Jupiter-T has a 10 kHz output, so I needed a divide-by-1000.I got my first PLL working using a simple XOR gate as the phase comparator. Getting lock was pretty easy, but there was a fixed delay between the rising edges of the clock and the ref. I think the best stable lock I could achieve had about a 7° phase difference.So . . . I decided a charge pump was the way to go. Since I'm not smart enough (yet) to work out my own charge pump, I added a 74HCT7046. I'm only using the phase detectors in it -- not the VCO. After figuring out enough to make a decent loop filter, I now get consistent and reliable lockup with almost no discernable phase difference. There is some, but I think it's less than 0.5°. The PD blip on the oscilloscope looks to be about 0.1 uS wide, but I think the time measurement on my scope is a bit out of calibration.Also, when I switched to the Morion MV89A, I needed to convert the sine wave into a square wave for the counters. I'm not sure what the *best* method is, but I tried different approaches including some in the "LPRO User's Guide & Integration Guidelines" PDF (http://www.ham-radio.com/sbms/LPRO-101.pdf). Eventually, I settled on the Linear LTC6957 Low Phase Noise, Dual Output Buffer/Driver/Logic Converter (http://www.linear.com/product/LTC6957-1) using their example circuit at the end of the datasheet (the one with the Coilcraft 16:1 transformer). I did have to add a simple LC impedance matching circuit, but it works great. Of course, since it's on protoboard, it's not the best environment for clean signals.So that's about where I am. My plan is to buffer the OCXO through a common emitter amplifier (http://www.ko4bb.com/~bruce/OCXOBufferAmplifiers.html), run it through a 0° splitter, send one copy to the PLL via the LTC6957 and the other to a signal distribution board. I'm tinkering with the digital side now; with ADC measurements of the phase detectors and getting control of the GPS from the MCU (Teensy 3.1).I'm also considering ways to handle holdover for when the GPS loses lock. One thought is to use an analog switch to cut the control line back to the OCXO and let it free float, but that doesn't seem smart. The other is to constantly gather PLL feedback voltage statistics while there is lock, then switch to the ADC to hold it at the latest average.Do try the simple XOR phase detector though. It's educational at the very least.

author: Vgkid
author_rank: Super Contributor
timestamp: October 18, 2014, 07:32:08 am
content: How were you able to calculate the loop filter components ?

author: calin
author_rank: Regular Contributor
timestamp: October 19, 2014, 04:26:31 am
content: Right .. i finally got around into modding the GPS module to actually use an active antenna. Everything went perfect, I took off the passive patch antenna, soldered in just temporary a 47pF cap and I just added a 10ohm bias to VCC .. no L yet as is all wired dead bug style in thin air ... I even took the 3.3V from the serial adapter .. very bruutal just to test. But hey ..lo and behold I am locked in 3D/DGPS mode tracking 12 satellites...Configured the timer and i said to do some cheap ass phase noise mesuremment on the 1MHZ signal I want to use for OCXO lock ... What I can say ..look at the first picture that is taken after almost 3 hours of saplin on a 2ns timebase .. this thing has 2-3ns jitter only... damn impressive for a 14$ module.There is only one thing, look @ second picture .. that is running with a 5ns timebase and infinite persistency, same long time few hours . Notice that "blip" in phase shift. I happens very rare .. I wold say each 10-15 minutes or so . Wonder what the heck that ismy best guess is that the blip happens when th GPS re-syncs the internal VCXO in the module to the GPS time pulse . I really don't think this is any issue.BTW .. i also got a couple of LTC6957on their way , that is a nice chip .. prbably even too fancy for this. Anyways good advice .. thanks. Still "self taught" situation is better than barely scratching the surface starting to learn caseYep if you can share the PLL filter wold be nice. When I am done and hopefully successful I will also put my "findings" up here.

author: Stigaard
author_rank: Contributor
timestamp: October 19, 2014, 06:04:50 am
content: QuoteA little clarification on the Ublox model numbering scheme, the first three letters denote the package of the module, the number denotes the generation (which is a little confusing since 7 and 8 was released about the same time, where 7 is supposed to be their low-cost and 8 the higher priced). The last letter is where it gets interesting as it denotes the features and the oscillator type, where Q means Crystal based receiver, I have not looked at using the ublox chips for timing, however they have a specific timing series where I would think the LEA-M8F might be of interest since it has a VCTCXO.Furthermore Ublox's brief description of it goesQuoteIt may however be out of budget, but their older LEA-6T might also be of interest, you can find an app note of it used for timing at their websitehttp://www.u-blox.com/images/downloads/Product_Docs/Timing_AppNote_%28GPS.G6-X-11007%29.pdfThey seem to be available in another package in chinahttp://www.goodluckbuy.com/ublox-neo-6m-flight-controller-gps-module-pixhawk-interface-with-compass.htmlhowever you would have to do some hacking to extract the right pin, as it probably isn't brought out for that application (and verify that the pin is available on the neo package as well as I have not checked that).

author: Vgkid
author_rank: Super Contributor
timestamp: October 19, 2014, 02:53:09 pm
content: ^^^ Im talking to a ebay vendor about that.i wish i could find the manufacturer.

author: Melt-O-Tronic
author_rank: Frequent Contributor
timestamp: October 20, 2014, 10:10:15 pm
content: Quote from: Vgkid on October 18, 2014, 07:32:08 amNational Semiconductor's AN-1001:An Analysis and Performance Evaluation of a Passive Filter Design Technique for Charge Pump PLL'shttp://web.itu.edu.tr/pazarci/pll/Passive_FilterDesign_for_Charge_Pump_PLLs_AN-1001.pdf

author: ve7xen
author_rank: Super Contributor
timestamp: October 21, 2014, 12:51:21 am
content: Nice find. Ordered one myself for my NTP server. The Oncore UT+ I had powering it doesn't have a very good GPS receiver and it can't lock reliably in my new location where satellite visibility is somewhat poor. The timing specs on this module seem comparable to the old Oncore too (though in practice, now that SA has been disabled - as the Oncore was spec'd, it might not in fact be so). Hopefully this will lock better, or I can do some GPSDO experiments as you have.Anyway the ability to generate user-selected output frequency is certainly interesting for GPSDO experiments. I've toyed for years about designing a GPSDO that works on 1PPS but there are too many gotchas and too many parts required for me to ever have got around to breadboarding anything.That phase jump is a bit odd. Appears to be ~20ns = ~48MHz = main oscillator frequency. In other receivers, the output pulse is often generated from a local clock edge, with the CPU selecting which edge is gated to the output. When this clock drifts with respect to GPS time, that edge will jump to correct for drift. Generally this happens pretty frequently, on order of seconds. It's unclear to me from the block diagram if that's how this particular receiver works, but I think it might be, as the crystal doesn't appear to be disciplined. The low frequency of clock hops might be due to a coarse lock using the frac-n divider somehow, but this will still have limited resolution and some phase drift will occur.What is your trigger source for these jitter measurements?Edit: The manual recommends disabling SBAS for best timing performance. Perhaps the observed phase step was due to a SBAS interrupt or some such?

author: calin
author_rank: Regular Contributor
timestamp: October 23, 2014, 05:21:35 am
content: I basically used the scope timebase - definitely not the most accurate bet better than that .... don't have any in the garage "lab" .I think in this case the scope timebase is not adding a lot .. the trigger fires off each time the raising edge hits say 1.5V. I used this dochttp://www.sitime.com/support2/documents/AN10007-Jitter-and-measurement.pdf- chapter 4.2.3 method B . Basically I've set the trigger at about 50% with infinite persistence turned on and left the thing to run for hours. Then the "thickness" of the trace is basically jitter.For the active antenna hack I used thishttp://www.u-blox.com/images/downloads/Product_Docs/MAX7-NEO7_HardwareIntegrationManual_(UBX-13003704).pdfsee section 3.4.2.2 .. works a treat even without an inductor using one of these 4-5$ active antennas from ebay. And I have a cable which is close to 11m long (had yo drill a hole trough the window frame to get the cable out). I took the power for the antenna from the 3.3V supply that I have from the ttl to USB/serial adapter , probably very crappy regualtion but hey still works.BTW, this chip also uses the same local clock edge trick for timing - you can even select which edge raising or falling. The internal crystal is indeed not disciplined in ublox-7C . The timing modules like LEA or MAX8T have an internal disciplined VTCXO.Like you say looks like is the drift adjustment happening there .. what is odd is that the drift is the same each time .. Notice that trace .. that has many traces overlapping there and it happens very rarely like each 10 mins - so there are like 20 or so traces for about 3 hours worth of sampling and they all match perfectly over each other - same ~20ns shift. Too damn precise for a drift I wold say.. Scratching my head now .. it may be the SBAS .. is to darn exact to be the drift adjustment. Have to try with that disabled and see what i get.BTW ... take all this from an absolute RF bozo that I am.Thanks for the filter note Melt-o-Tronic ... now I go lick some mathEdit:Just saw Stugaard-s post above ... holly $&^@% !! if that thing indeed has a neo-6t inside is a good deal. Bur who in its right mind uses a timing module for navigation ... i bet that is a Neo 6M like all those Arduino nav modules on the bay. Anyone dare to test... that wold give me a very good reason to use my hot air station[size=0.85em]

author: ve7xen
author_rank: Super Contributor
timestamp: October 23, 2014, 05:58:18 am
content: The phase step being exactly 20ns makes perfect sense if it's gated from the local oscillator. The controller can only choose between clock edgenor clock edgen+1, which are 20ns apart. It will keep choosing edgenuntil edgen+1is closer to the GPS edge, and then select that one instead. This introduces a step of exactly one local clock period, when self-triggered; it's basically stuffing (or skipping) one cycle of the local clock to keep it in sync with GPS time. If you triggered on a very stable or disciplined clock you'd see the edges slowly drift away and then snap back, but because you're self-triggering all you observe is the change in period (which only happens occasionally to correct for building offset), not the offset from GPS time. Internally, the processor knows that the time is off by so many ns, but because it has no control over the local oscillator and can only select edges, it gets quantized to steps equal to the local clock period.Many timing receivers (like the Motorola ones) report the error introduced by this technique as a "sawtooth correction" which software can use to adjust it out in post processing.I'm still a bit curious why the period of these glitches is so low though. Either you were really lucky and the local oscillator on yours is extremely close to nominal, or they're pulling some other tricks and this may be entirely wrong. I believe you'd also see something very similar if the frac-n were used directly despite the block diagram explicitly not showing that. I wonder if it's just that at 1MHz (I think you are running?) your scope's update rate is too slow to catch most of them. Even a fast 10,000wfrm/s is still only 1/100th of the total. Starts to make a lot more sense.I imagine this error probably becomes a bigger "problem" the faster you run the TIMEPULSE output, since it will represent a larger and larger portion of the period of the signal. Since you're running at 1MHz from a 48MHz timebase, I guess at best that means the error will be almost 2% on that period. With traditional PPS it vanishes into the noise at about 0.02ppm. I'm not a PLL expert by any means, but I imagine this could be enough to bump a tightly locked loop out of lock when running at those high frequencies, or require a very long averaging time. For GPSDO maybe it's more appropriate to run it closer to the old Jupiter modules at 8KHz or 12KHz or something.

author: calin
author_rank: Regular Contributor
timestamp: October 27, 2014, 02:50:20 am
content: Now I lived to see this one also .. RG58 75ohm cable .. yeah your read that right !!! ... i grown up knowing RG58 is 50ohmAm I being a moron or what .. I got an SMA extension cable ordered from the bay, bare in mind from US seller .. and lo and behold I got this cable clearly marked RG58 75ohm !!! Am I being a moron or this is absolute crap? The guy did had a picture that if you look careful shows a 50ohm cable ...I don't really care for 4$ but I wonder.... WTF ..... is there such a thing as 75 ohm RG58 cable ?!!!!All I know close is RG59 .. that is indeed 75 ohm.EDITSo i decided to test the impedance... conclusion is that this cable really seems like an 50ohm cable .. Look at the shots bellow. First one no 50ohm terminator - 10Khz square with a pretty sharp <5ns rise .. notice the approx 90ns reflection. Then second with 50ohm termination .. no reflection whatsoever .. just a tad of overshoot but probably that is due to my piss poor setup as I don't have right now a SMA to BNC adapter so I used a short 50Ohm coax with 2 crock clips to hook signal up to the SMA cable.

author: Melt-O-Tronic
author_rank: Frequent Contributor
timestamp: October 27, 2014, 07:24:49 am
content: My guess is the seller figured he'd cater to the audio/video crowd and sell it as 75 ohms, assured they'd never know the difference.What markings does the cable have?

author: Stigaard
author_rank: Contributor
timestamp: October 27, 2014, 08:26:41 am
content: QuoteI do in fact think there is quite a market for the ublox t-series within navigation, as it is often being used together with rtklib to provide RTK GPS, however in order to achieve decent stability the oscillator from the timing series modules are preferred the others seem to be much more sensitive to vibration causing loss of RTK fix.It may therefore be a timing module, I have ordered one to check it out, I'll update this post when it arrives to clarify whether it is indeed a timing version.

author: calin
author_rank: Regular Contributor
timestamp: October 28, 2014, 12:04:18 am
content: Great, Stigaard let us know what is inside once you get it. I am very tempted to get one tooBTW I think I may have fried my module last night .. by mistake I've connected 5V for antenna supply instead of 3.3V and looks like the module is not locking anymore. It was a tad late and I was asleep and I took the OCXO red wire instead of the 3.3V wire and hook it up to the V_RF. I did not had the will to split hairs @ that hour but I think the 5V supply has fried the module. I'll have to check better tonight to be sure. Lesson learned .. "use a damn different wire color for different voltages and most important .. BE AWAKE"The cable says clear writing .. "COAXIAL CABLE - RG58 75ohm" -- well ohm symbol you get the idea. But as you can see I measured the thing is 50 ohm.

author: ve7xen
author_rank: Super Contributor
timestamp: October 28, 2014, 01:20:31 am
content: You should probably have a DC blocking cap between the antenna+power supply and the RF input. But that sucks.

author: Stigaard
author_rank: Contributor
timestamp: November 01, 2014, 11:22:00 am
content: Just picked up the module from goodluckbuy at the post office.It does not seem to be a NEO 6-T, but instead a LEA-6T so it is indeed a timing module, not bad for ~30€The soldering however does not seem to have reflowed properly, but nothing the iron can't easily fix.

author: ve7xen
author_rank: Super Contributor
timestamp: November 01, 2014, 07:31:45 pm
content: Interesting, I was assuming they had "mislabeled" it. Good find!

author: Vgkid
author_rank: Super Contributor
timestamp: November 01, 2014, 09:06:54 pm
content: Thanks for the internals. Can you post a link, and your thoughts on the module.Im thinking of getting one to build up the Shera gpsdo.

author: calin
author_rank: Regular Contributor
timestamp: November 02, 2014, 06:17:50 am
content: Thanks Stigaard ! Indeed good find .. LEA-6T is a timing module. I will get one too.BTW I did not killed my module .. did had that blocking cap on. Turns out that I busted the cap only mechanically .. Those 47pf ceramics are tiny and I twisted the thing a tad too much. Replaced and module its alive ...

author: Stigaard
author_rank: Contributor
timestamp: November 03, 2014, 09:38:47 am
content: QuoteYou can find the link for the shop earlier in the thread.I only have very limited experience with GPS and the experience that I do have is for Geospatial applications using high-end GNSS RTK units from Trimble and Topcon so you should take my comments with a grain of salt.First and foremost it should be mentioned that the 6T is not the current generation but is actually a couple of years old which means that it has no GLONASS/BaiDou support as are present in the 8T/M8F series. (I don't know if BaiDou is relevant yet as I haven't done any work in that part of the world, but GLONASS makes a big difference for reliability here in Denmark).For timing applications I have no experience at all, but from the GUI I can see that there is a survey option allowing it to be set up for stationary position, allowing for time tracking using a single satellite. I can also share that with the built-in antenna I was able to get a reliable 3D fix from my appartment putting the module in the window, but still having to shoot trough a 4 story scaffold which is currently residing outside my window (we are having new windows put in, I live in the ground floor so pretty tough GPS conditions, the signal I am receiving has a random walk of ~30m with the mean ~15m away from the window, probably do to lots of multipath issues as no direct view of sky is possible).I did get HP 5371A from a auction lot I won yesterday, so if it is in working condition when I pick it up, (picking it up Friday), I may be able to do some measurements even though I don't have a high precision reference for it.

author: Vgkid
author_rank: Super Contributor
timestamp: January 10, 2015, 03:12:14 am
content: How were you able to get the time pulse out, and is it still workable through the usb interface?