A starting point for learning about GPS with Open Source Software


NavtechGPS is now offering Seminars on GPS Receiver Principles using OpenSource GPS

Version 2.20 package has been released on Sourceforge (OSGPS)

As of Version 2.0 OSGPS has Linux operability as a driver in standard Linux

Version 1.00 of SoftOSGPS has been released on Sourceforge (OSGPS)


I would like to thank the following people who have contributed to OpenSource GPS. If I have left someone out I apologize and ask you to please correct my oversight.

Joel Barnes
Jingrong Cheng
Georg Beyerle
Alberto Perez
Phil Bender
Doug Baker
Elmer Thomas
Andrew Greenberg

Yu Lu

Takuji Ebinuma

Serguei Miridonov

Goetz Kappen

Rick Niles

Jonathan Makela

Dwayne Hagerman





Receiver Operation





OpenSourceGPS News
SoftOSGPS under CVS on SourceForge
OSGPS under CVS on SourceForge
How to Setup OSGPS under Linux  by Doug Baker
Link to Doug Baker's Company GPS Creations for GPS hardware (with ISA and PCI interfaces)
GPSRF Receiver hardware position fix test data

Paper Presented at ION GPS 2002 (download PDF)

KELLEY,C.,CHENG,J., & BARNES,J.,2002 Open source software for learning about GPS. 15th Int. Tech. Meeting of the Satellite Division of the U.S. Inst. of Navigation, Portland, Oregon, 24-27 September.

Over the past 13 years I have been working off and on with a GPS receiver I built based on the GEC Plessy GP1010 and GP1020 chipset connected to an IBM PC which does all of the signal processing through I/O ports.  Recently I have converted the software for use with the Zarlink GP2021 and GP2010/2015 chipset.  I am extremely grateful to GEC and Mitel who have allowed me to buy a small quantity of chips and have provided the documentation to go with them.

This seems an appropriate time to offer the software as an open source in a manner similar to Linux.  I hope this will provide a good starting point for others to build on. 

My hope is that we can develop a community of students and professionals interested in GPS who can as a group provide support to each other to fix bugs, improve and develop this software into something useful to amateurs, students, and researchers.

The programs and associated files contained in the distribution were developed by Clifford  Kelley (unless otherwise noted). The programs are not in the public domain, but they are freely distributable without licensing fees. These programs are provided without guarantee or warrantee expressed or implied.

The receiver requires at a minimum a 100 MHz 486 IBM PC with 640k RAM.  

This project is a 12 channel L1 only receiver.  The software goes from acquisition all the way to processing the navigation message and producing position and velocity fixes at a programmable rate of up to 10 Hz.  It is capable of doing a cold start, warm start or hot start depending on the data available.  The source code is written in C and was compiled on a Borland 4.5 C/C++ compiler.

Since there is a great deal of information available elsewhere on the web and in textbooks I will not dwell on the theory but rather concentrate on the algorithms and software.

Limitations/Areas for Enhancement

Obviously no program is perfect, especially one written on ones own time without access to sophisticated test equipment.  While it appears to work pretty well I know of a number of areas where there seem to be problems and other areas where it could be greatly improved.

  • The acquisition/pull-in steps integrate over 1 ms, a longer integration time or variable integration time may be desirable.
  • The tracking loops currently integrate over 20 ms, a longer integration time or variable integration time may be desirable
  • The code and carrier tracking loops are 2nd order and could be much better
  • There is no Kalman filter in the program

For a more detailed introduction to the project.

Comments/questions/suggestions may be e-mailed to


A mailing list for OpenSource GPS has been set up at PSAS (Portland State Aerospace Society).  Thanks Andrew!!.  Click to subscribe to opensource_gps



Version 2.00 under CVS is working on,  Version 1.18 has been released as a package at sourceforge under the project name OSGPS.


Version 1.00 of SoftOSGPS is also on sourceforge.  SoftOSGPS uses an IF file created from a software radio such as the GPS1A from GPS Creations and emulates the GP2021 correlator processing ans uses the existing OSGPS algorithms for search, track, and position, velocity and time fixing.  Work is underway to make this software hardware agnostic as well as running in real time.  Currently it supports files created by the SiGe USB dongle and the GPS Creations GPS1A USB dongle.  We would like to add support for the USRP and others as they become available.


We are using CVS on sourceforge for development.  If you would like to be added to the developer list please e-mail me.




Other Open Source GPS projects.



Takuji Ebinuma, OpenSource GPS MG5001 Port, This project is dedicated to porting OpenSource GPS for Sigtec's MG5001 OEM GPS receiver


GPS tookkit at the University of Texas at Austin GPSTk is a comprehensive library and set of utilities for GPS research, analysis, and development


The "NAMURU" FPGA based GPS Receiver by Frank Engel, Peter Mumford and Kevin Parkinson.


The Essential GNSS Project at the University of Calgary



If you know of any others please let me know.  The only requirement is that they are available free and clear under the GPL license.


Another site you may want to check out is Solomon's Blog at GPS Navigation




Clifford Kelley
Copyright 2004  All rights reserved.
Revised: March 13, 2009 .