[time-nuts] GPSCreations SDR (software defined receiver) GPS1A

Magnus Danielson magnus at rubidium.dyndns.org
Mon Jan 17 20:27:32 UTC 2011

On 01/17/2011 02:29 AM, jimlux wrote:
> On 1/16/11 5:19 PM, Magnus Danielson wrote:
>> On 01/16/2011 09:12 PM, Brooke Clarke wrote:
>>> Hi Pete:
>>> The SiGe receiver IC is not much use by itself since you need to
>>> literally be a rocket scientist in order to process its output data.
>>> The GPS1A, with open source software is interesting, but again you need
>>> to be a rocket scientist to modify the code.
>> I haven't launched or made any part (to the best of my knowledge) of any
>> rocket. Yet again I've been able to write software which can
>> post-process the data originating from this device.
>> Real time processing of it would be challenging, but I haven't spent
>> quality time on THAT problem.
> real time processing of *anything* is challenging, even if it's only
> updating once an hour. I write this because updating once an hour
> implies you are probably looking at data spanning months, and keeping a
> program or set of programs reliably running without a hiccup for months
> is non-trivial. Sure, we've all got anecdotes of "my machine only needed
> to be rebooted 6 months ago", but there's a difference between seeing
> that in the past, and guaranteeing it for the future.

The real-time processing is a bit challenging since one has to 
orchestrate the rather high sample rate processing. Also, since I didn't 
spend any time on efficiency at all. Being able to lock up and start 
decode the stream was a great step in the right direction before I got 
distracted. It only use 2 out of 8 bits in the byte-stream.

Hooking in a 10 MHz and PPS/time-tag and correlate them to the received 
signal would be an easy hack. What to do with the other 4 bits remains 
to figure out... hooking up a PIC for a PICDIV to do 1 kHz frame 
reference and PPS would be a possibility.

Anyway, it could probably be figured out if only spending some time on 
the data flow and front-end.

I implemented FFT based acquire method, tracking loops for carrier and 
code, message decoding etc. It doesn't take a rocket scientist to do 
this, but having a few books at hand and ICD-GPS-200... but I was 
recording data onto file and then processing from that.

So, it is definitely possible to cook up yourself. I would not say that 
my code is particularly wonderful in any sense. There is quite a bit of 
coding before you can lock up, and many false starts. Actually doing the 
FFT lock-up is recommended. It's not that hard really.


More information about the time-nuts mailing list