Bouw je eigen AIS-station met een Raspberry Pi

Schepen in de hele wereld zenden van het Automatic Identification System (AIS) doorlopend hun positie en vaargegevens uit, ook in Nederland. Die scheepssignalen kun je met een klein beetje creativiteit, een Raspberry Pi en een goedkope USB-stick zelf uit de lucht plukken en op de kaart bekijken. We laten hier zien hoe je zelf een AIS basisstation opzet.

Het Automatic Identification System (AIS) is uitgevonden om de veiligheid op zee te vergroten. Het werkt met een transponder die aan boord van een schip is gemonteerd en die de basisgegevens van een schip uitzendt. Je kunt dan denken aan de naam, omvang, scheepstype en bestemming. Maar ook zaken als de vaarsnelheid, koers en vooral de positie. Het is daarmee is het een aanvulling op de radar die veel schepen aan boord hebben. Want in tegenstelling tot radar wordt AIS nauwelijks gehinderd door hoge gebouwen, bomen en bruggen. Dankzij de koers- en positiegegevens is ook meteen duidelijk waar een schip naartoe vaart.

Zeventien jaar geleden werd het systeem wereldwijd ingevoerd en in Nederland verplicht gesteld voor alle beroepsvaart. Maar het systeem is in toenemende mate ook populair aan het worden onder watersporters. Er varen nu al rond veertienduizend schepen rond in Nederland met een AIS-transponder aan boord. Dankzij apps als bijvoorbeeld Marinetraffic of het Nederlandse Waterkaart Live kun je de AIS posities van al die schepen op je PC en telefoon zien. De gegevens in die apps komen zowel van schepen als van de eigenaren van zogenaamde terrestrische AIS-stations: uitgerust met alleen een AIS-ontvanger - geen transponder dus - en een internetverbinding.

Het opzetten van zo’n vast AIS station is niet eens zo ingewikkeld, als je een beetje handig bent met een Raspberry Pi minicomputert en ons stappenplan volgt gaat het vast lukken. Aardige bijvangst: ook vliegtuigposities en P2000-meldingen komen met een AIS station binnen je bereik.

Boodschappenlijstje
Dit heb je nodig om zelf aan de slag te gaan:

Voor het systeem

Raspberry Pi of Pi-kloon. Wij gebruiken een Orange Pi Zero LTS € 7,68 ( via deze Aliexpresswinkel)

SDR USB-stick NESDR SMArt v4 € 23 (via Nooelec)

16 GB SD-kaart (8 GB kan ook) € 6,95 (diverse winkels)

Voor de antenne

SMA (m) - SMA (v) verlengkabel - RG174 - 50 Ohm - 1 meter €3,99 (onlinekabelshop.nl)

Adapter UHF (v) - SMA (m) € 4,99 (onlinekabelshop.nl)

PL-259 connector € 1,99 (onlinekabelshop.nl)

5 meter montagedraad € 2,99 (bouwmarkt)

Aan de slag

Om te beginnen heb je een Raspberry Pi nodig. Omdat AIS decoderen en verzenden echter een bijzonder lichte taak is, kun je ook met een eenvoudige Chinese Pi-kloon uit de voeten. Bij deze tutorial gebruiken we een Orange Pi Zero LTS H2+.

Dat is een bordje van 4,5 bij 4,5 centimeter groot, voorzien van USB, Netwerk, Wifi en een quad core Allwinner H2+ CPU op 1 Ghz. En met slechts 256 Mb geheugen, dat is meer dan genoeg voor ons doel. We kochten dit complete linuxnetwerkcomputertje voor nog geen acht euro in de Ali Express-winkel van de fabrikant, Shenzen Xunlong Software. Voor rond 25 euro is deze ook in diverse Nederlandse webwinkels te krijgen. Let wel op dat je de LTS-versie koopt, de oudere Pi Zero-varianten worden nogal heet namelijk. Maar als je al een Raspberry Pi hebt liggen, dan kun je deze natuurlijk ook prima gebruiken om je eigen AIS station mee op te bouwen.

