Technique SDR 4

Technique SDR 4

QuatriĂšme Partie

Découverte la réception SDR sous Raspberry Pi OS

J’ai Ă©crit cette suite d’articles dans un but pĂ©dagogique afin d’aider tous ceux qui, comme moi, souhaitaient dĂ©couvrir, en les pratiquant, les techniques de rĂ©ception SDR. Les spĂ©cialistes du domaine trouveront sans doute quelques approximations et erreurs dans mes explications. J’espĂšre qu’ils ne m’en voudront pas et qu’ils me contacteront pour que nous les rectifions ensemble par la suite. Je parle aussi, ici ou lĂ , de difficultĂ©s ou de bugs, si certains les ont surmontĂ©s, qu’ils me contactent pour que nous mettions Ă  jour ce document. S’ils ont aussi parfois de meilleures solutions d’installation ou d’utilisation, qu’ils n’hĂ©sitent pas Ă  me l’écrire.

CONTACTEZ-MOI Ă  l’adresse : f80543@gmail.com

Introduction

La rĂ©ception des signaux Ă©mis par les radiosondes et la « chasse Â» qui peut s’en suivre sont deux activitĂ©s passionnantes. Avec ce quatriĂšme article, nous allons poursuivre l’utilisation des nano-ordinateurs Raspberry Pi et de leur systĂšme d’exploitation Ă©ponyme, pour voir comment il est possible de suivre ces objets en direct, de rĂ©cupĂ©rer les points GPS de leur trajectoire et d’estimer celui de leur chute au sol.

Quoi dĂ©coder ?

Voici, mis Ă  jour, le tableau prĂ©sentant un aperçu des dĂ©codages traitĂ©s dans cette sĂ©rie d’articles. Les cases vierges dans la derniĂšre colonne signifient que la rĂ©ception sera traitĂ©e dans les mois qui viennent.

radio-logicielle

