Writing A GPS Receiver From Scratch

GPS is an incredible piece of modern technology. Not only does it allow for locating objects precisely anywhere on the planet, but it also enables the turn-by-turn directions we take for granted these days — all without needing anything more than a radio receiver and some software to decode the signals constantly being sent down from space. [Chris] took that last bit bit as somewhat of a challenge and set off to write a software-defined GPS receiver from the ground up.

As GPS started as a military technology, the level of precision needed for things like turn-by-turn navigation wasn’t always available to civilians. The “coarse” positioning is only capable of accuracy within a few hundred meters so this legacy capability is the first thing that [Chris] tackles here. It is pretty fast, though, with the system able to resolve a location in 24 seconds from cold start and then displaying its information in a browser window. Everything in this build is done in Python as well, meaning that it’s a great starting point for investigating how GPS works and for building other projects from there.

The other thing that makes this project accessible is that the only other hardware needed besides a computer that runs Python is an RTL-SDR dongle. These inexpensive TV dongles ushered in a software-defined radio revolution about a decade ago when it was found that they could receive a wide array of radio signals beyond just TV.

13 thoughts on “Writing A GPS Receiver From Scratch

  1. it was my very first experience with a bluetooth gps receiver, the special pcmcia bluetooth receiver for my laptop costs a fortune and was also one of the firsts. it could display a coordinate, wich you could look up in a printed michelin roadbook. it was some time before tomtom came.

    1. This repo is illegal because it’s used to bypass sanctions on deliveries of GPS modules to Omuusv. I’ve already messaged GitHub and my local US embassy so I hope it gets taken down quick.

    1. So, what happens if a non American writes software with the same functionality? Are they subject to ITAR? Just like the plentiful 25Hz thermal cameras you can buy now from China, but not from the US…

      1. Nothing. Despite the “international” in the name ITAR is a US domestic law, and in any case it controls trade of arms and communication of information, not production, possession or use. It’s sometimes had the unintended consequence of fostering the overseas development of the technology it is trying to restrict. That said many companies and educational institutions have compliance with ITAR written into their agreements with US entities, so in some cases their staff will have restrictions on what they can publish or sell, or forward to a third party. Also the US retains control over any component part of a larger system, including information, so they can theoretically come after a foreign national if they were to use controlled information or components they had obtained from the US in their project, assuming they were attempting to trade or transfer it.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.