AIS-Dekoder für Wifi unter Android

Abb.: AIS-Empfänger in Marine-Funkgerät integriert (ICOM)

AIS Automatic Identification System

AIS ist ein Identifikationssystem für Wasserfahrzeuge. Es basiert auf der Aussendung von Bootsinformationen wie Standort, Geschwindigkeit, Richtung, Größe des Bootes und anderer Informationen, die über Funksignale ausgesendet werden. Andere Boote können die Informationen empfangen und sich ein Lagebild der Umgebung mit Verkehrsflussinformationen erstellen. So erhält man deutlich mehr Informationen als man mit Radar aufnehmen kann. Moderne Navigationssysteme können AIS Informationen in Seekarten einbinden und so den Verkehrsfluss live sichtbar machen.

Abb.: Schiffsbewegungen  (Marine Traffic)

AIS-Dekoder als Softwarelösung für Android

Wer AIS-Signale kostengünstig mit einem einfachen DVBT-Stick unter Android dekodieren möchte, kann das jetzt mit der Kombination aus RTL SDR AIS Driver und AIS Share vornehmen. Als Signalempfänger dient ein einfacher DVBT-Stick, der eigentlich für den TV-Empfang von Fernsehprogrammen gedacht ist. Der UMTS-Stick ist ein vollständig digitalisierter SDR-Empfänger für Funkaussendungen im Frequenzbereich von 1 MHz bis 1 GHz. Damit lassen sich auf beliebigen Frequenzen Funkaussendungen empfangen und dekodieren. Das AIS-Signal wird auf zwei Frequenzen 161.975 MHz (Kanal A) und 162.025 MHZ (Kanal B) in digitaler Form ausgesendet. Mit der Android App RTL SDR AIS Driver kann der DVBT-Stick so konfiguriert werden, dass er gleichzeitig auf beiden Frequenzen die AIS-Signale empfangen und in NMEA0183 Telegramme umwandeln kann. Die AIS-Informationen in Form von NMEA0183 Telegrammen werden dann über WiFi auf UDP Port 10110 im Netzwerk ausgesendet und können von beliebigen Apps wie AVnav, Navionics oder anderer Navigations-Apps empfangen werden.

Abb.: RTL SDR V3 USB-Stick

Der DVBT-Empfänger wird mit dem Handy oder Tablett und einer AIS-Antenne verbunden. Die für Fernsehempfang mitgelieferte Antenne kann nicht genutzt werden, da sie für Fernsehfrequenzen gedacht ist und nur sehr schlecht AIS-Signale empfangen kann. Eine spezielle AIS-Antenne oder Marine-Funkantenne ist notwendig. Oft werden bei Marine-Funkantennen SO239 Stecker verwendet die man nicht direkt am DVBT-Stick anschließen kann. Es werden noch spezielle Adapter von SO239 auf SMA benötigt. Ein Adapterkabel SMA zu SMA ist auch noch notwendig. Wer möchte, kann sich auch eine günstige und empfangsstarke AIS-Antenne selber bauen.

Abb.: Adapter SO239 zu SMA

Bei den DVBT-Sticks ist darauf zu achten, welchen Stick sich man kauft. Sie werden auch oft unter dem Namen RTL-SDR-Sticks verkauft. Nicht alle Sticks sind geeignet, da sie nicht ausreichend frequenzstabil sind. Das heißt, dass die digital eingestellte Empfangsfrequenz nicht genau genug ist und sich zudem noch mit der Temperatur verändert. Zum Empfang von AIS-Signalen werden frequenzstabile Empfänger benötigt, um die schmalbandige Aussendungen sicher empfangen zu können. Gut geeignete SDR-Empfänger haben nur eine Frequenzdrift von 0…1 PPM über dem gesamten Temperaturbereich. Einfachere DVBT- bzw SDR-Sticks lassen sich auch verwenden, benötigen dafür aber eine korrekte Frequenzkorrektur und eine stabile Betriebstemperatur. Es sind Korrekturen von bis zu 60…70 PPM notwendig. Das macht den sicheren Betrieb recht schwierig und oft läuft die Empfangsfrequenz weg und die empfangenen Signalstärken sind zu schwach, um AIS-Signale dekodieren zu können. Aktuelle moderne RTL-SDR-Sticks wie der RTL SDR V3 mit 1 PPM sind zu bevorzugen, da sie solche Probleme nicht mehr haben. Wenn sie andere SDR-Sticks kaufen, achten sie auf 0…1 PPM Temperaturdriftverhalten.

