Mise en avant

Remote SDR v5

Émetteur- Récepteur via le web

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

Ecoutez QO-100 en direct avec Remote SDR

Remote SDR version 5.0 est disponible sur Github.
Nouveaux SDR traités :
– SDR Play RSP1 , RSP1A,
MSI.SDR
Partage du récepteur entre plusieurs utilisateurs
Protocole https ( port 443 ) regroupant toutes les communications

Caractéristiques

Récepteur
  • SDR en réception:
    • RTL-SDR ( exemple : NESDR SMArt de Nooelec)
    • HackRF One
    • Adalm-Pluto
    • RSP1, RSP1A
    • MSI SDR
  • Fréquence : 1 MHz à 6 GHz (suivant le SDR choisi)
  • Bande spectrale traitée : 2.5 MHz sur 2048 points (suivant le SDR choisi)
  • Audio : 1 voie
  • Démodulation : NBFM, WBFM, AM, SSB ou CW
  • Décodeur RTTY
  • Balayage automatique de la bande
  • Equalizer sur la voie Audio
  • Réjection de signal (notch filter)
  • Réduction du bruit (noise filter)
É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, SSB ou CW
  • Encodeur RTTY
  • Compresseur de modulation en émission
  • Equalizer
  • codeur CTCSS
  • codeur DTMF
  • codeur 1750 Hz
  • Décalage en fréquence programmable pour les relais
  • Manipulateur CW automatique (Iambic A ou Iambic B)
Traitement
  • Matériel :
    • Orange Pi Zero 2 , ou
    • Raspberry Pi 4B (2 Go)
  • Logiciels :
    • Operating System : Armbian / Debian Bullseye
    • Serveur web :Node JS/ Express
    • Traitement du signal : GNU Radio 3.9
    • Remote SDR (version v3 minimum)
      • Html
      • Javascript
      • Python 3
    • Navigateur web: Chrome, Edge ou Chromium. Ne pas utiliser Firefox.
  • Interface réseau : Ethernet cablé ou WIFI
  • Interfaçage avec Gpredict pour compenser le Doppler des satellites à orbite basse
  • Interfaçage avec un rotator type GS-232
  • 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

En mode dégradé, il est possible d’étendre la réception dans la bande 0.5 MHz – 30 MHz avec un RTL-SDR V3.

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

En mode dégradé, il est possible d’étendre la réception dans la bande 0.5 MHz – 30 MHz avec un RTL-SDR V3.

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 en Juin 2022

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 .

Mise à jour

À partir de la version 5, il est possible de faire les mises à jour de version en ligne. Allez sur la page « Tools » et cliquez sur:
Look for updates / Recherche des mises à jour

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

Automatisation 2.0 d’un portail (DIY)

Le but de ce système est l’ouverture et la fermeture à distance d’un portail électrique depuis :
– un smartphone grâce à un serveur web
– une télécommande radio
– un bouton poussoir extérieur ou intérieur

En complément, on gère la sonnette qui diffuse un message sur les enceintes Google et une ou plusieurs Caméras IP pour surveiller l’ouverture. De même, un mail est adressé à des personnes désigné avec les photos prisent par les caméras.

Architecture

Le système par sa structure modulaire permet de moderniser un portail existant en conservant les moteurs ou vérins, ou de concevoir l’ensemble.

Par expérience, depuis de nombreuses années, il faut un système très robuste aux pannes, aux coupures de courant afin de garantir le service pendant des mois et ne pas tomber sur le système à l’arrêt en rentrant chez soi. Pour cela, on décompose l’ensemble en 2:
– un microcontrôleur Arduino, en charge des fonctions essentiels, déclenchement sur poussoir ou radio, contrôle des moteurs, surveillance de la sonnette. La simplicité du montage et du logiciel offre la robustesse exigée,
– un « Single Board Computer » ou micro-ordinateur qui se connecte au web, permet l’ouverture à distance par smartphone, prend des photos à l’aide de caméras IP, informe par mail, enregistre les allées et venues. La complexité des logiciels, les coupures d’internet, les micro-coupures électriques font que la qualité de service sur des mois n’est pas celle d’un simple Arduino.

Vidéo de présentation

Arduino Nano

La carte Arduino Nano est basée sur un ATMega328 cadencé à 16 MHz. Elle dispose d’une mémoire de 32 kB et d’un grand nombre d’E/S:
– 14 broches d’E/S dont 6 PWM
– 8 entrées analogiques 10 bits
– bus série

Les entées analogiques seront utilisées pour surveiller les courants qui alimentent les moteurs afin de les arrêter en fin de course ou si blocage.

La carte est disponible pour quelques € en Chine (Aliexpress), une dizaine d’€ en France (provenance de Chine), 30 € sur le magasin officiel…

Orange Pi Zero

Orange Pi Zero

