{{tag> radio}} ====== La Radio Définie par Logiciel (SDR) avec le chipset rtl2832u ====== ===== Introduction ===== La **radio Définie par logiciel**, ou **SDR** pour **//Software Defined Radio//**, consiste à utiliser un ordinateur et une suite logicielle pour recevoir/émettre, moduler/démoduler, chiffrer/décrypter des signaux Radio. La pratique s'est développée dans les années 90 avec le perfectionnement du matériel informatique. [[http://palosaari.fi/linux/|Antti Palosaari]] a découvert que contrairement aux tuners [[TNT]] habituels, le [[rtl2832u]] permettait de recevoir directement (sans traitements matériels) les signaux radio du fait de ses fonctionnalités DAB/DAB+/FM. Des drivers permettant son utilisation en SDR ont été développés par [[http://sdr.osmocom.org/trac/wiki/rtl-sdr|osmocom]] et sont utilisables avec un bon nombre de [[http://sdr.osmocom.org/trac/wiki/rtl-sdr#KnownApps|logiciels]]. Ce tutoriel a pour objectif de décrire les procédures d'installation et d'utilisation du [[rtl2832u]]. ===== Choix du matériel ===== {{http://sdr.osmocom.org/trac/raw-attachment/wiki/rtl-sdr/ezcap_top.jpg?400 |}} *Les clés USB basées sur le [[rtl2832u]] sont nombreuses et peu coûteuses (généralement moins de 20€ frais de ports compris). *Toutefois, différents tuners sont associé au démodulateur, et il semblerait que le E4000 permette une réception de meilleure qualité grâce à la [[https://www.nitehawk.com/sm5bsz/linuxdsp/hware/rtlsdr/rtlsdr.htm|suppression logicielle de l'AGC]]. *De plus, des [[http://www.hamradioscience.com/differences-in-sensitivity-rtl2832u-e4000-dongles/|différences]] de qualité entre différentes clés ont été observées. Si un comparatif rigoureux mérite encore d'être fait, il est probablement utile de lire quelques retours d'utilisation sur les forum avant de choisir son modèle... *Bref, une recherche des mots clés **rtl2832u + e4000** fera surement votre bonheur ===== Installation ===== Attention,ce script pose un problème d'installation sur la dernière version d'ubuntu...En attente de correction. L'installation des bibliothèques [[http://sdr.osmocom.org/trac/wiki/rtl-sdr|RTL-SDR]] ou simplement [[apt>rtl-sdr]] , de [[apt>gnuradio]] muni de ses extensions nécessaires est automatisée par l'utilisation de [[http://www.sbrac.org/files/build-gnuradio|ce script]] : wget http://www.sbrac.org/files/build-gnuradio LE LIEN N'EST PLUS DISPONIBLE chmod a+x build-gnuradio ./build-gnuradio Le script s'assure que toutes les dépendances sont installées et installe le nécessaire. ===== Premiers pas ===== ==== Commandes RTL-SDR ==== ===rtl_test=== *Pour commencer, nous pouvons vérifier le fonctionnement de notre clé en testant sa gamme de fréquence. rtl_test -t Celle-ci varier en fonction du matériel et de sa température d'utilisation : Found 1 device(s): 0: Generic RTL2832U (e.g. hama nano) Using device 0: Generic RTL2832U (e.g. hama nano) Found Elonics E4000 tuner Supported gain values (18): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0 43.0 45.0 47.0 49.0 Benchmarking E4000 PLL... [E4K] PLL not locked for 51000000 Hz! [E4K] PLL not locked for 2219000000 Hz! [E4K] PLL not locked for 1109000000 Hz! [E4K] PLL not locked for 1237000000 Hz! E4K range: 52 to 2218 MHz E4K L-band gap: 1109 to 1237 MHz On obtient aussi les gains supportés par la clé, cela peut être utile de le changer dans le cas d'une mauvaise réception du signal écouté. *Nous pouvons également déterminer le taux d'échantillonnage maximum possible sur votre PC. Pour cela augmenter le taux tant qu'il n'y a pas de perte : rtl_test -s 3.2e6 Un taux de 2.4e6 doit être possible à traver une connection tcp connections (voir rtl_tcp). Un taux de 2.88e6 devrait pouvoir être obtenu sans perte, mais tout dépend de la puissance de votre PC. *Il est nécessaire de déterminer le PPM (décalage entre la fréquence demandée et celle écoutée). Pour cela, il suffit de lancer la commande pendant 10 minutes (faire CTRL+C pour arrêter la commande): rtl_test -p Found 1 device(s): 0: Realtek, RTL2838UHIDIR, SN: 00000001 Using device 0: Generic RTL2832U OEM Found Rafael Micro R820T tuner Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6 Sampling at 2048000 S/s. Reporting PPM error measurement every 10 seconds... Press ^C after a few minutes. Reading samples in async mode... lost at least 196 bytes real sample rate: 2048184 current PPM: 90 cumulative PPM: 90 real sample rate: 2048151 current PPM: 74 cumulative PPM: 82 real sample rate: 2048198 current PPM: 97 cumulative PPM: 87 real sample rate: 2048152 current PPM: 74 cumulative PPM: 84 real sample rate: 2048186 current PPM: 91 cumulative PPM: 85 real sample rate: 2048166 current PPM: 82 cumulative PPM: 85 real sample rate: 2048161 current PPM: 79 cumulative PPM: 84 real sample rate: 2048189 current PPM: 93 cumulative PPM: 85 real sample rate: 2048170 current PPM: 83 cumulative PPM: 85 real sample rate: 2048165 current PPM: 81 cumulative PPM: 84 real sample rate: 2048188 current PPM: 92 cumulative PPM: 85 real sample rate: 2048162 current PPM: 80 cumulative PPM: 85 real sample rate: 2048180 current PPM: 88 cumulative PPM: 85 real sample rate: 2048174 current PPM: 85 cumulative PPM: 85 real sample rate: 2048161 current PPM: 79 cumulative PPM: 84 real sample rate: 2048182 current PPM: 89 cumulative PPM: 85 real sample rate: 2048183 current PPM: 90 cumulative PPM: 85 real sample rate: 2048153 current PPM: 75 cumulative PPM: 84 real sample rate: 2048179 current PPM: 88 cumulative PPM: 85 real sample rate: 2048184 current PPM: 90 cumulative PPM: 85 real sample rate: 2048165 current PPM: 81 cumulative PPM: 85 real sample rate: 2048178 current PPM: 87 cumulative PPM: 85 real sample rate: 2048177 current PPM: 87 cumulative PPM: 85 real sample rate: 2048166 current PPM: 81 cumulative PPM: 85 real sample rate: 2048195 current PPM: 95 cumulative PPM: 85 Ici, on lit le PPM dans la colonne "cumulative PPM" et cette valeur stagne autour de 85. ===rtl_sdr=== Cette commande peut être utilisée pour lancer un enregistrement. Par exemple, pour s'accorder à 392.0 MHz avec un taux de 1.8 MS/s : rtl_sdr /tmp/capture.bin -s 1.8e6 -f 392e6 La sortie peut à la fois être se faire dans un fichier ou un tampon de type fifo. ===rtl_tcp=== Nous pouvons aussi piloter notre récepteur avec d'autres appareils via le web en lançant la commande suivante : rtl_tcp -a 192.168.1.2 -p 1234 Found 1 device(s). Found Elonics E4000 tuner Using Generic RTL2832U (e.g. hama nano) Tuned to 100000000 Hz. listening... Il est alors possible de se connecter à un récepteur distant avec [[GnuRadio-companion]] en utilisant l'argument //rtl_tcp=192.168.1.2:1234// dans l'entrée OsmoSDR afin d'en contrôler les paramètres d'acquisition (fréquence, gain, ...) et de recevoir les échantillons. ==== GnuRadio ==== === Configuration multimode === Pour faire nos premiers pas avec GnuRadio, et plus précisément GnuRadio-Companion (GRC), nous allons ouvrir une configuration appelée **multimode** qui permet de démoduler les principaux modes de communication analogiques. Après s'être assuré que [[apt>subversion]] est bien installé, ouvrir un terminal pour télécharger la configuration **multimode** de GnuRadio : cd svn co https://github.com/bgamari/gnuradio-multimode Lancer **GnuRadio-Companion** et ouvrez le fichier de configuration téléchargé **~/multimode/trunk/multimode.grc**. Comme vous pourrez le constater, GnuRadio-Companion permet de configurer graphiquement les paramètre d'acquisition, de traitement et d'affichage du signal radio. FIXME ==== GQRX ==== [[gqrx-sdr]] intègre désormais le support des librairies **rtl-sdr**. ===== Exemples d'utilisation ===== FIXME ===== A voir aussi ===== * (fr) [[http://www.tsf70.com/forum/viewtopic.php?id=3652|Topic dédié à l'utilisation de RTL-SDR sous Linux sur un forum francophone]] * (en) [[http://sdr.osmocom.org/trac/wiki/rtl-sdr|Le wiki officiel]] * (en) [[http://wiki.spench.net/wiki/RTL2832U|Le wiki de SpenchWiki]]