Um einen SDR-Stick am Handy oder Tablett verwenden zu können, muss das Gerät über einen USB OTG Anschluss verfügen. An anderen USB-Anschlüssen kann u.U. der SDR-Stick nicht erkannt werden und funktioniert nicht. Die meisten aktuellen Handys verfügen über USB OTG Anschlüsse.

Die App RTL SDR AIS Driver ist die Grundvoraussetzung, um einen SDR-Stick an einem Handy oder Tablett betreiben zu können. Sie fungiert als Treiber unter Android und stellt die Basisfunktionen zur Verfügung wie die Einstellung der Empfangsfrequenz und Dekodierung der AIS-Signale. Die App ist kostenlos und dient auch zur Evaluierung der verwendeten Hardware. Sie dekodiert bis zu 1000 AIS Telegramme und kann sie über Port 10110 ausgeben. Danach stellt die App Ihren Dienst ein. Eine sehr nützliche Funktion ist die Wasserfallgrafik des empfangenen Frequenzspektrums. Mit den Markern der beiden Empfangsfrequenzen kann die Frequenzstabilität des SDR-Sticks überprüft werden.

Abb.: Wasserfallgrafik zum Frequenzspektrum in der RTL SDR AIS Driver App

Wenn man einen geeigneten SDR-Stick benutzt, kann man darüber die Einstellung der Frequenzkorrektur in PPM sehr genau kontrollieren. Dazu werden die Maxima der Signalamplitiuden der empfangenen AIS-Signale im Frequenzspektrum über der Wasserfallgrafik angezeigt. Das benötigt aber etwas Zeit. Es bilden sich dann zwei Überhöhungen heraus. Die Überhöhungen müssen dann mit den Markern in Deckung gebracht werden. Der entsprechende PPM-Wert der sich dann ergibt ist der Frequenz-Korrekturwert. Bei guten SDR-Empfängern sollte er bei 0…1 PPM liegen. Bei schlechten Empfängern ist er deutlich größer. Die Frequenzkorrektur ist aber nur möglich, wenn man sich in einem Gebiet befindet, wo AIS-Signale ausgesendet werden. Das ist meistens an Küsten oder in der Nähe von Flüssen mit Schiffsverkehr möglich. Direkt im Landesinneren ohne AIS-Signale wird man die Frequenzkorrektur nicht durchführen können.

Um dauerhaft AIS-Signale dekodieren zu können gibt es noch eine kostenpflichte Co-App namens AIS Share, die 3,50 Euro kostet. Sie ist die eigentliche AIS-Anwendung, die auf die Treiber-App zugreift und die AIS-Signale dekodiert. Sie bietet deutlich mehr Funktionalität als die RTL SDR AIS Driver App, beinhaltet aber keine Wasserfallgrafik zur Einstellung der Frequenzkorrektur. AIS Share kann neben den AIS-Signalen auch GPS-Signale des Handys im WiFi Netzwerk über UDP bereitstellen und fungiert als Datenserver für mehrere Geräte im Netzwerk. So lassen sich mehrere Anwendungen mit AIS- und GPS-Signalen versorgen. Zusätzlich lassen sich bis zu 5 Ports bereitstellen, an denen die Daten neben UDP auch über TCP abgegriffen werden können. Die 3,50 Euro sind gut investiert.

Abb.: AIS Share

