Remote SDR v4 – Installation manuelle

Raspberry Pi 4 B

Ci-dessous la procĂ©dure dĂ©taillĂ©e pour installer Remote SDR en version 4 sur un Raspberry Pi 4 B (2Go) ou un Orange Pi Zero 2. Elle est adaptable pour d’autres cartes ‘Single Board Computer’ si elles disposent de la puissance de calcul nĂ©cessaire comme l’Orange Pi One Plus.

Les sources sont disponibles sur Github https://github.com/F1ATB/Remote-SDR

Orange Pi Zero 2

La version 4 de Remote SDR est construite autour des OS Armbian (Bullseye) pour l’Orange Pi Zero 2 et Raspberry OS (Bullseye) pour le Raspberry 4B. GNU Radio est Ă  prĂ©sent en version 3.8.

Installation Système Linux

Avant d’installer les traitements du signal radio, il faut installer le système d’exploitation de base. La procĂ©dure est dĂ©taillĂ©e ici:

TĂ©lĂ©chargez le système d’exploitation Linux pour processeurs ARM , Armbian Bullseye (Octobre 2021) sur armbian.com pour l’Orange pi zero 2 et le charger sur une carte microSD.

Obtenir l’adresse IP et se connecter en SSH. La procĂ©dure dĂ©taillĂ©e pour installer le système et un serveur Apache se trouve ici :

Orange Pi Zero 2 – Bullseye

A ce jour, Novembre 2021, la version Raspberry Pi OS en version Bullseye est téléchargeable . Choisissez la version avec Desktop uniquement.

  • Installer Apache comme expliquĂ© dans la procĂ©dure ci-dessus pour l’Orange Pi Zero 2
  • Faire dans un terminal un raspi-config ou aller dans les paramètres pour activer l’accès SSH et l’accès VNC.
  • Configurer Samba si l’on souhaite accĂ©der aux fichiers depuis son PC sous Windows plutĂ´t que par SSH.

Pour toutes les commandes à suivre, je préfère travailler directement en root. Faite dans un terminal un :

sudo su

Ă€ ce stade, vous devez disposer d’un système d’exploitation complet avec un serveur web sur le port 80 que vous pouvez accĂ©der Ă  l’adresse http://<adresse IP>

Installation GNU Radio Companion

GNU Radio est un outil très puissant pour modéliser des chaines de traitement du signal. GNU Radio Companion est un outil complémentaire permettant de construire des chaines de traitement radio graphiquement sans écrire une ligne de code. A ce jour pour Debian Bullseye la version 3.8 est considérée comme stable.

apt-get install gnuradio

Pour les Orange Pi, installez LXTerminal

apt install lxterminal

Rajoutez au fichier de configuration /etc/gnuradio/conf.d/grc.conf dans la section [grc]

[grc]
xterm_executable = /usr/bin/lxterminal

Passez en mode graphique Ă  l’aide de VNC (extension dans chrome ou TightVNC) si vous ĂŞtes distant . Port 5901 pour les Oranges Pi.

Lancez ‘Gnu Radio Companion’ si vous souhaitez le dĂ©couvrir. C’est un outil graphique fantastique pour crĂ©er des chaines de traitement du signal. Des exemples se trouvent dans le dossier /usr/share/gnuradio/examples.

Installation Websockets

Pour python 3, il faut rajouter la bibliothèque websockets qui permet les échanges avec le navigateur web. On installe l’installateur pip, setuptools et websockets avec les commandes suivantes:

apt install python3-pip
apt-get install python3-setuptools
pip3 install wheel
pip3 install websockets

Certaines de ces applications sont peut-être déjà disponibles sur votre système.

Installation des drivers de SDR

Suivant les modèles de SDR que l’on souhaite utiliser, il faut installer les driver correspondant ou tous les installer pour ĂŞtre universel.

Installation Osmocom SDR et RTL-SDR Driver

Pour interfacer Gnu Radio avec un SDR comme Hack RF One ou un des nombreux RTL-SDR , il faut installer le module Osmocom. Pour mémoire le HackRF couvre de 1 MHz à 6 GHz en émission ou réception avec un codage sur 8 bits de dynamique. RTL-SDR suivant les modèles, couvre de 30 MHz à 1.7 GHz environ en réception uniquement avec un codage sur 8 bits. Il est très intéressant pour son prix.

