APRS – Construire son propre iGate APRS (5/6)

Construire son propre iGate APRS

L’APRS ne se limite pas à afficher la position d’une station sur une carte. Derrière le réseau se cache toute une infrastructure mêlant radio VHF, AX.25, serveurs Internet et passerelles appelées iGate.

Dans nos précédents articles, nous avons vu comment recevoir l’APRS avec un RTL-SDR et comment une balise voyage entre digipeaters, iGates et APRS-IS. Passons maintenant à la pratique : construisons notre propre iGate APRS !

L’objectif sera volontairement simple et économique : recevoir les stations APRS sur 144,800 MHz, les décoder avec Dire Wolf, puis transmettre automatiquement les trames reçues vers le réseau APRS-IS.

Notre iGate sera uniquement récepteur, ou RX-only. Il n’émettra donc aucun paquet sur 144,800 MHz.


1. Mais au fait, qu’est-ce qu’un iGate ?

Le terme iGate signifie Internet Gateway. Il s’agit d’une passerelle entre le réseau APRS radio et le réseau APRS sur Internet.

Imaginons une station mobile : F5KEE-9 → 144,800 MHz → iGate → APRS-IS → Internet

La station mobile transmet sa position par radio. Notre iGate reçoit cette émission, décode la trame APRS et l’envoie à APRS-IS.

Quelques secondes plus tard, cette station pourra apparaître sur différents services utilisant les données APRS.

Il ne faut surtout pas confondre iGate et digipeater.

Un digipeater reçoit un paquet radio puis le retransmet par radio afin d’en augmenter la portée.

Un iGate reçoit le paquet et le transfère vers Internet.

Une même station peut assurer les deux fonctions, mais elles sont bien distinctes.


2. Que va-t-on construire ?

Pour cette première réalisation, nous allons construire un iGate RF → Internet.

Notre chaîne sera : Antenne 2 m → RTL-SDR → Raspberry Pi → Dire Wolf → APRS-IS

Chaîne complète d’un iGate APRS

Principe d’un iGate APRS : de la réception sur 144,800 MHz jusqu’au réseau APRS-IS.

L’antenne reçoit les émissions APRS sur 144,800 MHz, fréquence utilisée en France et dans une grande partie de l’Europe pour l’APRS VHF.

La clé RTL-SDR transforme le signal radio en données numériques. Un logiciel tel que rtl_fm assure la réception et la démodulation FM.

Le signal audio obtenu est ensuite envoyé à Dire Wolf.

Dire Wolf joue alors plusieurs rôles : il constitue un modem packet logiciel, décode les trames AX.25/APRS et assure enfin la fonction iGate en transmettant les paquets reçus vers APRS-IS.

Dire Wolf prend notamment en charge l’AFSK 1200 bit/s, très couramment utilisé pour l’APRS VHF, ainsi que les récepteurs SDR associés à des logiciels comme rtl_fm.


3. Le matériel nécessaire

Bonne nouvelle : la construction d’un iGate de réception ne demande finalement que peu de matériel.

Il nous faudra :

  • un Raspberry Pi ;
  • une carte microSD ;
  • une alimentation adaptée au Raspberry Pi ;
  • une clé RTL-SDR ;
  • une antenne pour la bande des 2 mètres ;
  • une connexion Internet Ethernet ou Wi-Fi.

Un Raspberry Pi extrêmement puissant n’est pas nécessaire. La réception d’un seul canal et le décodage de l’AFSK 1200 bauds représentent une charge relativement faible.

Une bonne antenne sera beaucoup plus importante que quelques gigaoctets de mémoire supplémentaires !

Selon le matériel dont nous disposons déjà, il est possible de construire un iGate permanent pour un budget raisonnable.

Installation APRS iGate annotée en français

Montage pratique d’un iGate APRS avec antenne VHF, RTL-SDR, Raspberry Pi et connexion Internet.


4. L’antenne : le composant à ne pas négliger

Une petite antenne fournie avec certaines clés SDR permettra éventuellement de faire les premiers essais, mais elle limitera considérablement la portée de notre iGate.

Pour une installation permanente, préférons une véritable antenne VHF :

  • verticale 1/4 d’onde ;
  • ground-plane ;
  • colinéaire VHF ;
  • antenne bibande VHF/UHF.

