lundi 28 janvier 2013

RTL-SDR A DISTANCE

Dans un billet précédent, nous avons montré qu'il était très simple d'installer SDRSHARP sur son PC. Sachez qu'il est tout aussi simple d'utiliser son périphérique RTL-SDR à distance en utilisant un serveur sur le PC hôte qui héberge la clé USB et le logiciel, SDR# par exemple, sur le PC client distant.

 

Evidemment, cette possibilité n'est valable que si votre réseau local est fonctionnel. Vous partagez des fichiers d'un ordinateur à un autre sur votre réseau local ? C'est que le réseau fonctionne. Vous ne savez pas de quoi il s'agit ? Il va pourtant falloir commencer par là !





Avant de déployer le système sur le réseau local et donc deux ordinateurs, nous allons commencer par faire tourner tout ce petit monde sur un seul PC, histoire d'en comprendre le principe de fonctionnement. Nous avons donc besoin de la dernière version de développement de SDR# ainsi que du dernier package RTL-SDR tléchargeable ici : http://sdr.osmocom.org/trac/attachment/wiki/rtl-sdr/RelWithDebInfo.zip

Si ce n'est pas déjà fait, il faut aussi installer le driver "spécial" pour la clé. C'est expliqué dans un billet précédent. A partir de là on part du principe suivant lequel le driver est déjà installé et que SDR# fonctionne normalement sur votre PC.

On décompresse l'archive RelWithDebInfo.zip dans lequel se trouve le dossier rtl-sdr-release lui même contenant certains fichiers (qui ne nous serons pas utiles) et deux autres dossiers, X32  et X64. Ces deux dossiers contiennent les outils relatifs à l'exploitation de la clé, X32 pour les systèmes 32 bits et X64 pour les 64 bits.

L'outil qui nous intéresse est donc rtl_tcp.exe. On peut l'exécuter simplement en double cliquant dessus mais pour comprendre ce qui s'y passe, nous allons lancer cet outil dans une console DOS. Placez vous dans l'arborescence où se trouve l'instruction rtl_tcp.exe et lancez la.


Jusque là c'est bon signe, puisque un périphérique a été trouvé, soit le tuner Elonics E4000 avec son chipset RTL2832U. La fréquence d'accord est 100 Mhz. Par défaut, c'est à dire sans arguments complémentaires, l'adresse IP est celle de la machine local soit 127.0.0.1 et le port est le 1234.

Lancer SDR# et choisissez comme périphérique RTL-SDR / TCP, vous pouvez appuyer sur Play. Organisez vos fenêtres de façon à voir les deux visibles à l'écran. Ainsi vous verrez dans la fenêtre d'invite de commande DOS les changements relatifs aux réglages que vous effectuerez  sur le logiciel SDR#.


Si quelque chose fonctionne mal, genre pas de réception ou que vous avez un message d'erreur, vérifier dans la configuration de SDR# si les paramètres ressemblent à la copie d'écran suivante:


Host : dans le cas ou le logiciel tourne sur la même machine en local, l'adresse IP est : 127.0.0.1
Port  : par défaut le port est 1234
Sample Rate : au maximum laissez la valeur par défaut 2.048 MSPS. Ce réglage sera utile pour une exploitation au travers de l'internet.
Pour les réglages de gain et d'AGC, c'est vous qui voyez.
Frequency correction exprimé en ppm (le décalage en fréquence) est une valeur propre à chaque clé et environnement hardware.

Ça fonctionne, youpi... oui mais jusque là c'est pas sorcier. Essayons maintenant de faire fonctionner le système en grandeur nature soit la clé DVB-T connectée sur un ordinateur avec le serveur RTL_TCP et un autre ordinateur (client) sur lequel on aura installé SDR#

Le serveur :

Notre petit système fonctionne sur le réseau local, c'est à dire le réseau qui est constitué de tous vos ordinateurs, smartphones et tablettes (caméra IP etc) le tout relié par l'intermédiaire de votre routeur ou box
Il est impératif de connaitre l'adresse IP du serveur (l'ordinateur qui héberge RTL_TCP), pas l'adresse IP internet, mais bien l'adresse IP de cet ordinateur sur le réseau local. Si vous ne la connaissez pas, tapez la commande ipconfig dans une fenêtre invite de commande :


Pour ce test donc, l'ordinateur serveur (rtl_tcp) utilise une connexion wifi et son adresse IP est 192.168.0.11

On pourrait se contenter de double cliquer sur l'exécutable rtl_tcp.exe pour lancer le serveur; une fenêtre noire (invite de commande DOS) s'ouvriraient comme ci dessous mais nous n'aurions aucun contrôle sur les paramètres du serveur.


Pour avoir la main sur le serveur, il faut le lancer manuellement en se plaçant là ou est situé l'exécutable en précisant son chemin. On peut alors lancer la commande rtl_tcp avec les arguments ou paramètres qui nous intéresse, c'est à dire -a 192.168.0.11



Le serveur a trouvé un périphérique équipé d'un tuner E4000 et d'une puce RTL2832U. Par défaut la fréquence est de 100 Mhz, cette fréquence, comme le reste des paramètres, est modifiable via les arguments de commande. Ici rtl_tcp est bien actif sur 192.168.0.11 sur le port 1234, qui est lui aussi modifiable.

Le client :

 Puisque la clé DVB-T est déjà installée sur la machine serveur, il est inutile d'installer un driver sur la machine client; il faut juste installer SDR#. Une fois SDR# lancé sur le client, on doit procéder à son paramétrage.




On sélectionne la source des données soit RTL-SDR / TCP. On clique sur configure et dans la case Host on renseigne l'adresse IP de l'ordinateur serveur faisant tourner rtl_tcp, chez moi 192.168.0.11 et on termine par le port ici laissé par défaut à 1234.

On peut appuyer sur play. A défaut de ne pas avoir un résultat satisfaisant, le programme ne doit pas retourner d'erreur. La fluidité de l'ensemble va dépendre du réseau et franchement en wifi 54 Mbps et sur un PC portable équipé d'un Pentium Dual T2370 à 1.73 GhZ, c'est vraiment pas bon.

 Dans mon cas je dois baisser la valeur de la fréquence d'échantillonnage à 0.25 MSPS pour avoir un résultat satisfaisant, mais en contre partie la bande passante est considérablement réduite (250 Khz) ce qui enlève tout son charme au SDR.

Déçu, je décide d'abandonner le WIFI et de tout câbler en RJ45 100 Mbits; le serveur rtl_sdr et le client sdr#. C'est déjà mieux, presque utilisable :-)

Avec une fréquence d'échantillonnage à 2.048 MSPS, il y a encore des coupures dans le flux.


 A 1.4 MSPS c'est quasiment fluide mais c'est à 1.024 MSPS que tout rentre vraiment dans l'ordre.



Conclusion : vivement un réseau à 1 Gbit !!


Eric.

1 commentaire:

  1. très intéressant, j’attends la suite avec impatience

    merci 73

    RépondreSupprimer