Installation de la bibliothèque USB et de l’outil de compilation:

apt-get install cmake build-essential libusb-1.0-0-dev
apt-get install pkg-config

On clone Osmocom dans le dossier Downloads de l’utilisateur root ou le dossier /home/pi/Downloads pour les Raspberry:

cd /home/USER/Downloads ou cd /home/pi/Downloads
git clone https://github.com/osmocom/rtl-sdr.git

Allez dans le dossier rtl-sdr et enchainez les commandes:  

cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make
make install
ldconfig

Installation du module source Osmocom

 apt-get install gr-osmosdr

Ă€ prĂ©sent le module Osmocom doit ĂŞtre prĂ©sent dans la liste des blocs de traitement de ‘GNU Radio Companion’. Il est possible de faire du traitement du signal sur des donnĂ©es issues du hackRF One ou de RTL-SDR.

En branchant un HackRF One sur le port USB de l’Orange/Raspberry PI, on peut vĂ©rifiez sa prĂ©sence en installant le paquet hackrf et tapant dans un terminal:

apt install hackrf
hackrf_info

Avec un RTL-SDR sur le port USB on a des informations en tapant:

rtl_eeprom

ou

rtl_eeprom -h

Installation interface Adalm-Pluto

L’Adalm-Pluto est une solution intĂ©ressante capable de travailler en Full-Duplex (rĂ©ception et Ă©mission simultanĂ©es) dans une bande de frĂ©quence comprise entre 325 MHz Ă  3,8 GHz. Il est possible d’étendre la gamme de frĂ©quence du Pluto de 70MHz Ă  6GHz. Cela est dĂ©crit dans l’article suivant : https://f1atb.fr/index.php/fr/2021/03/09/extension-en-frequence-du-pluto-sdr/

Le Pluto s’interface par le port USB qui se comporte comme un port ethernet. Il ne faut pas l’alimenter par le port USB de l’Orange/raspberry Pi, car il y a des coupures dans la liaison. En complément rajoutez une alimentation 5V2A extérieure. Le Pluto dispose d’une entrée micro USB pour l’alimenter.

VĂ©rifiez que les modules suivants sont prĂ©sents avec :
lsmod. Ils sont absents avec certaines versions d’Armbian / Debian.

  • cdc_acm,cdc_ether
  • rndis_host
  • rndis_wlan
  • usbnet

Si un module manque tapez:

modprobe « nom du module Â»

modprobe rajoute les modules avec leurs dĂ©pendances, ainsi en rajoutant par exemple cdc_ether, usbnet sera Ă©galement rajoutĂ©. Après chaque installation faite un lsmod pour vĂ©rifier.

Avec l’orange pi zero 2, ces modules ne sont pas tous disponibles sur l’os Armbian , mais cela ne semble perturber le fonctionnement. Il manque cdc_ether et usbnet. De même avec le Rasopberry Pi 4, il manque usbnet.

Comme recommandé sur le site d’Analog Device, rajoutez dans le dossier
/etc/udev/rules.d/
le fichier de règles: 53-adi-plutosdr-usb.rules donnĂ©e ci-dessous. Faites :

nano /etc/udev/rules.d/53-adi-plutosdr-usb.rules

# allow "plugdev" group read/write access to ADI PlutoSDR devices
# DFU Device
SUBSYSTEM=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b674", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fa2", ATTRS{idProduct}=="5a32", MODE="0664", GROUP="plugdev"
# SDR Device
SUBSYSTEM=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b673", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fa2", ATTRS{idProduct}=="5a02", MODE="0664", GROUP="plugdev"
# tell the ModemManager (part of the NetworkManager suite) that the device is not a modem, 
# and don't send AT commands to it
SUBSYSTEM=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b673", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fa2", ATTRS{idProduct}=="5a02", ENV{ID_MM_DEVICE_IGNORE}="1"

Pour faire fonctionner l’Adalm-Pluto avec GNU Radio, il faut installer les paquets suivants:

  • apt-get install gr-iio
  • apt-get install libiio-utils
  • apt-get install gqrx-sdr