L’installation extérieure et surtout la hauteur de l’antenne auront une influence considérable.

Un iGate installé au rez-de-chaussée avec un petit fouet posé près d’un ordinateur peut ne recevoir que quelques kilomètres autour de lui. Une antenne dégagée au-dessus du toit pourra recevoir des stations beaucoup plus éloignées.

Attention également aux pertes du câble coaxial : à 144 MHz, plusieurs dizaines de mètres de câble médiocre peuvent déjà réduire sensiblement le signal.


5. Préparer le Raspberry Pi

Nous pouvons utiliser une installation légère de Raspberry Pi OS Lite, puisqu’aucune interface graphique n’est nécessaire.

Après installation et connexion au réseau, commençons classiquement par mettre le système à jour :
sudo apt update
sudo apt full-upgrade

Installons ensuite les outils RTL-SDR : sudo apt install rtl-sdr

Branchons la clé et vérifions qu’elle est reconnue : rtl_test

À ce stade, notre Raspberry Pi doit pouvoir communiquer avec le RTL-SDR.

Selon la distribution et la configuration utilisée, le pilote DVB du noyau peut parfois prendre possession de la clé RTL2832U. Dans ce cas, il faudra le désactiver avant que les logiciels SDR puissent accéder directement au périphérique.


6. Installer Dire Wolf

Dire Wolf est un logiciel libre qui remplace avantageusement de nombreux anciens TNC matériels.

Il peut notamment fonctionner comme :

  • modem packet ;
  • décodeur APRS ;
  • encodeur APRS ;
  • tracker ;
  • digipeater ;
  • iGate.

Sur certaines distributions, Dire Wolf est disponible directement dans les dépôts : sudo apt install direwolf

Cette méthode est pratique, mais la version proposée par la distribution peut être plus ancienne que celle du projet.

Pour une installation permanente, il est donc judicieux de vérifier la version disponible et, si nécessaire, de compiler une version stable récente depuis le dépôt officiel de Dire Wolf.

Vérifions ensuite : direwolf

Dire Wolf doit démarrer et afficher ses informations dans le terminal.


7. Recevons d’abord 144,800 MHz

Avant de connecter notre installation à Internet, procédons méthodiquement.

Commençons par vérifier la réception radio.

Notre RTL-SDR doit recevoir : 144,800 MHz FM

rtl_fm peut fournir directement le flux audio nécessaire à Dire Wolf. Le principe général est :
RTL-SDR
↓
rtl_fm
↓
audio
↓
Dire Wolf
↓
AX.25 / APRS

Une chaîne de test typique peut ressembler à : rtl_fm -f 144800000 – | direwolf -r 24000 -D 1 –

Les paramètres exacts pourront être ajustés selon la clé SDR, la version de rtl_fm et la configuration de Dire Wolf.

Le gain du RTL-SDR mérite notamment d’être réglé expérimentalement. Mettre systématiquement le gain au maximum n’est pas forcément la meilleure solution : dans un environnement radioélectrique chargé, le récepteur peut être saturé par des signaux puissants.

Lorsque tout fonctionne, nous devons commencer à voir apparaître des trames.

Par exemple : F5KEE-9>APRS,WIDE1-1,WIDE2-1:…

À ce moment précis, nous avons déjà réalisé un récepteur APRS.

Il reste maintenant à lui ouvrir la porte d’Internet.


8. APRS-IS : l’autre moitié de notre réseau

APRS-IS, pour Automatic Packet Reporting System Internet Service, constitue l’infrastructure Internet permettant d’échanger les données APRS entre serveurs, logiciels et passerelles.

Notre iGate doit donc établir une connexion avec un serveur APRS-IS.

Pour l’Europe et l’Afrique, Dire Wolf propose notamment l’adresse régionale : euro.aprs2.net

Les serveurs APRS-IS disposent de différents ports. Le port 14580 est particulièrement important pour les clients et les iGates : il permet d’utiliser un flux filtré plutôt que de recevoir inutilement l’ensemble du trafic APRS mondial.


9. Configurer notre iGate

Le comportement de Dire Wolf est défini dans son fichier : direwolf.conf

Commençons par déclarer notre station.

Pour notre exemple F5KEE : MYCALL F5KEE-10

Le SSID utilisé devra naturellement être choisi en fonction de l’organisation réelle de la station.