radio-logicielle
radio-logicielle
Exemples de radiosondes actuellement utilisĂ©es dans le monde (source illustrations : https://www.sciencedirect.com/topics/earth-and-planetary-sciences/radiosondes

La Raspberry Pi et ses accessoires (suite)

RĂ©ception radiosonde

La rĂ©ception et la « chasse Â» aux radiosondes est une activitĂ© passionnante que nous allons maintenant dĂ©tailler. Nous allons voir ici comment les suivre en direct, rĂ©cupĂ©rer les points GPS de leur trajectoire et estimer celui de leur chute au sol.
Les segments de frĂ©quences utilisĂ©s par les radiosondes sur l’Europe sont compris entre 400.05 MHz et 406.00 MHz.
De nombreux détails sur le radiosondage et la chasse aux radiosondes sont disponibles sur le site http://radiosonde.eu/.

Dans le secteur civil, les radiosondages sont effectuĂ©s dans le cadre de programmes mondiaux qui permettent de fournir les donnĂ©es d’observation indispensables Ă  la prĂ©vision journaliĂšre du temps. Les observations standard sont en thĂ©orie effectuĂ©es Ă  0000 et 1200 UTC, mais les heures de lancement rĂ©elles varient d’un pays Ă  un autre et, dans certains cas, les mesures sont faites au moins quarante-cinq minutes avant l’heure thĂ©orique. Les lancements peuvent Ă©galement avoir lieu jusqu’Ă  deux heures aprĂšs l’heure thĂ©orique, si des problĂšmes surgissent dans la prĂ©paration de la radiosonde avant le vol, si la rĂ©glementation du trafic aĂ©rien d’un pays limite les heures de lancement ou si une dĂ©faillance se produit pendant le vol initial. Par ailleurs, certains pays procĂšdent rĂ©guliĂšrement Ă  des observations intermĂ©diaires Ă  0600 et 1800 UTC.
Source : https://www.itu.int/dms_pubrec/itu-r/rec/sa/R-REC-SA.1165-1-199706-S!!PDF-F.pdf

Si vous vous connectez en dĂ©but d’aprĂšs-midi sur le site sondehub.org vous verrez plus d’une dizaine de radiosondes, en vol au-dessus du territoire français.

radio-logicielle
Site https://tracker.sondehub.org/ (prĂ©curseur de https://v2.sondehub.org/ – capture de mars 2021)

Nombre de ces radiosondes sont du modĂšle M10, fabriquĂ©es par la PME française MĂ©tĂ©omodem, mais bien d’autres existent. Sous Raspberry Pi OS, le logiciel radiosonde_auto_rx est Ă  mĂȘme de dĂ©coder nombre de leurs signaux. Sous Windows, c’est le logiciel SondeMonitor qui est souvent prĂ©conisĂ© ; mĂȘme si MultiPSK est lĂ  aussi au rendez-vous.
Site https://tracker.sondehub.org/ (prĂ©curseur de https://v2.sondehub.org/ – capture de mars 2021)

radio-logicielle

Radiosonde_auto_rx sous Raspberry Pi OS

Le logiciel radiosonde_auto_rx citĂ© plus haut est un logiciel Python disponible ici :
https://github.com/projecthorus/radiosonde_auto_rx/wiki. Il fait partie du Projet Horus, un projet de radioamateur spécialisé dans les radiosondes à haute altitude en Australie.

La clĂ© RTL-SDR Ă©tant fonctionnelle, son installation se fait de la maniĂšre suivante :

  1. Mises Ă  jour, installation de Python et des dĂ©pendances nĂ©cessaires Ă  l’application, rĂ©cupĂ©ration de paquets :
    • sudo apt-get update
    • sudo apt-get upgrade
    • sudo apt-get install python3 python3-numpy python3-setuptools python3-crcmod python3-requests python3-dateutil python3-pip python3-flask sox git build-essential libtool cmake usbutils libusb-1.0-0-dev rng-tools libsamplerate-dev
  2. Installation de radiosonde_auto_rx:
    • git clone https://github.com/projecthorus/radiosonde_auto_rx.git
    • cd radiosonde_auto_rx/auto_rx
    • ./build.sh
    • cp station.cfg.example station.cfg
  3. Récupération de paquets complémentaires
    • sudo pip3 install -r requirements.txt
  4. Ajustement des paramĂštres dans le fichier de configuration (cfg) :
    • sudo nano station.cfg

PrĂ©alablement Ă  une premiĂšre ouverture du logiciel, et sans envoi de donnĂ©es vers un site distant, il est Ă  cet instant simplement nĂ©cessaire d’ajuster les bornes de frĂ©quences ([search_params] -> min_freq / max_freq) aux valeurs europĂ©ennes.

radio-logicielle
radiosonde_auto_rx : optimisation du fichier station.cfg

Le programme se lance ensuite (depuis son rĂ©pertoire) :

  • cd radiosonde_auto_rx/auto_rx
  • python3 auto_rx.py

radio-logicielle
Premier lancement de radiosonde_auto_rx

AprĂšs quelques tests, j’ai Ă©galement blacklistĂ© dans le fichier station.cfg la frĂ©quence parasite 403.2 MHz (never_scan [403.2]) spĂ©cifique aux configurations utilisant un tuner R820T.

DĂšs qu’un signal valide est dĂ©tectĂ©, les donnĂ©es relatives Ă  la sonde sont affichĂ©es Ă  l’écran et, en fonction des options d’exportateurs activĂ©es (SondeHub, APRS, OziPlotter), s’y ajoutent les informations liĂ©es Ă  leurs retransmissions.

radio-logicielle
RĂ©ception de signal avec radiosonde_auto_rx

Une interface Web permet l’affichage d’une carte de position pour les sondes repĂ©rĂ©es par le logiciel. On y accĂšde Ă  l’aide de son navigateur Internet Ă  l’adresse : http: // localhost: 5000.
Divers réglages et informations de journalisation sont disponibles depuis cette page.

radio-logicielle
Suivi en local de la radiosonde détectée par radiosonde_auto_rx(/p>

On notera qu’en version v1.5.3., Ă  la premiĂšre ouverture de l’interface web, un message d’erreur, apparemment sans consĂ©quence s’affichait dans la fenĂȘtre de radiosonde_auto_rx :
The WebSocket transport is not available, you must install a WebSocket server that is compatible with your async mode to enable it. See the documentation for details. (further occurrences of this error will be logged with level INFO)

A la mi-juin 2021 ; une recherche Internet semblait indiquer que cette alerte est gĂ©nĂ©rĂ©e par le paquet engineio (https://github.com/miguelgrinberg/python-engineio/blob/main/engineio/server.py, ligne 588). Un mois plus tard, Mark Jessop (alias darksidelemm, VK5QI) rĂ©pondait sur la page issues (questions) dĂ©diĂ©e Ă  ce logiciel (https://github.com/projecthorus/radiosonde_auto_rx/wiki).

radio-logicielle
Message de Mark Jessop.

TestĂ© ce 31 aoĂ»t 2021, la version v1.5.5 n’affiche plus l’erreur.

L’envoi des donnĂ©es collectĂ©es vers des sites collaboratifs se paramĂštre au sein du fichier station.cfg. Les captures d’écran prĂ©sentĂ©es plus haut, montrent ainsi qu’elles sont, dans mon cas, envoyĂ©es vers les serveurs Sondehub et APRS-IS.

Pour Sondehub, aucune inscription prĂ©alable n’est nĂ©cessaire. Pour initier l’envoi, il faut simplement paramĂ©trer en consĂ©quence le fichier stationg.cfg citĂ© plus haut :

  • En entrant ses coordonnĂ©es gĂ©ographiques (paragraphe Station Location),
  • En changeant les paramĂštres du paragraphe Sondehub / Habitat (depreciated) Upload Setting :
    • habitat_enabled = True
    • uploader_callsign = MON_INDICATIF # un identifiant unique Ă  crĂ©er ou Ă  utiliser si nous en avons dĂ©jĂ  un
    • upload_listener_position = True
    • uploader_antenna = discone
    • sondehub_contact_email = f80543@gmail.com

radio-logicielle
Fichier station.cfg (Sondehub Upload Settings)

Une fois ces informations saisies, une visite sur le site https://v2.sondehub.org/ montre que notre station est reconnue et qu’elle a envoyĂ© ses donnĂ©es Ă  l’approche d’une sonde.

radio-logicielle
Reprise de mes données capturées sur le site sondehub.org

Pour joindre le site https://radiosondy.info/, la procĂ©dure d’inscription se fait ainsi :

radio-logicielle
radio-logicielle
Auto génération du mot-de-passe APRS

radio-logicielle
Mes informations sur le site radiosondy.info

  • Modification de cfg (paragraphe APRS Upload Setting) :
    • aprs_enabled = True
    • aprs_user = F80543 # Mon identifiant sur radiosondy.info
    • aprs_pass = 00000 # Le Mot de passe auto gĂ©nĂ©rĂ©
    • upload_rate = 30
    • aprs_server = radiosondy.info
    • aprs_port = 14590
    • station_beacon_enabled = True

Les autres paramÚtres du paragraphe restent inchangés.

radio-logicielle
Fichier station.cfg (APRS Upload Setting)

Une fois ces Ă©tapes rĂ©alisĂ©es, et au passage d’une radiosonde vers votre QRA, le site en dĂ©taille le parcourt avec, ici en orange le rĂ©el et en jaune celui qui avait Ă©tĂ© estimĂ©.

radio-logicielle
radio-logicielle

radio-logicielle
Site radiosondy.info

Mise Ă  jour

Au fil du temps, l’application de certaines mises à jour majeures s’avùre indispensable. Dans ce cas, un message d’alerte s’affiche au niveau du panneau de commande.

radio-logicielle
Message : radiosonde_auto_rx doit ĂȘtre mis Ă  jour

La marche Ă  suivre est disponible sur la page : https://github.com/projecthorus/radiosonde_auto_rx/wiki/Performing-Updates :

  • sudo apt-get update
  • sudo apt-get upgrade
  • cd radiosonde_auto_rx
  • cd auto_rx
  • sudo systemctl stop auto_rx
  • git pull[Git est un logiciel libre de gestion de versions de logiciel. git pull​ rĂ©cupĂšre les derniĂšres modifications distantes du projet et les fusionne dans la branche locale]
  • ./build.sh

radio-logicielle       radio-logicielle
Processus de mise Ă  jour de radiosonde_auto_rx vers la version 1.5.0

AprĂšs avoir sauvegardĂ© son fichier de configuration, il faut installer le nouveau puis le reconfigurer en y intĂ©grant ses prĂ©cĂ©dents paramĂštres[10] :

  • cp station.cfg station.cfg.old
  • rm station.cfg
  • cp station.cfg.example station.cfg
  • sudo nano station.cfg

Cette derniĂšre commande ouvre l’éditeur de texte et permet de rĂ©-entrer les paramĂštres.

Il est important de suivre la mise Ă  disposition des mises Ă  jour car le passage direct d’une version « n Â» Ă  une version « n+2 Â» ou « n+3 Â» peut s’avĂ©rer pĂ©rilleux.
Un beau matin, au lancement du logiciel, alors que j’étais en version 1.5.1. sont apparus des messages d’erreur dont je ne pus immĂ©diatement trouver la cause :

  • 2021-05-24 12:32:19,172 ERROR:Habitat – Unable to fetch UUIDs, retrying in 10 seconds – ‘uuids’
  • 2021-05-24 12:33:00,442 ERROR:Habitat – Gave up trying to get UUIDs.
  • 2021-05-24 12:33:00,443 ERROR:Habitat – Unable to post listener data – no UUIDs available.
  • 2021-05-24 12:33:00,443 ERROR:Habitat – Unable to initialize callsign.

Mes recherches sur Internet furent infructueuses. Je dĂ©cidais finalement de lancer une procĂ©dure de mise Ă  jour comme indiquĂ©e plus haut. Ceci fait je relançais le logiciel et je me retrouvais avec de nouvelles erreurs qui empĂȘchaient, cette fois ci, le lancement du logiciel.

radio-logicielle
Message d’erreur au lancement de radiosonde_auto_rx version 1.5.3

J’eus plus de chance dans mes recherches. Sur Google, les termes radiosonde_auto_rx et import semver m’amenĂšrent Ă  une information me spĂ©cifiant qu’il me fallait installer un nouveau paquet python :

  • sudo pip3 install semver

Ce paquet installĂ©, le logiciel se lança Ă  nouveau. Je dus cependant recrĂ©er mon fichier de configuration station.cfg. Rien n’est vraiment simple ici !

radio-logicielle
Messages d’alertes au lancement de radiosonde_auto_rx version 1.5.3

Fichier station.cfg (V1.5.3.)

Voici, aprĂšs configuration, le contenu de mon actuel fichier station.cfg expurgĂ© de la plupart de ses commentaires. En gras et en rouge les changements par rapport au fichier original station.cfg.example :

###################

# RTLSDR SETTINGS #

#############
[sdr]
sdr_quantity = 1
[sdr_1]
device_idx = 0
# Rattrapage du calage de la clef
ppm = 0
# Gain de la clef, préférer une valeur fixe et maximale déterminée avec rtl_test
gain = -1
bias = True
[sdr_2]
# As above, for the next SDR, if used. Note the warning about serial numbers.
device_idx = 00000002
ppm = 0
gain = -1
bias = False
# Add more SDR definitions here if needed. ([sdr_3], [sdr_4])
##############################

# RADIOSONDE SEARCH SETTINGS #

##############################

[search_params]
# Debut de la bande Ă  scanner
min_freq = 400.05
# Fin de la bande Ă  scanner
max_freq = 406.0
# délais entre la derniÚre donnée décodée et le redémarrage du scanning
rx_timeout = 180
# scanne uniquement ces fréquences
only_scan = []
# Exclue systematiquement ces fréquences du scanning
never_scan = [403.2]
# Fréquences à scanner en priorité
always_scan = []

####################

# STATION LOCATION #

####################

# Lattitude du recepteur (utilisé pour Habitat et aprs)
station_lat = 44.xxxx
# Longitude du recepteur (utilisé pour Habitat et aprs)
station_lon = -1.xxxx
# Altitude du recepteur (utilisé pour Habitat et aprs)
station_alt = 10.0
gpsd_enabled = False
gpsd_host = localhost
gpsd_port = 2947

###########################

# HABITAT UPLOAD SETTINGS #

###########################

[habitat]
# Indicatif utilisé pour transmettre les données à Habitat
uploader_callsign = F-80543
# Valide l’envoi d’info au serveur Habitat (False invalide)
upload_listener_position = True
uploader_antenna = discone
# DĂ©lais entre chaque envoi (ne pas descendre en dessous de 30s)
upload_rate = 30
# An optional contact e-mail address.
sondehub_contact_email = f80543@gmail.com

########################

# APRS UPLOAD SETTINGS #

########################

[aprs]

# Envoi vers un serveur aprs (true = validé)
aprs_enabled = True
# Utilisateur aprs (voir APRS IS)
aprs_user = XXXXXX
# Mot de passe aprs (voir APRS IS)
aprs_pass = XXXXX
# DĂ©lai entre chaque envoi vers l’aprs
upload_rate = 30
aprs_server = radiosondy.info
aprs_port = 14590
aprs_object_id = <id>
aprs_use_custom_object_id = False
aprs_position_report = False
aprs_custom_comment = Clb=<vel_v> t=<temp> h=<humidity> p=<pressure> <freq> Type=<type> Radiosonde
station_beacon_enabled = True
station_beacon_rate = 30
station_beacon_comment = radiosonde_auto_rx SondeGate v<version>
station_beacon_icon = /`

###########################

# CHASEMAPPER DATA OUTPUT #

###########################

[oziplotter]
ozi_update_rate = 5
ozi_enabled = False
ozi_port = 8942
payload_summary_enabled = True
payload_summary_port = 55673

#######################

# EMAIL NOTIFICATIONS #

#######################

[email]
# envoi d’alerte par email à chaque detection
email_enabled = False
launch_notifications = True
landing_notifications = True
landing_range_threshold = 30
landing_altitude_threshold = 1000
error_notifications = False
# serveur smtp – exemple ssl0.ovh.net
smtp_server = localhost
# port smtp – exemple 587
smtp_port = 25
# type d’authentification – exemple TLS
smtp_authentication = None
# user smtp
smtp_login = None
# mot-de-passe smtp
smtp_password = None
# adresse expediteur
from = sonde@localhost
# adresse destinataire
to = someone@example.com
subject = <type> Sonde launch detected on <freq>: <id>

###################

# ROTATOR CONTROL #

###################

[rotator]
rotator_enabled = False
update_rate = 30
rotation_threshold = 5.0
rotator_hostname = 127.0.0.1
rotator_port = 4533
rotator_homing_enabled = False
rotator_homing_delay = 10
rotator_home_azimuth = 0.0
rotator_home_elevation = 0.0

###########

# LOGGING #

###########

[logging]
per_sonde_log = True

###########################

# WEB INTERFACE SETTINNGS #

###########################

[web]
web_host = 0.0.0.0
# port du serveur web local – exemple 80 – 5000 par dĂ©faut
web_port = 5000
# durée en minutes de conservation des données sur le serveur web
archive_age = 120
web_control = False
web_password = XXXX
kml_refresh_rate = 10

##################

# DEBUG SETTINGS #

##################

[debugging]
save_detection_audio = False
save_decode_audio = False
save_decode_iq = False

#####################

# ADVANCED SETTINGS #

#####################

[advanced]
search_step = 800
# niveau en db minimum pour détecter un signal (par rapport au bruit)
snr_threshold = 10
# nombre maximum de « pics » détectés
max_peaks = 10
min_distance = 1000
scan_dwell_time = 20
detect_dwell_time = 5
scan_delay = 10
quantization = 10000
decoder_spacing_limit = 15000
temporary_block_time = 120
synchronous_upload = True
payload_id_valid = 3
sdr_power_path = rtl_power

################################

# DEMODULATOR / DECODER TWEAKS #

################################

drift_tweak = False
# meilleurs décodages
rs41_experimental = True
rs92_experimental = True
dfm_experimental = True
m10_experimental = True
lms6-400_experimental = True
ngp_tweak = False

######################

# POSITION FILTERING #

######################

[filtering]
max_altitude = 50000
max_radius_km = 1000
min_radius_km = 0
radius_temporary_block = False

Aide Ă  la rĂ©cupĂ©ration – ChaseMapper

Tout comme radiosonde_auto_rx, ChaseMapper fait partie du Projet Horus. Ce logiciel fournit des prévisions de trajectoire, calculées à partir de modÚles météorologiques GFS réguliÚrement téléchargés. Il acquiert les données de localisation du ballon à partir de radiosonde_auto_rx et la position du récepteur à partir des données GPS locales[11]. Puis, dans une session de navigateur, il dessine une carte géographique pour fournir une aide visuelle aidant à la récupération de la radiosonde.
Les cartes peuvent Ă©galement ĂȘtre servies Ă  partir d’un cache local, permettant une utilisation sans connexion Internet.
ChaseMapper est disponible sur le site : https://github.com/projecthorus/chasemapper

L’installation se fait au travers des 3 commandes suivantes :

Pour un premier essai, je dĂ©cide de ne rien changer dans le fichier de configuration de radiosonde_auto_rx. Je crĂ©e celui de Chasemapper et, pour seul changement, j’indique ma position gĂ©ographique pour un centrage correct des cartes (via l’éditeur nano) :

  • cd /home/pi/chasemapper
  • cp horusmapper.cfg.example horusmapper.cfg
  • sudo nano horusmapper.cfg

radio-logicielle
Fichier horusmapper.cfg

AprĂšs l’ouverture du logiciel radiosonde_auto_rx, ChaseMapper se lance depuis une seconde fenĂȘtre LXterminal :

  • cd /home/pi/chasemapper
  • python3 horusmapper.py

Tout fonctionne correctement, ChaseMapper reçoit les données de radiosonde_auto_rx.

Nous les retrouvons cartographiĂ©es Ă  l’ouverture du navigateur Internet Ă  l’adresse : http://localhost:5001/
Tout comme c’est le cas avec radiosonde_auto_rx v1.5.3., l’ouverture de cette fenĂȘtre par le navigateur Internet entraine le mĂȘme message d’alerte dans la fenĂȘtre ChaseMapper :
The WebSocket transport is not available, you must install a WebSocket server that is compatible with your async mode to enable it. See the documentation for details. (further occurrences of this error will be logged with level INFO)

Ici, sans application d’une mise Ă  jour de Chasemapper, il ne m’a pas Ă©tĂ© possible de supprimer cette alerte ; peut perturbante semble-t-il, puisque l’ensemble semble parfaitement fonctionner.
Mon QRA est reprĂ©sentĂ© par une voiture. Par une nouvelle modification dans le fichier de configuration j’indique que je suis Ă  mon domicile et non en itinĂ©rance en passant la variable car_source_port de gdpd Ă  station.

radio-logicielle    radio-logicielle
Fichier horusmapper.cfg

radio-logicielle
Radiosonde_auto_rx et ChaseMapper en fonctionnement

radio-logicielle
Radiosonde_auto_rx et ChaseMapper en fonctionnement avec l’interface cartographique en arriùre-plan.

Par dĂ©faut, le logiciel reçoit les prĂ©dictions de vol au travers de l’API Tawhiri qui nĂ©cessite une connexion Internet. Celle-ci est indispensable, mĂȘme si elle peut se contenter d’accĂšs intermittents.

Toujours dans le cas d’un fonctionnement dĂ©gradĂ© (connexion Internet intermittente), il peut ĂȘtre utile de gĂ©rer localement ses cartes gĂ©ographiques. Il est pour cela nĂ©cessaire d’associer FoxtrotGPS Ă  ChaseMapper comme dĂ©crit dans le tutorial du projet Horus : https://github.com/projecthorus/chasemapper, au paragraphe Offline Mapping via FoxtrotGPS’s Tile Cache.

CrĂ©ation d’un script exĂ©cutable et dĂ©pose sur le bureau

Pour faciliter le lancement de l’application depuis le bureau voici les Ă©tapes pour la crĂ©ation d’un script de lancement du programme.

  • S’il n’existe pas encore, crĂ©ez le rĂ©pertoire qui contiendra nos exĂ©cutables et positionnez-vous dans celui-ci :
    • mkdir /home/pi/bin
    • cd /home/pi/bin
  • CrĂ©ez votre script (la sauvegarde se fera par <CTRL-O>, le retour en ligne de commande par <CTRL-X>.
    • nano /home/pi/bin/ChaseMapper.bash

radio-logicielle
Script de lancement

  • Rendez le script exĂ©cutable :
    • sudo chmod 744 /home/pi/bin/ChaseMapper.bash

Afin que ce script soit accessible sur le Bureau, il faut crĂ©er un fichier d’appel[13]. CrĂ©er le fichier depuis celui-ci par un clic droit de la souris, ou passez par une fenĂȘtre LXterminal et dĂ©placez-vous dans le rĂ©pertoire /home/pi/Desktop pour crĂ©er ce nouveau fichier (sudo nano ChaseMapper.desktop). Prenez modĂšle sur l’exemple ci-dessous (l’usage du copier/coller Ă  partir d’un Ă©lĂ©ment dĂ©jĂ  existant sera une aide non nĂ©gligeable).

radio-logicielle
Contenu du fichier ChaseMapper.desktop

Ceci rĂ©alisĂ©, mais en cas de difficultĂ© : sur le Bureau, positionnez-vous sur la nouvelle icĂŽne crĂ©Ă©e. Choisissez PropriĂ©tĂ© avec le bouton droit de la souris. Ouvrez l’onglet Droits d’accĂšs et vĂ©rifiez que le choix Tout le monde est sĂ©lectionnĂ© pour ContrĂŽle d’accĂšs/ExĂ©cuter.
Pour l’icĂŽne, toujours via le choix PropriĂ©tĂ©, il est possible de naviguer Ă  sa recherche dans les rĂ©pertoires en cliquant sur celle qui est proposĂ©e par dĂ©faut. De trĂšs nombreuses icĂŽnes sont disponibles dans /usr/share/icons.

radio-logicielle
Choix de l’icĂŽne liĂ©e au fichier ChaseMapper

radio-logicielle
Droits d’accùs du fichier ChaseMapper

Toujours en cas de problÚme, vérifiez les droits, puis le propriétaire et le groupe associés des fichiers bash et .desktop.

radio-logicielle
Droits, propriétaire et groupe des fichiers .bash et .desktop

Enfin, si le nom du raccourci n’est pas celui que vous avez saisi dans le fichier .desktop, fermez votre session et rouvrez là. Tout devrait alors rentrer dans l’ordre.

ANNEXE-3 – Horloge, GPS et synchronisation

La position GPS de votre carte Pi et la gestion de la date et de l’heure sont des points trĂšs important pour son bon fonctionnement. Elles le sont plus encore dĂšs que l’on s’attaque aux dĂ©codages de certains signaux digimodes. Pour toutes les Ă©coutes « Ă  la maison Â», la prĂ©sence d’une connexion internet avec timedatectl installĂ© par dĂ©faut sur la Raspberry maintient notre systĂšme « Ă  l’heure Â» en le synchronisant sur des sources de rĂ©fĂ©rence. Immobile, notre position GPS peut ĂȘtre entrĂ©e dans les fichiers de configuration de nos logiciels. Par contre, si nous nous trouvons un jour en mode dĂ©connectĂ©, loin de tout accĂšs Internet, l’usage d’un rĂ©cepteur GPS associĂ© aux daemons GPSD et Chrony deviendra alors indispensable ; GPSD capturant (en plus de nos coordonnĂ©es) le temps GPS et Chrony ajustant l’horloge systĂšme selon celui-ci. Ce sera par exemple le cas si vous dĂ©cidez d’installer le logiciel ChaseMapper qui fournit des prĂ©visions de trajectoires de radiosondes et qui, Ă  chaque lancement, doit rĂ©cupĂ©rer, en temps rĂ©el, la position GPS du rĂ©cepteur.

RetrouvĂ© dans mon matĂ©riel, je dĂ©cide donc d’installer le rĂ©cepteur USB BU-353S4 de GlobalSat (Prolific Technology Inc.) : (https://www.amazon.fr/GlobalSat-BU-353-S4-R%C3%A9cepteur-SiRF-Star/dp/B008200LHW) pour l’associer au logiciel GPSD.
Voici la procĂ©dure de reconnaissance du GPS et ’installation de GPSD :

  1. Avant de brancher le GPS, lancez la commande dmesg (affichage de la mĂ©moire tampon des messages du noyau) et repĂ©rez les derniĂšres lignes d’informations,
  2. Insérez le GPS,
  3. Relancez dmesg. Les derniÚres lignes doivent maintenant indiquer la présence du GPS et son port de connexion (ici ttyUSB0),

radio-logicielle
Le GPS Prolific Technology est attaché au port /dev/ttyUSB0 (commande dmseg)

  1. La commande lsusb confirmera la bonne reconnaissance de l’équipement,

radio-logicielle
Présence du GPS Prolific Technology (commande lsusb)

  1. Installez le daemon GPSD :
    • sudo apt-get install gpsd gpsd-clients python-gps
  2. Modifiez le fichier socket (le paramĂštre ListenStream=127.0.0.1:2947 devient ListenStream=0.0.0.0:2947):
    • sudo systemctl stop gpsd.socket
    • sudo systemctl disable gpsd.socket
    • sudo nano /lib/systemd/system/gpsd.socket

radio-logicielle
Fichier gpsd.socket aprĂšs modification

  1. Modifiez le fichier de configuration gpsd:
    • sudo nano /etc/default/gpsd (donnez Ă  la variable DEVICES la valeur « /dev/ttyUSB0 ».

radio-logicielle
Fichier gpsd aprĂšs modification

  1. VĂ©rifiez le fonctionnement :
    • sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.socket
    • gpsmon

radio-logicielle
Moniteur gpsmon lancé en ligne de commande

  1. Permettez le lancement automatique de GPSD pour les prochains dĂ©marrages de la Raspberry Pi [Voir RPi – quick-start : http://www.satsignal.eu/ntp/Raspberry-Pi-quickstart.html ]

    • sudo ln -s /lib/systemd/system/gpsd.service /etc/systemd/system/multi-user.target.wants/

Avec l’option -s, la commande ln a pour but d’établir un lien symbolique entre 2 fichiers.
AprĂšs une nouvelle vĂ©rification (gpsmon) et un redĂ©marrage, nous pouvons installer chrony :

    1. Installation :
      • sudo apt -y install chrony python-gi-cairo
    2. Modification du fichier conf
      • sudo nano /etc/chrony/chrony.conf

Il s’agit ici d’ajouter en fin de fichier la ligne suivante :

refclock SHM 0 offset 0.5 delay 0.2 refid NMEA

    1. Relance du daemon :
      • sudo systemctl stop chronyd
      • sudo systemctl start chronyd

    Pour vĂ©rifier le bon fonctionnement de l’ensemble il faut alors redĂ©marrer la carte et lancer – avec, puis sans accĂšs Internet – les commandes suivantes :

    • sudo chronyc sources -v

    radio-logicielle

    radio-logicielle
    Information sur le bon fonctionnement de la source de synchronisation du temps (chronyc sources -v)
    Avec Internet accessible (de haut), sans accĂšs Internet (en bas)

    • sudo chronyc tracking

    radio-logicielle

    radio-logicielle
    Information sur le bon fonctionnement de la source de synchronisation du temps (chronyc tracking)
    Avec Internet accessible (de haut), sans accĂšs Internet (en bas)

    • timedatectl

    radio-logicielle
    Information sur le bon fonctionnement de la source de synchronisation du temps (timedatectl)

    Coup d’Ɠil sur la configuration

    Voici pour info, le contenu de mes fichiers systĂšme aprĂšs installations.

    pi@raspberrypi:~ $ cat /lib/systemd/system/gpsd.socket

  1. [Unit]
    Description=GPS (Global Positioning System) Daemon Sockets[Socket]
    ListenStream=/var/run/gpsd.sock
    ListenStream=[::1]:2947
    ListenStream=0.0.0.0:2947
    SocketMode=0600[Install]
    WantedBy=sockets.target

    pi@raspberrypi:~ $ cat /etc/default/gpsd

    # Default settings for the gpsd init script and the hotplug wrapper.

    # Start the gpsd daemon automatically at boot time
    START_DAEMON= »true »

    # Use USB hotplugging to add new USB devices automatically to the daemon
    USBAUTO= »true »

    # Devices gpsd should collect to at boot time.
    # They need to be read/writeable, either by user gpsd or the group dialout.
    DEVICES= »/dev/ttyUSB0″

    # Other options you want to pass to gpsd
    GPSD_OPTIONS= »-n »
    GPSD_SOCKET= »var/run/gpsd.socket »

    pi@raspberrypi:~ $ cat /etc/chrony/chrony.conf

    # Welcome to the chrony configuration file. See chrony.conf(5) for more
    # information about usuable directives.
    pool 2.debian.pool.ntp.org iburst

    # This directive specify the location of the file containing ID/key pairs for
    # NTP authentication.
    keyfile /etc/chrony/chrony.keys

    # This directive specify the file into which chronyd will store the rate
    # information.
    driftfile /var/lib/chrony/chrony.drift

    # Uncomment the following line to turn logging on.
    #log tracking measurements statistics

    # Log files location.
    logdir /var/log/chrony

    # Stop bad estimates upsetting machine clock.
    maxupdateskew 100.0

    # This directive enables kernel synchronisation (every 11 minutes) of the
    # real-time clock. Note that it can’t be used along with the ‘rtcfile’ directive.
    rtcsync

    # Step the system clock instead of slewing it if the adjustment is larger than
    # one second, but only in the first three clock updates.
    makestep 1 3

    refclock SHM 0 offset 0.5 delay 0.2 refid NMEA

    par François F-80543 | F-80543

Auteur / autrice

  • Aujourd'hui retraitĂ©, j'ai passĂ© ma prime jeunesse Ă  Lourdes (Ă©cole Saint-Joseph). Ensuite c'est Paris (Saint-Thomas d'Aquin puis le lycĂ©e Jacquard). CotĂ© travail, 20 ans chez Thomson DFH/Alcatel Telspace, 20 ans chez McAfee.