Station sol SDR automatique : le logiciel en général (ordinateur + Jetson Nano)

Il y a quelques temps j’ai publié un article pour réaliser une station sol de réception du satellite UVSQ-SAT. Quelques mois plus tard, j’ai publié une version dédiée à la réception des satellites NOAA de cette même station sol. La version publiée aujourd’hui est une sorte de compilation de ces différentes stations.

Vous pouvez visionner une présentation rapide que j’ai donnée lors de la 5e rencontre du spatial radioamateur organisée par l’AMSAT Francophone les 7 et 8 mai 2022. Le replay est disponible sur le Twitch de l’Electrolab (début de ma présentation à 2h09min) : https://www.twitch.tv/videos/1478268820

Les codes sont disponibles sur mon Github : https://github.com/ebecamel/SDR_automatic_GS

L’objectif de la station

Cette station a pour objectif de permettre la réception en automatique des émissions suivantes :

  • Télémétrie des cubesats utilisant les bandes amateurs VHF / UHF,
  • Transpondeurs audio des satellites (et de l’ISS),
  • SSTV PD120 de l’ISS,
  • APT des NOAA.

Après avoir reçu les signaux, la station est capable de :

  • Déposer les télémétries reçues sur la DB SatNOGS,
  • Déposer les télémétries reçues sur un serveur FTP,
  • Pousser les télémétries reçues via un serveur KISS,
  • Déposer les fichiers images ou audio générés sur un serveur FTP.

Cette station fonctionne aussi bien sur un ordinateur (Linux) que sur un Jetson Nano (2GB et 4GB). Cependant, la version pour ordinateur et limitée à une seule antenne (sauf si un module permettant d’accéder à des GPIO est installé) alors que la version Jetson Nano est fonctionelle avec 2 antennes. Dans ce cas, le choix de l’antenne adaptée est automatique grâce aux GPIO de la carte.

Le fonctionnement

Le fonctionnement logiciel de la station se résume au schéma qui suit :

Pour résumer :

  1. La station sol lit la liste des satellites à suivre ainsi que leur fréquence et mode de réception,
  2. Elle calcule les prochains passages de chaque satellite, puis attend le prochain passage,
  3. Quand un satellite est en vu, elle active la réception et lance le script de démodulation du mode désiré,
  4. A la fin du passage, les données reçues sont stockée, puis la station retourne à l’étape 1.

Installation des logiciels

Pour fonctionner, la station sol a besoin de sdr4space.light, GNU Radio et la librairie gr-satellites.

sdr4space.light

Pour installer sdr4space.light, il suffit de télécharger le .appImage pour votre plateforme depuis ce lien.

Je vous recommande de placer le .appImage dans le dossier software du dépôt git à télécharger plus loin.

Vous aurez sans doute besoin d’installer les dépendances suivantes :

Soapy-sdr 0.8
sudo apt-get install cmake g++ libpython3-dev python3-numpy swig

git clone https://github.com/pothosware/SoapySDR.git

cd SoapySDR

mkdir build && cd build

cmake ..

make -j4

sudo make install

sudo ldconfig

Une fois l’installation terminée, vous pouvez la tester avec :

SoapySDRUtil --info

La procédure d’installation est également disponible sur le wiki de SoapySDR.

Soapy rtlsdr

Pour utiliser SoapySDR avec uen clé RTLSDR, il est nécessaire d’installer la librairie dédiée :

sudo apt-get install rtl-sdr librtlsdr-dev

git clone https://github.com/pothosware/SoapyRTLSDR.git

cd SoapyRTLSDR

mkdir build && cd build

cmake ..

make

sudo make install

En exécutant de nouveau la commande info pour SoapySDR vous devriez voir le support de la rtl-sdr dans la liste des modules trouvée par Soapy.

SoapySDRUtil --info

Toute la procédure est disponible sur le wiki de la librairie.

fftw3-3
sudo apt-get install libfftw3-3
liquid-sdr
sudo apt-get install libliquid1d
libsndfile1
sudo apt-get install libsndfile1
mosquitto & mosquitto-clients
sudo apt-get install mosquitto mosquitto-clients

GNU Radio Companion

Si vous êtes sur Jetson Nano et que vous avez utilisé l’image disponible ici comme système d’exploitation, vous pouvez passer cette étape car GNU Radio 3.8 est déjà installé.

Pour installer GNU Radio Companion 3.8 :

sudo add-apt-repository ppa:gnuradio/gnuradio-releases-3.8

sudo apt-get update

sudo apt-get install gnuradio

GR-Satellites

La station sol a besoin de la librairie gr-satellites pour fonctionner. Pour l’installer :

sudo apt-get install python3-pip

sudo pip3 install requests construct

git clone https://github.com/daniestevez/gr-satellites.git

cd gr-satellites

git checkout maint-3.8

mkdir build && cd build

cmake ..

make -j4

sudo make install

sudo ldconfig

Vous pouvez ensuite vérifier l’installation avec la commande :

gr_satellites

Vous pouvez avoir une erreur vous disant que le module « satellites » est introuvable. Dans ce cas :

export PYTHONPATH=/usr/local/lib/python3/dist-packages/

Pour appliquer cette correction à chaque démarrage du Linux, il suffit d’ajouter la commande précepent à la fin du fichier ./bashrc :

sudo nano ~./bashrc

Tous les logiciels nécessaires au bon fonctionnement de la station sont désormais installés.


Création du ramdisk

La station sol uutilise une fifo pour envoyer le flux IQ de la clé SDR vers le GNU Radio de démodulation. Pour des questions de performance et pour éviter d’endommager la mémoire principale à cause des cycles de lecture / écriture, cette fifo est placée dans un ramdisk.

La fifo est créée automatique par sdr4space.light mais il faut cependant créer le ramdisk. Pour cela, il suffit d’ajouter une ligne à la fin du fichier /etc/fstab :

sudo nano /etc/fstab

La ligne à ajouter :

tmpfs /opt/GS_ramdisk tmpfs   defaults,size=128M   0 0

Cette ligne va créer un ramdisk de 128M à l’emplacement /opt/GS_ramdisk. Vous pouvez modifier cet emplacement si vous le souhaitez, il faudra juste penser à le modifier également dans le fichier de configurationgénéral config.js.

Pensez à faire un reboot pour avoir apparaître le ramdisk.


Installation des scripts

Tous les scripts nécessaires au fonctionnement de la station sont disponibles surmon Github. Pour les installer, il faut suffit de cloner le dépôt dans le dossier que vous aurez choisi :

git clone https://github.com/ebecamel/SDR_automatic_GS.git

Dans le dossier obtenu, vous trouverez un répertoire software. Ce répertoire contient tout le nécessaire :

  • Les scripts de démodulation GNU Radio dans GNU_Radio,
  • La liste des satellites et le fichier de configuration général dans config,
  • Les fichiers javascripts dans scripts-js,
  • Le fichier .sh permettant le lancement du bon GNU Radio en focntion du mode du satellite choisi.

Configuration de la station

Avant de commencer à utiliser la station, vous devez compléter les 2 fichiers présents dans le dossier config.

config.js

Ce fichier contient tous les différents paramètres utiles pour la station sol, à savoir :

  • Groupe Ground station configuration : permet de définir les coordonnées GPS de la station (en degrés décimaux) et son altitude (en mètres),
  • Groupe file path : permet de définir le lien vers les TLE (par défaut la station les TLE des satellites disponibles sur SatNOGS depuis Celestrak), l’emplacement du .sh permettant le lancement des GNU Radio (ne pas toucher si pas déplacé) et l’emplacement du ramdisk,
  • Groupe rtlsdr : permet de définir le gain à appliquer à la clé SDR,
  • Groupe print in terminal : permet d’afficher ou non dans le terminal les prochaines passes et le debug général,
  • Groupe upload config :
    • FTP : permet d’activer ou non l’envoi FTP à chaque fin de passage. Si FTP activé permet de définir les paramètres de connexion du serveur à utiliser,
    • SIDS : permet d’activer ou non l’envoi SIDS (pour les télémétries uniquement) et i activé permet de définir l’adresse du serveur et l’indicatif à utiliser pour l’envoi.
sat_list.txt

Ce fichier contient la liste des satellites que vous souhaitez suivre. Pour le remplir, il faut respecter la structure suivante :

NORAD;frequence;MODE

Saisissez une ligne par satellite, et faites attention à ne pas laisser de ligne vide à la fin du fichier.

  • NORAD : numéro NORAD du satellite,
  • frequence : fréquence à recevoir en Hz (par exemple 145.250e6 , e6 donnant des megas),
  • MODE : mode à recevoir du satellite. Sont disponibles :
    • NFM : réception FM bande étroite,
    • TM : télémétrie du satellite. SI le satellite existe sur SatNOGS le choix de la modulation sera fait automatique par GNU Radio,
    • APT : réception des images APT des satellites météo NOAA15, NOAA18 et NOAA19,
    • PD120 : réception des images SSTV PD120 transmises par l’ISS.

Lancer la station sol

Le lancement de la station sol se fait depuis un terminal. Ouvrez en donc un dans le dossier où se trouve le .appImage de sdr4space.light (je vous recommande de placer le .appImage dans le dossier software du git). Si le .appImage est à l’emplacement recommandé, lancez la commande suivante :

./sdr4space_lite_x86_64.AppImage -d scripts-js/

Si le .appImage est un dossier différent, pensez à adapter les chemins vers le .appImage et vers le dossier scripts-js du git.

Une fois la commande éxécutée, vous devriez avoir l’affichage suivant dans le terminal (si vous avez laissé sur true les différents debug) :

Vous n’avez ensuite plus qu’à attendre un passage de satellite ! Vous trouverai les résultats des passages dans un dossier results qui sera créé dans le répertoire software du git.


Cet article concerne la partie logicielle de station, un autre article lui dédié à la partie matérielle pour une utilisation avec le Jetson Nano sera mis en ligne prochainement.

Décodage DMR avec une clé SDR sous Windows

Le DMR, pour Digital Mobile Radio, est une norme de radio numérique très utilisée dans le milieu professionnel, et qui se répand dans le monde amateur.

Grâce aux clé SDR il est possible d’écouter les fréquences radio avec un investissement moindre. En plus de nous permettre l’écoute des fréquences analogiques, les clé SDR nous permettent également l’écoute des fréquences numériques, DMR notamment. Il suffit d’installer quelques logiciels en plus du logiciel SDR. Alors que les postes DMR sont assez onéreux, les clé SDR les plus répandues sont vendues autour des 10/20€, écouter du DMR avec une clé SDR est donc très intéressant.

Voyons dans cet article comment procéder pour décoder le DMR avec une clé SDR. Un article pour décoder sous Linux est disponible ici.

Les prérequis

Pour suivre cet article vous devez avoir installé votre clé SDR sur votre ordinateur. Si vous ne savez pas comment faire, regardez ici.

Installation du câble audio virtuel

Pour décoder le DMR, il faut pouvoir envoyer ce que nous recevons de la clé SDR vers le logiciel de décodage. Pour éviter de devoir faire un pont entre la sortie écouteurs et l’entrée micro de notre ordinateur, on utilise un logiciel qui va mettre en place un câble audio virtuel.

Il s’agit du logiciel VB-Cable, téléchargeable ici.

Téléchargez ce logiciel et décompressez l’archive dans le dossier que vous voulez, un dossier dédié à VB-Cable.

Une fois l’archive décompressée, exécutez VBCABLE_Setup_x64.exe (ou VBCABLE_Setup.exe pour le 32Bits) en mode administrateur.

Sur la fenêtre qui s’ouvre, cliquez sur « Install Driver ».

Lancement de VB-Cable.

Vous aurez ensuite un message vous demandant de redémarrer votre ordinateur pour finaliser l’installation, et la fenêtre est devenue celle ci-dessous. Redémarrez donc votre ordinateur.

VB-Cable après l’installation.

Après avoir redémarré votre ordinateur, si vous allez consulter la liste de vos périphériques d’enregistrement, vous allez voir un périphérique nommé « CABLE Output » ; c’est la sortie de votre câble audio virtuel. Vous pouvez trouver l’entrée « CABLE Input » dans les périphériques de lecture.

Liste des périphériques d’enregistrement après l’installation.

Installation du logiciel de décodage DMR

Maintenant que le câble audio virtuel est installé, on peut installer le logiciel de décodage. Le logiciel utilisé est DSDPlus, disponible ici.

Téléchargez DSDPlus et les fichiers DLL (les 2 premiers liens de téléchargement de cette page).

Décompressez l’archive de DSDPlus dans le dossier que vous voulez, ce dossier deviendra le répertoire de DSDPlus. Décompressez ensuite l’archive des DLL dans ce dossier.

Si maintenant dans le dossier de DSDPlus vous lancez « DSDPlus.exe », vous devriez avoir ceci :

DSDPlus au lancement.

DSDPlus, donc le logiciel de décodage, est installé.

Commencer à décoder avec DSDPlus

Maintenant que tous les logiciels sont installés, commençons le décodage.

En premier lieu, il faut demander au logiciel SDR d’envoyer ce qu’il reçoit sur notre câble audio virtuel, autrement dit il faut configurer la sortie audio du logiciel SDR sur « CABLE Input », l’entrée de notre câble virtuel.

Sur HDSDR, se rendre sur « Soundcard », puis sélectionner « CABLE Input ».

Sélection de l’entrée du câble audio virtuel comme sortie de HDSDR.

Sur les autres logiciels SDR la manœuvre peut être différente mais l’esprit reste le même.

Désormais, tout ce qui est reçu par le logiciel SDR ne sort plus par vos hauts-parleurs mais va sur le câble audio virtuel.

Demandons donc à DSDPlus de décoder ce qui circule sur ce câble virtuel en utilisant comme source la sortie de ce câble.

Lorsque nous lançons DSDPlus, ce dernier nous affiche la liste des périphériques d’entrée/sortie disponibles (encadrée ici en bleu) et les périphériques d’entrée/sortie qu’il utilise (encadrée ici en rouge).

Listes des périphériques sur DSDPlus.

On peut voir dans les périphériques d’entrée (« audio input device ») la sortie de notre câble audio virtuel en n°3.

Cependant, dans la liste des périphériques utilisés (cadre rouge), on voit que DSDPlus utilise actuellement comme source le microphone de l’ordinateur (le périphérique n°1). Pour remédier à cela, on va créer un fichier .bat dans lequel on demandera à DSDPlus d’utiliser comme source la sortie du câble audio et comme périphérique de sortie nos hauts-parleurs.

Créez donc un fichier .txt lambda que vous allez nommer « DSDPlus », et changez le « .txt » en « .bat ».

Éditez ce fichier .bat (clic droit puis « Modifier ») et saisissez dedans :

start DSDPlus.exe -i3 -o1

Cette ligne demande à DSDPlus de se lancer : « start DSDPlus.exe », en choisissant comme périphérique d’entrée le périphérique n°3 : « -i3 », et comme périphérique de sortie le n°1 : « -o1 ». Bien entendu, le numéro des périphérique peut être différent sur votre ordinateur, adaptez donc ces numéro pour votre ordinateur.

A partir de maintenant lancez DSDPlus en exécutant le .bat

Vous pouvez désormais décoder du DMR grâce à votre clé SDR.

Décodage et affichage des géolocalisations

Certains réseaux DMR permettent également un suivi GPS des véhicules par exemple, en utilisant du LRRP. DSDPlus est capable de décoder et d’afficher ces informations sur une carte.

Pour cela, lancez DSDPlus depuis votre .bat, et lancez ensuite « LRRP.EXE », cet exécutable se trouve dans le dossier de DSDPlus.

Vous devriez avoir cette fenêtre en plus d’un terminal :

Carte LRRP.

Si le réseau que vous écoutez utilise le LRRP, vous verrez les positions s’afficher sur cette carte. Les commandes clavier pour naviguer sur la carte sont les suivantes :

Commandes utilisables sur la carte LRRP. Cette liste est disponible en tapant sur la touche « ? » ou « Maj+? » du clavier.

Carte avec 3 positions de véhicules décodées.

Toutes les positions GPS reçues sont sauvegardées dans le fichier DSDPlus.LRRP, modifiez le fichier et videz son contenu pour effacer les anciennes positions GPS reçues de la carte. Ce fichier sera créé après réception des premières coordonnées.

Installation d’une clé SDR sous windows

Les clé SDR permettent d’écouter bon nombre de fréquence pour une somme modique (entre 10€ et 20€ pour les modèles les plus répandus).

