GPS Disciplined Frequency Reference Part 1

A GPS disciplined oscillator was a goal of mine for a long time now, i obtained a Motorola oncore UT+ timing GPS module off ebay along with a proper outdoor timing GPS helical antenna for about $40 some time ago.
This module outputs 1pps along with NMEA serial data, problem with this is how do you turn 1pps to 10MHz with low jitter?
A Phased Lock Loop would never work with a 10,000,000 divisor so i set out to design something, what i came up with was an oven controlled oscillator with a frequency set pin, a CPLD, and a DAC to count of number of cycles the OCXO puts out and compare it to 100 rising edges of the 1PPS output, if over 1,000,000,000 than it would tune the control voltage down, if less than it would tune it up.

This works fine in theory but in practice i learned quickly that im A) not a very good CPLD programmer, B) very fast rising edges on home-made PCBs cause all sorts of trouble

I gave up on this project to focus on other things when i came across Scullcom Hobby Electronics’ video on how to make a 10mhz reference using a uBlox NEO-7 location GPS’s time out pulse set for 10MHz.

I got one of these units off ebay for $7 shipped complete with an active antenna, a breakout PCB with a 3.3v regulator, backup battery and allegedly an EEPROM for configuration, but it appears as if it loses configuration data on power loss hinting to me that the EEPROM is just to prevent a cold start on startup, just holding sat data.

5afpsbsl

I got started by removing the resistor and LED from a reasonably laid trace that appears to be fine for the frequencies of interest, and placing on an SMA connector

e8aihshlo2qojfil

 

Configuring the uBlox module with the u-center tool was very easy as shown below.

qfrr5wt

 

But the news is not all good, the output, despite having an average frequency of exactly 10MHz, had quite a bit of jitter

 

umnvjro

The jitter looks all the world to me like a system trying its darndest to divide a clock that is not easily divisible, this would be fine for calibrating frequency references but it’s not good for acting as a reference for test equipment or as a clock reference for a project.

My first idea was to create something called a jitter attenuator, 10MHz single chip solutions to this are hard to find and even harder to obtain.  The next option was to create one from scratch, this is done in my case by using a PLL to multiply the 10MHz to 100MHz than divide it back down to 10MHz using a fairly high loop filter.

My design is below.

0ctseqs

This design also adds in a low pass filter to transform the square wave to a sine wave to have both a square and sine wave output.  This is not optimized, not properly calculated out and many values are missing. this is because this has turned into a bit much for what needs to be done.

So i started looking in to other routes, i noticed in the uBlox software the maximum set frequency was 24MHz, this lines up with the 48MHz timing clock from the GPS system itself, meaning the internal oscillator is either 24 or 48MHz, setting it to the maximum 24MHz i got a clock as shown below.

wyxarm1

This clock is exceptionally stable with a duty of 50% and a reasonable and stable rise and fall time and no measurable deviation, my next plan is to get an any frequency generator like the Si5351A that has a built-in PLL and three separate output divisors.

A problem might arise as the Si5351A uses a minimum clock input of 25MHz, But i believe from reading the datasheet that 24MHz will work fine, granted some trial and error would have to be taken to find the proper divisors.

This method offers several benefits.
A) I don’t have to mess with making a PLL.
B) The output stability and jitter has already been characterized.
C) I can adjust the output frequency on the fly between an estimated 2.4 kHz and 192 MHz.
D) I get 3 separate and buffered outputs to do as i wish and can set different frequencies on each.
E) Code and libraries exist for the Si5351A for many different microcontrollers.

Seeing how cheap Si5351A boards are on Adafruit, this will be my next step.

Stay tuned!

Wait so what will i do with the Motorola Oncore UT+?
I think ill make my own home NTP server! … staytuned for that also!

 

Advertisements

Active GPS Antenna Modification

Receiving in the mid-L Band can be a bit of a challenge, Many fun things are in this band like Inmarsat, Iridium, Glonass, GPS, GoES, NOAA exc
Generally speaking you need to make a tuned high gain antenna such as a patch, bi-quad, helical or 1/4th wave snub on a dish.

I have made a few of these as shown below.


These require external amplification, filtering, calculation, precision measurements, lots of copper and tuning.

But there is an easier way people have floated for quite some time, Taking an active GPS patch antenna, replacing the filter and the antenna with the band required.

But if we actually have a look at some GPS ceramic patch antenna datasheets they actually have a wider band than you would expect … ranging from 30 to 100mhz of reasonable VSWR
it appears as if we can (at least try to) keep the patch included, what might have worked out better is if my patch is rated for not just GPS but also GLONASS.

The antenna i have is the ANT-555 magnetic GPS antenna from Sparkfun. This antenna appears to be a cheap chinese alibaba find as if you search for its datasheet each link appears to show a different one. I used the datasheet as supplied by sparkfun that states the antenna works with 2 LNAs that are sandwiching a SAW filter and obtaining 27dBm of gain in 1575.42MHz +/-3MHz

Well let’s start by cracking into one and see what’s going on, after opening it up and removing the shield i was shocked to find that all the circuitry was very small as shown below next to a US quarter.

Right off the bat you can see that there is a power extracting network, one small chip, another small chip and some passives.

The first chip does not appear to be an LNA and after some investigation it appears to be an absurdly small SAW filter, after some investigation it appears to be an SF1186K-3 filter in an insane 1.45 x 1.15 mm package by RFM.

So 3 things were just found out, for one the datasheet does not match up with the actual product so we can safely believe the rest of it might be total garbage, Two any idea of me replacing this filter have just went out the window, and any idea i have had on what SAW filters look like and how they are manufactured have also gone out the window.

So we are left with 2 options, 1 i could try and deadbug a filter in its place, 2 i could just short it out.
Not able to find a wide enough band SAW filter of a size i could easily deadbug without causing a feedback oscillation  i went with option 2.

after removing the filter in the least destructive way possible (yanking it out with pliers after all else failed and accidentally ripping up a passive i had to replace) i just a jumper in place.

Now i resoldered the can and ran some tests, i was less than impressed by both its performance on iridium and GPS.

I rectified this by extending the rather lacking ground plane with some FR4 soldered on to the grounded can and some vias as shown below taped to a tripod for testing

 

It looks fairly nice and on top of that it works rather well. I did testing with an AirSpy for its reasonable noise floor, high gain, proformance at the desired frequency and bandwidth

 

As you can see it does more than a respectable job at capturing iridium packets and these packets can be rather easily decoded!