-
Recevoir des images en provenance de l'ISS
Connaissez-vous le programme ARISS (Amateur Radio on the International Space Station) ? Il permet aux radioamateurs du monde entier de communiquer avec les astronautes à bord de la ISS. Dans le cadre de ce programme, ARISS diffuse parfois des images en utilisant un protocole du nom de SSTV, permettant ainsi aux passionnés comme nous de recevoir des photos directement depuis l’espace.
SSTV
La SSTV (Slow Scan Television) est une méthode de transmission d’images avec des ondes radios. Ça existe depuis 1950 et ce n’est plus trop utilisé aujourd’hui parce qu’envoyer une image, c’est quand même plus facile avec Internet. Le signal est facilement reconnaissable grâce à une tonalité bien particulière dont voici un exemple. Ce son va ensuite être décodé grâce à des logiciels spécifiques pour être converti en une image de ce type :
Pour rentrer en détail dans son mode de fonctionnement, il y a ce pdf qui est pas mal.
Préparation
Programme ARISS
Vouloir recevoir des images de l’ISS c’est bien, encore faut-il qu’elle soit en train d’en émettre. Et pour le coup, c’est assez rare, 1 à 2 fois par an seulement. Sur le site d’ARISS France, vous pourrez consulter l’actualité afin de voir si une transmission SSTV est prévue. Lorsqu’il y en a, ça dure environ 1 semaine durant laquelle on a plusieurs occasions de recevoir des images.
Passage de l’ISS
Si une transmission SSTV est prévue, alors il va falloir prédire les horaires de passage de l’ISS. Pour cela, plusieurs méthodes, dans mon cas, j’utilise le site AMSAT.
Dans le rectangle rouge, on entre nos coordonnées géographiques puis on clique sur Predict. On peut voir la liste des prochains passages de l’ISS au dessus de nous. On va préférer se concentrer sur les passages avec une élévation élevée (rectangle vert) donc minimum 20 sauf si vous êtes dans une zone avec un horizon super dégagé.
Logiciel
On peut faire de la SSTV avec un simple talkie-walkie permettant d’écouter le signal et en même temps, depuis un logiciel le décoder. C’est la méthode la plus simple, mais le décodage du signal se fait avec un micro (téléphone ou ordinateur), ce qui n’est pas optimal.
Dans mon cas, je vais procéder avec la SDR en utilisant le logiciel SDR++ pour recevoir le signal et Black Cat SSTV pour le décoder car étant sur Mac c’est le seul fiable que j’ai trouvé. Si vous êtes sur Linux, prenez QSSTV et si vous êtes sur Windows, utilisez MMSTV.
Pour décoder une image, le logiciel SSTV attend en entrée le signal audio. Or, notre signal audio étant présent sur notre logiciel SDR, il va falloir trouver un moyen de relier les deux logiciels. Pour cela, la solution la plus simple à mettre en oeuvre est l’utilisation d’un câble audio virtuel. Voici un schéma de comment ça fonctionne :
Pour réaliser ce câble virtuel, le plus simple est d’installer VB-cable.
Matériel
L’idéal pour recevoir un bon signal serait de se faire une antenne spécialement calibrée pour la fréquence à laquelle l’ISS envoie son signal. Comme j’avais la flemme, j’ai utilisé ce que j’avais déjà à savoir une antenne QFH 137MHz et une antenne Yagi pour la télévision terrestre.
L’antenne Yagi étant directive, il va falloir suivre la position de l’ISS à la main, y a pleins d’applis pour la tracker. Pour l’antenne QFH, elle est omnidirectionnelle donc rien de spécial à faire.
Côté SDR, n’importe quel récepteur fera l’affaire, j’ai eu des résultats correctes avec la clé RTL-SDR V4 et le SDRPlay RSP1B.
Réception
Comme ces transmissions sont rares, je ne vais pas prendre le risque de décoder en live mais je vais d’abord enregistrer le signal et le décoder hors ligne, comme sur le schéma Traitement offline un peu plus haut. Voici mes setups :
Depuis SDR++, on règle la fréquence à laquelle le contact ARISS est prévue, dans mon cas 145.800MHz. On sélectionne NFM comme modulation.
Dans la section Record, on lance l’enregistrement en appuyant sur Record.
Si tout se passe bien, vous devriez voir clairement le signal apparaître. N’hésitez à régler le Max et le Min à droite pour bien refaire ressortir le signal sur la cascade.
La station n’émet pas en continue donc si vous recevez rien au début c’est normal, soyez patient. Une tonalité bien précise marquera le début de la transmission.
Une autre tonalité marquera la fin de la transmission, vous pouvez stopper l’enregistrement, noter où le fichier .wav est enregistré et passer au décodage de notre signal.
Décodage
On ouvre notre enregistrement avec Audacity et on change l’output en allant au milieu dans Audio Setup -> Playback Device et on sélectionnes VB-Cable.
Depuis le logiciel SSTV, on modifie l’input en sélectionnant aussi VB-Cable. On peut choisir le mode SSTV car il est donné par ARISS donc PD120. En auto, ça devrait trouver tout seul.
On a plus qu’à lancer l’audio depuis Audacity et automatiquement, le logiciel SSTV va commencer à former l’image.
Voici quelques exemples d’images que j’ai reçue, à gauche avec l’antenne QFH et à droite avec la Yagi :
Si vous voulez vous entraîner à décoder des signaux SSTV, vous avez des challenges comme celui-ci sur Root-me ou celui-là sur HackTheBox.
-
La distribution Linux SDR : DragonOS
La distribution DragonOS est un fork de Lubuntu mais spécialisé pour la SDR. Elle possède déjà un grand nombre d’outils installés bien pratiques comme par exemple GNURadio. C’est super cool pour gagner du temps car nombre de ces tools en radio sont vieux et peuvent être compliqués à mettre en place.
Malgré ces gros avantages, en fin d’article, j’expliquerai pourquoi je ne pense pas que ce soit la meilleure option, même pour les débutants.
Installation
Pour récupérer l’iso, on se rend juste ici. Ensuite, il nous faut un hyperviseur comme VirtualBox ou VMWare, peu importe. Dans mon cas, comme je suis sur Windows, je vais rester au plus simple avec VirtualBox que l’on peut télécharger directement ici. Pour les Mac ARM, il faudra utiliser VMWare :)
On peut lancer VirtualBox et cliquer sur le bouton New afin d’y importer notre iso.
On peut cliquer sur Next pour allouer nos ressources matérielles. Je ne sais pas trop ce qui est le mieux, mais pour la mémoire vive, 4Go devrait faire l’affaire. Dans le doute, comme il y a des logiciels qui peuvent être très gourmands, je mets 8Go (8192Mb). Pour le CPU, pareil, ça dépend de votre configuration, je le monte à 6 mais 2 ou 4 devraient suffire.
Puis, on reclique sur Next pour allouer l’espace disque. Il faut le mettre à 30Go minimum puisque vous rencontrerez plus tard une étape pour laquelle les 30Go minimum seront nécessaires.
Et re Next puis Finish.
Premier lancement
A présent, on double clique pour lancer DragonOS. Il est possible que vous ayez une page comme ça :
Vous pouvez faire entrer et après quelques instants, on arrive sur le bureau qui se présente ainsi :
L’installation n’est pas encore finie, on remarque sur le bureau le Install DragonOS FocalX. Il faut l’installer car sinon, à chaque fois que l’on va éteindre la VM, tout ce qu’on aura fait dessus sera perdu.
Du coup, on double clique, et on suit l’installation. Pour ce qu’il faut cocher, on peut laisser par défaut, c’est très bien.
Après un long moment, ça nous propose de redémarrer la VM et on sera fin prêts à s’en servir !
Découverte
Sur DragonOS, on va retrouver une multitude de logiciels préinstallés donc on va pas tous les voir. Je vous laisserai les découvrir par vous même en fonction de vos usages, mais sachez qu’il y en a pour tous les goûts niveau radios.
Bref, testons tout ça et sortons notre récepteur SDR. Dans mon cas, j’utilise la clé RTL-SDR V4 et un logiciel comme par exemple le super SDR++.
Avant de continuer, il va falloir dire à Virtual Box de prendre en compte notre clé SDR branchée sur le port USB de notre hôte. Pour ça, en haut, on fait Devices -> USB et on clique sur notre récepteur SDR.
À présent, on est prêts à écouter. Sur SDR++, dans Source, on sélectionne RTL-SDR et juste en dessous on choisit notre récepteur, on clique sur le bouton Play en haut et tout fonctionne nickel !
Dossier partagé
Lorsque vous voudrez travailler avec des fichiers de la machine hôte sur votre VM, vous aurez besoin d’un moyen de les faire passer. Une manière simple de le faire est de mettre en place un dossier partagé.
Pour cela, dans un premier temps, il faut que les Additions Invité soient installées. C’est des pilotes qui permettent une meilleure interaction entre la VM et l’hôte.
Donc, depuis la VM, en haut, on va dans Devices -> Insert Guest Additions CD Image…. Puis, on Execute le fichier autorun.sh.
Ensuite, on peut éteindre la VM, on clique sur Settings (l’engrenage jaune) puis Shared Folders. Clic droit et Add Shared Folder.
Enfin, on choisit quel dossier de notre machine hôte on veut partager et on coche Auto-Mount.
À présent, depuis la VM, dans l’explorateur de fichiers, on peut y voir notre dossier partagé sous le nom sf_Downloads.
Si jamais vous avez une erreur comme quoi vous n’avez pas les permissions, ouvrez un terminal et tapez sudo adduser [your-user] vboxsf puis redémarrez la VM et ça devrait être bon.
Et voilà, DragonOS est prêt à être utilisé !
Mon avis
Alors, cette distribution est une solution très pratique pour gagner du temps, bien qu’on puisse s’en passer et installer nos tools directement en local sur notre machine hôte. Je préfère d’ailleurs cette option pour des questions de rapidité, car faire de la SDR sur une VM peut être très gourmand ce qui peut rendre de nombreuses tâches plus longues. On peut évidemment allouer de plus grosses ressources, mais avec un ordinateur portable classique, on en a pas toujours l’occasion. Après, en tant que hôte principal comme sur un Raspberry, je n’ai pas essayé mais ça doit être plus rapide déjà.
De plus, apprendre à configurer soi-même les logiciels, installer les bonnes librairies permet de mieux comprendre ce que l’on fait et surtout d’être plus efficace pour debugger.
C’est pour cela que même pour un débutant, je ne recommande pas d’installer directement DragonOS afin d’y aller étape par étape.
D’autre part, au fil de mon apprentissage, je reviendrai sur cet avis si je me rends compte que certains tools bien spécifiques sont vraiment une horreur à configurer :)
-
Les bases de la SDR (Software-defined radio)
Dans le monde des ondes radio, on utilise traditionnellement des composants qui peuvent faire peur comme des résistances, des condensateurs, des bobines afin de réaliser des systèmes permettant de traiter du signal.
L’inconvéniant, pour nous qui voulions juste découvrir la radio, c’est que chaque composant est une entité physique, qui peut être coûteuse, encombrante, et modifier ses caractéristiques demande des compétences techniques en électronique 🔧.
Heuresement pour nous, grâce au numérique, on va pouvoir simplifier tout ça et avoir la possibilité de plonger dans le monde des radiofréquences pour trois fois rien 🎉.
Récepteur numérique
L’idée va être de numériser le signal le plus tôt possible pour l’envoyer à un CPU (processeur) où l’on pourra commencer notre traitement du signal. L’avantage est que l’on pourra utiliser des algorithmes beaucoup plus complexes, notamment à l’aide des nombres complexes qui sont très difficiles à mettre en place avec des résistances ou autres.
Et oui, ces fameux nombres qu’on pensait inutiles au lycée ont une réelle utilité pour numériser les signaux.
La partie réelle du nombre sert à représenter l’amplitude (sa hauteur en quelque sorte) du signal.
La partie imaginaire, pour représenter sa phase (sa position dans le temps).
Ainsi, on va pouvoir simplifier des opérations mathématiques.
Pas convaincu ? Prenons par exemple la multiplication de deux signaux (inutile de comprendre ce que ça signifie).
Sans nombres complexes, il faudrait utiliser des calculs trigonométriques assez tordus.
Alors qu’avec les nombres complexes, il “suffirait” de multiplier les amplitudes et ajouter leur phase, ce qui se fait simplement avec des opérations algébriques sur les nombres complexes (si si 😄).
De plus, le numérique se met simplement à jour, ce qui est pratique, notamment pour les logiciels ou autres algorithmes.
Un autre gros avantage du numérique est de visualiser le spectre de fréquence ainsi qu’un spectrogramme (qu’on appelle cascade ou waterfall en anglais) ce qui est très pratique pour comprendre ce qui se passe.
C’est comme utiliser WireShark pour analyser les paquets sur un réseau🦈.
Fréquence d’échantillonnage
Les signaux radios sont dit analogiques et comportent une infinité de valeurs, et ça nos CPU n’aiment pas, donc on vient capturer plusieurs points sur le signal à intervalle régulier afin de le transformer en un nombre fini. En fait, c’est plus précis de dire qu’on vient mesurer l’amplitude du signal à intervalle régulier puis qu’on vient stocker tout ça sous forme de nombres. C’est ça qu’on appelle la fréquence d’échantillonnage !
Elle est rendue possible grâce à un convertisseur analogique-numérique (CAN).
Plus on prendra d’échantillons, plus on aura un signal numérique fidèle à la réalité mais plus il sera lourd et long à traiter.
Il existe d’ailleurs un théorème, celui de Nyquist–Shannon qui dit que pour reconstruire à l’identique un signal analogique, il doit être échantillonné à une fréquence au moins deux fois supérieure à sa fréquence maximale. En prenant une valeur 2 fois supérieure, on s’assure de reconstruire un signal analogique très précis.
Récepteurs SDR
Numériser le signal et le traiter par logiciel a un nom, c’est la SDR (Software Defined Radio). Elle est rendue possible par des récepteurs comme par exemple celui-ci :
Ces récepteurs bon marché (lien vers un super kit pour débuter), se branchent en USB à un ordinateur équipé d’un logiciel SDR (il en existe plusieurs). On retrouve un port MCX (Micro Coaxial eXtended), c’est un connecteur coaxial plus petit que l’on relie à notre antenne. Ce dernier ne permet que la réception des signaux mais pas la transmission. Pour bénéficier des deux, il faudrait par exemple utiliser un HackRF.
Logiciels SDR
Une fois en possession d’un récepteur SDR, on n’a plus qu’à s’équiper d’un logiciel SDR. À titre personnel, mon favori est SDR++ pour tout ce qui va être “écoute”.
SatDump qui est une copie de SDR++ mais spécialisée pour l’écoute et le décodage des signaux satellites.
Et mention honorable aussi pour SDRAngel bien pratique avec ses plugins permettant par exemple d’afficher des cartes interactives comme dans le cas de réception ADS-B.
À noter qu’il existe une distribution Linux du nom de DragonOS qui permet d’avoir tous ces logiciels directement installés et configurés tout seul :)
Touch background to close