Skip to content

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📡 Ground Station

This is a project that I built to explore some lower-level networking. It simulates a connection between a satellite and a ground station, where the satellite periodically broadcasts its position over UDP. Random noise is introduced to simulate the packet travelling through space; some packets are delayed, while others are never sent at all. The ground station will receive these packets and log them in the correct order (even if they are received out of order) and re-request missing packets from the satellite.

This project also contains a dashboard to visualize the data in real time, which is driven by a uWebSockets server running on the ground station to broadcast telemetry events. You can view an instance of the project running on AWS here, where satellites will randomly spin up and tear down over time.

Requirements

This project targets POSIX operating systems, so if you are running Windows then you will need to use WSL. Other than that, you will need standard C++ tooling (CMake etc) and a compiler supporting C++17 or later.

Building the project

To build the project (client + server) simply run make from the project root.

Usage

You can spin up a ground station instance by running

make gs

from the project root.

Similarly you can spin up a satellite by running

make sat

While running a ground station instance, you can visualize the data using a dashboard by running

make dash

Tests

To run the unit tests, run make test from the project root.

About

Real-time simulation of communication with satellites over UDP

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages