Station sol SDR pour UVSQ-SAT : le software

Partie software de la station sol SDR pour UVSQ-SAT dont l’hardware a été présenté dans cet article.

Fonctionnement général

La station sol n’utilise que 2 logiciels pour fonctionner :

  • SDR4space.lite (site officiel) : téléchargement des TLE, prédiction des passages, correction Doppler, enregistrement des passages
  • GNU Radio Companion (site officiel) : décodage des trames depuis le fichier IQ, écriture des trames dans un fichier .txt, envoi des trames vers la DB de satnogs

Les 2 logiciels utilisés sont gratuits (GNU Radio est open source et gratuit, SDR4space.lite est la version gratuite de SDR4space).

Préparation de la carteSD pour le Jetson nano

La toute première étape est de flasher la carteSD pour le Jetson nano. Pour cela, il suffit de suivre la procédure expliquée sur le site de Nvidia :

Pour la version 2GB :

https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-2gb-devkit

Pour la version 4GB :

https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-devkit

Téléchargement des fichiers de la station sol

Les scripts SDR4space et GNU Radio sont à télécharger depuis ce lien.

Il suffit ensuite de placer les fichiers Javascript .js, le fichier Python .py et le bash .shd dans un même dossier comme dans la capture ci-dessous.

Pensez à rendre exécutable le fichier bash launch_decode.sh avec la commande :

sudo chmod u+x /chemin/vers/launch_decode.sh

SDR4space.lite

La station sol utilise la version gratuite du logiciel SDR4.space afin de prédire les passages du satellite au dessus de la station, de compenser l’effet Doppler au cours des passes, d’enregistrer les passages et lancer le décodage.

Téléchargement

Pour télécharger SDR4space.lite, il suffit de se rendre ici et de choisir la version pour Jetson nano (ou la version classique si vous êtes sur PC).

Une fois votre exécutable téléchargé, placez le dans le répertoire que vous voulez (le même répertoire que les scripts ou autre, au choix).

Pré-requis

SoapySDR

Pour utiliser SDR4space vous devez installer SoapySDR sur le jetson nano. Pour cela, suivez les commandes suivantes (la procédure est également disponible ici) :

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

cd SoapySDR

mkdir build

cd build

cmake ..

make -j4

sudo make install

sudo ldconfig

Vous pouvez vérifier la bonne installation avec la commande suivante :

SoapySDRUtil –info

qui doit vous retourner quelque chose comme ça (vous ne devriez pas encore avoir rtlsdr de disponible dans les Available factories) :

SoapyRTLSDR

Une fois Soapy installé, il faut lui ajouter le support de la clé RTL-SDR. Pour cela :

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

Une fois SoapyRTLSDR installé, vous devriez avoir rtlsdr dans les « Available factories » avec la commande SoapySDRUtil –info.

autres prerequis

sudo apt-get install mosquitto mosquitto-client libliquid1d

Le fichier de configuration

Différentes variables sont à modifier dans le fichier config.js pour adapter le script à votre station sol :

  • gs_latitude et gs_longitude : les coordonnées GPS en degrés décimaux de la station,
  • gs_asl : l’altitude de la station,
  • tle_path : par défaut télécharge les TLE de Celestrak, mais possibilité de pointer vers un autre lien ou un fichier en local,
  • path_cmd_file : chemin absolu vers le fichier launch_decode.sh
  • rtl_gain : Gain de la clé RTL-SDR
  • print_passes et print_debug : permet d’afficher ou non dans le terminal les prochains passages et les messages de debug

Lancement

Vous pouvez ensuite lancer SDR4space.lite avec le script de la station sol avec la commande (commande pour le Jetson nano, à adapter si vous êtes sur PC) suivante :

/chemin/vers/sdr4space.light -d /chemin/vers/dossier/des/scripts

Sur PC le logiciel étant dans un .appImage vous ne devriez pas avoir d’erreur. Sur Jetson nano, vous pouvez cependant avoir des erreurs pour des packages manquants. Si c’est le cas, installez les packages indiqués dans les erreurs.

Si tout se passe bien, vous devriez avoir un résultat comme celui-ci :

Tant que cette commande est en cours d’exécution le Jetson nano fera le tracking du satellite, enregistrera les passages et décodera les trames.

GNU Radio Companion

Le décodage des trames se fait avec un script GNU Radio Companion 3.8. Pour l’installer il faut compiler ses sources sur le Jetson nano (procédure disponible ici):

git clone https://github.com/gnuradio/gnuradio.git

cd gnuradio

git checkout maint-3.8

git submodule update –init –recursive

mkdir build

cd build

cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 ../

make -j4

sudo make install

sudo ldconfig

Au besoin, installez les dépendances nécessaires à l’installation de GNU Radio Companion.

Vous pouvez ensuite vérifier la bonne installation de GNU Radio avec la commande suivante :

gnuradio-companion –help

qui doit vous retourner quelques chose comme ça :

GR-satellite

Le décodage des trames du satellite nécessite la librairie gr-satellites. Pour l’installer :

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

cd gr-satellites

git checkout maint-3.8

mkdir build

cd build

cmake ..

make

sudo make install

sudo ldconfig

Le script GNURADIO

Le script de décodage pour GNU Radio est le fichier .py (au besoin le .grc est également disponible). Quelques modifications sont à apporter dans le fichier nogui_decoder_UVSQSAT_IQ.py pour l’adapter à la station:

  • Ligne 40 : un fichier start_time.ini sera généré par SDR4space dans le fichier des scripts. Il faut donc saisir le chemin absolu jusqu’au dossier des scripts pour que GNU Radio trouve par la suite le fichier start_time.ini
  • Ligne 50 : vous devez saisir votre indicatif pour SatNOG ainsi que les coordonnées GPS de la station en degrés décimaux.
La station sol va maintenant enregistrer les passages du satellite et les décoder avec le GNU Radio. A chaque fois, le fichier grc_out.txt sera écrasé, si vous voulez conserver les données en local sur votre Jetson il vous faut donc faire un script qui renomme ce fichier texte.
Seul l'envoi vers Satnogs est actif pour le moment, mais vous pouvez envoyer les données vers d'autres serveurs SIDS en éditant le .grc et en le recompilant avec GNU Radio.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.