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.

SA818 / RTL-SDR NBFM transceiver

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

Orange Pi Zero 2 – SA818 schéma électrique
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.

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.

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.

Maquette en bois…

Branchement du SA818

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

Pins du SA818

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

3 réflexions sur « SA818 / RTL-SDR »

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

    1. 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é

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *