Inspiration
We thought the idea of how GPS works was really cool, with how it contacts satellites from space and triangulates our location that way, so we thought it would be interesting to work with it ourselves and try and work with this interesting technology on a low level
What it does
Due to us not being able to fully complete the project, as of now the code is capable of reading data via an RTL-SDR at the frequency that GPS satellites operate at. This data can then be shown on a spectrogram using spectrogramMake() or on an Argand Diagram using argand(). We have also implemented functions to calculate the Pseudo-Random Number (PRN) of all active GPS satellites, which is effectively a unique identifier for each satellite. In theory, we could attempt to use this PRN number on the data we receive from the satellite and get the data from one specific satellite, but we were unable to successfully separate one satellite from the other 31, as well as separate the encrypted military signals (which were effectively rubbish to us) from the public signals. However, we also developed functions for after the fact, if we were to successfully do this, and thus are able to decode binary data to identify a GPS frame and convert the binary into usable variables.
How we built it
We used an RTL-SDR device connected to an antenna in order to detect the data at the GPS frequency, and we accessed it via Python, from where we were able to act upon the data (represented as complex numbers)
Challenges we ran into
The official GPS specification was complicated to understand, and we had the major roadblock of receiving data from all satellites as well as military data, which meant we couldn't identify data from a unique satellite and successfully decode it
Accomplishments that we're proud of
We started off making a lot of progress, being able to quite effectively divide key tasks amongst ourselves, making functions that could operate independently before combining them together
What we learned
Complex numbers are complex
The project was likely overly ambitious, with three first year uni students with no experience of working with antennas attempting to do what is normally done by teams of software engineers with experience in the field.
What's next for DIY GPS ( Team 6)
Maybe one day we can finally separate the data for each satellite and convert the complex numbers into binary 1s and 0s (soon + 2 weeks)
Log in or sign up for Devpost to join the conversation.