Raspberry Pi OS installeren

Zoals alle Pi-varianten dien je het besturingssysteem op een micro-SD-kaartje te installeren. We kiezen voor Raspbian Buster, een Debian Linux variant die speciaal voor deze systeembordjes is bedoeld. Tegenwoordig heet Raspbia 'Raspberry Pi OS'. De minimale omvang van het kaartje moet 4 gigabyte zijn, maar meer mag natuurlijk altijd. Om dit besturingssysteem te installeren moet je eerst de Micro-SD kaart in een daarvoor geschikte lezer aan je computer verbinden. Het flashen van de SD-kaart is daarna heel eenvoudig dankzij een nieuwe tool op de website van de Raspberry Pi Foundation: de Raspberry Pi Imager.

Je kunt deze downloaden via https://www.raspberrypi.org/downloads/ Start De Raspberry Pi Imager na het installeren en gebruik de knoppen in beeld om achtereenvolgens het gewenste besturingssysteem te kiezen (Raspbian) en de locatie van de SD-kaart aan te geven. Ben je zeker dat alles goed staat? Druk op ‘Write’ waarna de software het juiste image downloadt en de SD-kaart flasht. Dat duurt met een beetje rappe internetverbinding een paar minuten. Mocht overigens het flashen niet lukken met deze tool, download dan een Armbian image vanaf https://www.armbian.com en flash deze met een losse flashtool zoals Etcher (https://www.balena.io/etcher/) naar je SD-kaart. Schuif de SD-kaart in je Pi, koppel het computertje met een netwerkkabel in je router en zet deze aan, de Pi start meteen op.

Configureren

