Mise en avant

Remote SDR v4

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

Remote SDR version 4.0 disponible sur Github

Caractéristiques

Récepteur
  • SDR en réception:
    • RTL-SDR ( exemple : NESDR SMArt de Nooelec)
    • HackRF One
    • Adalm-Pluto
  • Fréquence : 1 MHz à 6 GHz (suivant le SDR choisi)
  • Bande spectrale traitée : 2 MHz sur 2048 points (suivant le SDR choisi)
  • Audio : 1 voie
  • Démodulation : NBFM, WBFM, AM ou SSB
  • Balayage automatique de la bande
Émetteur
  • Matériel :
    • HackRF One
    • Adalm-Pluto (commun avec le récepteur)
    • module NBFM VHF/UHF SA818 de G-NiceRF
  • Fréquence : 1 MHz à 6 GHz (suivant le SDR choisi)
  • Puissance : 1 dBm à 30 dBm (suivant le SDR choisi)
  • Audio : 1 voie
  • Modulation : NBFM ou SSB
  • Compresseur de modulation en émission
  • codeur CTCSS
  • codeur DTMF
  • codeur 1750 Hz
  • Décalage en fréquence programmable pour les relais
Traitement
  • Matériel :
    • Orange Pi Zero 2 ou Orange Pi One Plus, ou
    • Raspberry Pi 4B (2 Go)
  • Logiciels :
    • Operating System : Armbian / Debian Bullseye
    • Serveur web : Apache 2
    • Traitement du signal : GNU Radio 3.8
    • Remote SDR (version v3 minimum)
      • Html
      • Javascript
      • Python 3
  • Interface réseau : Ethernet cablé ou WIFI
  • Interfaçage avec Gpredict pour compenser le Doppler des satellites à orbite basse
  • Affichage et Audio : page WEB sur PC, tablette ou smartphone

Configurations

CONFIGURATION COMPACTE AVEC UN ADALM-PLUTO – Rasperry Pi 4 – ETHERNET
Remote SDR – Adalm-Pluto – Raspberry 4
AvantagesInconvénients
– RPI4 bien connu
– Wifi ou Ethernet
– 12 bits de dynamique du Pluto
– stabilité en fréquence de l’Adalm-Pluto

Peut nécessiter le rajout d’un oscillateur externe et l‘extension de la bande de l’Adalm-Pluto.

CONFIGURATION COMPACTE AVEC UN ADALM-PLUTO – Opi Zero 2 – Wifi
Remote SDR – Adalm Pluto – Opi Zero 2 – Wifi
AvantagesInconvénients
– optimisé pour le coût
– Wifi ou Ethernet
– 12 bits de dynamique du Pluto
– stabilité en fréquence de l’Adalm-Pluto

Peut nécessiter le rajout d’un oscillateur externe et l’extension de la bande de l’Adalm-Pluto.

Configuration mixte HackRF – RTL-SDR – Orange Pi Zero 2
RTL-SDR – HackRF One – Orange Pi zero 2
AvantagesInconvénients
– optimisé pour le coût
– bonne stabilité en fréquence du TX si un TCXO monté sur le HackRF One
– couverture en fréquence du RX et du TX différente
– stabilité en fréquence du RX dépend du modèle de RTL-SDR choisi
– 8 bits de dynamique des SDR
Configuration mixte HackRF – RTL-SDR – Raspberry Pi 4
Remote SDR – HackRF One and RTL-SDR – Raspberry Pi 4
AvantagesInconvénients
– RPI4 bien connu
– bonne stabilité en fréquence du TX si un TCXO monté sur le HackRF One
– couverture en fréquence du RX et du TX différente
– stabilité en fréquence du RX dépend du modèle de RTL-SDR choisi
– 8 bits de dynamique des SDR
Configuration 2 Hack RF One
Remote SDR – 2 HackRF One – Raspberry Pi 4B
AvantagesInconvénients
– RPI4 bien connu
– bonne stabilité en fréquence du TX et du RX si un TCXO monté sur le HackRF One ou partagé entre eux
– grande couverture en fréquence
– 8 bits de dynamique des SDR
Configurations RTL-SDR et SA818
Émetteur / Récepteur NBFM VHF ou UHF
Émetteur / Récepteur NBFM VHF et UHF
AvantagesInconvénients
– coût environ 100 €
– puissance 1w HF
– VHF 2m et/ou UHF 70cm uniquement
– en émission NBFM, pas de SSB

