Remote SDR V2 – Architecture Logiciel
Remote SDR V2 est un ensemble hardware et software pour réaliser un émetteur / récepteur radio à base de SDR (Software Design Radio) pilotable à distance par le web. Pour une introduction à Remote SDR V2 voir ici.
Remote SDR V2, tourne pour la partie traitement du signal sur un Orange Pi et sur un Raspberry Pi 4 depuis la version 2.4. La visualisation dans une page web tourne sur un ordinateur classique (PC, Mac etc..). Les technologies employées sont diverses comme :
– DEBIAN, ARMBIAN ou Raspberry PI OS pour le système
– Python / GNURADIO pour la partie traitement du signal amont
– HTML / Javascript pour le traitement du signal aval et la visualisation.
Le récepteur
L’Orange/Raspberry PI pilote le SDR et effectue sur les signaux I et Q fourni par lui, une transformée de Fourier (FFT) pour analyser le spectre sur 2048 points autour de la fréquence centrale de réception. En parallèle dans la bande de réception du SDR (1 ou 2 MHz), on extrait une voie audio démodulée en AM, NBFM, WBFM ou SSB. Le spectre sur 2048 points est envoyé 5 fois par seconde à l’ordinateur en charge de la visualisation à distance dans une page web. La voie audio échantillonnée à 10kHz (ce qui est suffisant pour de la voix) est envoyée au mème ordinateur pour diffusion en analogique. Le traitement du signal dans l’Orange Pi est modélisé à l’aide de l’outil graphique très puissant GNU-Radio Companion 3.7 qui génère automatiquement le code C et Python 2.
Pour avoir du détail sur le traitement du signal, lisez l’article suivant:
https://f1atb.fr/index.php/fr/2020/06/20/recepteur-blu-distant/
L’émetteur
Depuis la page web de l’ordinateur distant, on définit la fréquence d’émission, le type et le taux de modulation (NBFM, USB, LSB). Le signal du microphone est échantillonné à 10 kHz puis envoyé à l’Orange Pi en charge de l’émission qui passe le signal modulé au SDR.
Pour avoir du détail sur le traitement du signal, lisez l’article suivant:
https://f1atb.fr/index.php/fr/2020/06/23/emetteur-blu-distant/
Le Réseau
L’échange entre le ou les Orange Pi et l’ordinateur de visualisation distant s’effectue par le réseau local ethernet ou WIFI, voire internet. Cette architecture avec la partie principale du traitement effectué au bas de l’antenne permet de réduire par 100 environ le débit. Le débit en entrée / sortie d’un SDR est de l’ordre de 10 Mo/s. Le débit en entrée/sortie des Oranges Pi est inférieur à 100Ko /s . Ce qui facilite le transport jusqu’à l’ordinateur distant qui n’a besoin d’aucune installation logiciel dédiée.
L’Ordinateur Distant
L’ordinateur distant pour piloter l’émetteur / récepteur n’utilise qu’un navigateur web comme Chrome ou Edge. Il effectue un peu de traitement du signal en Javascript (filtrage et FFT sur l’audio) et de la visualisation en temps réel. Une seule contrainte, comme on utilise le micro et que l’on ne travaille pas en mode sécurisé https, il faut paramétrer dans le navigateur l’autorisation d’accès (voir les procédures d’installation de Remote SDR V2).
Les fichiers
L’ensemble des fichiers et dossiers se trouvent dans le dossier du serveur Apache /var/www/html. Si l’on utilise 2 Oranges Pi, la structure est la même et l’on s’adresse à l’un des Oranges Pi à l’adresse : http://<ip orange-pi>
3D et build
Dossiers où se trouvent les fichiers de la modélisation 3D du pingouin linux de la page d’accueil.
cgi-bin
Fichiers appelés par le serveur apache pour les pages dynamiques comme la selection de la demodulation du récepteur, la modulation de l’émetteur, le test de la pin26 (pin 10 pour un orange pi zero 2) de l’orange pi one plus (voir protection émission).
css
Fichiers de style des pages web
JS
Fichiers javascript importants comme remote_sdr.js qui gère principalement la réception , remote_TX.js qui gère l’émission et tools.js qui gère les fonctions outillages de la page tools.
log
Quelques logs que l’on retrouve dans la page tools.
PY
Tous les fichiers source et python 2 du traitement de signal. Chaque type de modulation a un fichier GNU Radio correspondant qui est lancé suivant la modulation choisie.
configurationRX.js
On peut voir son contenu dans la page tools mais il faut l’adapter avec un éditeur de texte à sa propre configuration du système et ses préférences.
configurationTX.js
Préférences pour l’émetteur à adapter.
index.html
Page d’accueil avec le pingouin TUX.
remote_sdr.html
Page principale de Remote SDR
start_radio_manager_at_boot.py
Fichier lancé au boot de l’orange pi qui gère le lancement des différents scripts python propre à chaque modulation. Il est appelé par une tâche cron. Dans un terminal faire : crontab -e et mettre la ligne suivante en bas de fichier.
@reboot python3 /var/www/html/start_radio_manager_at_boot.py
tools.html
Fichier donnant accès à différents outils pour contrôler le bon fonctionnement.
Articles sur Remote SDR
- Remote SDR V5 – Installation image Raspberry 4B ou Orange Pi
- Remote SDR v5 – Installation manuelle
- Remote SDR v5
- Écoute Satellite QO-100 en direct
- RTTY
- Dépannage
- Émetteur – Récepteur pour QO-100
- SSTV
- WSJT-X – FT8
- Omnirig – Remote SDR
- Ports de communication
- Générateurs de tonalités
- Positionnement sorties GPIO
- Scanning en réception
- Gains et Dynamiques
- Gestion des fréquences
- Lancement de Remote SDR
- Refroidissement CPU
- Autorisation traitement audio et microphone
- Configurations
- Caractéristiques
- Introduction à Remote SDR
- Remote SDR – Canaux Audio
- CW avec Remote SDR
- Bouton Rotatif et Manipulateur Morse pour Remote SDR
- VHF et UHF NBFM Transceiver
- Remote SDR v4
- Gpredict – Remote SDR
- Remote SDR V4 – Installation image Raspberry 4B ou Orange Pi
- Remote SDR v4 – Installation manuelle
- SA818 / RTL-SDR
- Remote SDR – Exemples de Réalisations
- QSO via QO-100 avec un smartphone
- Remote SDR V2 – Architecture Logiciel
- Remote SDR V1 – Approvisionnements
- Remote SDR V1 – Interface Homme Machine
- Remote SDR V1 – Traitement du Signal
- Client Web vers GNU Radio
- GNU Radio vers client Web
- Emetteur BLU distant
- Récepteur BLU distant
- GPIO de l’Orange PI One Plus H6
- Émetteur et récepteur vers Q0-100 avec 2 SDR – Remote SDR V1
- Installation TCXO sur un HackRF
Bonjour. Merci pour ce travail précis et détaillé très instructif. La conception qui me pose le plus de problème est l’affichage d’un spectre , à partir de données actualisées. En navigant dans votre code source, j’ai du mal a comprendre. Quel framework , ou outils clefs, utilisez vous pour afficher le spectre ?
Merci. F4BAD
Pour afficher le spectre en amplitude, j’utilise un svg (scalable vector graphic).
Vers la ligne 420 de remote_sdr.js
var S=… //SVG type of drawing
Pour l’affichage du waterfall, j’utilise la technique du canvas , vers la ligne 550.
Il y en a 2 pour pouvoir faire le défilement vertical.
73
F1ATB
Merci André. J’ai localisé la fonction trace spectre, et trace waterfall. je dois creuser encore car ce n’est pas un petit projet. Si besoin de matériel coax, sma, MMIC, à prix OM ou ulta-reduc, avec mesures possibles , me contacter f4bad free fr.
73
Bonjour André,
serait-il possible de prévoir un bouton « shutdown » des orange Pi/raspberry dans le menu TOOLS ?
ce serait bien pratique lorsque que l’on coupe l’alimentation de la station, et ça éviterait d’avoir a reflasher les SD cards en cas de mauvaise manip…
73’s de Jacques – F1APY
Jacques
Bonne suggestion, je met cela dans ma liste. Je pense que ce sera OK pour la prochaine version.
73
F1ATB
André
Le bouton Shutdown est disponible dans la nouvelle version 2.5
Hi André ,
super ! merci beaucoup
73’s dde Jacques – F1APY
Bonjour André
Comment est il possible de rajouter une « authentification basique » sur la version 5 qui a substitué NodeJS à Apache pour le serveur Web (si j’ai bine tout lu !) ?
73 de Jean Marc
Excusez-moi, je ne comprends pas bien votre question. Une authentification pourquoi?
Un authentification pour ajouter une couche de sécurité à l’accès à Remote SDR. Actuellement seul le code « émission » protège certaines fonctions mais on est déjà dans l’appli donc pas à l’abri de l’utilisation d’une faille par exemple. l’appli a des droits d’éxecution de type admin sur le raspberry, donc on n’est pas à l’abri d’une utilisation malveillante. Mais peut être suis je un peu parano ou n’ai je pas tout compris du fonctionnement de Remote SDR …
OK, je comprends votre point de vue, mais pour l’instant pas de protection additionnelle.