SOCIS/Projects2019

= SOCIS Projects =

Project title
gr-satellites: refactorization and user interface

Brief description
gr-satellites is a GNU Radio out of tree module encompassing a collection of telemetry decoders that supports more than 60 different Amateur satellites. It suports most popular protocols, such as AX.25, the GOMspace NanoCom U482C and AX100 modems, an important part of the CCSDS stack, the AO-40 protocol used in the FUNcube satellites, and several ad-hoc protocols used in other satellites.

Since the start of the project in 2015, the number of satellites supported has grown from just a few to a large number. Each satellite has its own decoder flowgraph, and there is a good amount of repetition between satellites using similar protocols. One of the tasks of this project is to refactor the decoders to avoid excessive repetition. This will make the existing code base easier to maintain and it will simplify the addition of new decoders.

Also, the user interface, understood as the input and output format of the decoders is fixed and rather limited. The input consists of IQ samples streamed in real time using UDP, and the output is a series of text messages printed on the terminal. The second task of this project is to make the user interface more flexible. For instance, adding different input formats and the ability to process recordings faster than real time, and adding different output configurations, such as saving the received frames to a file or selecting which output to print.

Level
Beginner

Link to more information
https://github.com/daniestevez/gr-satellites

Mentor Full Name:
Daniel Estévez

Project Title
gr-satellites: adding support for FOX and other satellites

Brief Description
gr-satellites is a GNU Radio out of tree module encompassing a collection of telemetry decoders that supports more than 60 different Amateur satellites. It suports most popular protocols, such as AX.25, the GOMspace NanoCom U482C and AX100 modems, an important part of the CCSDS stack, the AO-40 protocol used in the FUNcube satellites, and several ad-hoc protocols used in other satellites.

One of the satellites lacking support in gr-satellites is the series of FOX satellites, by AMSAT-NA. These use 8b10b encoding and Reed-Solomon FEC. There are several existing open-source decoders, but the available documentation other than the source code is not very good or extensive.

The main task of this project is to add support for the FOX satellites to gr-satellites. The implementation will be based around a novel Viterbi decoder for the 8b10b encoding. This concept was proposed by the designers of the FOX coding, Phil Karn, Paul Williamson and Michelle Thompson, but so far it has not been used in any of the existing decoders. Also, some complete documentation about the FOX coding will be written as part of the project, to solve the lack of good documentation available publicly.

Time allowing, support for other Amateur satellites can also be added to gr-satellites as part of this project.

Level
Average

Link to more information
https://github.com/daniestevez/gr-satellites

Mentor Full Name:
Daniel Estévez

Project Title
gr-satellites: adding transmitters

Brief Description
gr-satellites is a GNU Radio out of tree module encompassing a collection of telemetry decoders that supports more than 60 different Amateur satellites. It suports most popular protocols, such as AX.25, the GOMspace NanoCom U482C and AX100 modems, an important part of the CCSDS stack, the AO-40 protocol used in the FUNcube satellites, and several ad-hoc protocols used in other satellites.

Currently, the focus of gr-satellites is on receiving and decoding the information transmitted by the satellites. The counterpart, encoders and transmitters, is missing. The transmitters are very useful not only to test decoders and perform experiments, but also to communicate with real satellites, as part of a groundstation solution. Regarding this, there has been some interest from private companies about a good open-source transmitter for the GOMspace modems.

This project seeks to add transmitters corresponding to the receivers that are already implemented in gr-satellites. Some of the basic building blocks, such as Reed-Solomon encoders are already implemented, but some other building blocks will need to be implemented.

Level
Average

Link to more information
https://github.com/daniestevez/gr-satellites

Mentor Full Name:
Daniel Estévez

Project Title
gr-satellites: expanding the CCSDS stack support

Brief Description
gr-satellites is a GNU Radio out of tree module encompassing a collection of telemetry decoders that supports more than 60 different Amateur satellites. It suports most popular protocols, such as AX.25, the GOMspace NanoCom U482C and AX100 modems, an important part of the CCSDS stack, the AO-40 protocol used in the FUNcube satellites, and several ad-hoc protocols used in other satellites.

So far, only parts of the CCSDS stack that were critical for decoding the Amateur satellites are implemented. Often, these Amateur satellites implement only a small part of CCSDS, using ad-hoc protocols in combination with the standard. Additionally, there is no complete implementation of the CCSDS stack for GNU Radio.

The goal of this project is to expand the support of the CCSDS stack in gr-satellites, providing a complete implementation of some of the standard blue books. Time allowing, the following will be implemented: TM Synchronization and Channel Coding, TC Synchronization and Channel Coding, TM Space Data Link Protocol, TC Space Data Link Protocol, Space Packet Protocol.

Level
Expert

Link to more information
https://github.com/daniestevez/gr-satellites

Mentor Full Name:
Daniel Estévez

Project Title
Implement SigMF functionality for GNU Radio

Brief Description
SigMF is the "Signal Metadata Format" that was defined during the 2017 DARPA Hackfest in Brussels. Its purpose is to annotate raw binary dumps of signals with metadata, thus giving meaning to a raw mass of samples.

SigMF is specified and has a minimal reference implementation here: https://github.com/gnuradio/sigmf

GNU Radio needs its own implementation of SigMF that ties into the block structure. The following things need to be written:


 * Source and Sink blocks for SigMF (similar to the current metadata blocks)
 * Converters for files generated with the current metadata file formats
 * Static analysis tools using SigMF

Prerequisites
Basic understanding of how to write GNU Radio blocks is required. Also, the student needs to explain that she or he has understood the concepts of SigMF, although SigMF is a very simple, JSON-based file format.

Depending on the precise path that the student and the mentor define, experience in GUI development would also be useful.

Outcome
The source and sink blocks are by the far the most important outcomes of this project. We estimate it would take about a third of the active coding time to implement those, and have them merged around the midterms.

This leaves plenty of time for further development. The next most important task are the converters, so existing metadata files will continue to be useful. After that, the student should define own tasks based on their interests. A very relevant problem is the ability to effectively visualize metadata in combination with signals.

Mentor Full Name
Bastian Bloessl