Original Open Source GPS/GNSS SDR

This is the effort which opened GPS/GNSS receiver architectures to all.  Many are using this code and actively use the original SiGe module for data collections, include the RF & SatNav Laboratory here at Boulder. This information remains useful and although no further updates are expected, it can be beneficial for those just getting started.

A Software-Defined GPS and Galileo Receiver

Book Cover for Software-Defined GPS and Galileo Receiver
A Single-Frequency Approach

Kai Borre
Dennis M. Akos
Nicolaj Bertelsen 
Peter Rinder 
Soren Holdt Jensen 

Order Online

Front-End Hardware Modules

The GN3S Sampler has been co-developed by the University of Colorado Aerospace Department and SiGe Semiconductor. This device is recommended to be used in conjunction with the book : A Software-Defined GPS and Galileo Receiver. This USB-based device captures a raw GPS data stream and saves it as a binary file on your computer. The captured data can be processed using MATLAB code in the DVD bundled with the textbook

The windows based capture program has a limit of 600MB (or 38.4 seconds) of capture data. This means you can capture one full GPS record. At this time, larger files are not possible with the current code. 

All source code for the driver, application, and firmware has been included as it has been built upon GPL modules. 

The initial version (v1.0) of the device has been built around the SiGe SE4110L GPS Front End ASIC. View the data sheet for the SiGe SE4110L GPS Front End ASIC component.

Update (15-Sept-2015): 

Front End Module Update 
Unfortunately we are not able to build up any more of the SiGe-based front end modules. The challenge comes from the lack of SiGe 4120 ASICs readily available. However, since we initiated the textbook/module a number of interesting solutions have come out. One of our favorite is the SdrNav00 from OneTalent GNSS. If you are looking for a means to collect raw IF samples, I would encourage you to view the One Talent GNSS website

Update (12-Sept-2015): 

Updated SDR Code - Deep Integration

Work has been done to implement deep integration within the Matlab SDR code framework. This is based on the work of Dr. Sihao Zhao & Sara Powell and was presented at the Institute of Navigation GNSS+ 2014 meeting. For those interesting in exploring this topic, view the additional/modified files to work with this from within the original SDR code.

Update (12-April-2012): 

Upated SDR Code - VLL Tracking

Completely independent of the updated module, work has been done to implement "vector tracking" within the Matlab SDR code framework. This is based on the work of Dr. Sihao Zhao during his time as a visiting scholar at the University of Colorado Boulder and was presented at the Institute of Navigation ITM 2011 meeting. For those interesting in exploring this topic, view the additional/modified files to work with this from within the original SDR code.

Update (03-Oct-2011): 

Updated Sampler
Version 3.0 of the Sampler is now available which, again, is built around the Sige 4120 GPS ASIC. However, with this latest hardware/software update additional features have been incorporated and limitations have been removed. Further the new driver works for Win7 as well as WinXP. 

The new Sampler enables the user to capture data with different modes(narrow band(GPS) or wide band(Galileo)), different sampling frequencies, different intermediate frequencies and different data collection modes(real of I/Q) with no time limitation(limitations by the recording hardware/PC only). The specific parameters of the capture mode are below :

Mode#BandSampling FrequencyIntermediate FrequencyData Format
1Narrow16.368MHz4.092MHz2bit real
2Narrow8.184MHz0MHz4bit I/Q
3Narrow5.456MHz1.364MHz2bit real
4Narrow4.092MHz0MH4bit I/Q
5Wide16.368MHz4.092MHz2bit real
6Wide8.184MHz0MHz4bit I/Q
7Wide5.456MHz1.364MHz2bit real
8Wide4.092MHz0MHz4bit I/Q

The performance (continuous streaming/recording of samples) of each mode does vary, primarily based on the computer and the sampling frequency. It is recommended that a desktop or laptop with AC power be utilized to record data. It is also suggested using caputre mode with lower sampling frequency to improve the robustness. If the user entounters the "buffer overrun" error while collecting data, the user could either re-collect or choose a mode with lower frequency.

Please recognize the base clock/oscillator frequency for the v3 version of the module is 16.368 MHz (which result in the sampling and intermediate frequencies in the table above). These values should be used with the GPS SDR code for the desired performance. The previous versions of the module were built around a 16.3676 MHz clock/oscillator. There is no new files needed for the Matlab SDR receiver processing -- those found below for the v2 version of the module will work here given the appropriate settings. 

View the new code bundle (application, driver, and source files) for v3 of the module.

Update (18-May-2008): 

A new version (v2.0) of the Sampler is now available which is built around the SiGe 4120 GPS ASIC. The new Sampler provides a data stream with a lower sampling frequency (8.1838MHz) and I/Q sample pairs. The specific parameters of the captured data from this new module are below:​

  • Sampling frequency: 8.1838 MHz
  • Intermediate frequency: 38.400 KHz
  • 2bit I/Q samples (1bit I & 1bit Q) in a schar binary format (sI0, sQ0, sI1, sQ1, sI2, sQ2, ... )

Download the software to process the I/Q data. Note that the latest software revision will work with all revisions of the module, adapting to whichever module is connected to the host computer. It is highly suggested to download and review the software/readme files to ensure this module will meet your needs prior to ordering as we cannot provide support for this component. 

Please recognize that the original version of the Matlab code bundled with the textbook does not support IQ sample processing. As such, we have adapted the code to enable this. View the documented required changes. View the bundle of updated/new algorithms based on that documentation. 

Ordering Details

Sorry. This module is no longer available. See the updates for more information.

Support Information

Due to limited resources we would not be able to provide support/assistance with regards to the front-end module. Any relevant information will be available on this website. Feel free to contact us using the Contact page and we can try to post common questions and solutions.

Note

SiGe Semiconductor and University of Colorado do not sell or support this product.

Blue Front End Module
Blue Front End Module from the front view