Emetteur BLU distant

Remote SDR – Chaine d’émission

Ci-après la présentation d’un émetteur BLU à base de SDR (Software Defined Radio) pilotable à distance sur votre réseau local, par un navigateur internet (Chrome). Il est le pendant du récepteur BLU distant décrit dans cet article.

C’est une solution intéressante lorsque l’antenne d’émission doit être installé loin de votre local radio. N’oubliez pas que le fonctionnement à distance d’une station de radio amateur via QO-100 n’est autorisé que si la station appartient à l’opérateur lui-même et est exploitée à son propre emplacement. Il doit toujours avoir un contrôle total sur la station et en particulier pouvoir l’éteindre immédiatement si, par exemple, des interférences se produisent.

Matériel

Pour la partie matériel , l’ensemble comprend principalement:

  • un SDR, le HackRF One, capable d’émettre
  • un nano ordinateur comme l’Orange Pi PC2 H5 ou l’Orange PI One Plus sous ARMBIAN

Dans le cadre d’une adaptation aux émissions vers le satellite QO-100 / Es’hail-2, on a la configuration ci-dessous. Néanmoins, on peut l’utiliser pour d’autres bandes amateur à condition d’adapter la chaîne de filtrage et d’amplification. Pour la mise au point, on peut émettre à faible niveau sans les amplificateurs de sortie sur 2M et s’écouter avec un autre transceiver.

On rajoute en sortie du SDR un filtre de bande 2.4 GHz, 2 amplificateurs linéaires bas niveau (SPF5189Z, gain de 8 à 11 dB) et un amplificateur normalement destiné au WIFI (EP-AB003) qui doit délivrer autour de 3 à 4W.

Le nano processeur de traitement est un modèle de la famille Orange PI. Il ressemble au Raspberry PI. J’ai testé le traitement proposé avec un Orange PI PC2 H5 et un Orange PI One Plus H6. C’est ce dernier que j’utilise quotidiennement, on le trouve pour moins de 30€ en chine (Ebay ou Aliexpress). Ces 2 processeurs sont des 4 cœurs 64 bits. Ils sont chargés à 50% avec la chaîne d’émission proposée ci-après. Ce sont les mêmes que j’utilise sur le récepteur BLU distant.

Logiciel

Pour la partie logiciel nous avons:

  • un traitement du signal avec GNU-Radio en python2
  • un simple serveur web en python3
  • 2 petits modules en python3 d’interface entre GNU-Radio et les websockets d’échanges des données vers le navigateur web du PC ou de la tablette distante
  • Le logiciel de visualisation et de génération audio « Remote SDR » écrit en HTML et Javascript pour piloter l’ensemble à distance depuis un navigateur Web comme Chrome.
Chaîne fonctionnelle d’émission

Traitement du Signal

L’ensemble du traitement est réalisé par le logiciel « GNU Radio ». Il dispose d’un éditeur graphique « Gnuradio-companion » qui facilite la tâche car il fourni tous les blocs de traitement pour faire un émetteur sans écrire une ligne de code. C’est presque un jeu d’enfant…. L’installation de GNU Radio est décrite ici. Le fichier source du graphique de traitement est disponible sur Github F1ATB/Remote-SDR.

Blocs fonctionnels de la chaîne d’émission sur Gnuradio-companion

Traitement AUDIO

Le signal audio du microphone du PC ou de la tablette est dans un premier temps filtré par un traitement en Javascript au niveau du client web pour abaisser la fréquence échantillonnage afin de réduire le débit à transmettre. Les signaux audios en BLU étant inférieurs à 4 kHz, la fréquence d’échantillonnage choisie vers l’Orange PI est de 10 kHz ce qui est suffisant pour respecter le Théorème de Shannon. Chaque échantillon est défini sur 16 bits par 2 octets transmis par le protocole réseau websocket sur le port 8005. Pour accéder au module de traitement de GNU-RADIO, un petit module en python3 prend les échantillons sur le port 8005 et les passe en UDP sur le port 9005.

Chaîne de traitement de l’audio du microphone

Les échantillons entiers sur 16 bits sont convertis en flottants puis une transformée de Hilbert permet la génération d’un signal réel et d’un signal imaginaire en quadrature de phase (déphasage de 90°). On sépare la partie réel et la partie imaginaire afin de faire tournée la phase de 180° ou pas d’une voie en multipliant par -1 ou 1. Cela permet de préparer la génération d’un signal en BLI (bande latérale inférieure) ou BLS (bande latérale supérieure). En sortie on recombine les 2 voies pour retrouver un signal complexe.

Traitement HF

Le signal audio complexe est ensuite filtré pour éliminer la bande non souhaitée:

  • BLI: -2800 Hz à -200 Hz
  • BLS: +200 Hz à +2800 Hz

Pour avoir un spectre propre en émission, il est obligatoire de faire travailler le HackRF One avec une fréquence d’échantillonnage en entrée de plus de 2 MHz. Ici j’ai choisi 2.4MHz comme sur le récepteur décrit par ailleurs.

Vu que l’audio est échantillonnée à 10kHz, on a un filtre interpolateur avec un rapport de 240 pour atteindre les 2.4 MHz. Le bloc Osmocom Sink permet de passer le flux audio et les paramètres au SDR, HackRF One.