Pratiquement, vu la pénurie de Raspberry , on se tourne vers des Orange Pi qui répondent également au besoin. Cela change de fruit et fonctionne toujours bien. L’Orange Pi Zero est l’entrée de gamme, mais est suffisant pour notre application. Il faut l’acheter en Chine en passant par Aliexpress en choisissant la version 512k de RAM et non 256k. L’Operating System que j’utilise dessus est Armbian. Pour l’installer, voir l’article https://f1atb.fr/index.php/fr/2020/03/27/mise-en-route-orange-pi-zero/
Créer un utilisateur Portail par exemple, cela crée un dossier /home/Portail dans lequel on implante les sources.

Ne pas installer Samba ou les drivers Audio.

On se connecte à l’Orange Pi par un cable ethernet ou le wifi.

Si vous disposez d’un autre « Single Board Computer », Raspberry Pi, Orange Pi xxx… tournant sous une variante Debian, cela est adaptable facilement.

Schéma électrique

Toute l’électronique s’articule principalement autour de l’Arduino. Ce dernier est lié à l’Orange Pi par le cable USB qui lui permet l’échange de données et fourni l’alimentation 5V.

L’Orange pi zero a une LED branchée sur la pin 26 avec une résistance en série entre 300 et 1000 ohm. Elle clignote par logiciel pour afficher le bon fonctionnement. L’Orange pi est alimentée par un chargeur 5V/2A, il alimente via l’USB l’Arduino.

Logiciels

Pour piloter à distance via le web, on utilise Apache comme serveur. Son installation est aisée : https://f1atb.fr/index.php/fr/2020/11/12/apache-sur-orange-pi-zero/
Comme l’installation de notre appli se trouve dans un dossier dédié, il faut configurer Apache dans le fichier 000-default.conf du dossier « /etc/apache2/sites-available/ ». Puis redémarrer Apache.

Installez, VNC sur l’Orange Pi si vous souhaitez y accéder à distance depuis un PC et écrire / modifier le programme sur l’Arduino. Restez sous l’utilisateur « root » c’est plus simple.

Installez de même VNC-Viewer sur votre PC et connectez-vous à l’adresse IP de votre Orange ou Raspberry. Pour les Orange Pi, préciser le port 5901.

Après avoir installé le bureau et VNC, un petit « apt-get update » peut-être utile.

Installez les librairies python permettant de faire des « pings » pour tester la liaison internet et pour les liaisons série.

pip install ping3
pip install pyserial

Installez la librairie pour envoyer un message audio sur une Google Home.

pip install PyChromecast

L’orange pi zero ayant peu de mémoire, il est bon de lui allouer un fichier de swap de 1 Go. Suivez la procédure ici : https://linuxize.com/post/how-to-add-swap-space-on-debian-9/

Installer l’IDE Arduino

L’environnement Arduino est disponible dans les dépôts:
apt-get install arduino -y

Branchez la carte Arduino Nano sur le port USB de l’Orange Pi Zero et dans Tools, sélectionnez la carte, le type de processeur si besoin et le port /dev/ttyUSB0. Si vous utilisez d’autres cartes ou port série, adaptez en conséquence.

Attention, si vous avez un Arduino Nano avec l’ancien Bootloader, il faut programmer le nouveau Bootloader afin de pouvoir utiliser le watchdog. Il y a une bonne explication ici: https://www.youtube.com/watch?v=VewaVZ4H5Cw

Téléchargez le programme le plus simple pour tester l’ensemble « Blink ». Le clignotement d’une Led sur la carte. Lancez la compilation et le téléchargement sur l’Arduino. À présent, la Led doit clignoter.

Code Source

Le code source pour l’Arduino et l’Orange Pi Zero est disponible ici sous forme de fichier zip :

Lancement du logiciel

On emploie les tâches cron sous root. Tapez ‘crontab -e’ dans un terminal et remplissez en bas de page:

1 1 * * * python3 /home/portail/cron_clean.py
*/5 * * * * python3 /home/portail/cron_temp_cpu.py
@reboot python3 /home/portail/portail.py

cron_clean.py efface toutes les nuits les journaux d’évènements vieux de plus d’un mois.
cron_temp_cpu.py envoi la température du CPU à ma domotique (optionnel)
portail.py programme principal de gestion du portail

Achats

Pour l’Orange Pi Zero allez par exemple ici et choisissez la version 512Mb de mémoire. Si vous ne le trouvez pas, vous pouvez prendre un Orange Pi Zero 2 plus récent.

Pour l’Arduino Nano, de nombreux vendeurs le proposent sur Aliexpress. Prenez la version avec le câble USB.

Pour la Radio, on trouve le module tout monté avec 2 canaux (2 relais, un pour ouvrir et un pour fermer) avec plusieurs radios pour moins de 20€.

La mesure de courant par effet Hall (ACS712) est disponible ici. La version 20A devrait correspondre à la plupart des moteurs.

Les 2 relais pour alimenter le transformateur de puissance des moteurs et la lampe de sécurité sont des modèles classiques pour Arduino.

Les relais qui pilotent les moteurs sont un point délicat. Les relais classiques bleus à brancher sur des Arduinos sont limités à 10A. Ils grillent avec le temps. J’ai trouvé des modèles plus costauds de 16A max qui nécessitent des transistors pour les piloter, car ils consomment trop de courant en 5V.