Integration in Navigationssoftware

In der Navigationssoftware gibt es einen Konfigurationspunkt über den externe Geräte über NMEA0183 per WiFi angebunden werden können. So lassen sich AIS- und GPS-Signale gleichzeitig von mehreren Geräten nutzen.

In Navionics müssen folgende Einstellungen vorgenommen werden. Gehen sie unter Menü auf Gekoppelte Geräte und drücken oben auf das Plus-Zeichen. Danach drücken sie unten auf Gerät Hinzufügen. Füllen sie dann folgende 3 Felder aus:

  • Name: AIS-Server
  • Host: IP-Adresse des Handys oder Tablets auf dem AIS-Share läuft. Ist es das selbe Gerät, so benutzen sie hier: 127.0.0.1
  • Port: 10110

Danach wählen sie UDP aus und drücken oben in der blauen Zeile auf Speichern.

Abb. Settings in Navionics

Fragen und Antworten

Ist mein SDR- oder DVBT-Stick kompatibel?

Um das herauszufinden hat der Hersteller der Software ebctech ein ausführliches Tutorial in englisch bereitgestellt. Dabei wird auf sehr viele Details eingegangen und man weiß am Ende welchen Stick man kaufen sollte.

Ich empfange keine AIS-Signale und sehe im Wasserfall-Frequenzspektrum keine Beulen. Woran liegt das?

Zum einen benötigen sie eine Antenne, die für Marinefunk geeignet ist. Die beiliegende Antenne zum SDR-Stick ist dafür nicht geeignet. Kaufen sie sich eine Marinefunkantenne mit entsprechenden Adapter oder bauen sich eine Marinefunkantenne selber. Zum anderen kann es daran liegen, dass sie sich in einem Gebiet befinden, wo keine AIS-Signale empfangen werden können. Das ist meistens im Binnenland der Fall. Denn AIS-Aussendungen von Schiffen werden nur ca. 5…15 sm weit ausgesendet. Die Sendeleistung liegt nur bei 5W. Begeben sie sich in die Nähe von Küsten oder Flüssen mit Schiffsverkehr. Dann werden sie AIS-Signale empfangen können.

RTL SDR AIS Driver läuft eine Weile und empfängt dann keine AIS-Signale mehr

RTL SDR AIS Driver ist nur ein Test-App, um die verwendete Hardware testen zu können. Nach 1000 AIS Telegrammen wird die Aussendung über UDP gestoppt. Wenn die App erneut AIS-Signale aussenden soll, müssen sie die App neu starten. Alternativ können sie die kostenpflichtige App AIS Share installieren.

AIS Share läuft eine Weile und empfängt dann keine AIS-Signale mehr

Einige Handy-Hersteller benutzen sehr aggressive Energiesparrichtlinien und zwingen die App dazu, sich zu schließen, wenn sie im Hintergrund ausgeführt wird. Wenn dieses Problem auftritt, besteht die einzige Lösung darin, sowohl den RTL-SDR-Treiber als auch die AIS Share-App in Ihrem Gerät manuell auf die Whitelist zu setzen. Anleitungen für verschiedene Anbieter finden Sie hier.   dontkillmyapp.com

Ein weiterer Grund könnte der USB-OTG-Adapter oder das USB-OTG-Kabel sein, die eine schlechte Qualität haben. Dann kann es zu Übertragungsfehlern kommen oder die benötigte Stromversorgung für den SDR-Stick ist nicht stabil. Hier finden sie einige Empfehlungen: USB-OTG-Kabel

Wie kann ich AIS Share einstellen, dass alle Geräte im Netzwerk die AIS-Informationen gleichzeitig empfangen können?

Tragen sie als IP-Adresse 255.255.255.255 für die Shares in AIS Share ein. Wenn sie UDP benutzen werden alle AIS-Informationen an alle Netzwerkteilnehmer gleichzeitig als Broadcast-Mitteilung versendet.