Inspiration
The curiosity of how GPS and Galileo system works to geolocate the groundstation up to decameter precision.
What it does
Retrieves raw GNSS data from satellites and processes it both through a server backend and locally to provide detailed data such as SvId, Constellation Type, SNR, AGC, carrier frequency, and groundstation localization.
How we built it
The frontend is built with Java on Android Studio, and the backend with a Rust REST server, allowing the introduction of new clients easily, Rust is very fast when it comes to computing the data.
Challenges we ran into
Understanding the GNSS api, due to the lack of documentation and features, as well as its lack of compatibility with modern frameworks and libraries. Furthermore, we had to essentially reimplement the GPS protocol to provide comparsion data. Specifically, the pseudorange computation was difficult to get right, and the aquisition of the satellite's ephemeris (hideous bitfields) and subsequent inferring of the satellite's position. Lastly, the final location computation using the aforementioned pseudoranges and satellite positions, due to time limitations. On another note, language barriers both programmed and spoken.
Accomplishments that we're proud of
No one of us was proficient on any of the used technologies, and being our 1st hackathon as well as our first year studying a CS major, we think the results we have achieved are fair enough.
What we learned
Java, Android Studio, Rust, REST, and of course, GNSS Constellations and GPS/Gallileo protocol, how those work, their framing, decoding, computations, etc.
What's next for GalileoHack
Completion of featureset, improvements and enhancements in the realm of UI/UX design, stability, scalability, stack design, and precision.
Built With
- android
- android-studio
- bitshifting-and-raw-data-processing
- java
- rest
- rust
Log in or sign up for Devpost to join the conversation.