GNU Radio World ist eine browserbasierte Laufzeitumgebung und ein Flussdiagramm-Editor für GNU Radio, der vollständig in einem Browser-Tab ohne lokale Installation, Python-Abhängigkeiten oder Server-Infrastruktur läuft. Der DSP-Stack von GNU Radio sowie die Qt-GUI-Sinks wurden mittels WebAssembly (WASM) kompiliert, wodurch Echtzeit-Visualisierungen wie Spektrums-, Wasserfall- und Konstellationsdiagramme direkt im Webbrowser gerendert werden. Die Anwendung liest und schreibt native .grc-Dateien, bietet integrierte Beispielsignale sowie IQ-Aufzeichnungen und kommuniziert über WebUSB direkt mit SDR-Hardware wie RTL-SDR, PlutoSDR oder HackRF. Eine On-Demand-Architektur stellt sicher, dass WASM-Module und Signaldaten erst beim Einfügen der jeweiligen Blöcke geladen werden.
Wichtigste Punkte
Zero-Install WASM-Architektur: Der komplette C++-DSP-Stack von GNU Radio sowie Qt-GUI-Elemente wurden nach WebAssembly kompiliert, was eine lokale Ausführung komplexer Signalverarbeitungsnetzwerke im Browser ermöglicht.
Kompatibilität mit .grc-Dateien: Das System ist vollständig kompatibel mit nativer GNU Radio Companion Software und kann bestehende Flussdiagramme lesen sowie exportieren.
Direkte WebUSB-Hardwareanbindung: Über die WebUSB-Schnittstelle können physische SDR-Geräte wie RTL-SDR, ADALM-PLUTO (PlutoSDR) und HackRF ohne Treiberinstallationen im Betriebssystem angesteuert werden.
On-Demand-Modulladungsarchitektur: Zur Minimierung der initialen Ladezeit werden WASM-Module nur für die tatsächlich genutzten Blöcke heruntergeladen, was auch die künftige Einbindung externer Out-of-Tree-Module (OOTs) unterstützt.
IQ-Signal-Analyse: Die Plattform enthält integrierte Echtzeit-RF-Aufzeichnungen zur Signalinspektion (angelehnt an IQEngine), wodurch Signalverarbeitungen auch ohne angeschlossene Hardware getestet werden können.
Diskussions-Highlights
Verwandte WASM- und WebUSB-Projekte: Community-Mitglieder teilten mehrere im Browser laufende SDR-Werkzeuge, darunter einen Breitband-RF-Scanner für USRP B200 (rf-survey.habets.se), einen AX.25-Paket-Decoder (thomashabets.github.io/ruwasm) sowie einen reinen RTL-SDR FM-Empfänger (cement.retrofitta.se/tmp/rtlsdr-fm/).
Praktische Signalverarbeitung im Browser: Ein Nutzer demonstrierte einen Audio-Frequenzverschieber für das Mikrofon: Das Audiosignal wird per Hilbert-Transformation in ein komplexes IQ-Format gewandelt, mit einer Sinuswelle (-2000 bis +2000 Hz) multipliziert und zur Tonhöhenveränderung über den Realteil an die Lautsprecher ausgegeben.
Kritik an Lernkurve und Abstraktion: GNU Radio wird von einigen Entwicklern als unübersichtlich empfunden, da es zwischen High-Level-GUI und Low-Level-Code angesiedelt ist. Als Einsteiger-Ressourcen und Alternativen wurden das Lernportal PySDR (pysdr.org), Bibliotheken wie pyrtlsdr, Anwendungen wie sdrangel, das Go-UI-Toolkit gio sowie das GNU Radio Textbook empfohlen.
Browser als Desktop-UI-Ersatz: In der Diskussion wurde erörtert, inwieweit WASM und Web-Technologien traditionelle UI-Frameworks wie GTK oder Qt auf dem Desktop schrittweise ablösen, wenngleich erfahrene Entwickler für komplexe Pipelines oft reine Python-Skripte der grafischen Oberfläche vorziehen.
Glossar
GNU Radio: Ein freies Open-Source-Software-Entwicklungstoolkit, das Signalverarbeitungsblöcke zur Implementierung von Software-Defined Radios bereitstellt.
SDR (Software-Defined Radio): Ein Funkkommunikationssystem, bei dem traditionell in Hardware umgesetzte Komponenten (z. B. Filter, Modulatoren) durch Software auf einem Computer oder eingebetteten System realisiert werden.
WebAssembly (WASM): Ein kompakter, binärer Befehlssatz für eine virtuelle Maschine in modernen Webbrowsern, der Code aus Sprachen wie C, C++ oder Rust nahezu mit nativer Geschwindigkeit ausführt.
WebUSB: Eine Web-API, die Browsern den direkten Zugriff auf per USB angeschlossene Hardwaregeräte ermöglicht, sofern der Nutzer die Berechtigung erteilt.
IQ-Daten (In-Phase / Quadrature): Ein komplexwertiges Signalformat bestehend aus Realteil (I) und Imaginärteil (Q), das Phase und Amplitude eines Signals präzise beschreibt und spiegelfrequenzfreie Transformationen erlaubt.
Hilbert-Transformation: Eine mathematische Operation der Signalverarbeitung, die ein reellwertiges Signal um 90 Grad phasenverschiebt, um daraus ein analytisches (komplexes IQ-) Signal zu erzeugen.
RTL-SDR / HackRF / PlutoSDR / USRP B200: Verschiedene Hardware-Transceiver und -Empfänger zur Digitalisierung und Verarbeitung von Hochfrequenzsignalen über USB.
.grc-Datei: Das Standard-Dateiformat von GNU Radio Companion, das die Struktur, Parameter und Verbindungen eines Signal-Flussdiagramms speichert.
OOT (Out-of-Tree Module): Benutzerdefinierte Erweiterungsblöcke für GNU Radio, die außerhalb des offiziellen Quellcode-Baums entwickelt und eingebunden werden.
AX.25: Ein Datenübertragungsprotokoll aus der Schicht 2 des OSI-Modells, das primär im Amateurfunk zur Paketdatenübertragung verwendet wird.