Einstiegsfrage:
Geht es auch mit einem einzigen Programm, das demoduliert, dekodiert und die Daten gleich hochlädt?
gr-satellites von EA4GPZ
Unter Linux ist gr-satellites das wichtigste Werkzeug. Daniel Estévez, EA4GPZ, entwickelt es als Erweiterung für GNU Radio. GNU Radio ist ein freier Baukasten für digitale Signalverarbeitung (DSP).
gr-satellites enthält Dekoder für sehr viele Amateursatelliten. Es beherrscht unter anderem AX.25, Teile der CCSDS-Normen und das AO-40-Protokoll. Es demoduliert, korrigiert Fehler mit Verfahren wie Reed-Solomon und prüft die Rahmen.
Für viele Satelliten zeigt gr-satellites die Telemetrie direkt im Klartext an. Bei einigen setzt es sogar Bilder aus den Frames zusammen.
gr-satellites ersetzt Soundmodem, Telemetrie-Dekoder und Forwarder in einem Programm. Eigene Darstellung nach DK3WN (2017) und der Dokumentation von gr-satellites.
Von 2017 bis heute
2017 bestand gr-satellites aus einzelnen Ablaufplänen (Flowgraphs) im GNU Radio Companion, einer pro Satellit. Die fRAMES gingen über einen TCP-Port an ein zweites Modul, gr-sids, das sie hochlud.
Heute ist gr-sids in gr-satellites integriert. Das separate Modul ist seit April 2020 archiviert. Statt einzelner Flowgraphs gibt es ein Kommandozeilen-Programm: gr_satellites.
Die aktuelle Versionsreihe 5.x braucht GNU Radio 3.10. Die älteren Reihen für GNU Radio 3.8 und 3.9 werden seit dem 31. Juli 2025 nicht mehr gepflegt. Installieren kannst du gr-satellites aus dem Quellcode oder als Paket «gnuradio-satellites» über conda-forge.
Eingänge: Soundkarte, SDR oder Aufnahme
Wie unter Windows kann gr-satellites das Tonsignal deines Empfängers über die Soundkarte (Line-In) lesen. Es kann aber auch Aufnahmen auswerten: Tondateien (WAV) oder IQ-Daten von einem SDR. Das ist ideal zum Üben, weil du dieselbe Aufnahme beliebig oft dekodieren kannst.
Die Tabelle zeigt die wichtigsten Optionen. Den Satelliten gibst du als Namen oder NORAD-Nummer an.
Wichtige Optionen von gr_satellites
| Option | Wirkung | Beispiel |
|---|---|---|
| --wavfile + --samp_rate | Tonaufnahme (WAV) dekodieren; die Abtastrate in Hz ist Pflicht | gr_satellites <Satellit> --wavfile aufnahme.wav --samp_rate 48e3 |
| --iq | Die Datei enthält IQ-Daten (zwei Kanäle) statt Ton | … --wavfile iq.wav --samp_rate 48e3 --iq |
| --audio | Live von der Soundkarte lesen | gr_satellites <Satellit> --audio |
| --udp | Live-Datenstrom per UDP lesen (Port 7355), etwa von einem SDR-Programm | … --udp --samp_rate 48e3 |
| --kiss_out | Rahmen in eine KISS-Datei schreiben | … --kiss_out rahmen.kiss |
| --kiss_server | Rahmen über einen KISS-TCP-Server anbieten (Port 8100) | … --kiss_server |
| --kiss_in | Eine vorhandene KISS-Datei erneut auswerten | … --kiss_in rahmen.kiss |
| --hexdump | Rahmen als Hex-Bytes zeigen statt als Klartext | … --hexdump |
Nach der Dokumentation von gr-satellites (gr-satellites.readthedocs.io, abgerufen am 16. Oktober 2026). <Satellit> steht für den Namen oder die NORAD-Nummer. [PRÜFEN: Syntax mit der installierten Version vergleichen: gr_satellites --help]
Mit --hexdump siehst du die Rohbytes eines Rahmens. Genau diese Bytes rechnest du in Lektion E7.5 von Hand in Messwerte um.
SiDS: Telemetrie teilen
Die Simple Downlink Share Convention (SiDS) ist eine einfache Vereinbarung, wie Empfangsstationen Rahmen an einen Server melden. Sie entstand 2015 zusammen mit der Universität Würzburg für deren Cubesat UWE-3.
Die Station sendet jeden Rahmen als Hex-Text zusammen mit einigen Angaben an eine Web-Adresse. Antwortet der Server mit «200 OK», ist die Meldung angekommen. Den Telemetry Forwarder von DK3WN und gr-satellites verwenden dasselbe Verfahren.
Angaben einer SiDS-Meldung
| Parameter | Pflicht | Inhalt | Beispiel (Lernbeispiel) |
|---|---|---|---|
| noradID | ja | NORAD-Nummer des Satelliten | 42714 |
| source | ja | Rufzeichen oder Kennung des Empfängers | N0CALL |
| timestamp | ja | Empfangszeit in UTC nach ISO 8601 | 2017-07-24T22:09:20.000Z |
| frame | ja | Ganzer Rahmen als Hex-Text | 8870…EE0069870901C0D7BB20 |
| locator | ja | Art der Ortsangabe; zurzeit nur longLat | longLat |
| longitude, latitude | ja | Standort des Empfängers (WGS84) | 7.44E, 46.95N |
| tncPort | nein | Kanal, auf dem der Rahmen empfangen wurde | 0 |
| azimuth, elevation | nein | Ausrichtung einer Richtantenne | 135.0, 42.5 |
| fDown | nein | Empfangsfrequenz in Hz, inklusive Doppler | 436032150 |
Nach der SiDS-Beschreibung Version 0.9 (picsat.obspm.fr/sids/doc, abgerufen am 16. Oktober 2026). Alle Beispielwerte sind Lernbeispiele, keine echten Meldungen. Der Rahmen ist nicht escaped: SiDS überträgt den AX.25-Rahmen ohne KISS-Hülle.
In gr-satellites schaltest du das Hochladen in der Datei ~/.gr_satellites/config.ini ein: Setze submit_tlm auf yes und trage callsign, latitude und longitude ein. Die Datei entsteht beim ersten Start automatisch.
Alles, was du hochlädst, landet in der SatNOGS-Datenbank. Dort können die Satellitenteams und alle anderen Interessierten die Daten abrufen.
Hinweis: Es gibt Alternativen. Für Wettersatelliten ist SatDump verbreitet. Dire Wolf und QtSoundModem laufen ebenfalls unter Linux (siehe Lektion E7.2).
Kontrollfrage: Du hast während eines Überflugs eine WAV-Datei mit 48 kHz Abtastrate aufgenommen. Wie wertest du sie mit gr-satellites aus, und wie siehst du die Rohbytes der Rahmen?
Lösung anzeigen
Du startest gr_satellites mit dem Satellitennamen oder der NORAD-Nummer, der Option --wavfile und der Abtastrate --samp_rate 48e3. Mit --hexdump zeigt das Programm die Rahmen als Hex-Bytes statt im Klartext.
Mit --kiss_out kannst du die Rahmen zusätzlich in eine KISS-Datei schreiben und später erneut auswerten.
Merksatz:
gr-satellites erledigt unter Linux die ganze Kette in einem Programm. SiDS ist das gemeinsame Verfahren, mit dem Stationen ihre Rahmen an die SatNOGS-Datenbank melden.