Funkwellen erkunden: Von 1 MHz bis 6 GHz mit Open-Source-Projekten

Die meisten Webentwickler sind es gewohnt, Netzwerke in Form von Sockets und HTTP-Anfragen zu betrachten. Sobald Daten jedoch über Wi-Fi, Bluetooth oder eine Garagentor-Fernbedienung durch die Luft übertragen werden, werden sie zu gewöhnlichen elektromagnetischen Wellen. Lange Zeit blieb die Erforschung des Funkspektrums das Fachgebiet von Spezialisten mit Hardware, die Tausende von Dollar kostete.
Die Situation änderte sich, als Michael Ossmann und das Team von Great Scott Gadgets HackRF veröffentlichten. Sie schufen eine erschwingliche SDR-Plattform (Software Defined Radio) und veröffentlichten Schaltpläne, Firmware und Quellcode vollständig als Open Source.
Was sich im Repository befindet
Das Repository greatscottgadgets/hackrf vereint alle Projektarbeiten. Es dient als zentraler Einstiegspunkt für die Arbeit mit Hardware und Software.
Im Quellcode finden Sie:
- PCB-Layouts und Schaltpläne für die Bauteilplatzierung
- Quellcode für die LPC43xx-Mikrocontroller-Firmware und FPGA-Plugins
- System C-Bibliothek
libhackrf - Satz von Konsolen-Dienstprogrammen zur Geräteverwaltung
- Sphinx-Dokumentationsquelldateien
Das Projekt ist in C geschrieben. Die Dokumentation wird lokal mit Sphinx oder LaTeX erstellt, falls Sie eine druckfertige PDF-Datei benötigen.
Tauchen Sie in Code und Dienstprogramme ein
Der Softwareteil des Projekts ist in zwei Ebenen unterteilt. Die erste Ebene ist die Bibliothek libhackrf. Sie übernimmt die niedrigstufige USB-Kommunikation und bietet eine saubere C-API für den Empfang und die Übertragung von Samples. Die zweite Ebene sind die Konsolen-Dienstprogramme, wo die Arbeit normalerweise beginnt.
Um beispielsweise ein Funksignal bei 433,92 MHz aufzuzeichnen, verwenden Sie das Dienstprogramm hackrf_transfer:
hackrf_transfer -r capture.raw -f 433920000 -s 8000000
Dieser Befehl zeichnet die Funksignale mit einer Abtastrate von 8 Millionen Samples pro Sekunde auf und speichert Quadratur-(I/Q)-Samples in einer Binärdatei. Diese Datei kann dann in GNU Radio oder Universal Radio Hacker geöffnet werden, um das Protokoll zu analysieren.
Wenn Sie Frequenzen scannen und herausfinden müssen, welche Kanäle belegt sind, ist das Dienstprogramm hackrf_sweep nützlich:
hackrf_sweep -f 2400:2500 -l 32 -g 20
Es durchläuft schnell die Synthesizer-Frequenz und gibt Signalstärkedaten aus. Damit können Sie in Sekundenschnelle ein Spektrogramm eines Raums erstellen.
Praktischer Nutzen für Programmierer
Warum sollte sich ein Programmierer ohne HF-Technik-Hintergrund mit dem HackRF-Repository beschäftigen?
Erstens ist es ein praktisches Beispiel dafür, wie man Software für die Hardwarekommunikation über USB architektonisch gestaltet. Im Code der Bibliothek libhackrf können Sie sehen, wie man Echtzeit-Datenströme verarbeitet, ohne Samples zu verlieren.
Zweitens öffnet das Repository die Tür zum Reverse Engineering. Mit dieser Plattform analysieren Menschen, wie Funkschlüssel, Reifendrucksensoren, RFID-Tags und Satellitennavigationssignale funktionieren.
Drittens ermöglicht das Gerät das Schreiben eigener Kommunikationsprotokolle von Grund auf, unter Verwendung fertiger Blöcke in GNU Radio oder Ihres eigenen C-Codes.
Hardware und ihre Eigenschaften
Die Platine hat klare technische Einschränkungen. Der Betriebsmodus ist Halbduplex. Das bedeutet, dass der Transceiver zu einem gegebenen Zeitpunkt entweder ein Signal empfangen oder senden kann. Beides gleichzeitig ist nicht möglich.
Die ADC-Auflösung beträgt 8 Bit. Für eine tiefgehende Analyse komplexer Interferenzen reicht das nicht aus, aber für die meisten Entwicklungsaufgaben ist es völlig ausreichend. Der Betriebsfrequenzbereich erstreckt sich jedoch von 1 MHz bis 6 GHz, ohne dass Module ausgetauscht werden müssen.
Wo Sie mit dem Lernen beginnen
Wenn Sie tiefer in das Projekt einsteigen möchten, beginnen Sie mit der offiziellen Dokumentation auf Read the Docs. Wenn Sie möchten, können Sie sie lokal aus dem Ordner docs erstellen:
cd docs
make html
Um die PDF-Version unter Ubuntu zu erstellen, müssen Sie LaTeX-Pakete installieren:
sudo apt install latexmk texlive-latex-extra
cd docs
make latexpdf
Die Projekt-Community lebt auf Discord und Mailinglisten. Die Entwickler geben in der README ehrlich zu, dass die Bearbeitung von Support-Tickets bis zu zwei Wochen dauern kann. Wenn Sie einen Fehler finden oder Code beitragen möchten, erstellen Sie ein Issue auf GitHub.
HackRF bleibt eine der zugänglichsten und offensten Basen für alle, die über vertraute Software hinausgehen und direkt mit dem Funkspektrum arbeiten möchten.
Ähnliche Projekte