Since Neil Armstrong's first step on the moon, people have wondered when will we take out first step on Mars. We believe, we will go to Mars in the coming decades. But what happens when we get there? How will we communicate back home? How will communicate over an average of 63 million kms?
LinkedUp allows us to explore this problem. It's a sandbox where people to play with different communication parameters for signals to and from Mars.
LinkedUp features an intutive UI paired with live data and NASA handbooks to calculate singal transmission. Built on React and Node (Express), this project was made during the SpaceApps 2020 Hackathon.
- In your command line/terminal:
- Navigate to
3.14Heads-SpaceApps2020/3.14heads
usingcd
npm install
- Navigate to
- Install Python
- In your command line/terminal, use the following commands:
pip numpy
pip pyowm
pip skyfield
- Navigate to
3.14Heads-SpaceApps2020/Backend
usingcd
npm install
- Navigate to
3.14Heads-SpaceApps2020/Backend
node server.js
- Navigate to
3.14Heads-SpaceApps2020/3.14heads
npm start
Once you've done all the above steps, the tool will be accessible at localhost:3000
The view is broken into 4 major components
- Features a picture of Earth and Mars. When a message is sent it shows the signals between the two planets and also displays relays (satellites serve as intermediaries for communication).
- This displays the parameters that users can play with to modify the signal behaviour. It also features Advanced Parameters for advanced options and an about section.
- This contains a text area where users can type a message and send to Mars (similutate the singal based on the parameters previous defiend)
- This is where users can see the outcome of the message and parameter options.
Left: The space map Right: The parameters dashboard |
Left: The message card Right: The results card |
Our backend relies on Node, Express, and Python. We used node's build-in child processes to communicate between our python scripts and server.
- LinkUp uses uses data from a variety of APIs and databases; including CSA data.
- For Mars atmospheric data, we used Meteorological Station (MET) of the Phoenix Mission | more data
- For live Earth atmospheric data, including pressure, humidity, temperature, clouds, and more, we used pyOWM (Open Weather Maps)
- For our link budget calculations, we used equations as given in NASA's "Handbook for the estimation of microwave propagation effects"
- For planetary positional data, we used Skyfield api
- Realistic orbital mechanics
- We'd love to have incorporated more orbital mechanics, including: Rotation of planets on their axis, orbits of planets, orbits of relays, etc.; but unfortunately it wasn't in the scope of our project given the timeframe we had to work on it
- Streamlined forms
- Input checking
- Restricted values
- More parameters!
- In the spirit of the sandbox environment LinkedUp provides, we'd love to allow users even more things to tweak
- Custom weather
- Custom atmospheres
- Individual relay paramers