Depuis mai 2015 les radioamateurs peuvent recevoir des transmissions vidéo numériques provenant directement de la Station Spatiale Internationale (ISS), avec une qualité très supérieure à celle de la télévision à balayage lent (SSTV) utilisée antérieurement. La presse a commencé à en parler en février 2016, à l'occasion du premier contact vidéo direct entre un astronaute et une école dans le cadre d'un programme de promotion des sciences et des techniques. La plupart du temps, l'ISS émet seulement une mire de test noire. Mais les astronautes communiquent parfois avec les radioamateurs pendant leur temps libre ; cette tradition remonte à l'époque de la station Mir. Avec les compétences requises et le matériel adéquat, n'importe qui peut espérer recevoir des images hors des dates planifiées, et même (avec une licence en règle) tenter de discuter en visioconférence avec l'ISS.
Les appellations Digital Amateur TV, Digital ATV et DATV désignent la vidéo numérique sur les bandes amateur. Les radioamateurs adoptent généralement les mêmes normes que les systèmes de télévision numérique grand public : DVB-S (satellite) et DVB-T (terrestre). Dans le contexte de l'ISS, Ham Video désigne l'émetteur embarqué, et Ham TV désigne le canal vidéo descendant combiné avec un canal voix montant pour des contacts en duplex.
Forum DATV (vivadatv.org) - Un forum actif de la communauté DATV.
BATC forum (batc.org.uk) - Un forum ATV britannique avec des sections DATV.
Par rapport aux autres activités DATV, la réception des transmissions DVB de l'ISS présente quelques spécificités :
Bilan de liaison . L'ISS transmet seulement 10 W PIRE environ. La distance minimale est de l'ordre de 400 km (pendant un bref moment, lors des passages les plus favorables). Il est recommandé d'utiliser une parabole de 1,2 m. D'après la norme DVB-S ([DVBS]) et les paramètres FEC utilisés, une réception quasi-sans-erreurs requiert Eb/N0 ≥ 4,5 dB.
Pointage . Contrairement aux stations DATV terrestres et aux satellites géostationnaires, l'ISS est un émetteur mobile. Pour une réception optimale, il est recommandé de disposer d'un rotor azimut/élévation piloté par ordinateur avec une précision de ±2° et une vitesse de balayage de 5°/s. (Mais une petite antenne fixe suffit pour débuter - voir plus bas.)
Polarisation . Les antennes à polarisation circulaire ne sont pas aussi courantes que celles à polarisation linéaire.
Fréquence . La plupart des expérimentations DATV sont menées dans les bandes 70 cm et 23 cm qui sont couvertes par les tuners des récepteurs DVB-T et DVB-S grand public. Pour des raisons techniques l'ISS transmet dans la bande 13 cm (2369, 2395, 2422 ou 2437 MHz). Il faut donc recourir à des convertisseurs de fréquence ou à des récepteurs dédiés.
Bruit de fond . Selon la configuration de l'émetteur, le signal se situe soit à l'intérieur, soit juste à côté de la bande ISM 2,4 GHz qui est aussi utilisée par WiFi, Bluetooth et les fours à micro-ondes.
Bande passante . La transmission est généralement modulée à 2 Msymboles/s, ce qui correspond à 2 MHz de spectre radio (2.7 MHz avec le roll-off). C'est à la portée de quelques récepteurs logiciels amateurs. On peut obtenir des résultats avec un récepteur USB à bas coût de type RTL-SDR, mais cela exige davantage de travail.
Mise en réseau . Comme une station ne peut recevoir la vidéo que pendant quelques minutes à chaque passage de l'ISS, il faut organiser un réseau de stations de réception pour maintenir le contact plus longtemps. À ce jour il y a un répéteur à l'adresse http://www.batc.tv/iss/.
Pour plus d'informations :
A DATV transmitter on Columbus (ariss-eu.org) - historique du projet (PDF) ;
HAM Video (ariss-eu.org) - détails techniques et photos des antennes ;
HAM-TV (kayser.it) - site de l'entreprise qui a fourni l'émetteur ;
HamTV on the ISS (ariss.org) - actualités ;
HamTV Experiment on-board ISS (amsat.it) - choix de conception et bilan de liaison (PDF) ;
Simple Station for the Ham Video Launch Campaign (ariss.org) - équipement recommandé, antennes hélicoïdales à fabriquer (PDF) ;
rapports de réception ARISS pendant la campagne de tests de 2014 (spaceflightsoftware.com) - résultats avec divers types d'antennes ;
Current Status of ISS Stations (ariss.org) - l'émetteur est désactivé lorsque l'équipage affecte son alimentation 28 V CC à d'autres usages.
Un des objectifs de ce projet est de réduire les coûts et autres barrières à l'entrée. [IZ8YRR] a déjà montré qu'une petite antenne fixe de 12 dB permet de réaliser des expériences intéressantes.
Un autre objectif est d'étudier les avantages des radios logicielles (SDR). Les expérimentations DATV utilisent déjà couramment des modulateurs logiciels, mais côté réception on trouve généralement des démodulateurs "boîte noire" intégrés dans des cartes PCI, des adaptateurs USB ou des appareils autonomes ([N6GHZ]). Un récepteur logiciel open-source permet de se familiariser avec les techniques de traitement du signal modernes, de tester des stratégies de démodulation nouvelles, et de s'affranchir de la disponibilité d'équipements sur étagère trop spécifiques.
Voici la chaîne de réception utilisée pour ma première tentative réussie.
Matériel :
Antenne WiFi 2,4 GHz 24 dB TP-Link TL-ANT2424B . La polarisation linéaire fait perdre 3 dB, mais il s'agit d'un produit relativement bon marché et commercialisé à grande échelle, ce qui n'est pas le cas des antennes hélicoïdales.
Amplificateur faible bruit et convertisseur de fréquence BOTE BT-480 (oscillateur 3650±1,5 MHz, gain 50 dB, bruit 0,4 dB). C'est le seul composant spécifique.
Répartiteur TV satellite 2 voies 5 - 2400 MHz.
Récepteur satellite autonome sous Linux embarqué Xtrend ET 4000 . Je voulais l'utiliser pour confirmer la présence d'un signal valide avant de me lancer dans la réception logicielle, mais il ne détecte rien. Finalement il sert seulement d'alimentation 13 V pour le convertisseur de fréquence.
USRP de Ettus Research avec carte DBSRX (800 - 2300 MHz, échantillonnage I/Q sur 12 bits à 8 Méch/s). C'est l'élément le plus coûteux. Un des prochains objectifs du projet est de sélectionner un récepteur SDR plus abordable.
Ordinateur portable générique (Intel Celeron 2955U 1,4 GHz) sous Linux.
Logiciels :
Réception :
Relever les coordonnées locales avec un récepteur GPS ou sur Google Maps.
Avec gpredict, sélectionner un passage de l'ISS dépassant 60° d'élévation. Vérifier avec un service en ligne de prédiction d'orbites de satellites, par exemple AMSAT. Tenir compte des fuseaux horaires et de l'heure d'été.
S'assurer que l'émetteur sera actif. L'ARISS semble avoir des informations à jour ici.
Pointer manuellement l'antenne vers le point le plus haut au dessus de l'horizon de la trajectoire prédite.
Activer la recherche de canaux sur le récepteur satellite, au moins pour activer l'alimentation 13 V du downconverter.
Démarrer gqrx. Centrer la réception sur 1255 MHz (ou 3650 MHz moins la fréquence d'émission, si ce n'est pas 2395 MHz).
Régler les gains :
GC1~40dB, GC2=0, ADC-pga=0
. En principe on minimise le bruit interne en saturant d'abordGC1
.Lorsque le signal devient visible dans le spectrogramme, démarrer l'enregistrement. Il est possible que le signal soit décentré à cause de la faible précision de l'oscillateur local du downconverter. Essayer d'estimer le décalage ; cela facilitera la démodulation logicielle.
Démodulation et décodage :
Utiliser ce script (tiré en grande partie de [GRDVB]) :
#!/usr/bin/env python # export PYTHONPATH=gr-dvb-pabr/swig:gr-dvb-pabr/swig/.libs:gr-dvb-pabr/python file = "gqrx_YYYYMMDD_hhmmss_FFFFFFFFFF_RRRRRRR_fc.raw" sample_rate = 8e6 symbol_rate = 2000e3 freq_shift = 0e3 from gnuradio import gr import dvb_swig import dvb_s_modulator, dvb_interleaver_bb tb = gr.top_block("DVBS_Receiver") src = gr.file_source(gr.sizeof_gr_complex, file, False) mixer = gr.multiply_cc() tb.connect(src, (mixer,0)) freq_offset = gr.sig_source_c(sample_rate, gr.GR_SIN_WAVE, freq_shift, 1, 0) tb.connect(freq_offset, (mixer,1)) demod = dvb_s_modulator.s_demodulator_cc(sample_rate, symbol_rate) #demod = dvb_s_modulator.s_demodulator2_cc(sample_rate, symbol_rate) puncturing = [1,1] # For rate 1/2 decode = dvb_swig.depuncture_viterbi_cb(puncturing) deinterleaver = dvb_interleaver_bb.deinterleaver_bb() pad = dvb_swig.pad_dvb_packet_rs_encoded_bp() rs_decoder = dvb_swig.rs_decoder_pp() derandomizer = dvb_swig.derandomizer_pp() depad = dvb_swig.depad_mpeg_ts_packet_pb() dst = gr.file_sink(gr.sizeof_char, "out.ts") tb.connect(mixer, demod, decode, deinterleaver, pad, rs_decoder, derandomizer, depad, dst) tb.run()
Décoder le Transport Stream MPEG obtenu :
$ mplayer out.ts or $ ffplay out.ts
Pendant cet enregistrement (début octobre 2015) l'ISS émettait avec les paramètres suivants. On notera que le bitrate audio est étonnamment élevé.
Stream #0.0[0x100]: Video: mpeg2video, yuv420p, 720x480 [PAR 8:9 DAR 4:3], 903 kb/s, 35.45 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x101]: Audio: mp2, 44100 Hz, 2 channels, s16, 256 kb/s
J'ai pu démoduler des signaux capturés avec un récepteur USB RTL-SDR échantillonnant en quadrature sur 8 bits à 2,4 Méch/s avec le même équipement que ci-dessus. Ceci exige quelques précautions supplémentaires :
Régler la fréquence aussi près que possible de la fréquence du signal, afin d'éviter l'atténuation en bord de bande et/ou le repliement de spectre . Les tentatives précédentes suggéraient que mon downconverter induisait un décalage d'au moins 1 MHz. J'ai donc cherché le signal autour de 1256 MHz au lieu de 1255 MHz. J'ai lancé une seconde instance de GQRX avec l'USRP échantillonnant à 4 Méch/s afin de pouvoir estimer visuellement la fréquence réelle dès l'apparition du signal. J'ai alors ajusté la fréquence du récepteur RTL-SDR dans la première instance de GQRX. On peut voir tout ceci dans le spectrogramme (Figure 4, « Configuration avec répartiteur 3 voies et récepteur RTL-SDR »). Il ne restait ensuite plus que quelques secondes pour enregistrer le signal sur disque avant que l'ISS ne sorte du champ de l'antenne. Tout ceci pourrait être réalisé automatiquement et sans USRP, en scannant quelques MHz autour de la fréquence nominal avec le récepteur RTL-SDR jusqu'à ce que le signal soit identifié.
Désactiver l'algorithme de synchronisation en fréquence de
gr-dvb
(digital.fll_band_edge_cc()
danspython/dvb_s_modulator.py
) . Il fonctionne correctement avec un signal de 2 MHz échantillonné à 4 Méch/s, mais beaucoup moins bien à 2,4 Méch/s.Corriger l'erreur résiduelle sur la fréquence à 10 kHz près . Il suffit d'ajuster le paramètre
freq_shift
jusqu'à ce que les pertes de paquets soient minimales.
Les downconverters MMDS sont couramment utilisés par les radioamateurs dans la bande des 13 cm. Voir par exemple :
Il devrait être possible de recevoir les transmissions DATV de l'ISS avec la configuration ci-dessous. (La variante que j'ai testée avait un oscillateur compensé en température et une connectique SMA.)
- réflecteur de 24 dBi (éventuellement une vieille parabole de TV satellite, ou une construction maison) ;
tête MMDS BOTE BT-281B (2200 - 2400 MHz, oscillateur 1998±0,030 MHz, gain 39 dB, bruit 1,2 dB) : 12 EUR ;
Cordon type F pour TV satellite :10 EUR ;
Injecteur d'alimentation BOTE BT-288K (18 V, 300 mA, prise européenne): 5 ;
Cordon F vers MCX : 6 EUR
Récepteur R820T2 générique (MCX, non compensé en température) : 10 - 15 EUR ;
PC sous Linux (ou éventuellement un smartphone avec USB OTG)
Démodulateur logiciel.
Le signal en sortie de la tête MMDS est aux alentours de 400 MHz. C'est hors de portée des récepteurs DVB-S usuels.
Le convertisseur BT-281B est plus précis en fréquence que le BT-480 : ±30 kHz au lieu de ±1.5 MHz (d'après les spécifications). Un récepteur RTL-SDR non compensé en température ajoute généralement un écart d'au plus 100 ppm, soit ±40 kHz à 400 MHz. Il n'est donc pas utile de brancher un analyseur de spectre en parallèle pour localiser le signal comme dans la Section 4, « Réception DATV ISS avec un récepteur RTL-SDR ». Par ailleurs, l'erreur totale sur la fréquence est un ordre de grandeur en dessous de la vitesse de modulation (2 MHz) ; la plupart des démodulateurs devraient pouvoir s'en accommoder. Cependant, comme les signaux DVB-S de l'ISS occupent toute la bande passante d'un récepteur RTL-SDR tournant à 2,4 Méch/s, il est préférable de centrer le signal pour éviter l'atténuation en bord de bande. Le surcoût d'un modèle RTL-SDR TCXO est donc justifié.
Notons que le décalage Doppler est négligeable par rapport à la largeur des signaux en question.
La variante BT-283 intègre une antenne Yagi (gain non spécifié) au lieu d'un dipôle, mais sa plage d'entrée nominale est 2500 - 2700 MHz. Je l'ai testée pendant un passage de l'ISS au zénith et le signal était à peine détectable. Il reste à déterminer si c'est dû à l'atténuation de l'amplificateur à 2395 MHz ou au faible gain de l'antenne elle-même.
Les algorithmes académiques de démodulation DVB-S, implémentés par exemple dans gr-dvb, sont coûteux en puissance de calcul. J'ai écrit un démodulateur plus simple qui tourne en temps réel sur des plate-formes embarquées, en contrepartie d'une sensibilité réduite : voir [LEANDVB].
La latence et la consommation électrique élevées d'un démodulateur logiciel sont gênantes pour certaines applications. Je me suis donc intéressé aussi aux récepteurs DVB-S dédiés. Les critères d'évaluation sont:
compatibilité avec les vitesses de modulation faibles (jusqu'à 1,3 Msymboles/s) ;
Tolérance à l'erreur en fréquence induite par les downconverters à bas coût ;
Comportement à faible rapport signal/bruit
capacité à traiter le Transport Stream de l'ISS (qui n'est pas formaté exactement comme les signaux de TV satellite grand public).
Il n'aurait pas été commode de faire des tests en direct avec le signal de l'ISS, puisque qu'il n'est disponible que pendant quelques minutes par jour. Au lieu de cela, j'ai branché les récepteurs à tester sur l'USRP équipé d'une carte RFX2400, et j'ai ré-émis un enregistrement de 4 Méch/s à 2395 MHz.
J'ai également branché en parallèle un récepteur RTL-SDR. Ceci a permis de confirmer que l'oscillateur local du downconverter 3650 MHz n'est pas très fiable.
Ces composants équippent la carte PCI TechnoTrend S2 1600, populaire dans la communauté DATV (au moins sous Windows).
Avec une programmation spécifique, cette carte peut apparemment recevoir jusqu'à 2600 MHz, ce qui doit permettre de recevoir le signal DATV de l'ISS sans downconverter avec une antenne suffisamment directive.
Ces composants équippent la carte PCI TechnoTrend S2 3200, un autre récepteur populaire. Le fabricant indique qu'ils sont en fin de vie.
Ces composants équippent des récepteurs USB à bas coût. J'ai testé le DVBSky S960DVBSky S960DVBSky S960.
Créer iss.conf
en déclarant un transpondeur virtuel à 11.255 GHz :
[ISS] SERVICE_ID = 2395 VIDEO_PID = 256 AUDIO_PID = 257 DELIVERY_SYSTEM = DVBS FREQUENCY = 11255000 SYMBOL_RATE = 2000000 INNER_FEC = 1/2 POLARIZATION = VERTICAL MODULATION = QPSK INVERSION = AUTO
Indiquer à dvbv5-scan que le LNB est de type "standard", ce qui correspond à un décalage de 10,000 GHz. Le récepteur va alors syntoniser sur 1255 MHz, ce qui correspond à 2395 MHz converti par le BT-480.
# dvbv5-scan -l STANDARD -v -T 100 iss.conf ERROR command BANDWIDTH_HZ (5) not found during retrieve ERROR command MODULATION (4) not found during store ... (0x00) Signal= 100.00% C/N= 0.00% postBER= 0 (0x00) Signal= 100.00% C/N= 0.00% postBER= 0 (0x00) Signal= 100.00% C/N= 0.13% postBER= 0 (0x00) Signal= 100.00% C/N= 0.11% postBER= 0 Lock (0x1f) Signal= 100.00% C/N= 0.12% postBER= 0
Le signal est reconnu mais la détection des canaux échoue parce que le flux de l'ISS ne contient pas de Program Map Tables, contrairement aux signaux de télévision par satellite grand public.
Comme nous connaissons les PIDs, nous pouvons récupérer le Transport Stream MPEG de toute façon :
# dvbv5-zap -l STANDARD -c iss.conf ISS -r using demux '/dev/dvb/adapter0/demux0' reading channels from file 'iss.chan' ERROR command MODULATION (4) not found during store tuning to 11255000 Hz video pid 256 dvb_set_pesfilter 256 audio pid 257 dvb_set_pesfilter 257 ... (0x00) Signal= 100.00% C/N= 0.22% postBER= 0 (0x00) Signal= 100.00% C/N= 0.13% postBER= 0 (0x00) Signal= 100.00% C/N= 0.15% postBER= 0 DVR interface '/dev/dvb/adapter0/dvr0' can now be opened
# hexdump -C /dev/dvb/adapter0/dvr0
Fabriquer des antennes hélicoïdales et les comparer avec l'antenne du commerce.
Les rotors d'antennes pour radioamateurs sont chers. Ils sont souvent dimensionnés pour des charges de plus de 100 kg et pour fonctionner en toute saison.
Les antennes de TV satellite à pointage automatique prévues pour les camping-cars pourraient servir de point de départ pour construire des rotors pour petites paraboles. On trouve aussi des antennes de ce type pour les bateaux de plaisance, probablement avec des moteurs plus rapides.
Je construis une monture à fourche pour l'antenne 24 dB et j'étudie d'autres solutions.
Les normes récentes de télévision satellite numérique, comme DVB-S2 and H.264, peuvent transmettre des flux HD. Le flux DATV de l'ISS, lui, utilise les normes DVB-S et MPEG-2 qui datent de 1995, avec un débit très faible. D'un côté, la qualité vidéo sera peut-être décevante (moins bonne que le DVD). D'un autre côté, tous les brevets concernés ont expiré ou expireront très prochainement dans la plupart des pays.
Merci à Edmund Tse d'avoir publié le code source et la documentation de son projet DVB. Quiconque a implémenté des normes ETSI en partant de rien peut apprécier le travail que cela représente.
Tonino Giagnacovo IZ8YRR et Fabrice Bellard ont contribué à la validation de la chaîne de réception.
[DVBS] Digital Video Broadcasting (DVB); Framing structure, channel coding and modulation for 11/12 GHz satellite services . 1997. https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=5316.
[N6GHZ] Low Cost DVB-S Receivers Suitable For HAMTV Reception . 2013. http://ww2.amsat.org/xtra/N6GHZ_HAMTV_Article.pdf.
[IZ8YRR] HamTV reception with a low gain antenna . 2014. http://www.amsat.it/HAMTV%20reception%20with%20a%20low%20gain%20antenna%20-%20IZ8YRR%2020150714.pdf.
[GRDVB] Software Radio for Digital Satellite Television . 2010. http://www.edmundtse.com/wp-content/uploads/2009/04/treatise.pdf.
[LEANDVB] leandvb : Un démodulateur DVB-S logiciel simple et rapide . http://www.pabr.org/radio/leandvb/leandvb.fr.html .
[HAMPADS] Une station de réception portative pour les satellites amateurs . http://www.pabr.org/radio/hampads/hampads.fr.html .