Ajoutons ensuite le serveur APRS-IS : IGSERVER euro.aprs2.net

Puis l’identification APRS-IS : IGLOGIN F5KEE-10 xxxxx où xxxxx représente le passcode APRS-IS correspondant à l’indicatif.

Notre configuration minimale ressemble donc, dans son principe, à : MYCALL F5KEE-10

IGSERVER euro.aprs2.net
IGLOGIN F5KEE-10 xxxxx

Et voilà le principe essentiel de notre iGate !

Dire Wolf indique d’ailleurs dans son fichier de configuration de référence que IGSERVER et IGLOGIN suffisent à mettre en place un iGate de réception relayant les paquets entendus sur le canal radio vers les serveurs Internet.


10. Qu’est-ce que le passcode APRS-IS ?

Le passcode APRS-IS est calculé à partir de l’indicatif.

Il ne faut pas le considérer comme un véritable mot de passe secret comparable à celui d’une messagerie ou d’un compte bancaire.

Il s’agit historiquement d’un mécanisme permettant à APRS-IS de vérifier qu’un logiciel se présente comme un client radioamateur avec un indicatif cohérent.

Une connexion vérifiée permet notamment à un iGate d’injecter dans APRS-IS les paquets reçus par radio.

Nous ne publierons évidemment pas ici un passcode réel utilisé par une station.


11. Déclarons aussi la position de l’iGate

Notre iGate étant fixe, il est intéressant de déclarer sa position.

Dire Wolf possède pour cela la commande PBEACON.

Dans son principe, nous pourrons définir : PBEACON … comment=”F5KEE APRS RX iGate 144.800 MHz”

avec la latitude, la longitude et le symbole APRS appropriés.

Nous obtenons alors une station clairement identifiable par les utilisateurs du réseau : F5KEE-10 — APRS RX iGate 144.800 MHz

Évitons cependant de multiplier inutilement les balises. Une station fixe n’a évidemment pas besoin d’annoncer sa position toutes les minutes !


12. Que deviennent maintenant les trames reçues ?

Prenons notre station mobile fictive : F5KEE-9>APRS,WIDE1-1,WIDE2-1:…

Elle émet sur 144,800 MHz.

Notre antenne reçoit le signal.

Le RTL-SDR le numérise.

rtl_fm démodule la FM.

Dire Wolf reconnaît l’AFSK 1200 bit/s puis décode la trame AX.25/APRS.

Comme nous avons activé la fonction iGate, Dire Wolf transmet ensuite le paquet au serveur APRS-IS.

Le parcours devient donc :

F5KEE-9
│
│ 144,800 MHz
▼
Antenne
│
▼
RTL-SDR
│
▼
rtl_fm
│
▼
Dire Wolf
│
│ Internet
▼
euro.aprs2.net
│
▼
APRS-IS
Parcours d’un paquet APRS jusqu’à la carte

Parcours complet d’une trame APRS, de sa réception sur 144,800 MHz jusqu’à son affichage sur APRS.fi.

Quelques secondes suffisent généralement pour que l’information soit disponible sur les services utilisant le réseau APRS.


13. Les filtres APRS-IS

Le port 14580 permet d’utiliser les filtres APRS-IS.

Par exemple : filter r/48.6/2.3/100

demande les données correspondant à une zone de 100 km autour des coordonnées indiquées.

Attention à un point souvent mal compris : le filtre agit sur les informations que le serveur renvoie au client.

Il ne filtre pas les paquets radio que notre iGate transmet vers APRS-IS.

Pour un simple iGate RX-only, il n’est donc généralement pas nécessaire de recevoir une quantité importante de trafic Internet.


14. Vérifier notre iGate

Il faut maintenant vérifier les trois étages de notre système.

La réception radio

Dire Wolf affiche-t-il des trames APRS ?

Si ce n’est pas le cas, cherchons du côté de :

  • l’antenne ;
  • la fréquence ;
  • le gain du SDR ;
  • la correction PPM ;
  • la réception FM ;
  • la chaîne audio.

La connexion Internet

Dire Wolf doit indiquer qu’il a réussi à établir sa connexion avec APRS-IS.

En cas d’échec, vérifions :

  • la connexion Internet ;
  • le serveur ;
  • l’indicatif ;
  • le passcode ;
  • la configuration Dire Wolf.

APRS-IS