Détails sur le transceiver SA818 / RTL-SDR monobande sont donnés ici.

Détails sur le transceiver SA818 / RTL-SDR bibandes sont donnés ici.

Ces configurations permettent de localiser la partie HF près des antennes ce qui est primordial pour des liaisons au-dessus du GHz. Dans la chaîne d’émission, il faut rajouter des amplificateurs pour amener le signal HF au niveau désiré ainsi que du filtrage pour s’assurer de ne pas émettre des raies indésirables. Le SDR de la chaîne de réception peut être au choix un HackRF One, un RTL-SDR ou un Pluto suivant la bande de fréquences que l’on souhaite couvrir. Tous les modèles de RTL-SDR ne couvrent pas la même bande. L’émission réception s’effectue en full-duplex ce qui est primordial lors de liaison satellite pour entendre le retour de son propre signal.

À ce jour (Octobre 2021) , le Raspberry Pi 4B (2 Go) est une bonne solution, mais il y a des difficultés d’approvisionnement. Les « Orange Pi » sont des processeurs similaires au Raspberry Pi tournant sous l’Operating System Armbian ou Debian. En 2020 j’utilisai l’Orange Pi One Plus, à présent en 2021 l’Orange Pi Zero 2 offre également un processeur 64 bits / 4 cœurs, mais également une liaison ethernet ou wifi. Ils servent de serveur Web et effectuent le traitement du signal radio.

Exemple Transceiver QO-100

QO-100 Transceiver de F1ATB depuis Mai 2020

Exemple UHF Transceiver – Wifi – Orange PI Zero 2

Nouvelle configuration avec l’Orange Pi Zero 2 qui permet de communiquer via le WIFI. Plus de liaison Ethernet cablé, uniquement du 220v près de l’émetteur / récepteur.

Emetteur / récepteur 432 MHz ( 70 cm) expérimental

Notez qu’il faut un USB Hub entre le Pluto et l’Orange PI One Plus (pas pour l’Orange Pi Zero 2). Cela correspond à un bug système.

Code Source et Image

Le code source ainsi que l’image pour l’Orange Piou le Raspberry Pi 4B sont disponibles sur Github https://github.com/F1ATB/Remote-SDR .

Points clés de Remote SDR

En plus de pouvoir localiser le traitement HF près des antennes, il faut noter d’autres points comme :

La réduction du débit de données

Un SDR comme le Pluto demande en réception 1.4 M échantillon/s (minimum) * 2 Octets (16 bits) * 2 voies (I et Q) = 5.6 M Octets / s . Il en est de même pour l’émission. Ce qui nous fait plus de 10M octets / seconde.
Avec Remote SDR, la sortie sur Ethernet ou en Wifi demande :
– 10 k échantillon /s * 2 octets pour l’audio en réception
– 10.24 k échantillon /s * 2 octets pour le spectre en réception
– 10 k échantillon /s * 2 octets pour l’audio en émission
On est à moins de 100 k octets/s en rajoutant les données de contrôle.

On a donc une réduction par 100 environ du débit de communication nécessaire ce qui facilite le contrôle à distance via internet/ethernet sans perte de qualité par une compression de données.

Le mini Ordinateur déporté

En effet, on dispose d’un ordinateur déporté qui dispose d’un GPIO auquel il est possible de rajouter des fonctions. Par exemple, piloter un rotor d’antenne, mesurer des tensions électriques, des températures , etc., … Il est possible d’accéder au système par le web (serveur Apache), en SSH pour lancer une application en mode terminal, ou en mode graphique par le bureau et VNC.

Articles décrivant Remote-SDR

VHF et UHF NBFM Transceiver