Je kunt het IP-adres van je Pi in je thuisnetwerk vinden met een netwerkscanner, zoals de Advanced IP scanner (https://www.advanced-ip-scanner.com). Daarna kun je via SSH verbinding maken met het machientje. Wij gebruiken Terminus (https://terminus.com) als SSH-client, maar je kunt natuurlijk iedere goed functionerende SSH-app inzetten.
Gebruik je een Raspberry Pi dan is je gebruikersnaam Pi en het wachtwoord Raspberry. Op een Orange Pi log je in als root en wachtwoord 1234. Het systeem zal je daarna vragen om een gewone gebruiker aan te maken, volg de instructies op het scherm en het komt goed. Herstart de Pi met het commando reboot en log in met de gewone gebruiker. Mocht je een Wifi-dongle hebben of een apparaat met ingebouwde Wifi hebben, dan is het handig deze ook nog te configureren. Vaak is het intikken van het commando nmtui al afdoende om een grafisch configuratieprogramma te starten. Maar er is wat verschil tussen de verschillende Pi-varianten. Hoe dat precies werkt gaat echter voorbij de essentie van dit artikel, we gaan ervan uit dat je het systeem nu in ieder geval via je thuisnetwerk - zij het bedraad, zij het via Wifi - kunt benaderen.

Gelukt! Na de eerste start en het inloggen op de Orange Pi Zero moeten we een gebruiker aanmaken

Werk daarna eerst de systeemsoftware bij met de volgende commando’s

sudo apt-get update
sudo apt-get upgrade

En stel de tijdzone in met:

sudo dpkg-reconfigure tzdata

Je bent nu klaar om met het echte werk te beginnen: het installeren van de software voor de RTL-SDR tv stick.

Begin met het installeren van de benodigde bibliotheken om de ontvangstsoftware te kunnen compileren. Dat kan gelukkig met één commando:

sudo apt-get install git cmake libusb-1.0-0-dev build-essential libusb-dev pkg-config

Download de broncode vervolgens uit het Github-repository met:

git clone git://gitea.osmocom.org/rtl-sdr.git

Daarna kun je de software compileren en installeren met de volgende serie commando’s:

cd  rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig
cd ~
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
sudo reboot

Compileren duurt even op een lichtgewicht computertje als de Orange Pi Zero

Steek nu de DVB-T USB-stick in de usb-poort van je Pi en kijk eventueel na of deze inderdaad wordt gedetecteerd met het commando dmesg Test daarna of de rtl_sdr software goed is geïnstalleerd met het commando rtl_test In de meeste gevallen zul je nu de melding krijgen dat de USB-stick al is geclaimd door de dvb_usb_rtl28xxu-systeemdriver. Dat is niet handig, verwijder de driver uit het geheugen met het commando

sudo modprobe -r dvb_usb_rtl28xxu

Mocht het systeem je vertellen dat het niet kan omdat de driver in gebruik is, trek de USB-stick even los en probeer het opnieuw.

Maak vervolgens een leeg bestand aan met het commando:

touch /etc/modprobe.d/rtl-sdr-blacklist.conf

En probeer rtl_test opnieuw.

Dat ziet er goed uit, na het draaien van rtl_test wordt de USB-stick correct gedetecteerd

Nu de stick is geïnstalleerd en goed draait kunnen we door met de volgende stap: AIS-signalen ontvangen. Maar omdat AIS best wat eisen stelt aan je antenne is het misschien slim om eerst een zijstapje te maken en eerst P2000-signalen met je stick te decoderen. Dat is vrij eenvoudig te regelen en zorgt ervoor dat je zeker weet dat de rtl_fm software goed draait en dat je inderdaad met je Pi-systeem in staat bent om signalen uit de lucht te plukken. Zie daarvoor het kader ‘P2000-berichten ontvangen’.

AIS-software installeren

Nu we zeker weten dat onze USB stick goed ontvangt en is aangesloten is het tijd voor waar het allemaal om draait: AIS aanzetten. Het compileren van de software daarvoor (rtl_ais) is bijzonder eenvoudig en behelst de volgende commando’s:

git clone https://github.com/dgiardini/rtl-ais
cd rtl-ais
make 
sudo make install

Gebruik je de nieuwste Raspbian (Buster) dan krijg je na het commando make waarschijnlijk een fout op het scherm te zien omdat de locatie van het bestand librltsdr een andere is dan welke de software deze verwacht (deze bibliotheek is in /usr/local/lib/ geïnstalleerd). Om die compileerfout te voorkomen moet je het bestand Makefile aanpassen: vervang de derde regel in het bestand (met de tekst LDFLAGS+=-lpthread -lm ) met het volgende

LDFLAGS+=-lpthread -lm -lrtlsdr -L /usr/local/lib/ Bewaar het bestand, schoon de directory op met het commando make clean. En compileer en installeer de AIS-software alsnog met:

make
sudo make install

Je kunt nu rtl_ais uitproberen door het commando rtl_ais -n in te geven. Met de vlag -n laat je de software de output naar de console streamen. Als het goed is zie je het programma starten, waarna deze naar de AIS-signalen gaat luisteren die het via de USB-stick binnenkrijgt. Als je nog geen geschikte antenne aan de USB-stick hebt gekoppeld, gebeurt er echter nog helemaal niets.

Dat fixen we in het volgende artikel: een antenne voor AIS ontvangst maken.

Dit artikel is onderdeel in een serie. Dit zijn alle delen:
1. Bouw je eigen AIS-station met een Raspberry Pi
2. Een antenne voor AIS ontvangst maken
3. Welke SDR dongle voor AIS ontvangst?
4. Deel AIS data met Marinetraffic, Vesselfinder en AISHub
5. P2000-berichten ontvangen met RTL-SDR

 

Written by Waterkaart Live on zaterdag februari 1, 2020

« Welke SDR dongle voor AIS ontvangst? Een antenne voor AIS ontvangst maken »

Meer artikelen