Remote SDR – Installation

« Remote SDR » ou « SDR Distant » est une application Web permettant de contrôler à distance un émetteur – récepteur de radio amateur entre 1 MHz et 6 GHZ. Sa première application a été le contrôle en duplex d’une station permettant les liaisons vers le satellite géostationnaire QO-100 / Es’Hail 2.

L’ensemble est composé:

  • d’une chaine de réception: SDR (Software Design Radio) + un nano processeur Orange PI
  • d’une chaine d’émission: SDR + un nano processeur Orange PI
  • d’un PC ou d’une tablette contrôlant l’ensemble avec « Remote SDR » tournant sur navigateur web comme Chrome ou Edge.

L’ensemble des fichiers constituant l’application sont téléchargeables sur Github F1ATB/Remote-SDR. C’est un dossier appelé « RemSDR » à mettre sur le bureau (Desktop) de l’utilisateur « sdr » de l’Orange PI One Plus.

Les 2 Orange Pi One Plus reçoivent le même dossier « RemSDR ». On peut, si on le souhaite, installer ce même dossier sur un autre serveur pour lancer l’application Remote SDR.

Fichiers et Dossiers

Par ordre d’importance, ci après quelques explications sur les contenus de « RemSDR ».

server.py

Programme en python 3 qui fourni les fonctionnalités de base d’un serveur web http://

remote_sdr.html

La page web qu’il faut charger depuis votre PC, MAC ou smartphone, pour contrôler l’ensemble émetteur/récepteur. Vous pouvez charger cette page depuis l’orange pi du récepteur, de l’émetteur ou d’un autre serveur sur lequel vous auriez installé les fichiers.

L’adresse est normalement:
http://adresse_IP_Orange_PI:8000/remote_sdr.html
De base le serveur écoute le port 8000.

configurationRX.js

C’est le fichier dans lequel vous définissez en javascript les bandes de fréquences sur lesquelles vous souhaitez travailler avec votre récepteur. Comme exemple, il y a une configuration pour le satellite Oscar 100 / Es’Hail 2. De même d’autres bandes comme le 2m pour faire des essais en local. A éditer avec un éditeur comme « Notepad++ » pour adapter le récepteur à sa configuration matérielle.

configurationTX.js

C’est le fichier javascript qui configure les bandes d’émission.

PY

Dans ce dossier se trouvent les programmes en python. et les sources des fichiers gnuradio-companion du récepteur ( remote_RX_SSB_v1.grc ) et de l’émetteur ( remote_TX_SSB_v1.grc ) avant leur compilation en python 2 pour être executés.

remote_rx_audio.py, remote_rx_para.py et remote_rx_spectre.py permettent l’interface en python 3 entre le récepteur codé avec gnuradio, remote_rx_ssb_v1.py et le client web comme décrit ici.

remote_tx_audio.py et remote_tx_para.py permettent l’interface en python 3 entre l’émetteur codé avec gnuradio, remote_tx_ssb_v1.py et le client web comme décrit ici.

Test_Pin... permettent de tester la sortie sur une pin du GPIO d’un signal oscillateur. C’est une fonctionnalité utilisée pour la sécurité de l’émetteur. Le programme est différent pour un Orange Pi One Plus H6 ou un Orange PI PC2 H5.

JS

Ce dossier contient les bibliothèques javascript jquery et jquery-ui. Remote_sdr.js correspond à la partie principale du javascript traitant Remote-SDR et la fin du traitement du signal du récepteur. Remote_TX.js traite en javascript le début de la chaîne de traitement de l’émetteur.

CSS

Ce dossier contient les feuilles de style permettant la mise en page de remote_sdr.html. On peut à ce niveau modifier la disposition et la couleur des éléments qui constituent la page web.

CGI-bin

Ce dossier contient 2 scripts importants permettant de lancer en python 2 le traitement du signal du récepteur, remote_rx_ssb_v1.py ou de l’émetteur, remote_tx_ssb_v1.py. Ces scripts en perl sont appelés par la page web remote_sdr.html qui lance d’un côté le traitement de réception sur l’Orange PI dédié et de l’autre le traitement d’émission sur l’orange PI côté émetteur. Il n’est pas possible de lancer ces applications de traitement à la mise sous tension des Oranges PI car dans la phase de boot on arrive pas à se connecter au port USB sur lequel est branché le SDR.

Lorsque remote_sdr.html appelle les script perl, c’est une commande système qui est exécutée pour lancer les applications en python 2 de traitement sur les Orange Pi. Pour avoir accès au port USB, il faut donner des privilèges d’accès à l’utilisateur NOBODY en supprimant la demande de mot de passe. C’est l’objet du fichier python_web qui est copié das le dossier /etc/sudoers.d au moment du boot. Pour en savoir plus, demander à Google ‘sudo visudo’.

Start_Servers_at_boot.sh

Ce fichier est le script qui regroupe toutes les commandes à exécuter lors de la phase de boot de l’Orange PI. Il comprend:

  • la redirection de tous les messages d’erreurs vers un fichier temporaire /tmp/Start_servers.log
  • le lancement du serveur web: server.py
  • le lancement des 3 applications (remote_rx….) en python3 interfaçant le traitement du signal du récepteur vers le client web
  • le lancement des 2 applications (remote_tx….) en python3 interfaçant le traitement du signal de l’émetteur vers le client web
  • la copie dans /etc/sudoers.d du fichier python_web donnant le privilège nopasswd à Nobody.

Ce script identique sur les 2 Orange PI, lance les applications d’interface nécessaire au récepteur et à l’émetteur.A ce stade on ne sait pas lequel travaillera en réception et lequel en émission. Cela n’est pas gênant car ces applications sont peu gourmandes en ressources.

Pour lancer le script à la mise sous tension de l’Orange PI, on ajoute une ligne de commande au fichier /etc/rc.local qui donne son emplacement.

$ sudo nano /etc/rc.local

/home/sdr/Desktop/RemSDR/Start_Servers_at_boot.sh

Autres Installations

Pour installer l’application Remote SDR sur les Orange PI, il faut préparer leurs environements.

ARMBIAN

Pour le système d’exploitation Armbian, Il faut se rendre sur le site d’Armbian et télécharger la version correspondant à l’Orange Pi One Plus.

Dans l’article suivant vous trouvez la procédure d’installation pour un Orange PI One Plus.

GNU RADIO – RTL-SDR – Hack RF

Il faut installer GNU Radio 3.7 et son éditeur graphique GnuRadio-Companion ainsi que les drivers permettant de connecter un SDR du type RTL-SDR ou Hack RF. L’article suivant détaille la procédure.

Installation websockets

Pour python 3, il faut rajouter la bibliothèque websockets qui permet les échanges avec le navigateur web. En premier on installe l’installateur pip.

sudo apt install python3-pip

Ensuite on installe setuptools:

sudo apt-get install python3-setuptools

Finalement installez websockets

sudo pip3 install websockets

Installation à partir d’une Image

Pour ne pas se prendre la tête avec une installation compliquée, le plus simple est de graver une image sur une carte micro SD de 32 Go de l’ensemble du système. En peu de temps vous aurez un Remote SDR opérationnel.

Vous trouverez sur Github l’image.

Articles décrivant Remote-SDR