Fabriquer un Récepteur AIS pour 20€

Fabriquer un récepteur AIS avec une antenne RTL SDR et OPENCPN pour windows

Note de fran6.doumerc@gmail.com : Article rédigé par mon amie Thien An. Merci à elle.

1. Présentation

On peut bel et bien faire un récepteur AIS pour une vingtaine d’euros. Cela peut constituer un moyen secours en cas de panne de son AIS ou tout simplement un récepteur à bas coût quand on ne souhaite/peut pas acheter un AIS.

Voici un tutoriel en français (!) « pour les nuls ». Il y est également présenté les moyens de dépannage/vérification au fur et à mesure.

Cet article n’a pas la prétention d’être un cours sur les AIS.  Il présente sommairement ce qui doit être compris pour pouvoir faire son propre récepteur pour OPENCPN sous windows.

Cet article regroupe également ci-dessous en téléchargement tous les logiciels nécessaires (pour vous éviter d’aller un peu à la pêche sur le net avant de tout trouver)

zadig ou sur zadig

sdrsharp-x86

AISDECO2 ou sur xdeco

Nota: Ces fichiers sont compressés (.zip) pour les décompresser: vous pouvez utiliser ashampoo zip (gratuit), winzip ou autre logiciel de compression

Il faut également OPENCPN (gratuit) considéré comme déjà installé sur votre ordinateur. Si ce n’est pas le cas, vous pouvez le charger  (et il est fortement préconisé de savoir se servir d’OPENCPN avant de faire le récepteur AIS. De toute façon, il est utile de maitriser son outil de cartographie numérique).

Attention, le récepteur AIS en question n’est pas un produit de type « plug and play » que l’on brancherait et que l’ordinateur reconnaitrait tout seul… Ce serait trop facile. Il faut comprendre un minimum, mais avec un peu de persévérance, ça devrait marcher et vous allez apprendre pas mal de choses: qu’est ce qu’un AIS? Comment ça marche? qu’est ce qu’une trame NMEA?

2. Un peu de théorie

(C’est, je pense, le minimum à savoir. Les puristes trouveront des imprécisions, des simplifications: je m’en excuse)

L’AIS est un système d’identification automatique.

  • Il permet de voir les autres bateaux: c’est le mode récepteur
  • Il permet d’être vu par les autres bateaux: c’est le mode émetteur.

Un AIS émetteur placé sur un bateau envoie en permanence sur 2 fréquences VHF (161,975 MHz et 162,025 MHz) des messages contenant: l’identifiant du bateau (n° MMSI), sa position, sa vitesse et éventuellement d’autres informations sous réserve qu’elles aient été entrées par leur propriétaire  (longueur, destination, type de bateau,…).

Le message est envoyé suivant le protocole NMEA.

Le NMEA est un standard de communication, c’est à dire que tout le monde est d’accord pour utiliser un même language (ceux qui émettent et ceux qui recoivent).

A bord d’un bateau il y a un « bus », c’est un cable électrique dans lequel circulent en permanence plusieurs trames NMEA:

  • GPS
  • vitesse anémo
  • AIS

Ces trames sont lues par des « clients » qui ont besoin de ces informations:

  • autopilote
  • afficheurs
  • ordinateurs

Par exemple, le GPS USB qui sert pour OPENCPN émet en permanence (1 fois par seconde) une trame NMEA. Ca ressemble à ça:

$GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M,,,,0000*0E

GPGGA montre qu’il s’agit d’une trame GPS: OPENCPN lit cette trame et s’en sert pour afficher la position du bateau. pour le reste, on y trouve l’heure, la latitude, la longitude…

Un AIS récepteur « tout fait » est un boitier avec une antenne VHF et une sortie NMEA.

une trame AIS ressemble à ça

!AIVDM,1,1,,A,14eG;o@034o8sd<L9i:a;WF>062D,0*7D

