SecondReceiver-Software

technik
radio_astronomie
Autor:in

Ansgar Schmidt

Veröffentlichungsdatum

11. Mai 2025

Entwicklung eines kostengünstigen Breitbandempfängers für die Radioastronomie auf Basis eines Software-Defined-Radio-Ansatzes (SDR)

Zusammenfassung

Im Rahmen eines Forschungsprojekts zur Radioastronomie entwickeln wir einen flexiblen Breitbandempfänger unter Verwendung eines Software-Defined-Radio-Ansatzes (SDR). Dieser Artikel beschreibt die Software-Architektur des Systems, das bewusst minimalistisch konzipiert ist, um schnelle Iterationen und Anpassungen zu ermöglichen. Der Fokus liegt auf der effizienten Datenerfassung mittels eines Arduino-basierten Mikrocontrollersystems und der Integration mit bestehender Astronomie-Software.

Hardware- und Software-Architektur

Das System basiert auf einem Arduino Mikrocontroller (ATmega-basiert), der über den I²C-Bus mit einem ADS1115 (16-Bit, differenzieller Analog-Digital-Wandler von Texas Instruments) kommuniziert. Trotz der theoretischen Abtastrate von 256 Samples pro Sekunde des ADS1115 ist der Arduino aufgrund seiner begrenzten Verarbeitungsressourcen derzeit nur in der Lage, etwa 6 Samples pro Sekunde zu verarbeiten. Diese Limitierung ergibt sich aus der fehlenden Echtzeitfähigkeit (kein RTOS) und den Overheads der I²C-Kommunikation.

Für die Ansteuerung des ADS1115 kommt die Open-Source-Bibliothek von Andre McKay zum Einsatz. Die Software implementiert eine minimale main loop, die kontinuierlich Messwerte einliest und in einem Ringpuffer speichert. Sobald der Puffer gefüllt ist, wird ein gleitender Mittelwert gebildet, um Rauschen zu reduzieren. Der erste Wert des Puffers wird dabei durch den Mittelwert ersetzt, während neue Samples asynchron hinzugefügt werden.

Dynamische Anpassung der Messparameter

Der ADS1115 ermöglicht die Einstellung einer variablen Referenzspannung (0–5 V), die über ein externes Potentiometer geregelt wird. Zur benutzerfreundlichen Anpassung der Auflösung wurde ein Drehgeber integriert, der es erlaubt, den Messbereich dynamisch von ±6,144 V bis ±0,256 V zu skalieren (entsprechend den Voreinstellungen des ADS1115). Die Auswertung der Drehgeberimpulse erfolgt mittels der Bibliothek von Matthias Hertel.

Da die aktuelle Softwareversion auf ein Menüsystem verzichtet, dient der integrierte Taster des Drehgebers als Markierungsgeber: Ein Knopfdruck fügt einen Zeitstempel oder Trigger-Marker in den Datenstrom ein, was die spätere Analyse von Ereignissen vereinfacht.

Integration mit Radioastronomie-Software

Zur Visualisierung und Weiterverarbeitung der Daten nutzt das System SkyRadio Pipe, eine etablierte Software in der Radioastronomie. Um Kompatibilität zu gewährleisten, wurde ein spezieller Protokoll-Parser implementiert, der sowohl Push- als auch Poll-Anfragen gemäß der SkyRadio Pipe-Spezifikation verarbeitet. Der Arduino antwortet dabei mit den aktuellen Messwerten oder Mittelwerten aus dem Ringpuffer.

Verfügbarkeit und Build-Prozess

Das Projekt ist als Open-Source-Lösung in unserem öffentlichen Repository verfügbar und kann über PlatformIO kompiliert und auf kompatible Arduino-Boards übertragen werden. Die Modularität des Codes erleichtert Erweiterungen, etwa die Implementierung eines RTOS oder die Anbindung leistungsfähigerer Mikrocontroller.

Ausblick

Geplante Erweiterungen umfassen die Portierung auf einen ESP32 (für höhere Abtastraten) sowie die Einführung eines OLED-Displays für lokale Einstellungen. Feedback und Beiträge aus der Community sind ausdrücklich erwünscht.

Zurück nach oben