Envoi des commandes

Pour piloter le SDR et le traitement du signal dans GNU Radio il faut recevoir un certains nombres de paramètres du client web distant. La liaison se fait par un websocket sur le port 8004 de l’Orange PI. A nouveau un petit module en Python3 convertit les messages websocket vers une interface XMLRPC sur le port 9004 qui permet de les passer à GNU Radio. Ce module est identique à celui utilisé sur le récepteur avec d’autres numéros de port.

SECURITE EMISSION

IL est impératif de mettre en place un dispositif pour éviter des émissions non désirées en cas de plantage du réseau, de l’orange pi etc….qui ne permettrait pas de passer les commandes.

Sécurité Emission
2 relais pour l’alimentation des amplificateurs

Le module en Python3 qui reçoit les échantillons audio par paquets de 512 octets fait changer d’état la pin 26 du GPIO pour un Orange Pi One Plus (voir détail ici), la pin 26 d’un Raspberry Pi 4 ou d’un Orange pi zero 2 (depuis Remote SDR V3) , à chaque réception d’une trame. Cela crée un signal alternatif carré (0v,3.3v) que l’on passe par une capacité de 4.7uF à un dispositif redresseur diode et transistor de commutation comme un 2n2222. A chaque demi alternance, les relais sur le collecteur sont actionnés et maintenus par le condensateur de 47uF à 470uF jusqu’à la demi-alternance suivante. Ces relais commutent l’alimentation en 12v de l’amplificateur WIFI de sortie de l’émetteur et le 5v des pre-amplificateurs . Ainsi, si les trames audios sont reçues l’alimentation des amplificateurs est établie. Si les trames n’arrivent plus ou que le système est planté, pin 26 en position haute ou basse, l’alimentation est coupée.

Détails de cablage avec 2 relais à logique négative

Attention, une source de plantage du numérique qui peut faire des dégâts si on n’a pas mis ce type de coupure, c’est la HF des amplificateurs posés à côté de l’Orange/Raspberry PI et du SDR.

pilotage DE L’EMISSION à distance

Comme déjà mentionné le pilotage de l’ensemble se fait à distance dans une page web (chrome) fourni par le mini serveur web en python3 sur l’Orange Pi et le port 8000 (Remote SDR V1 uniquement).

http://adresse_IP_Orange_Pi:8000/remote_sdr.html

Remote SDR

Cette partie en HTML et Javascript appelé « Remote SDR » fera l’objet d’un autre article.

Qualité du signal ÉMIS

Sans avoir fait de mesures précises sur la qualité du signal, j’ai pu observer :

  • si l’on respecte une fréquence d’échantillonnage en entrée du SDR supérieure à 2 MHz, le signal en sortie est propre. Dans le cas contraire, il y a des repliements de spectre. On peut vérifier cela en utilisant le récepteur décrit ici.
  • le waterfall observé sur QO-100 est très propre. Les bords de part et d’autre des 2.6kHz de bande sont nets et sans bavure.
  • les reports de modulation sont bons
  • Le TCXO du HackRF One fourni une fréquence bien stable dans le temps.

Transceiver distant

Cet émetteur fait partie d’un transceiver complet pilotable à distance comme présenté dans ces articles:

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

8 réponses

  1. F4BAD dit :

    Bonjour André.
    Merci pour cet exposé qui fait envie. La partie gnuradio ne me pose pas de problème à priori pour la mettre en oeuvre en suivant vos schéma blocs, très clairs. Les inconnus sont plutôt du coté de l’interface soft.
    J’ai parcourus vos différents exposés et je n’ai pas vu de lien qui me permettrait de faire la même chose.
    « Remote sdr » renvoie sur des articles plus générique. comment puis je creuser cette partie logiciel : l’interface web et les module de passage en websocket?
    Merci
    Rémi
    F4BAD

  2. F4IPK dit :

    Bonjour André,
    Bravo et merci pour vos exposés sur votre blog. Cela coïncide exactement avec ce que je fais également de mon côté mais en étant moins avancé. Je suis arrivé sur votre blog après vous avoir entendu sur QO100 ce jour (avec F1MK) mais vous avez quitté la fréquence avant que je puisse vous appeler. Vous avez parlé de hackrf et cela m’est de suite entré dans l’oreille car je l’utilise aussi en émission sur QO100. De même j’ai aussi l’équipement décrit mais avec un seul préampli de 18dB qui sort les 20dBm requis sur le même ampli chinois. Je mesure d’ailleurs avec un powermètre (chinois aussi) qu’il sort bien 38dBm +-1dBm alors que beaucoup ne lui donne que 3-4W (?). Bon je vais parcourir votre blog en totalité et à bientôt sur QO100.
    73 de F4IPK

  3. F4BAD dit :

    Bonjour
    Merci beaucoup pour le partage.Je vais lire de ce pas.
    73 de F4BAD Rémi

  4. C. dit :

    Bonjour F4GHH,
    Pourquoi vous ne connectez pas directement le module SDR directement à l’usb de votre PC ?
    Hormis pour la fonction REMOTE.

    • F1ATB André dit :

      Toute la partie HF est localisée près de l’antenne. Mon PC est à 40 m dans un bureau loin des antennes. Ainsi pas de HF à transporter dans des coax sur une longue distance.

      Cdlt 73