AIVDM montre qu’il s’agit d’une trame AIS: OPENCPN lit cette trame et s’en sert pour afficher les cibles AIS. Le reste est incompréhensible sauf pour ceux liraient et parleraient le NMEA 0183 couramment (rassurez vous ça n’existe pas). Ce reste contient toutes les informations utiles. C’ est codé en ASCII (encore un langage d’extraterrestre, mais heureusement pour nous, ça existe). Il n’est pas utile pour ce post d’en savoir plus car OPENCPN s’en charge.

Un récepteur AIS veille en permanence les fréquences AIS, il lit les messages et renvoie sur le « bus » une trame NMEA contenant la liste des bateaux vus (« cibles AIS »). Cette trame doit être lue par un ordinateur qui décryptera cette trame NMEA pour afficher les cibles correspondantes sur un écran.

3. Passons à la pratique

Notre récepteur AIS est composé d’une antenne VHF dite SDR-RTL et d’un PC avec OPENCPN

antenne vhf

J’ai acheté mon antenne , elle fonctionne bien en ce qui me concerne. L’avantage d’acheter celle-là, c’est également de disposer d’un SAV et d’une assistance (en français!) (La preuve est dans les commentaires…). On ne peut en attendre autant lorsqu’on achète en Chine. On la trouve également  (moins chère, délai de livraison un peu plus long, sans SAV). Elle peut s’acheter ailleurs. Attention, toutes les antennes ne se valent pas (celle à 5€90 que l’on trouve ailleurs (amazon) marche mais les composants sont de moins bonne qualité). Il faut au minimum une antenne RTL-SDR sans trou de fréquence afin de capter les fréquences AIS

Ce que vous allez réaliser peut se schématiser ainsi:

schema pricipe1. Pour que l’antenne et la clé USB (tuner) soient reconnus, il faut installer un pilote (ou driver): c’est ZADIG (§3.1)

2. On utilisera SDRSHARP (§3.2) pour vérifier que l’antenne est bien installée et déterminer les caractéristiques de l’antenne, car chaque antenne est différente.

3. AISdeco2 (§3.3) sera utilisé pour la lecture des trames AIS  provenant de l’antenne et l’émission de trame NMEA AIS pour OPENCPN: il faudra au préalable entrer les caractéristiques de l’antenne (étape 2)  dans le fichier dit de « configuration » de AISdeco2

4. il faudra dire à OPENCPN où il peut lire la trame AIS (§3.4)

3.1. ZADIG

ZADIG permet d’installer le pilote de l’antenne VHF (c’est à dire que  votre ordinateur va « comprendre » qu’il y a une antenne VHF et « savoir » comment discuter avec elle). (Ne pas utiliser le CD éventuellement fourni avec la clé: à l’origine, il s’agit d’un tuner TV et le CD est fourni avec le pilote correspondant. Zadig permet d’utiliser la clé comme un scanner large bande VHF capable de fonctionner sur la fréquence AIS)

  1. Brancher le dongle USB sur un port USB de votre ordinateur. Si plus tard, vous décidez d’utiliser un autre port USB, il vous faudra refaire cette étape 3.1.

2. Démarrez ZADIG2.2zadig1

3. Dans le menu sélectionnez all devices

ZADIG2

4. dans la liste sélectionnez une ligne qui doit contenir: « Bulk In interface 0 » ou « SDR » ou « RTL » ou « 820T2 »

ZADIG3

Cliquez sur install (ou Reinstall) driver. L’installation se fait et vous devez avoir un message de succès en bas à gauche

ZADIG4

Note débugage/Vérification: pour confirmer le tout (cette vérification est optionnelle, mais d’une part c’est instructif et d’autre part, si ça ne marche pas dans les étapes suivantes, pour comprendre où ça coince, cette vérification sera nécessaire).

Allez dans le gestionnaire de périphériques de windows: la clé USB doit y apparaitre

ZADIG5

et en cliquant dessus, windows signale que le périphérique est bien installé.

Nota: le nom ne sera pas forcément RTL2838,

ZADIG6

3.2. SDRSHARP

On va déjà vérifier que notre antenne marche en écoutant la radio FM… Mais vous pouvez également écouter la VHF canal 16 avec!

3.2.1. Installation de SDRSHARP et essai