RTL-SDR est une solution de récepteur à bas coût, couvrant les VHF / UHF et utilisant la technologie SDR (radio logicielle). SA818 est une solution également à bas coût, d’émetteur / récepteur NBFM en VHF et UHF. Pourquoi ne pas marier les 2 pour créer un émetteur / récepteur s’apparentant à un SDR géré par un nano-ordinateur ou SBC (Single Board Computer). La visualisation et l’écoute se faisant à distance via un navigateur Web sur PC, tablette ou smartphone à l’aide de l’application « Remote SDR ».

SA818 / RTL-SDR NBFM transceiver

Caractéristiques

Récepteur
  • Matériel : RTL-SDR ( exemple : NESDR SMArt de Nooelec)
  • Fréquence : 30 MHz à 1.7 GHz
  • Bande spectrale traitée : 2 MHz
  • Audio : 1 voie
  • Démodulation : NBFM, WBFM, AM et SSB
Émetteur
  • Matériel : SA818 de G-NiceRF(Aliexpress)
  • Fréquence : VHF bande amateur des 2 m et UHF bande des 70 cm
  • Puissance : 1 W
  • Audio : 1 voie
  • Modulation : NBFM
Traitement
  • Matériel : Orange Pi Zero 2
  • Logiciel : Remote SDR (version v3 minimum)
  • Liaison : Ethernet cablé ou WIFI
  • Affichage et Audio : page WEB sur PC, tablette ou smartphone

Synoptique

Synoptique
Chaîne de réception

Le signal d’antenne passe par une commutation à diodes pin, pour rejoindre le récepteur RTL-SDR. Différents modèles existent sur le marché, celui de Nooelec est plus soigné coté quartz, avec un TCXO permettant d’avoir un peu de précision et stabilité en fréquence. Cela reste un simple SDR codant les signaux sur 8 bits, ce qui limite la dynamique des signaux traités. Mais il est suffisant pour un simple transceiver. La sortie se fait par l’USB directement connecté à l’Orange Pi Zero 2 qui se charge du traitement du signal et permet de numériser une bande de 2 MHz de large, ce qui est parfait pour couvrir d’un œil toute la bande des 2 m et surveiller les différents OM ou relais. De plus, les détections WBFM et AM permettent d’écouter de la musique ou les bandes aviation.

Chaîne d’émission

Pour ce projet, on utilise uniquement la partie d’émission de deux modules SA818 de G-NiceRF. Le SA818-V pour couvrir les VHF et le SA818-U pour couvrir les UHF. Pour moins de 20€, on peut en acheter un minimum de 2 chez Aliexpress.

Les SA818 sont connectés à l’Orange Pi Zero 2 qui leur fournit la fréquence de travail souhaitée par l’intermédiaire d’un bus série. La sortie analogique ‘Line-Out’ de l’Orange Pi Zero est connectée à l’entrée micro des SA818 . La sortie antenne de chaque SA818 est connectée au relais de commutation d’antenne à base de diodes pin pour sélectionner le module en émission.

Réalisation

Dans un article précédent, il était traité une configuration simple avec un seul émetteur en VHF ou UHF. Ici la chaîne démission est doublée pour traiter les VHF et UHF. L’utilisation de 2 modules SA818 nécessite la commutation de quelques signaux par diodes, car on ne peut simplement les mettre en parallèle lorsque l’un travaille et l’autre est en veille.

TX-RX et traitements
Le récepteur

La clé RTL-SDR reçoit les signaux de l’antenne, les numérise dans la bande choisie et passe les échantillons au processeur de traitement, l’Orange Pi Zero 2. C’est un processeur de fabrication chinoise, tournant sous Linux/Armbian et similaire au bien connu Raspberry PI, mais pour une QSJ plus faible. La clé est branchée sur le port USB de l’Orange Pi Zero-2. La couverture de 30 MHz à 1.7 GHz permet l’écoute de nombreuses émissions à l’aide du logiciel Remote SDR. Le signal audio en sortie de démodulation et le spectre de l’ensemble de la bande écoutée sont envoyés au navigateur web (Chrome ou Edge) pour l’affichage et le contrôle.

Les émetteurs

