Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.
Oft besteht der Wunsch auf Booten Messwerte aus Bussystemen auszulesen und individuell auf einer Webseiten anzuzeigen sowie zu navigieren. Dafür bieten sich AVnav und OpenPlotter an. Für Anfänger ist es nicht einfach herauszufinden was beide Systeme eigentlich machen und worin sie sich unterscheiden. Grundsätzlich lassen sich mit beiden Systemen diese Aufgabe lösen. Dazu muss man sich aber etwas näher anschauen wie die Systeme im Detail funktionieren.
Inhaltsverzeichnis
Hardware-Basis
Damit AVnav als auch OpenPlotter ausgeführt werden können, benötigt man eine Rechnerumgebung auf dem die Systeme laufen können. Es können sowohl kompakte PCs als auch Embedded-Systeme wie der Raspberry Pi verwendet werden. Kompakte PCs mit Mobile-Prozessoren bieten sehr viel Rechenleistung und Speicher im Gegensatz zum Raspberry Pi dessen Prozessor aus dem Handy-Sektor kommt und weniger Rechenpower hat dafür aber sparsamer ist. Kostenmäßig ist ein Raspberry Pi 4B wesentlich günstigere als ein Kompakt-PC und kostet ungefähr 60 Euro. Von der Rechenleistung her ist er auf jeden Fall ausreichend und hat genügend Reserven für spätere Erweiterungen. Zusätzlich verfügt der Raspi über einen GPIO-Erweiterungsport an dem eine Vielzahl von Sensoren angeschlossen werden können. Er ist daher auch die meist eingesetzte Hardwareplattform.
Abb. Dell Optiplex 7050 i3, i5, i7, 8…32GB RAM, 128GB…1TB SSD, 4x USB3.1, 2x HDMI, WiFi, 15…30W
Raspberry Pi
Der Raspberry Pi ist ein Kleinstrechner im Scheckkarten-Format. Es gibt ihn in mehreren Varianten, wobei wir uns hier ausschließlich auf den Raspberry Pi 4B konzentrieren. Von den älteren Modellen ist lediglich der Raspberry Pi 3B noch interessant. Ältere Modelle sollten nicht mehr verwendet werden.
Abb. Raspberry Pi 4B (Raspberry Fondation) 5…7W
CPU und Speicher
- Raspberry Pi 4B, 4GB, Quad Core 1.3GHz
- SD-Card bis 32GB (Linux mit Serveranwendung und Zusatzprogrammen)
Schnittstellen
Der Raspi 4B dient als zentrale Recheneinheit und stellt eine Vielzahl an Schnittstellen zur Außenwelt zur Verfügung:
- SD-Card-Schacht (für Betriebssystem und Anwendungen)
- RJ45 Ethernet 1GBit/s
- 2x USB 2.0
- 2x USB 3.0
- WiFi 802.11 bgn 2.4GHz / 5 GHz
- Bluetooth 4.1
- 2x HDMI
- 1x Audioausgang
- 1x Kameranschluss (über Flachbandkabel)
- 1x Displayanschluss (über Flachbandkabel)
- 40-pol. GPIO-Header (für Hardwareerweiterungen und Sensoren)
Durch die 4 Prozessoren und mit 4 oder 8 GB RAM ist der Raspi ausreichend schnell für Serveranwendungen und besitzt genug Leistungsreserven. Zudem verbraucht der Raspi je nach Auslastung zwischen 5…7W an elektrischer Leistung und ist damit sehr genügsam. Der Prozessor kann passiv gekühlt werden und ist damit geräuschlos. Versorgt wird der Raspi mit 5V über ein USB-C Kabel mit entsprechendem Netzteil. Für den Bootsbetrieb eignen sich spezielle DC/DC-Wandler die die 12V in 5V umwandeln. Man sollte darauf achten, dass das Netzteil ausreichend Strom von ca. 3,5A liefern kann, da in kurzzeitigen Lastspitzen einiges an Strom abverlangt wird.
Betriebssystem und Anwendungen
Der Raspi läuft nicht wie bei gewöhnlichen PCs mit einer Festplatte worauf sich das Betriebssystem befindet. Das Betriebssystem ist bei ihm in einer SD-Card untergebracht, die in den SD-Card-Schacht auf der Unterseite des Raspi eingesteckt wird. Die SD-Card verhält sich in diesem Fall wie eine Festplatte und von dort wird das Betriebssystem gestartet. Als SD-Card-Größe sollten 16 GB oder 32 GB ausreichen. Damit der Anwender keine aufwendigen Installationsorgien veranstalten muss, gibt es fertige Images auf denen sich das Betriebssystem sowie alle Anwendungen vorinstalliert befinden. Ziel ist es, sich im Internet ein Image zu besorgen und mit einem Hilfsprogramm auf die SD-Card zu übertragen. Ist das Image auf der SD-Card gespeichert und die SD-Card im Raspi, so kann der Raspi gestartet werden indem die 5V zugeschaltet werden. Für die Erstinstallation ist es hilfreich, wenn man an den Raspi Monitor, Tastatur und Maus anschließt, denn es müssen einige individuelle Einstellungen vorgenommen werden wie z.B. das Passwort zu ändern. Auf dem Bildschirm erscheint keine grafische Oberfläche wie man das von PC-Systemen gewohnt ist. Es gibt lediglich ein Terminalfenster mit schwarzen Hintergrund im Look & Feel von alten DOS-Zeiten. Zum Startzeitpunkt kann man eine Menge an Meldungen sehen und verfolgen wie das Betriebssystem hochgefahren wird, bis man am Ende an einem Login gelandet ist mit dem man sich mit dem Usernamen pi und den Standard-Passwort raspberry anmelden kann.
Bussysteme
Die im Boot vorhandenen Bussysteme können auf verschiedene Arten angebunden werden:
- USB für Bussysteme
- NMEA0183 über USB-RS485/RS422-Konverter
- Actisense NGT1 USB NMEA2000 zu PC-Gateway 300172 1x NMEA2000
- M5Stack Atom CAN BUS Kit 1x NMEA0183 und 1x NMEA2000
- USB für Geräte
- GPS-Dongle für Positionsdaten NMEA0183
- DVBT-Stick für TV, Radio, AIS
- dAISy, Bootstraffic via AIS NMEA0183
- Memory-Stick als Kartenspeicher und für Backups
- USB-Dongle als Kopierschutz für O-Charts Karten
- USB-WiFi-Stick für zweites Wireless LAN
- Ethernet
- TCP/UDP Port NMEA0183, SeaSmart (NMEA2000)
- WiFi
- TCP/UDP Port NMEA0183, SeaSmart (NMEA2000)
- GPIO-Connector
- Marine Control Server MCS (1x NMEA2000, 6x NMEA0183)
Die einfachste Art der Anbindung an Bussysteme wäre über USB, das mit günstigen USB-RS485/422-Konverter für NMEA0183 realisiert werden kann. Im Internet gibt es verschiedenste Versionen dieser Wandler. Man sollte darauf achten, Konverter zu kaufen die von Linux unterstützt werden, die z.B. mit Chips von FTDI, HC340 oder PL2303 bestückt sind. Es gibt sogenannte Kombi-Konverter die sowohl RS422 als auch RS485 unterstützen. Es sind aber auch Konverter zu finden die nur RS485 unterstützen. Mit einem Kombi-Adapter hat man die beste Wahl und kann später entscheiden wie man den Konverter benutzen möchte und trifft auf weniger Verbindungsprobleme durch falsche Signalanpassung. Nachfolgend sind einige Beispiele für solche Konverter aufgeführt.
Abb. USB-RS422/RS485 Konverter
Abb. USB-RS422/RS485 Konverter
Abb. USB-RS485 Konverter
Abb. USB-RS422/RS485 Konverter
Auch NMEA2000 lässt sich über USB an den Raspi anbinden. Entweder über das Actisense Gateway NGT1 oder über die Open Source / Open Hardware M5Stack Atom CAN BUS Kit. Das Projekt NMEA2000 Gateway mit M5Stack Atom beschreibt wie man durch aufspielen einer Gateway-Firmware ähnliche Funktionalitäten realisieren kann wie beim Actisense Gateway NGT1.
Abb. Actisense NGT-1
Abb. M5Stack Atom CAN BUS Kit
Falls bereits Systeme existieren, die über Ethernet Busdaten übertragen können, so lassen sich diese über TCP oder UDP Sockets per LAN-Kabel oder über WiFi anbinden. Das wären z.B. folgende Open Source WiFi-Sensoren für NMEA0183:
Ähnliche Open Source Projekte gibt es auch für NMEA2000:
Sensoren am GPIO-Port
Typische Marine-Sensoren werden über die oben beschriebenen Busse angebunden. Wer spezielle Sensorik einbinden möchte, kann die Sensoren über Pins am GPIO-Connector (40-pol. Pinleiste) anschließen. Der GPIO Port besitzt viele Steckkontakte an denen auch einige andere Bussysteme herausgeführt werden, die im Bootsbereich typischer Weise nicht verwendet werden.
Abb. GPIO Port
Diese Busse sind für elektronische Schaltungen gedacht, um ICs und Sensoren an Mikrocontroller anzubinden. Mit ihnen können keine all zu großen Längen (max. 1..2 m) überbrückt werden. Werden geschirmte Leitungen verwendet, so können auch größere Längen überbrückt werden. Die elektronischen Bussysteme sind im Gegensatz zu den Boots-Busssystemen nicht fehlertolerant und arbeiten meistens nur mit kleinen Signalpegeln und sind entsprechend empfindlich auf Störungen. Nachfolgend ist eine Auflistung der Bussysteme mit möglichen Sensoren zu finden.
- I2C (Buslänge 1…2 m)
- BME280 (Temperatur, Luftfeuchte, Luftdruck)
- BMP280 (Temperatur, Luftdruck)
- HTU21 ((Temperatur, Luftfeuchte)
- MPU9250 (Gyrometer, Beschleunigungssensor, Magnetometer)
- MPU9255 (Gyrometer, Beschleunigungssensor, Magnetometer)
- Zusatzdisplays (Text- und Punktmatrix-Displays)
- SPI (Buslänge 0,5 m)
- MCP2515 CAN Bus Controller für NMEA2000
- 1Wire (Buslänge bis zu 10 m)
- DS18B20 (Temperatur)
- Seriell (Buslänge bis zu 10 m)
- StromPi USV-Status
An dieser Stelle muss aber erwähnt werden, dass der GPIO-Port recht empfindlich ist und wenn man den Port falsch beschaltet, der Raspi dabei auch sterben kann. Wer irgendwelche Sensoren an den GPIO-Port anschließen möchte, sollte sich vorher genau informieren wie man das machen muss. Eine hilfreiche Webseite dazu bietet das Elektronik-Kompendium und die Dokumentation von OpenPlotter.
Abb. Beschaltungsbeispiel für den 1Wire-Bus mit 3 Temperatursensoren (OpenPlotter)
Der Marine Control Server (MCS) bietet in sofern Vorteile, wenn man mit Sensoren am GPIO-Bus arbeiten möchte, da viele Teile der Bussysteme wie I2C, 1Wire und digitale Ein- und Ausgänge bereits auf der Basisplatine mit den nötigen Schutzschaltungen unterstützt werden und mit wenig Aufwand Sensoren angeschlossen werden können. Zudem sind bereits alle Bussysteme wie 1xNMEA2000 und 6x NMEA0183 auf Anschlussklemmen herausgeführt.
Abb. Marine Control Server mit Raspberry Pi 4
Software
Bei der Software muss man unterscheiden zwischen dem Betriebssystem und den Anwendungen. Als Betriebssystem für AVnav als auch für OpenPlotter kommt Linux zum Einsatz sowohl für den PC als auch für den Raspberry Pi. Die Linux-Versionen unterscheiden sich aber für PC und Raspi und sind an die jeweilige Prozessor-Hardware angepasst. Beim PC werden 64 Bit x86-Prozessoren und beim Raspi 64 Bit ARM-Prozessoren unterstützt. Für AVnav als Betriebssystem wird Linux ohne grafische Oberfläche verwendet, weil überwiegend Serveranwendungen auf dem Raspi laufen und die eigentliche Bedienung über einem Webbrowser erfolgt. Monitor Tastatur und Maus sind nur bei der Erstinstallation notwendig. OpenPlotter hingegen wird über die grafische Bedienoberfläche von Linux bedient obwohl es auch teilweise einige Serveranwendungen enthält, die mit einem Webbrowser bedient werden können. Daher sind bei OpenPlotter immer ein Monitor, Tastatur und Maus notwendig. Das ist auch der deutlichste Unterschied zwischen beiden Systemen, da sie unterschiedliche Bedienkonzepte verfolgen. AVnav kann rein touchbasiert bedient werden wogegen das bei OpenPlotter für die meisten Anwendungen nicht möglich ist. Wer überwiegend ortsungebunden und wetterfest am Tablett oder Handy arbeitet, wird AVnav bevorzugen. OpenPlotter spielt dagegen seine Vorteile am Kartentisch aus, wo man ausreichend Platz für das notwendige Zubehör hat und komfortabel eine menübasierte grafische Bedienung vornehmen kann.
Abb. AVnav User-Frontend
AVnav ist im Prinzip eine Serveranwendung mit Zusatzprogrammen die primär zur Navigation entwickelt wurde und ausschließlich über einen Webbrowser bedient wird. Die Serveranwendung kann auf einem PC oder einem Raspi unter Linux laufen. Die kleinste Ausbaustufe besteht aus z.B. aus einem Raspi mit SD-Card und einem GPS-USB-Dongle. Der Raspi läuft dabei headless ohne Monitor, Maus und Tastatur. Das eigentliche User-Frontend von AVnav ist der Webbrowser. Zur detaillierten spezielleren Konfiguration der Server-Anwendung kann man sich von einem PC aus über das Netzwerk remote auf dem Raspi einloggen und die Konfiguration über Textdateien vornehmen wozu man einem Texteditor benutzt. Die Konfiguration ist daher nicht so einfach wie bei OpenPlotter wo sie grafisch erfolgt, obwohl AVnav eine große Palette an Parametriermöglichkeiten über das webbasierte User-Frontend ermöglicht. Im täglichen Betrieb ist man nicht mehr auf die Konfiguration von Textdateien angewiesen und kann alles über den Webbrowser bedienen. Das Bedienkonzept ist einheitlich über alle Bereiche und erzeugt ein praxistaugliches Look & Feel.
Abb. AVnav Server-Komponenten
AVnav besteht aus folgenden Komponenten:
- AccesPoint (Linux OS)
- AVnav Core mit Bedien- und Navigationsfunktionen
- Kartenplotter mit Tracking und Speicherung zurückgelegter Routen
- Anlegen und abfahren von Wegpunkten
- Verfolgung von kritischen AIS-Zielen
- Anzeige von Navigations-Informationen
- Frei konfigurierbare Anzeige von Messwerten aus Bussystemen (Dashboard)
- Einbindung fremder Webseiten
- Datenbank mit Kartenmaterial
- Kommerzielle Seekarten O-Charts
- Freie Seekarten Open Sea Map etc.
- Datenspeicher für Konfiguration und Messdaten
- SignalK-Server zur Verarbeitung und webbasierte Anzeige von Messdaten
- NMEA-Multiplexer zur Anbindung der Bussysteme
- NMEA0183, USB-Seriell, TCP, UDP
- NMEA2000, CAN-Bus über GPIO/SPI mit MCP2515
- Dashboard zur Anzeige von Messwerten aus Bussystemen
- Anbindung von Sensoren über GPIO-Bus
- Meldesystem für kritische Sensordaten
- Webserver zum Anzeigen der Bedienseiten
AVnav gibt es auch als Android-App im Play Store. Die AVnav-App vereint einen Teil der Server-Komponenten in einer App und hat eine etwas eingeschränkten Funktionsumfang im Vergleich zur Raspi-Variante. So fehlt z.B. der SignalK-Server und es ist nur ein einfacher NMEA0183-Multiplexer integriert. Bezüglich des Kartenmaterials können keine kommerziellen Seekarten wie O-Charts verwendet werden. In weiten Bereichen ist die Bedienung aber identisch und eignet sich als kleine Variante von AVnav auf einem Handy oder Tablet zur Navigation. Informationen aus Bussystemen lassen sich über WiFi mit TCP oder UDP in der App anbinden. Mit der App können auch kostengünstige Navigations-Plotter mit Hilfe eines Android-Autoradios aufgebaut werden.
Zu AVnav gibt es eine umfangreiche Bedienungsanleitung und einige Video-Tutorials:
OpenPlotter
Abb. Desktop von OpenPlotter mit geöffneten Konfigurator
OpenPlotter ist eine Sammlung von verschiedenen Desktop- und Serveranwendungen die unter Linux laufen. Prinzipiell erfolgt die Bedienung der Desktop-Anwendungen über die grafische Oberfläche von Linux über Maus und Tastatur und erfordert einen Monitor als Anzeige. Das Bedienkonzept der verschiedenen Desktop-Anwendungen ist nicht einheitlich und es gibt Brüche im Bedienkonzept. Aufgrund der Desktop-Oberfläche finden sich Anfänger schnell zu recht und können das System sehr komfortabel bedienen. Die Konfiguration erfolgt größtenteils grafisch und nur für einige spezielle Einstellungen muss man auf die Textkonsole wechseln.
Die Funktionen von OpenPlotter sind:
- AccessPoint (Linux OS)
- Kartenplotter (OpenCPN) mit Wegpunkten und Autopilot (PyPilot)
- Grafische Konfigurationstools (Python)
- SignalK-Server zur Verarbeitung und webbasierten Anzeige von Messdaten
- NMEA-Multiplexer zur Anbindung der Bussysteme
- NMEA0183, USB-Seriell, TCP, UDP
- NMEA2000, CAN-Bus über GPIO/SPI mit MCP2515
- Webbasiertes Dashboard für Anzeige von Messwerten aus Bussystemen
- Anbindung von Sensoren über GPIO-Bus
- Meldesystem für kritische Sensordaten
- Wetterberichte und Wetterkarten (xyGrib)
- IoT Implementierung (MQTT)
- SDR für AIS und Radioempfang mit DVBT-Sticks
- Spezielle Hardwareunterstützung (Montessiere HAT, StromPi etc)
AVnav | OpenPlotter | |
Unterstützte Hardware | PC, Raspberry Pi 3B/4B, Tablett, Handy | PC, Raspberry Pi 3B/4B |
Betriebssysteme | Linux, Android | Linux |
Max. SD-Card Größe |
32 GB, nur FAT16/FAT32 | 32 GB, nur FAT16/FAT32 |
WiFi Support | 802.11 bgn 2.4GHz/5GHz | 802.11 bgn 2.4GHz/5GHz |
WiFi AccesPoint | ja | ja |
Bluetooth | V4.3 BLE | V4.3 BLE |
Bedienung | touch, webbasiert alternativ Tastatur und Maus | Tastatur, Maus |
Anzeige | Web-Browser | Monitor, teilweise Web-Browser |
Unterstützte Ports | USB, Seriell RS232/RS422/RS485, CAN, Ethernet | USB, Seriell RS232/RS422/RS485, CAN, Ethernet |
Datenaustausch | TCP, UDP | TCP, UDP |
Unterstützte Marinebusse | NMEA0183, NMEA2000 | NMEA0183, NMEA2000 |
Unterstütze Elektronik Busse | I2C, 1Wire, SPI, Digital IO (nur Raspi, MCS) | I2C, 1Wire, SPI, Digital IO (Raspi, MCS) |
NMEA0183 Multiplexer | SignalK | SignalK |
Kartenplotter | AVnav | OpenCPN, FreeBoard (über SignalK-Pulgin, webbasiert) |
Kommerzielle Karten | O-Charts (nicht bei Android App) | O-Charts, NV-Charts |
Freie Karten | Open Sea Map etc. | Open Sea Map etc. |
Unterstützte Kartenformate | Rasterkarten: GEMF, mbtiles, S63 (O-Charts) | Rasterkarten, Vektorkarten: KAB, BSB, CM93, mbtiles, S63 (O-Charts) |
Datenhandling | SignalK, AVnav Multiplexer (Android App) | SignalK |
Datenspeicherung |
Logfile NMEA0183, InfluxDB über SignalK Plugin | Logfile NMEA0183, InfluxDB über SignalK Plugin |
Datenvisualisierung | AVnav Dashboard, SignalK Dashboard, Einbindung fremder Webseiten, Grafana mit InfluxDB | SignalK Dashboard, Grafana mit InfluxDB, diverse Plugins |
Wetterkarten | nein | ja, xyGrib |
Grafische Konfigurationstools | ja, webbasiert | ja, Python-Anwendungen |
Textbasierte Konfiguration | ja, Linux-Konsole | ja, Linux-Konsole |
GPS | ja, USB-Stick | ja, USB-Stick, Montessier HAT |
AIS | ja, über USB | ja, USB-Stick, Montessier HAT |
SDR | ja, über USB_DVBT-Stick (nur Android App) | ja, über USB_DVBT-Stick |
Autopilot | nein | ja, PyPilot |
IoT | nein | ja, MQTT |
Fertige SD-Card Images | ja | nein (nur für alte Versionen) |
Min. SD-Card Größe | 8 GB | 8 GB |
Image / Software |
Download-Seite | Download-Seite |
Projektseite |
AVnav | OpenPlotter |
Online Demo |
Demo-Server AVnav, Demo-Server SignalK | nur Demo-Server SignalK |
Online Hilfe | Webseiten | GitBook, Wiki OpenCPN |
Support | Segeln-Forum | OpenPlotter-Forum |
Fazit
Mit beiden Systemen AVnav wie OpenPlotter kann man Kartenplotter-Funktionen realisieren. Der Fokus bei AVnav liegt in einer webbasierten touchfähigen Bedienung der Software. Daher eignet sich AVnav hervorragend für Tablets und Handys als Anzeigegeräte. Die headless Serveranwendung ist schlank und wirkt sehr heterogen. Das Bedienkonzept ist einheitlich und die Anwendung wirkt aufgeräumt und konzentriert sich auf die wesentlichen Funktionen. OpenPlotter spielt seine Stärken am Kartentisch aus. Die Bedienung erfolgt mit Maus, Tastatur und Monitor und ist für Anfänger einfacher, da man in einer vertrauten Umgebung arbeitet wie man es von einem PC gewohnt ist. Bedingt durch das Bedienkonzept von OpenPlotter ist es schwieriger ein Kartenplotter für den Steuerstand aufzubauen, da die Komponenten wasserdicht sein müssen und das Bedienkonzept darauf nicht abgestimmt ist. Es gibt aber auch Projekte wo OpenPlotter als Kartenplotter eingesetzt wird. Da hat es AVnav leichter durch den Einsatz wasserdichter Tablets oder Handys, die auch eher für Tageslichtanwendungen geeignet sind als normale PC-Hardware. Das Feeling von AVnav entspricht eher einem Kartenplotter wogegen OpenPlotter mehr einer Desktop-Umgebung entspricht.
Für beide Systeme kann der Raspberry Pi als Unterbau verwendet werden und beide Systeme benutzen SignalK zur Einbindung von Bussystemen und zur Messdatenverarbeitung. Daher könne so gut wie alle Hardwareerweiterungen von beiden Systemen verwaltet und benutzt werden. Lediglich wenn es um Spezialhardware wie den Montessier Hat geht, hat OpenPlotter einen Vorteil. Anfänger können mit beiden Systemen ganz gut leben. Man sollte sich aber vorher im klaren sein, wie man das System benutzen möchte. Prinzipiell ist es möglich durch den einfachen Austausch der SD-Card von einem System auf das andere zu wechseln, falls man feststellen sollte, dass das andere System besser geeignet für den eigenen Anwendungsfall ist. Die bestehende Hardware kann dann fast vollständig für das andere System übernommen werden.
SD-Cards sind als Speichermedium nicht so gut für den Dauereinsatz geeignet. Mit einer SSD-Festplatte am USB3.0 bekommt man maximale Performance des Raspberry Pi sowie höhere Datensicherheit. Mit einer SSD ist der Raspi deutlich schneller unterwegs als mit einer SD-Card.
Wer den Raspi in warmen Umgebungen wie z.B. dem Mittelmeer einsetzen möchte wo die Luft-Temperaturen auf 40°C gehen können, sollte auf ein ausreichendes Kühlkonzept des Raspi achten. Anderenfalls kann es dazu kommen, dass der Prozessor die Taktfrequenz reduziert und spürbarer langsamer wird. Man kann entweder Gehäuse aus Aluminium verwenden oder man benutzt aufgeklebte Kühlkörper auf dem Prozessor. Eine aktive Kühlung mit einem Lüfter ist ebenfalls möglich. Es gibt Zusatzboards für den Raspi die einen Lüfter enthalten.
Abb. FLIRC Aluminium Gehäuse
Abb. Arctic HAT