Décompressez sdrsharp-x86 (avec ashampoo)

Dans le répertoire où il a été décompressé, démarrez SDRSHARP

sdrsharp1

Nous allons vérifier que l’antenne permet de capter votre radio préférée

  1. Sélectionnez la source RTL-SDR (USB): c’est notre antenne
  2. Sélectionez WFM (Wide FM)
  3. Sélectionnez la fréquence de la radio FM que vous voulez écouter
  4. Play
  5. Réglez le volume

sdrsharp5

Normalement, vous avez la radio! Vous pouvez écouter le canal 16 ou n’importe quelle fréquence VHF… C’est déjà ça!

Note « débugage »: Si ça ne marche pas, c’est que vous avez mal installé l’antenne. Regardez dans le gestionnaire de périphérique (§1)

Si dans SDRSHARP vous avez (1): « no device found », vous pouvez tenter ceci:

1. spécifiquement lancer install-rtlsdr.bat qui est dans le répertoire ou il y a sdrsharp.exe
puis vérifier la présence du dll rtlsdr.dll dans ce même répertoire

2. Pour ma part SDRSHARP tourne sur une clé USB. Il semblerait que certains aient rencontré des problèmes si sdrshapr est mis dans le dossier « program files »

3. L’autre piste c’est de vérifier qu’on a bien Bulk Interface 0 et non Bulk Interface 1

Remarque 1: Le cadre supérieur droit indique le niveau du signal capté pour chaque fréquence. Sur l’image on voit qu’il y a du signal sur la fréquence 103.6

Remarque 2: Le cadre inférieur droit qui défile s’appelle la « cascade »

Nous allons maintenant déterminer les caractéristiques fines de votre antenne

3.2.2. Détermination des caractéristiques de l’antenne VHF.

Il faut impérativement être dans un endroit où il y a des cibles AIS (port)

  1. Régler la fréquence AIS 162.025
  2. Sélectionnez WFM: la cascade doit faire apparaitre des traits blancs horizontaux: chaque trait correspond à la trame NMEA émise par un bateau à portée VHF!

sdrsharp6

3. Cliquez sur « outils »

sdrsharp34. Il faut modifier la valeur du ppm pour que les lignes blanches soient centrées sur 162.025 MHz (ce qui recentrera en même temps les lignes blanches sur 161.975MHz). Si les traits blancs sont à gauche de 162.025 augmenter le ppm et vice versa

Capture.JPGSDRSHARP

5. Modifier le gain de façon à avoir une cascade qui affiche nettement les traces AIS

6. Noter ppm et le gain (dans l’image ci dessus ppm = 61 et gain =42.1dB)

3.3. AISdeco2

Nous sommes tout près du but… Tenez bon. Pour commencer, fermez SDRSHARP

  1. Décompressez AISdeco2
  2. Dans le répertoire où vous avez mis AISdeco2, faites un clic droit (1) sur aisdeco.bat et ouvrez le avec notepad ou notepad++ (2)aisdeco1
  3. Dans notepad, modifiez la valeur du gain et du ppm par les valeurs relevées au paragraphe précédent (ppm = 61 et gain =42.1dB)aisdeco2
  4. Notez la valeur UDP (3: normalement vous allez relever 127.0.0.1:4159)
  5. Enregistrez et fermez  aisdeco2.bat (4)
  6. double-cliquez sur aisdeco2.bat : cela va démarrer aisdeco2. (Notez au passage la présence du fichier rtlsdr.dll dans le même répertoire.)aisdeco3
  7. Normalement, une fenêtre s’ouvre dans laquelle vous allez voir les trames AIS défiler

aisdeco2

On reconnait l’entête !AIVDM, l’heure de messages…

Nos trames NMEA sont bien créées par AISdeco2!!

Note « débugage »: AISdeco2 s’exécute mais vous ne voyez pas de trame? Etes vous certain d’être dans un endroit ou il y a des bateaux avec émetteur AIS (port, marina?).

