Un récepteur SDR, ou radio définie par logiciel, transforme un signal radio en échantillons numériques que des logiciels peuvent traiter. Deux projets expérimentaux, BirriaSDR et Mtk79ICAP, exploitent la capture I/Q intégrée de certaines clés USB MT7921AU/MT7961. Pour savoir si une clé correspond, son identifiant USB compte autant que le nom du chipset.
Les échantillons I/Q décrivent le signal avec deux composantes, en phase (I) et en quadrature (Q). En réutilisant le moteur de capture interne du chipset, ces projets donnent accès à des données brutes qu’un logiciel SDR peut afficher ou traiter. Les dépôts de BirriaSDR et de Mtk79ICAP décrivent deux façons différentes d’y parvenir.
Les clés USB compatibles ne sont pas interchangeables
BirriaSDR identifie une clé COMFAST MT7961/MT7921AU portant l’identifiant USB 3574:6211, ainsi que des cartes génériques 0e8d:7961. Mtk79ICAP vise des clés USB MT7921AU/MT7961 identifiées par 0e8d:7961. Ces références permettent de vérifier si le matériel correspond à celui visé par chaque projet, sans étendre la compatibilité à toutes les clés utilisant le MT7921AU.
Échantillonnage, bande et accord
BirriaSDR indique un échantillonnage I/Q complexe sur 14 bits à 40 MS/s, avec une bande échantillonnée de 40 MHz. Sa plage d’accord dépend de la carte. Mtk79ICAP propose des modes de 20, 40 et 80 MHz, avec des débits respectifs de 20,0008, 40,0016 et 80,0032 MS/s, dans les bandes de 2,4 et 5 GHz.
| Projet | Matériel et identifiant USB | Échantillonnage et modes | Couverture d’accord | Logiciel et modifications |
| BirriaSDR | COMFAST MT7961/MT7921AU 3574:6211; cartes génériques 0e8d:7961 | I/Q complexe sur 14 bits; 40 MS/s; bande de 40 MHz | 2 156–2 610 MHz sur la COMFAST testée; 2 190–2 610 MHz sur les cartes génériques; pas de 5 GHz | Accès USB par libusb; petit programme chargé en mémoire volatile, sans écriture dans la flash ni l’eFuse |
| Mtk79ICAP | Clés MT7921AU/MT7961 0e8d:7961 | I/Q sur 14 bits; modes de 20, 40 et 80 MHz | Bandes de 2,4 et 5 GHz | Firmware modifié, pilote Linux mt76 adapté et interface SoapySDR |
Le débit d’échantillonnage, la bande échantillonnée et la plage d’accord décrivent trois choses différentes. Les MS/s indiquent le nombre d’échantillons traités par seconde; la largeur en MHz décrit le mode d’échantillonnage; la plage d’accord indique les fréquences auxquelles le récepteur peut être réglé. Un mode donné ne garantit donc pas une réponse uniforme sur toute la plage d’accord.
L’interface Gqrx associe un tracé du spectre radio à un affichage en cascade, où l’évolution du signal apparaît au fil du temps.
Pour BirriaSDR, les plages annoncées sont propres aux cartes citées: la limite basse est de 2 156 MHz sur la COMFAST testée et de 2 190 MHz sur les cartes génériques. Le projet ne prend pas en charge la bande 5 GHz. Mtk79ICAP couvre les bandes de 2,4 et 5 GHz; son mode continu à 80 MHz sur 5 GHz requiert l’option iq_dense=1. Sans cette option, le mode 80 MHz sur 5 GHz fonctionne par instantanés.
Firmware, pilotes et capture en mode monitor
BirriaSDR passe par libusb depuis l’espace utilisateur et charge un petit programme dans la mémoire volatile de la clé. Le projet indique qu’il n’écrit ni dans la mémoire flash ni dans l’eFuse. Il faut toutefois que l’interface Wi-Fi soit libre pour libusb et qu’aucun correctif ROM du fabricant ne soit déjà chargé. Le dépôt indique des essais sous Linux sur Raspberry Pi 5 et sous macOS sur Apple Silicon.
Mtk79ICAP demande un firmware modifié, les modules Linux mt76 adaptés et les en-têtes correspondant au noyau utilisé. Ses modules doivent être reconstruits après chaque mise à jour du noyau. Le dépôt précise que supprimer le fichier de firmware patché permet de retrouver le fichier fourni par la distribution.
Mtk79ICAP permet aussi de capturer des trames Wi-Fi en mode monitor pendant le flux SDR, à condition d’activer l’AGC, c’est-à-dire le contrôle automatique du gain. Avec un gain fixe, la puce cesse de décoder ces trames. Ce choix oppose donc la capture simultanée avec AGC au réglage manuel du gain.
Des chiffres expérimentaux, pas des niveaux étalonnés
BirriaSDR indique que la sensibilité sur la plage d’accord, le gain et la précision fréquentielle ne sont pas étalonnés. Le projet signale également que des signaux forts situés hors de la bande échantillonnée peuvent se replier dans la capture. Mtk79ICAP précise que les niveaux ne sont pas étalonnés et que certains réglages de registres ont été trouvés par rétro-ingénierie. Les modes et plages annoncés décrivent les projets; ils ne constituent pas des mesures normalisées des performances du récepteur.