SA818 / RTL-SDR
VHF ou 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. 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 ».
Notez l’existence d’un projet similaire traitant les deux bandes VHF et UHF.
Caractéristiques
Récepteur
- Matériel : RTL-SDR ( exemple : NESDR SMArt de Nooelec)
- Fréquence : VHF bande amateur des 2 m ou UHF bande des 70 cm
- 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 ou 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
Réalisation
Chaîne de réception
Le signal d’antenne passe par un relais 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. Il 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. La sortie se fait par l’USB directement connecté à l’Orange Pi Zero 2 qui se charge du traitement du signal.
Chaîne d’émission
Pour ce projet, on utilise uniquement la partie d’émission d’un module SA818 de G-NiceRF. Il est disponible en 2 versions, SA818-V pour couvrir les VHF et SA818-U pour couvrir les UHF. Pour moins de 20€, on peut en acheter un minimum de 2 chez Aliexpress.
Le SA818 est connecté à l’Orange Pi Zero 2 qui lui 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 du SA818 par l’intermédiaire d’une résistance de 640 kΩ et d’une capacité de 1 μF pour s’isoler du continu. La sortie antenne est connectée au relais de commutation d’antenne. Un zéro sur la pin 5 du SA818 permet de commander sa mise en émission.
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.
Le SA818 a tendance à chauffer, surtout si on l’alimente en 5V. Il accepte des tensions plus faibles. Sur la partie dorée près de l’antenne, on peut y rajouter un radiateur.
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.4MHz se fait par le port USB de l’Orange Pi.
La programmation de la fréquence d’émission du SA818 s’effectue via le port série UART5 de l’Orange Pi. Il n’est pas possible de changer de fréquence pendant la phase d’émission.
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é, ici en rouge, de 20Hz ou d’une période de 50ms.
Ce signal carré passe par un condensateur de 4.7 μF et attaque la base d’un transistor de commutation 2N2222 et d’une diode 1n4148. À chaque front montant, le 2n2222 conduit et la tension collecteur tombe autour de 0v. Elle est maintenue basse, grâce au condensateur de 47 μF, après le front descendant qui bloque le 2n2222. Au collecteur est connecté un relais qui bascule le signal d’antenne vers le SA818 en présence d’un zéro en entrée. Ce même signal par l’intermédiaire d’une diode 1n4148 est envoyé sur la pin 5 du SA818 pour le faire passer en émission. Un condensateur de 10nF aide à le maintenir bas. Cette diode sert de protection pour ne pas dépasser les 3v3 en entrée. À l’arrêt de l’émission ou en cas de crash, le signal en sortie 26 du GPIO reste bloqué à 0 ou 1. Le signal sur le collecteur va remonter à 5v et le relais passe en réception. Le temps de commutation est donnée par le condensateur de 47 μF alimenté par la résistance de 20 kΩ et le courant de commande du relais. En fonction du relais utilisé, il faudra peut-être ajuster la valeur de cette résistance pour maintenir un 0 pendant les 50 ms et revenir en réception rapidement à l’arrêt de la trame carrée.
Il est possible de remplacer ce schéma par un monostable type CD4538 avec une constante de temps supérieure à 100ms.
Branchement du SA818
Les 2 modèles, le VHF ou l’UHF ont le même branchement.
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
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.
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é. Pensez à rajouter 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
- Remote SDR V5 – Installation image Raspberry 4B ou Orange Pi
- Remote SDR v5 – Installation manuelle
- Remote SDR v5
- Watchdog (chien de garde)
- Positionnement sorties GPIO
- Refroidissement CPU
- Configurations
- Caractéristiques
- VHF et UHF NBFM Transceiver
- Remote SDR v4
- Remote SDR V4 – Installation image Raspberry 4B ou Orange Pi
- Remote SDR v4 – Installation manuelle
- SA818 / RTL-SDR
- Mise en route Orange Pi Zero 2 – Armbian Bullseye
- Remote SDR V2 – Architecture Logiciel
- GPIO de l’Orange PI Zero 2 H616
- Mise en route Orange Pi Zero 2 – Debian Buster
- Remote SDR v2 – Installation image Orange Pi One Plus ou Orange Pi Zero 2
- Remote SDR v2 – Installation manuelle
- Remote SDR v2
- Remote SDR V1 – Approvisionnements
- Emetteur BLU distant
Comme d’habitude, très beau travail, André!
Il ne manque plus que la possibilité d’envoyer du 1750Hz pour l’ouverture des relais….
Et puis, une déclinaison possible de remSDR serait la connexion directe sur un talkie walkie du type UVR5 par exemple. Ce serait très utile dans le cadre de besoins ephémères comme les réseaux de sécurité (ADRASEC)
encore bravo pour votre travail!
F1FHK
Pour le 1750Hz, je pensais à tort qu’il n’y avait plus de relais de ce type. Après une recherche Google, j’en ai trouvé. Je le note dans ma liste d’améliorations pour une prochaine version.
Pour la liaison avec un UV5R, si on l’utilise en émission et réception, Remote sdr n’a plus d’intérêt, car on perd la vue panoramique sur 2MHz. C’est quelque chose de plus simple qu’il faudrait faire.
73
André
Oui André vous avez raison. Mon idée était juste la perspective de déploiement d’un réseau d’urgence dans un temps très court. Pour celà seules les fonctions « 2 way remote audio et PTT sont nécessaires, avec en option le contrôle ( pour le SA818) uniquement, par son interface UART ( fréquence, subtone, squelch).
73’s
F1FHK