Comment explorer les ondes radio de 1 MHz à 6 GHz avec des projets open-source

La plupart des développeurs web sont habitués à penser les réseaux en termes de sockets et de requêtes HTTP. Mais une fois que les données empruntent les ondes via le Wi-Fi, le Bluetooth ou une télécommande de portail, elles deviennent une simple onde électromagnétique. Pendant longtemps, explorer le spectre radio est resté le domaine de spécialistes équipés de matériel coûtant des milliers de dollars.
La situation a changé lorsque Michael Ossmann et l'équipe de Great Scott Gadgets ont sorti HackRF. Ils ont créé une plateforme SDR (Software Defined Radio) abordable et ont entièrement open-sourcé ses schémas, son firmware et son code source.
Ce que contient le dépôt
Le dépôt greatscottgadgets/hackrf rassemble tous les travaux du projet. C'est un point d'entrée unique pour travailler à la fois avec le matériel et les logiciels.
Dans le code source, vous trouverez :
- Les layouts de PCB et les schémas de placement des composants
- Le code source du firmware du microcontrôleur LPC43xx et des plugins FPGA
- La bibliothèque System C
libhackrf - Un ensemble d'utilitaires en ligne de commande pour la gestion du périphérique
- Les fichiers source de la documentation Sphinx
Le projet est écrit en C. La documentation se construit localement avec Sphinx ou LaTeX si vous avez besoin d'un fichier PDF prêt à l'emploi.
Plongée dans le code et les utilitaires
La partie logicielle du projet est divisée en deux niveaux. Le premier niveau est la bibliothèque libhackrf. Elle gère la communication USB de bas niveau et fournit une API C claire pour recevoir et transmettre des échantillons. Le deuxième niveau est constitué des utilitaires en ligne de commande, qui est généralement par où les gens commencent.
Par exemple, pour capturer un signal radio à 433,92 MHz, utilisez l'utilitaire hackrf_transfer :
hackrf_transfer -r capture.raw -f 433920000 -s 8000000
Cette commande enregistre les ondes à un taux d'échantillonnage de 8 méga-échantillons par seconde et sauvegarde les échantillons en quadrature (I/Q) dans un fichier binaire. Ce fichier peut ensuite être ouvert dans GNU Radio ou Universal Radio Hacker pour analyser le protocole.
Si vous avez besoin de scanner les fréquences et de savoir quels canaux sont occupés, l'utilitaire hackrf_sweep est utile :
hackrf_sweep -f 2400:2500 -l 32 -g 20
Il balaie rapidement la fréquence du synthétiseur et affiche les données de puissance du signal. Avec lui, vous pouvez facilement construire un spectrogramme d'une pièce en quelques secondes.
Valeur pratique pour un développeur
Pourquoi un développeur sans formation en ingénierie radio devrait-il étudier le dépôt HackRF ?
Premièrement, c'est un exemple pratique de la façon d'architecturer des logiciels pour la communication matérielle via USB. Dans le code de la bibliothèque libhackrf, vous pouvez voir comment gérer des flux de données en temps réel sans perdre d'échantillons.
Deuxièmement, le dépôt ouvre la porte au reverse engineering. En utilisant cette plateforme, les gens analysent le fonctionnement des télécommandes radio, des capteurs de pression des pneus, des tags RFID et des signaux de navigation par satellite.
Troisièmement, le périphérique vous permet d'écrire vos propres protocoles de communication from scratch, en utilisant des blocs prêts à l'emploi dans GNU Radio ou votre propre code C.
Le matériel et ses caractéristiques
La carte a des limitations techniques claires. Le mode de fonctionnement est semi-duplex. Cela signifie que l'émetteur-récepteur peut soit recevoir soit transmettre un signal à un instant donné. Il ne peut pas faire les deux simultanément.
La résolution de l'ADC est de 8 bits. Pour une analyse approfondie d'interférences complexes, ce n'est pas suffisant, mais c'est parfaitement adapté à la plupart des tâches d'ingénierie. Cependant, la plage de fréquences de fonctionnement couvre de 1 MHz à 6 GHz sans avoir besoin de changer de modules.
Par où commencer l'apprentissage
Si vous souhaitez vous plonger dans le projet, commencez par la documentation officielle sur Read the Docs. Si vous le souhaitez, vous pouvez la construire localement à partir du dossier docs :
cd docs
make html
Pour construire la version PDF sur Ubuntu, vous devrez installer les paquets LaTeX :
sudo apt install latexmk texlive-latex-extra
cd docs
make latexpdf
La communauté du projet vit sur Discord et les listes de diffusion. Les développeurs notent honnêtement dans le README que le traitement des tickets de support peut prendre jusqu'à deux semaines. Si vous trouvez un bug ou souhaitez contribuer du code, ouvrez une Issue sur GitHub.
HackRF reste l'une des bases les plus accessibles et les plus ouvertes pour ceux qui veulent dépasser les logiciels familiers et travailler directement avec le spectre radio.
Projets similaires