Enfin, recherchons notre indicatif sur un service tel qu’APRS.fi.

Nous pouvons alors observer les paquets reçus et vérifier que notre station participe effectivement au réseau.


15. Faire fonctionner l’iGate 24 heures sur 24

Un iGate devient réellement intéressant lorsqu’il fonctionne de manière autonome.

Après validation de notre configuration, nous pourrons créer un service systemd chargé de démarrer automatiquement la chaîne de réception au démarrage du Raspberry Pi.

L’objectif est simple : Mise sous tension → Raspberry Pi OS → RTL-SDR / rtl_fm → Dire Wolf
↓
APRS-IS

En cas de coupure de courant, la station redémarre donc sans intervention.

Nous pourrons également consulter les journaux de systemd afin de diagnostiquer une éventuelle panne.


16. Et si notre iGate entend peu de stations ?

Avant d’accuser Dire Wolf ou le Raspberry Pi, regardons l’installation radio !

En APRS comme dans le reste de la radio : l’antenne fait une énorme différence.

Si notre iGate reçoit mal, vérifions dans cet ordre : antenne → dégagement → coaxial → connecteurs → environnement RF → réglage du SDR.

Il est également possible qu’un RTL-SDR placé directement à proximité d’un Raspberry Pi, d’une alimentation à découpage ou d’un câble Ethernet reçoive de nombreux parasites.

Une rallonge USB, des ferrites ou l’éloignement des alimentations peuvent parfois produire une amélioration spectaculaire.


17. Peut-on également transmettre vers 144,800 MHz ?

Oui, mais nous changeons alors de catégorie.

Notre iGate actuel fonctionne ainsi : RF → APRS-IS

Un iGate bidirectionnel peut également effectuer : APRS-IS → RF

Il lui faut alors un véritable émetteur VHF, une interface audio et une commande PTT.

Dire Wolf prévoit cette possibilité, notamment avec la directive IGTXVIA.

Mais il ne s’agit surtout pas de retransmettre sur 144,800 MHz tout ce qui circule sur APRS-IS !

Le mécanisme est principalement destiné à permettre certains échanges pertinents, notamment les messages destinés à des stations récemment entendues localement.

Cette fonction demande donc davantage de précautions et mérite à elle seule un prochain article.


Conclusion

Nous venons de transformer quelques composants très courants en une véritable passerelle entre le réseau radio APRS et Internet.

Avec une antenne VHF, un RTL-SDR, un Raspberry Pi et Dire Wolf, notre station peut écouter 144,800 MHz, décoder les trames AX.25/APRS puis les transmettre automatiquement vers APRS-IS.

Et contrairement à une simple réception SDR affichée quelques minutes sur un écran, un iGate peut fonctionner 24 heures sur 24 et contribuer réellement à la couverture APRS de sa région.

Notre petite chaîne : Antenne → RTL-SDR → Raspberry Pi → Dire Wolf → APRS-IS

constitue ainsi un excellent projet pour découvrir simultanément la radio numérique, le SDR, Linux, AX.25 et les réseaux.

Et maintenant que nous savons faire passer les informations de la radio vers Internet, une question vient naturellement : comment construire un iGate bidirectionnel capable de transmettre certains messages APRS-IS vers la radio ?

Ce sera une autre aventure !


Liens utiles

Dire Wolf — site officiel du projet
Documentation, sources et versions du logiciel :
https://github.com/wb2osz/direwolf

Configuration Dire Wolf
Exemple officiel contenant notamment MYCALL, PBEACON, IGSERVER, IGLOGIN et IGTXVIA :
https://github.com/wb2osz/direwolf/blob/master/conf/generic.conf

APRS-IS — connexion au réseau
Serveurs, connexions et ports :
https://www.aprs-is.net/Connecting.aspx

Filtres APRS-IS
Syntaxe et fonctionnement des filtres du port 14580 :
https://www.aprs-is.net/javAPRSFilter.aspx

Liste des serveurs APRS-IS
Serveurs régionaux et réseau Tier 2 :
https://www.aprs-is.net/aprsservers.aspx

APRS Tier 2 Network
Informations sur le réseau APRS2 et ses serveurs régionaux :
https://www.aprs2.net/

APRS.fi
Pour visualiser les stations et vérifier le fonctionnement de l’iGate :
https://aprs.fi/

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.