This repository contains material for the workshop "Decoding interplanetary spacecraft" by Daniel Estévez at GRCon20 on 14 September 2020. The recording of the workshop session can be found in this Youtube video.
The material supplied here was provided to attendees of the workshop to follow along using their own computers, and for reference after the workshop.
The workshop is centred around building GNU Radio flowgraphs to analyze and demodulate deep-space probes IQ recordings.
This repository contains a number of GNU Radio companion .grc
files called
handson_*.grc
that show the progress at different steps during the hands-on
part of the workshop with GNU Radio companion.
It also contains the PDF slides for the workshop in the folder slides/
.
Users of the UbuntuVM virtual machine that includes GNU Radio can install the required software for the workshop by following the instructions here. Note you also need to download the IQ recordings as indicated below.
The workshop was originally done with GNU Radio 3.8 and needed the following.
- GNU Radio 3.8
- gr-satellites (any version since v3.0.0 is fine for GNU Radio 3.8)
- gr-dslwp, branch
maint38
The flowgraphs that were used in the workshop can now be found in the
maint-3.8
branch. The flowgraphs have now been updated to GNU Radio 3.10 in
the master
branch. GNU Radio 3.9 should probably work without problems with
the maint-3.8
flowgraphs. A version of gr-satellites and gr-dslwp that matches
the version of GNU Radio should be used.
There is also a very brief part of the workshop that uses a Jupyter notebook. This needs:
If someone faces problems installing any of the above, I'm welcome to help in the issues of this repository. Also, note the following:
gr-satellites will only be used for the AGC, so instead of installing gr-satellites, it is also possible to download and generate the AGC hierarchical flowgraph.
gr-dslwp will only be used for Turbo decoding in the last part of the workshop. Most of the workshop can be followed without gr-dslwp.
It is possible to test that GNU Radio and the OOT modules are working correctly
by using the handson_09_turbo_decode.grc
flowgraph. Jupyter and related python
packages can be tested with the Frames.ipynb
notebook.
The IQ recordings that will be used in this workshop can be downloaded
here. They should be
placed in the recordings/
folder inside this repository. These files total to nearly
1GB, so attendees are recommended to download these before the workshop.
If you have a freshly installed GNU Radio or are using a Virtual Machine with
GNU Radio, then the default logging configuration will produce many debug
messages with some of the flowgraphs. These messages can make
gnuradio-companion
run very slowly. It is recommended that you edit (or
create) ~/.gnuradio/config.conf
and enter into this file:
[log]
log_level = info
to reduce the number of debug messages.
This material is released under the CC BY 4.0 license.
Here is a list of recordings similar used to those used in the workshop. It can serve as a basis for people interested in studying these topics further.
-
Recordings of Tianwen-1 made by Viljo Allik ES5PC with the 4.5m dish at Tartu University (Estonia). See this and related blogposts.
-
Short recording of Tianwen-1 made by Wei Mingchuan BG2BHC with the 5.4m dish at Harbin Institute of Technology (China). The format is
complex64
(i.e.,float32
IQ) at 3Msps. Source: this tweet -
Emirates Mars Mission (Hope), recorded by Paul Marsh M0EYT. The format is
int16
IQ at 99998sps. See the blog post for more information.