• Stars
    star
    756
  • Rank 58,500 (Top 2 %)
  • Language
    Jupyter Notebook
  • License
    GNU General Publi...
  • Created almost 8 years ago
  • Updated 13 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GNU Radio decoder for Amateur satellites

gr-satellites

GitHub release (latest by date) Conda Read the Docs GitHub license

gr-satellites is a GNU Radio out-of-tree module encompassing a collection of telemetry decoders that supports many different Amateur satellites. This open-source project started in 2015 with the goal of providing telemetry decoders for all the satellites that transmit on the Amateur radio bands.

It supports 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.

This out-of-tree module can be used to decode frames transmitted from most Amateur satellites in orbit, performing demodulation, forward error correction, etc. Decoded frames can be saved to a file or displayed in hex format. For some satellites the telemetry format definition is included in gr-satellites, so the decoded telemetry frames can be printed out as human-readable values such as bus voltages and currents. Additionally, some satellites transmit files such as JPEG images. gr-satellites can be used to reassemble these files and even display the images in real-time as they are being received.

gr-satellites can be used as a set of building blocks to implement decoders for other satellites or other groundstation solutions. Some of the low level blocks in gr-satellites are also useful for other kinds RF communications protocols.

Documentation

gr-satellites documentation is hosted in reathedocs.io.

Releases and branches

Currently there are the following series of releases in the history of gr-satellites:

  • v5.x.y is the current release series, and supports GNU Radio 3.10.

  • v4.x.y has the same functionality as the v5.x.y series, but supports GNU Radio 3.9 (until v4.6.0, the v4.x.y series supported both GNU Radio 3.9 and 3.10).

  • v3.x.y has the same functionality as the v5.x.y series, but supports GNU Rado 3.8. This series was the result of a large refactor that introduced a lot of new functionality and improvements. The refactor started on September 2019 and was finished in May 2020.

  • v2.x.y is a series of releases compatible with GNU Radio 3.8 that existed between September 2019 and May 2020. The functionality in this series is equivalent to the v1.x.y series.

  • v1.x.y the original series of releases, which was compatible with GNU Radio 3.7. Development in this series stopped on September 2019 with the appearance of the v2.x.y line, but some bugfix releases have been published afterward.

The repository is organized in the following branches:

  • main is where the active development happens. From time to time, features will be frozen in a new release. This branch is compatible with GNU Radio 3.10.

  • maint-3.10 is the branch where releases in the current v5.x.y line are published. This branch is compatible with GNU Radio 3.10.

  • maint-3.9 is the branch where releases in the current v4.x.y line are published. This branch is compatible with GNU Radio 3.9.

  • maint-3.8 is the branch where releases in the current v3.x.y line are published. This branch is compatible with GNU Radio 3.8.

  • maint-3.8-v2 is the branch where releases in the v2.x.y line were published. This branch is compatible with GNU Radio 3.8. No changes happen in this branch any longer.

  • maint-3.7 is the branch where releases in the v1.x.y line were published. This branch is compatible with GNU Radio 3.7. No changes happen in this branch any longer.

In general, pull requests should be submitted to main.

Installation

The installation procedure of gr-satellites is roughly the usual of a GNU Radio out-of-tree module. Detailed instructions about the required dependencies and how to build and install gr-satellites are given in the documentation.

Support

Support for gr-satellites is handled only through Github issues and Github discussions so that the whole community can benefit, rather than through private channels such as email. Please understand this when asking for support. Take a look here to check whether a new topic fits better in the issues page or in the discussions page.

Known problems

The AVX2 Viterbi decoder in Volk versions earlier than 1.5.0 is broken (the decoder was disabled in Volk 1.5.0). If using an older version of Volk on a machine that supports AVX2, the gr-satellites decoders for the satellites that use convolutional coding will not work. To solve this, the AVX2 kernel should be disabled in ~/.volk/volk_config or by using the VOLK_GENERIC=1 environment variable. See issue #217).

Satellite teams

Satellite teams interested in using gr-satellites for you groundstation solution, please read this note, especially if you will be using Amateur radio spectrum.

CCSDS TM and TC Space Datalink and SpacePacket blocks

Athanasios Theocharis made under ESA Summer of Code in Space 2019 a collection of blocks covering several CCSDS blue books. The documentation for this blocks can be found in CCSDS_README.md.

More Repositories

1

jupyter_notebooks

Assorted Jupyter notebooks by Daniel Estévez
Jupyter Notebook
145
star
2

free-outernet

Free Software Outernet receiver
Python
76
star
3

grcon2020-workshop

GRCon20 Workshop: Decoding Interplanetary Spacecraft
Jupyter Notebook
45
star
4

galileo-osnma

Galileo OSNMA (Open Service Navigation Message Authentication)
Rust
44
star
5

gr-outernet

GNUradio OOT module for Outernet
CMake
35
star
6

pluto-firmware-modifications

