Présentation du montage

Le projet repose sur un module radio CC1101 (référence E07‑M1101D, coût ≈ 3,40 $) connecté à une carte FT232H (CJMCU‑232H). Six fils relient les broches SPI du FT232H (AD0‑AD3) aux broches correspondantes du CC1101 (CSN, SCK, MOSI, MISO). L’alimentation du CC1101 provient du même connecteur : +3,3 V sur la broche 2 et GND sur la broche 1, tandis que les broches 3, 5, 8 et +5 V restent non utilisées. L’antenne SMA du CC1101 est fixée directement sur le module.

Fonctionnement du FT232H en mode SPI

Le FT232H, contrairement aux puces USB‑UART classiques (CP2102, CH340), expose un contrôleur SPI accessible depuis le PC via la bibliothèque pyftdi. Le script rf-scan-ft232h.py ouvre deux ports SPI : le premier, relié au CSN du CC1101, configure le radio (lecture du registre de version 0x14, écriture des paramètres de fréquence et de filtre). Le second, attaché à la broche AD4 non câblée, lit en continu le signal du pin GDO1 du CC1101, partagé avec MISO lorsque CSN est haut. Cette double‑porte permet de configurer le récepteur tout en récupérant les bits OOK sans interruption.

# Exemple de règle udev pour le FT232H
ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", TAG+="uaccess"

La règle 70-ftdi-ft232h.rules octroie les droits d’accès à l’utilisateur, éliminant le besoin de sudo lors de l’exécution du scanner.

Analyse des performances de balayage

Le script balaie les bandes autorisées par le CC1101 : 300‑348 MHz, 387‑464 MHz et 779‑928 MHz. Un balayage complet de la bande 433 MHz dure 0,16 s, tandis que les trois bandes combinées prennent 0,6 s. À chaque pas, le RSSI est mesuré; le plancher de bruit est d’environ ‑90 dBm. Les signaux constants détectés se situent entre 408 MHz et 456 MHz avec des niveaux typiques de ‑65 dBm. Lorsqu’un bouton du télécommande copie est pressé, le pic atteint ‑22 dBm, s’étendant sur plusieurs pas (431,7‑436,5 MHz) en raison de la largeur de bande du filtre de 650 kHz appliqué (paramètre AM650 de Flipper Zero).

Le scanner affiche une vue en barres avec maintien du pic (points jaunes) et un « waterfall » des balayages précédents. Deux pics supplémentaires apparaissent aux fréquences 782 MHz et 883 MHz, correspondant aux bandes de téléphonie mobile, ce qui confirme la sensibilité du récepteur au-delà du spectre 433 MHz.

Limites et perspectives

Le système ne supporte que la réception ; aucune fonction d’émission n’est implémentée, ce qui limite les tests à la simple observation. Le CC1101 ne peut pas couvrir les bandes intermédiaires (ex. 315 MHz) sans reconfiguration logicielle, bien que le script propose l’option --band 315. La précision du décodage dépend du filtre OOK et du taux d’échantillonnage SPI : des interférences ou un mauvais couplage d’antenne peuvent réduire la marge de détection sous ‑30 dBm. Enfin, le code source MIT, disponible en un seul répertoire, nécessite Python 3 et pyftdi, ce qui restreint l’usage aux environnements Linux ou aux systèmes où les dépendances sont compatibles.