Remote SDR v2 – Installation manuelle

Raspberry Pi 4 B

Ci-dessous la procĂ©dure dĂ©taillĂ©e pour installer Remote SDR en version 2 sur un Raspberry Pi 4 B (2Go), un Orange Pi One Plus 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.

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

Orange Pi Zero 2
Orange Pi One Plus

A présent, en Septembre 2021, la version 2.4 est disponible. Elle tourne sur les Raspberry Pi 4B en plus des Oranges Pi.

Remote SDR V2 – Evolutions

Remote SDR est une application permettant de piloter à distance depuis un navigateur web, un transceiver radio basé autour de 1 ou 2 SDR (Software Design Radio). Voir la présentation ici : https://f1atb.fr/index.php/fr/2021/05/03/remote-sdr-v2/

L’Orange Pi One Plus est une carte ‘Single Board Computer’ qui fournit grâce Ă  un processeur 4 cĹ“urs 64 bits la puissance de calcul nĂ©cessaire au traitement du signal pour un coĂ»t infĂ©rieur Ă  40€. En 2021, une nouvelle carte Orange Pi Zero 2 avec un processeur similaire offre en plus une connection WIFI ce qui facilite l’installation de l’ensemble Ă  distance. Pour la version 2.4, elle tourne Ă©galement sur un Raspberry Pi 4B disosant de 2Go de mĂ©moire ou plus. Les principales Ă©volutions apportĂ©es par cette nouvelle version de Remote SDR sont :

  • CompatibilitĂ© du SDR Adalm-Pluto en plus du HackRF One et du RTL-SDR
  • RĂ©ception en NBFM, WBFM, AM en plus de la SSB
  • Émission en NBFM ou SSB avec le Pluto ou le HackRF One
  • Spectre de rĂ©ception sur 2048 points de FFT au lieu des 1024
  • Fourniture d’outils d’observation du système et des SDR

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:


– Orange Pi One Plus : système Armbian
https://f1atb.fr/index.php/fr/2020/09/01/mise-en-route-orange-pi-one-plus/
– Orange Pi Zero 2 : système Debian
https://f1atb.fr/index.php/fr/2021/05/06/mise-en-route-orange-pi-zero-2/
Pour une plus grande facilitĂ© d’installation, faire tout en ‘root’ pour Remote SDR V2. Il faut:

  • TĂ©lĂ©chargez le système d’exploitation Linux pour processeurs ARM , Armbian Buster (Avril 2021) sur armbian.com pour l’Orange Pi One Plus ou Debian sur www.orangepi.org pour l’Orange pi zero 2 et le charger sur une carte microSD.
  • Obtenir l’adresse IP
  • Mettre Ă  jour la distribution  (sudo apt-get update et sudo apt-get upgrade)
  • Installer le bureau
  • Installer TightVNC pour visualiser le bureau Ă  distance
  • Installer Samba si l’on souhaite accĂ©der aux fichiers depuis son PC sous Windows plutĂ´t que par SSH.

  • Obtenir l’adresse IP
  • Mettre Ă  jour la distribution 
  • 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.
Note pour VNC sur Raspberry Pi 4

Le fonctionnement de VNC nécessite quelques ajustements pour une bonne résolution.

sudo raspi-config, puis display et resolution. Choisir par exemple DMT 82 1920*1080

sudo nano /boot/config.txt

Modifier le fichier config.txt comme ceci :

hdmi_ignore_edid=0xa5000080
hdmi_group=2
hdmi_mode=82

La ligne « hdmi_ignore_edid …. » est essentiel.

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

sudo su

Une des grandes diffĂ©rence introduite par la version V2 est l’utilisation d’Apache comme serveur Web plutĂ´t que les fonctionnalitĂ©s de base fournies par Python. L’installation est simple comme dĂ©crite ici:
https://f1atb.fr/index.php/fr/2020/11/12/apache-sur-orange-pi-zero/
Raspberri Pi ou Orange Pi la procĂ©dure est identique. L’installation se fera dans le dossier /var/www/html. C’est ce dossier que l’on utilisera par la suite et dans le lequel nous allons mettre un dossier cgi-bin pour les pages dynamiques.

Le fichier de configuration d’Apache est Ă  adapter:

nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
	
	ServerName localhost

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	ScriptAlias "/cgi-bin/" "/var/www/html/cgi-bin/"
	<Directory "/var/www/html/cgi-bin/">
                AllowOverride None
                Options +ExecCGI
                AddHandler cgi-script .cgi .pl .py
                Require all granted
    </Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
	
	
</VirtualHost>

Pensez Ă  activer le module cgid en tapant :

a2enmod cgid

Ă€ prĂ©sent vous disposez 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 Buster il n’y a que la version 3.7.13 qui est considéré 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 autre) 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 das le dossier /usr/share/gnuradio/examples.

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 ~/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/

Pour l’interfacer avec ‘GNU Radio’, le dĂ©tail est fourni dans cet article sur un transceiver NBFM simple.
https://f1atb.fr/nbfm-transceiver-avec-pluto-sdr-et-gnu-radio/

Une fois l’installation faite vous pouvez vĂ©rifiez 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 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

Installation fichiers Remote SDR V2

Tous les fichiers nĂ©cessaires Ă  l’exĂ©cution de Remote SDR V2 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

Une fois les fichiers en place, il faut s’assurer des droits d’accès. Allez dans les dossiers html, PY et cgi-bin pour mettre les droits 777 pour les fichiers .py

chmod 777 *.py

Mettre pour les fichiers en .txt dans PY.

chmod 666 *.txt

De mĂŞme pour les fichiers en .sh dans cgi-bin.

chmod 777 *.sh

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

chmod -R 777 apache2

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.

Lancement de Remote SDR v2

Si vous utilisez un Adalm-Pluto ou le couple HackRF en émission et RTL-SDR en réception, un seul Orange PI ou un seul Raspberry Pi est nécessaire.

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

http://192.168.xx.xx

Il faut un navigateur moderne comme Chrome ou Edge. Ces derniers ne donnent pas accès au microphone si le site n’est pas Ă  accès sĂ©curisĂ© en https. Sur son rĂ©seau local Ă  la maison, en gĂ©nĂ©ral on travaille en http simplement. Pour contourner cette difficultĂ©, la solution est de mettre en place une dĂ©rogation au niveau du navigateur web en accĂ©dant aux paramètres « flags Â». il faut taper dans la barre d’adresse:

avec Chrome: chrome://flags

avec Edge(2020): edge://flags

Cherchez la rubrique:

Insecure origins treated as secure

Remplir le champ comme ci-dessous avec l’adresse IP de l’orange PI qui fournit les pages.

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 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.

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

Articles décrivant Remote SDR

F1ATB André

Ham Radio - Home automation - Photovoltaic

Cet article a 2 commentaires

  1. HB9DUG Michel

    Bravo AndrĂ© pour votre guide d’installation manuelle de Remote SDR V2 !

    Je l’ai installĂ© sur un Raspberry PI 4 avec un Pluto. Les premiers essais en local sont très concluants.

    Merci pour votre contribution Ă  notre hobby.

    73 qro de michel, hb9dug

    1. F1ATB André

      Merci Michel
      Pourriez-vous m’envoyer une photo du RPI4 et du Pluto pour Ă©crire un message sur mon site. C’est pour montrer que cela tourne sur un RPI4 et qu’il suffit de se lancer. Taille mĂ©moire de votre RPI4? Et si possible avec un htop dans un terminal me donner le pourcentage de charge du CPU.

      Merci
      73
      f1atb.fr@gmail.com

Les commentaires sont fermés.