Pour utiliser cette clé SDR, il faudra juste installer un logiciel sur votre ordinateur, dans cet article nous allons traiter l’installation sous Windows. Un article pour l’installation sous Linux est disponible ici.

Le premier branchement de la clé sur l’ordinateur

Nous allons commencer par installer les drivers nécessaires. Pour cela, commencez par connecter la clé sur le port USB de votre ordinateur qui sera le port où votre clé fonctionnera. Une fois la clé branchée, empêchez Windows de rechercher les pilotes nécessaires.

Il faut maintenant installer les drivers de la clé sur l’ordinateur à l’aide du logiciel Zadig, téléchargeable ici. Une fois Zadig téléchargé, lancez-le. Vous devriez avoir cette fenêtre :

Zadig au lancement.

Rendez-vous ensuite dans « Options », puis cochez « List All Devices ».

Menu « Options » de Zadig.

Vous devriez désormais pouvoir dérouler la liste des périphériques qui était grisée au début, et dans cette liste vous devriez trouver les 2 périphériques suivants (vous pouvez en avoir d’autres) :

Liste des périphériques dans Zadig.

Sélectionnez le périphérique en bleu dans l’image ci-dessus (celui se terminant par « (Interface 0) » et cliquez sur « Install Driver » (le bouton pourra aussi s’appeler « Reinstall Driver » en fonction de votre ordinateur).

Après avoir laissé travailler Zadig quelques instants, vous devriez avoir cette fenêtre avec un nouveau nom pour le périphérique sélectionné plus haut (le nom peut varier légèrement) :

Zadig après avoir installé le driver.

Votre clé SDR peut désormais être utilisée avec votre ordinateur.

Le logiciel pour écouter les ondes avec votre clé

Votre clé est installée mais il manque encore un logiciel, il s’agit du logiciel pour écouter les ondes radio.

Il en existe plusieurs, des gratuits comme des payants, certains offrants plus d’options que d’autres. Mon choix s’est porté sur le logiciel HDSDR, disponible ici, mais vous pouvez également utiliser SDRSharp ou SDRuno.

Le logiciel HDSDR.

Pour l’installer, commencez par le télécharger ici, et installez-le en suivant les instructions.

Une fois installé, rendez-vous dans son dossier d’installation et mettez-y le fichier ExtIO_RTL2832.dll, téléchargeable ici.

Vous pouvez maintenant utiliser votre clé SDR avec le logiciel HDSDR.

 

Installation d’une clé SDR sous linux

Les clé SDR permettent d’écouter bon nombre de fréquence pour une somme modique (entre 10€ et 20€ pour les modèles les plus répandus).

Pour utiliser cette clé SDR, il faudra juste installer un logiciel sur votre ordinateur, dans cet article nous allons traiter l’installation sous Linux. Un article pour l’installation sous Windows est disponible ici.

Installation du logiciel

Alors que sous Windows il faut commencer par installer les drivers, l’installation sous Linux est lus simple.

Commencez par installer le Logiciel GQRX. Pour cela, tapez dans votre terminal la commande :

sudo apt-get install gqrx-sdr

Terminal avec la commande pour installer GQRX.

Après avoir installé GQRX, branchez votre clé et lancez-le. Vous devriez avoir une fenêtre pour choisir les entrées et les sorties. Choisissez votre clé SDR dans les périphériques d’entrée comme ci-dessous.

Si la clé n’apparait pas, une solution au problème peut être de blacklister son driver. Pour cela, créez un fichier rtlsdr.conf dans /etc/modprobe.d et saisissez dedans la ligne suivante :

blacklist dvb_usb_rtl28xxu

Supprimez ensuite le pilote avec la commande suivante :

sudo modprobe -r dvb_usb_rtl28xxu

Choix du périphérique d’entrée.

Une fois la clé sélectionnée, cliquez sur « OK ».

Là une nouvelle fenêtre se lance, il s’agit de GQRX en lui même. Vous n’avez plus qu’à cliquez sur l’icône en haut à gauche (en dessous de « File ») pour commencer à écouter avec votre clé SDR.

Le logiciel GQRX.

Comme sous Windows il existe plusieurs logiciels pour clé SDR, celui que je viens de vous présenter est simplement celui que j’utilise, n’hésitez pas à essayer les autres.