As you may already know, we are involved in developing the PW-Sat2 project. It is the second Polish cube satellite developed by students of the Warsaw University of Technology, and enthusiasts. Our role in this project is to prepare ground station software, which will enable mission control operators to gather and present data received from the satellite, as well as to send commands to the satellite.
Communicating with a satellite
As a part of PW-Sat2 Ground Station project we need to implement a command module that will allow system operators to uplink with the cubesat. There is one major problem when communicating with a satellite - there is no Internet (smile) (someone should fix that). Satellites communicate with ground stations using radio waves. The communication can be achieved only in a communication window - time when the satellite is passing over the ground station.
An electromagnetic wave is generated to convey binary data based on a chosen modulation schema. On the other side the received radio wave needs to be demodulated using the same schema. An appliance for converting digital binary data to an analog signal - and the other way round - is called a modem (Modulator/Demodulator). The basic communication schema looks as follows:
The modem can be implemented as a software solution but that is not an easy task. Insofar as modulating the signal is not that challenging, in case of demodulation things get much more complicated. The signal received by the transceiver is weak and very noisy.
The modem needs to extract the signal and demodulate it into binary form. Fortunately there are many soundmodems on the market already. Some of them can be found below:
others can be found in the QRZCQ - The database for radio hams article. What is crucial for us - most of the presented soundmodems expose an API over TCP/IP using KISS or AGWPE protocols making integration quite straightforward.
Evidently, we decided not to implement a modem on our own, but to use one of the available solutions. As a result, the PW-Sat2 Ground Station was divided into two modules:
- pwsat-gs - the main application, responsible for presenting data, composing commands, etc.
- modem-connector - a Scala wrapper for the AGWPE protocol for soundmodem integration