Le signal audio pour attaquer les entrées microphone des émetteurs est disponible sur la sortie Line-Out de l’Orange Pi zéro. Des résistances des 640 kΩ permettent d’ajuster le niveau en entrée. La fréquence d’émission est fournie par une liaison série UART5_TX et UART5_RX. Un circuit de diodes permet d’échanger les informations avec le module SA818 actif et de s’isoler de celui inactif. Il n’est pas possible de changer de fréquence pendant la phase d’émission. C’est l’Orange Pi, avec les sorties sur les pins 16 et 18 qui active et désactive les SA818 en utilisant leur entrée ‘Power Down’. La sortie HF se fait sur la pin 12 du SA818.

Commande d’émission

La commande de passage en émission ne se fait pas par un simple changement d’état d’une sortie du GPIO de l’Orange Pi pour des raisons de sécurité. En cas de crash du processeur, on ne contrôle pas l’état de la sortie et l’émetteur risquerait d’être bloqué en émission.

Le client web envoi un signal audio du microphone échantillonné à 10 kHz et codé sur 2 octets. Ces 2*10000 échantillons, par seconde, sont envoyés par paquet de 512. Cela fait environ 40 paquets par seconde envoyés uniquement en phase d’émission. À chaque arrivée d’un paquet, la pin 26 change d’état. Cela va nous générer un signal carré de 20Hz ou d’une période de 50ms. Ce signal attaque un monostable (CD4538) qui sera actif aussi longtemps que des échantillons audio arrivent du navigateur. Il attaque l’entrée PTT du SA818. En cas d’arrêt ou de crash du processeur, le monostable retombe et l’émission s’arrête.

Processeur de Traitement

Un Orange Pi Zero 2 se charge du traitement du signal à la réception et l’émission. C’est un processeur 4 cœurs de 64 bits avec des entrées/sorties analogiques audio et une connexion Ethernet par câble ou Wifi. Il exécute l’application Remote SDR (version V3 minimum), commune à d’autres SDR. Un serveur Web fourni la page de visualisation, la sortie audio au casque ou hautparleur et l’entrée micro sur un PC, une tablette ou un smartphone.

La réception des données I et Q du RTL-SDR échantillonné à 2.4 MHz se fait par le port USB de l’Orange Pi.

GPIO / Pins / Fonctions de l’Orange Pi Zero 2

Pour s’isoler du bruit électrique, généré par l’Orange Pi, pensez à bien découpler l’alimentation avec des condensateurs de plus de 100 μF et des condensateurs de 10 nF pour absorber la HF et les pics de tension. Un mauvais découplage se retrouve en bruit de fond sur l’audio de l’émetteur.

En cas de surchauffe de l’Orange Pi Zero 2, un petit ventilateur alimenté par du 5V se met en route si la température dépasse 65°C. La pin 7 du GPIO passe à 1 et attaque un 2n2222 servant de commutateur.

Branchement du SA818

Les 2 modèles, le VHF ou l’UHF ont le même branchement.

Pins du SA818

Le SA818 a tendance à chauffer, surtout si on l’alimente en 5V. Il accepte des tensions plus faibles comme proposé ici avec une diode 1n4007 qui baisse la tension (VDC) autour de 4.5v . Sur la partie dorée du SA818, près de l’antenne, on peut rajouter un radiateur.

Filtrage et commutation HF.

Les SA818 sortent directement un signal à la fréquence voulue autour de 1w. Une analyse spectrale montre quelques résidus d’harmoniques 2 et 3. Afin d’avoir un signal plus propre, chaque module est suivi d’un filtre passe-bas à 2 selfs et 3 condensateurs ajustables.

  • 144 MHz
    • selfs : 3 spires sur diamètre 6 mm en fil de cuivre électricien 1.3mm de diamètre
    • condensateurs ajustables : 30pF
  • 432 MHz
    • selfs : 1 spire sur diamètre 6 mm en fil de cuivre électricien 1.3mm de diamètre
    • condensateurs ajustables : 10pF
Filtrage et commutation HF