Tools and documentation to aid in modifying the ADI ADALM Pluto firmware
Python
32
star
7

satellite-recordings

Sample WAV recordings of Amateur Satellites
29
star
8

gr-csp

GNUradio blocks and python class to deal with CSP packets (Cubesat Space Protocol)
CMake
17
star
9

gr-frontends

GNUradio frontends that stream from different hardware to UDP
Python
17
star
10

gr-kiss

KISS and AX.25 blocks for GNUradio
CMake
16
star
11

dvb-gse

Rust implementation of DVB-GSE
Rust
15
star
12

gr-aausat

GNUradio decoder for AAUSAT
CMake
14
star
13

ata_interferometry

Tools for GNU Radio interferometry at Allen Telescope Array
Python
13
star
14

eugr-challenge-2021

EU GNU Radio Days 2021 challenge solution
Jupyter Notebook
12
star
15

ldpc-toolbox

A Rust crate with utilities to aid in LDPC code design
Rust
11
star
16

qo100-modem

Experimental development of a narrowband data modem for QO100
Jupyter Notebook
11
star
17

qo100-groundstation

Software for the QO-100 groundstation of EA4GPZ
C
10
star
18

hamnet-cc1101

Software to use a CC1101 chip for IP traffic on the Beaglebone Black
OpenEdge ABL
9
star
19

gr-libfec

GNU Radio blocks using Phil Karn's libfec
CMake
8
star
20

gr-linrad

GNU Radio module implementing Linrad network protocol
C++
8
star
21

ssdv-fec

SSDV systematic erasure FEC
Rust
8
star
22

reu-2023

Breakthrough Listen REU 2023 GNU Radio materials
Jupyter Notebook
7
star
23

reu-2021

SETI / Breakthrough Listen REU 2021 materials
Jupyter Notebook
7
star
24

doppler

GNUradio Doppler correction flowgraphs
6
star
25

gr-synctags

GNUradio blocks to deal with syncwords and tags
CMake
6
star
26

gr-sids

GNUradio telemetry forwarder using the Simple Downlink Share Convention (SiDS) protocol
CMake
6
star
27

ata_notebooks

Jupyter notebooks for my experiments at Allen Telescope Array
Jupyter Notebook
5
star
28

gr-ldpc-toolbox

GNU Radio blocks for the LDPC encoder and decoder from ldpc-toolbox
CMake
5
star
29

nusat

GNUradio flowgraphs to decode ÑuSat telemetry
4
star
30

hl2-bandscope

Hermes-Lite 2 bandscope recording and processing
Python
4
star
31

gr-ks1q

KS1-Q GNU Radio decoder
CMake
4
star
32

lilacsat

Lilacsat GNUradio receiver
4
star
33

gr-sat3cat2

3CAT-2 GNUradio telemetry parser
CMake
4
star
34

gr-ao40

GNU Radio OOT module for AO-40 FEC
CMake
4
star
35

aff3ct-ldpc-decoder

An LDPC CLI tool using the AFF3CT library
C++
4
star
36

grcon-tianwen-paper

GNU Radio flowgraphs for decoding Tianwen-1
4
star
37

gr4-packet-modem

Packet modem for GNU Radio 4.0
C++
4
star
38

reu-2022

SETI / Breakthrough Listen REU 2022 materials
Jupyter Notebook
4
star
39

gr-satellites-ci-action

gr-satellites CI pipeline action
Dockerfile
4
star
40

grcon23-ctf

GNU Radio Conference 2023 Capture The Flag: DVB-S2 track
Jupyter Notebook
4
star
41

aquarium-controller

Arduino-based Aquarium controller
C++
4
star
42

tinytapeout-verilog

Verilog
3
star
43

gmat-dslwp-source

GMAT R2019aBeta1 source modified for DSLWP-B VLBI simulation and estimation
C++
3
star
44

grcon22-ctf

GRCon22 CTF challenges
Jupyter Notebook
3
star
45

ata-flowgraphs

Flowgraphs for the GNU Radio backend at the Allen Telescope Array
Makefile
3
star
46

arduino-led-driver

Arduino-compatible LED driver
KiCad Layout
2
star
47

gmat-dslwp-binary

GMAT R2019aBeta1 binary modified for DSLWP-B VLBI simulation and estimation
Eiffel
2
star
48

gr-oot-build

Docker image to build GNU Radio OOT modules
Dockerfile
2
star
49

tle-lottery-2019-084

TLE lottery for 2019-084 launch
2
star
50

edi2kml

Python
1
star
51

gmat-dslwp

GMAT R2019aBeta1 modified for DSLWP-B VLBI simulation and estimation
Jupyter Notebook
1
star
52

gr-guppi

GNU Radio out-of-tree module for handling GUPPI raw files
CMake
1
star
53

reu-2024

Breakthrough Listen REU 2024 GNU Radio materials
TeX
1
star