Une fois l’installation faite vous pouvez vĂ©rifier l’accès au Pluto avec la commande:

ssh root@192.168.2.1

Le Pluto se connecte physiquement par USB, mais est accessible en ssh via une adresse IP 192.168.2.1. Le mot de passe est ‘analog’.

A ce stade les blocs PlutoSDRsink et source sont disponibles dans ‘GNU Radio Companion’.

Pour accéder à distance au Pluto, il faut rajouter le paquet paramiko.

apt-get install python3-paramiko

Raspberry Pi 4 et Adalm-Pluto

Pour tester l’interface avec l’Adalm-Pluto, vĂ©rifiez qu’il est visible dans la liste des pĂ©riphĂ©riques connectĂ©s en USB en tapant dans un terminal : lsusb

Installation Interface Série pour SA818

SA818 – VHF/UHF – NBFM

Le module SA818 permet d’Ă©mettre en VHF ou UHF en NBFM avec une puissance de 1w. Il s’interface Ă  l’Orange Pi Zero 2 par le port sĂ©rie UART5 et la sortie audio analogique ‘Line Out’. Il faut installer la bibliothèque python d’accès au port sĂ©rie :

pip3 install pyserial-asyncio

Installation fichiers Remote SDR

Tous les fichiers nĂ©cessaires Ă  l’exĂ©cution de Remote SDR sont Ă  installer dans le dossier /var/www/html du serveur web. Dans un premier temps pour faciliter le transfert depuis la source tĂ©lĂ©chargĂ©e sur Github vers l’Orange/Raspberry Pi, il est prĂ©fĂ©rable de donner toutes les autorisations au dossier html.

chmod -R 777 /var/www/html

De mĂŞme pour les log d’apache2 dans /var/log

chmod -R 777 apache2

Une fois tout opĂ©rationnel, on pourra limiter les droits d’accès au strict nĂ©cessaire.

Pour Remote SDR il est nĂ©cessaire de lancer au chargement (boot) un programme python qui va gĂ©rer l’ensemble. Pour cela dans les tâches cron on crĂ©e une ligne de lancement. Il faut absolument ĂŞtre en root pour crĂ©er le crontab attachĂ© Ă  root. Faire:

crontab -e

Ecrire la ligne suivante en bas de la page.

@reboot python3 /var/www/html/start_radio_manager_at_boot.py

A présent votre système sera prêt après un dernier reboot.

Attention le passage de Remote SDR V2 Ă  Remote SDR V4 ne peut se faire qu’en remplaçant complètement l’OS comme dĂ©crit dans cet article. On passe de la version 10 de Debian Ă  la version 11 et on passe de la version 3.7 Ă  la version 3.8 de GNU RADIO.

Lancement de Remote SDR

Si vous utilisez un Adalm-Pluto, un seul Orange PI Zero 2 ou un seul Raspberry Pi4 est nécessaire.

Si vous utilisez un HackRF en Ă©mission et un hackRF en rĂ©ception vous aurez besoin de 2 Orange Pi Zero 2 avec la mĂŞme configuration ou d’un seul Raspberry Pi 4. Vous lancez l’application sur l’un des Orange PI Ă  l’adresse :

http://192.168.xx.xx

Notez que les échanges se font en http sur le port 80 habituel pour les contenus de pages.

Les ports 8001 Ă  8003 sont utilisĂ©s pour Ă©changer des donnĂ©es, via des websockets, avec l’Orange/Raspberry Pi chargĂ© de la rĂ©ception. Les ports 8004 Ă  8005 sont utilisĂ©s pour Ă©changer des donnĂ©es avec l’Orange/Raspberry Pi chargĂ© de l’Ă©mission.

Depuis la version v3 de Remote SDR, il est possible de s’interfacer avec Gpredict via le port 8006 pour le rĂ©cepteur et 8007 pour l’Ă©metteur.

Dans le cas d’un seul processeur, il traite l’ensemble des Ă©changes sur les ports 8001 Ă  8007.

Architecture Logiciel

F1ATB André

Ham Radio - Home automation - Photovoltaic