Trois diodes pin permettent de connecter l’antenne vers le récepteur ou l’un des deux émetteurs. Des transistors PNP de commutation (BC327 ou autre ), établissent la logique pour envoyer le courant à la diode pin qui doit laisser le passage de la HF. Le courant max est fixé par la résistance de 120 Ω qui passe à travers des diodes LED qui permettent de contrôler le bon fonctionnement en RX, TX VHF ou TX UHF. Des selfs en ferrite, type ‘VK200’, permettent de séparer le courant continu et la HF. Les ordres de commutation proviennent du monostable CD4538 et de l’Orange Pi Zero 2. C’est une logique négative, avec des 0v qui ouvrent les transistors.

Émetteur / Récepteur NBFM 144 MHz et 432 MHz

Application Remote SDR pour SA818

L’application « Remote SDR » traite différents SDR en émission comme le HackRF ou l’Adalm Pluto. Dans le cas du SA818, il y a quelques spécificités pour s’adapter à ses interfaces.

Programmation fréquence d’émission

C’est une liaison série à 9600 baud, connecté sur le port Uart5 de l’Orange Pi Zero 2. Un programme python reçoit l’ordre de fréquence du client web par la technologie websocket. Cet ordre est adapté au format nécessaire au SA818. L’application python utilise la bibliothèque pyserial-asyncio installable par les commandes:

apt install python3-pip
pip3 install pyserial-asyncio

Les ports série disponibles sur la carte sont donnés par:

dmesg | grep tty

que l’on retrouve dans /dev/ttys5 …

Code CTCSS

Le code CTCSS utile à l’ouverture de certains relais, est généré par le SA818 qui reçoit, par le port série, un numéro de canal entre 1 et 38 qui correspond à la fréquence rentrée dans le tableau de configurationTX.js. Ce code CTCSS n’est pas généré directement dans le signal audio au niveau du client web comme pour les autres SDR, car le SA818 coupe tous les signaux sous 300Hz.

Modulation par le signal audio du microphone

Le signal du microphone est numérisé au niveau du PC par le navigateur Web, puis envoyé à l’Orange Pi qui le remet sous forme analogique sur les 2 sorties Line Out. Un programme en python construit avec l’application Gnu Radio Companion effectue la conversion digital vers analogique. Le niveau de sortie analogique est défini par le mélangeur audio du système. Son niveau est défini à chaque lancement de l’application dans le fichier asound.state dans le dossier PY. Si l’on souhaite modifier le niveau de modulation, il faut ouvrir dans une fenêtre terminal, le mélangeur audio avec :

alsamixer
alsamixer

Ajuster à l’aide des flèches le niveau de sortie ‘Line Out’ pour ajuster le taux de modulation en NBFM. Une fois le bon réglage trouvé, le sauvegardé dans le fichier asound.state avec la commande :

alsactl --file /var/www/html/PY/asound.state store

Si l’on souhaite tester la sortie audio avec un fichier wav:

aplay -D hw:0,0 test.wav

Remote SDR

Remote SDR, s’installe sur l’Orange Pi Zero 2. L’application comprend le traitement du signal et le serveur web qui fourni la page au navigateur web de contrôle de l’émetteur/récepteur. L’installation la plus simple consiste à télécharger sur Github, l’image de Remote SDR (au minimum version 3) pour Orange Pi Zero 2 qui comprend l’OS Armbian Bullseye et toutes les bibliothèques nécessaires.

Remote SDR

Attention la capacité à piloter un SA818 n’est disponible que pour les Orange Pi Zero 2. A ne pas confondre avec l’Orange Pi Zero qui est un processeur 32 bits. Les Raspberry PI 4, utilisés avec d’autres SDR, n’ayant pas directement une sortie analogique, ne peuvent pas s’interfacer au SA818.

Amplification du TX

La sortie du SA818 fourni environ 1 w de signal. Si l’on souhaite plus de puissance, il existe des amplificateurs sur le marché. N’oubliez pas un filtrage passe bande pour s’affranchir de tout signal parasite qui pourrait se trouver en sortie du SA818.

Articles sur l’Orange Pi Zéro 2