Note « débugage »: AISdeco2 ne s’exécute pas. Vérifiez d’abord que SDRSHARP fonctionne, qu’il est fermé, qu’AISdeco2 est dans le même répertoire que rtlsdr.dll.

Note « débugage »:  malgré tout ça, AISdeco2 renvoie un message

usb_open error -12
Error: rtlsdr_open(): No error
Appuyez sur une touche pour continuer…

Ouvrez aisdeco2.bat avec notepad++ et modifiez le ainsi

echo off
cmd /c aisdeco2.exe –device-list –gain 42.1 –freq-correction 61 –freq 161975000 –freq 162025000 –net 30007 –udp 127.0.0.1:4159
PAUSE
exit

Enregistrez, fermez et exécutez en double cliquant sur Aisdeco2.bat

Vous devriez avoir une réponse du type

Available Devices:
0: Generic RTL2832U OEM
1: Generic RTL2832U OEM

On va désigner le périphérique à utiliser. Modifiez à nouveau Aisdeco2.bat ainsi

@echo off
cmd /c aisdeco2.exe –device-index 1 –gain 42.1 –freq-correction 61 –freq 161975000 –freq 162025000 –net 30007 –udp 127.0.0.1:4159
PAUSE
exit

Enregistrez, fermez notepad++. Rééssayez en exécutant aisdeco2.bat.

Si ça ne marche pas, modifiez ainsi

@echo off
cmd /c aisdeco2.exe –device-index 0 –gain 42.1 –freq-correction 61 –freq 161975000 –freq 162025000 –net 30007 –udp 127.0.0.1:4159
PAUSE
exit

Note « débugage »: PNAIS est une alternative à AISDECO2. Ce logiciel émet une PNAIS doit être décompressé dans le répertoire sdrsharp trame AIS NMEA qui peut être lue par OPENCPN.

PNAIS doit être décompressé dans le répertoire sdrsharp.

(cliquer sur le ! pour voir les caractéristiques du port et insérer le ppm).

Capture

 

Il ne reste plus qu’à afficher ça sur OPENCPN…

3.4. OPENCPN

  1. Ne fermez pas AISdeco2, sinon il n’y aura plus d’émission de trames NMEA

2. Démarrez OPENCPN

3. Cliquez sur outilsopencpn1

4. Cliquez sur connexions (1)

5. cliquez sur « Ajouter une connexion » (2)opencpn2

6. Cliquez sur réseau, puis UDP (2), Renseignez l’adresse (3) (noté sur AISdeco2.bat: 127.0.0.1, port 4159): désormais, OPENCPN sait ou chercher la trame AIS émise par AISdeco2.

opencpn3

Note débugage/vérification. étape optionnelle, mais vous allez voir vos trames NMEA, yc ompris celles de votre GPS): Cliquez sur « afficher NMEA »/appliquer

7. OPtionnel (6) Vous pouvez sélectionner « ouvrir la fenêtre d’affichage NMEA » et cliquer sur « Appliquer »

Si vous avez une fenêtre NMEA avec des trames AIS qui défilent, c’est gagné!

Dans l’exemple ci-dessous il n’y a que les trames AIS, mais si vous branchez le GPS USB vous aurez également des trames NMEA GPS qui s’intercaleront avec les trames AIS.

nmea opencpn

Dans la fenêtre principale d’OPENCPN, cliquez l’icône AIS

opencpn4

Note débugage/vérification. Optionel (pour vérification) Dans l’onglet « 3: AIS », sélectionnez « liste des cibles AIS », elles devraient s’afficher dans un tableau: Ce n’est qu’un affichage des trames NMEA AIS que vous avez vu précdemment

liste AIS opencpn

Fermez la fenêtre avec la liste des cibles pour revenir dans la fenêtre principale d’OPENCPN

Les cibles (dont vous avez vu la liste) s’affichent et si vous double cliquez dessus, vous avez même les détails

cible AIS OPEN CPN

Se connecter

S’inscrire

Réinitialiser le mot de passe

Veuillez saisir votre identifiant ou votre adresse e-mail. Un lien permettant de créer un nouveau mot de passe vous sera envoyé par e-mail.