AvnNav und NMEA2000
AvNav kann von sich aus nicht direkt NMEA2000-Daten verarbeiten. Um mit NMEA2000-Systemen zusammen zu arbeiten, gibt es mehrere Möglichkeiten:
| Variante | Beschreibung | System |
|---|---|---|
| Canboat | AvNav kann NMEA2000-Daten über canboat empfangen. Senden ist nicht möglich. | RaspberryPi, Linux |
| SignalK | AvNav kann alle Daten von SignalK empfangen. Über SignalK können auch Daten, die von AvNav kommen (z.B. Wegepunkte) im NMEA2000-Format gesendet werden. | RaspberryPi, Linux, Windows (wenn SignalK auf einem erreichbaren System läuft) |
| externe Umsetung | Ein externer Umsetzer kann die NMEA2000-Daten auf NMEA0183 übersetzen (und meist auch zurück), er kann per TCP, UDP oder USB verbunden werden | alle Systeme |
Canboat
Mit canboat können an den Raspberry oder ein anderes Linux System angeschlossene CAN-Adapter (z.B. mit MCP2515 oder ein Waveshare RS485 CAN-HAT ) oder per USB angeschlossene Adapter (z.B. Actisene NGT-1) genutzt werden. Für die einfachen CAN-Adapter muss darauf geachtet werden, dass sie zwei Spannungsversorgungen haben (3,3V und 5V) - viele ganz einfache haben das nicht!
Im Bild ist das prinzipielle Setup zu sehen, so wie es von den headless Images bereitgestellt wird.
Für einen per SPI angeschlossenen CAN-Adapter muss meist noch ein Overlay in der Datei /boot/config.txt eingeschaltet werden. Für den MCP2515 sind entsprechende Einträge bereits vorbereitet, diese müssen dann auskommentiert werden. Gegebenenfalls müssen die Taktfrequenz und der für den Interrupt genutzte GPIO Pin geändert werden.
Dieser CAN-Adapter erscheint dann als Netzwerk-Interface. U.U. muss er noch entsprechend konfiguriert werden - in den Images ist das bereits vorbereitet.
Das Interface sollte mit dem Befehl:
sichtbar sein.
CanboatHandler
AvNav nutzt in den aktuellen Versionen canboat-rust. Dazu wird im Normalfall das entsprechende Paket installiert.
Falls noch mit dem legacy canboat n2kd gearbeitet werden soll bitte in der legacy Dokumentation nachlesen. Die Konfiguration muss jedoch wie hier beschrieben über den AVNCanboatHandler erfogen.
Die Verbindung zu canboat stellt der AVNCanboatHandler bereit. Er ist über die Seite
->
erreichbar.
Per default ist er zunächst disabled. Um ihn zu aktivieren editiert man den Handler.
Canboat Handler Konfiguration
Wichtig hierbei sind die Werte für canboatKind und canboatDevice. Diese definieren, welches Gerät mit welchem Protokoll angesprochen wird.
Eine Beschreibung aller Parameter findet sich bei der Serverkonfiguration.
Es können bei Bedarf auch direkt Parameter für das genutzte Kommando canboat server angegeben werden.
Der AVNCanboatHandler startet direkt den canboat server und überwacht, ob er läuft. Bei Problemen kann man über die Seite
->->
in der AvNav Log-Datei nach den Ausschriften vom canboat Kommando suchen.
Je nach gesetzter Konfiguration setzt der Handler eine Verbindung zum NMEA Port von canboat auf , um die NMEA0183 Daten von dort zu empfangen. das ist die Standard-Konfiguration und sollte in den meisten Fällen ausreichen.
Falls die NMEA0183 Daten nicht zu AvNav gelangen sollen oder keine Positions- oder Zeitdaten enthalten sind, kann man auch die direkte Dekodierung einiger NMEA2000 Daten aktivieren (readN2K). Wenn aktiviert, kann AvNav bei Bedarf auch RMC Datensätze erzeugen, falls in den in AvNav verfügbaren NMEA Daten kein RMC vorhanden ist.
Zusammenwirken mit SignalK
Wenn die NMEA2000-Daten auch direkt zu SignalK geleitet werden, sollte für den SocketWriter der dafür genutzt wird (default auf Port 34568) eine Blacklist mit den Namen des AVNCanboatHandlers (default: canboat) eingetragen werden, damit die NMEA2000-Daten nicht auch noch einmal per NMEA0183 zu SignalK gesendet werden.
Ein Senden von Daten über NMEA2000 ist bisher nicht vorgesehen, das kann ggf. über SignalK konfiguriert werden.
SignalK
Die Linux- und Windowsversionen von AvNav können Daten auch von einem SignalK Server empfangen. Dieser kann auf dem gleichen System laufen oder auf einem anderen System, das per Netzwerk erreichbar ist. Für Details siehe die Beschreibung der SignalK Integration.
Externe Wandler
Es gibt verschiedene Produkte, mit denen NMEA2000-Daten in NMEA0183-Daten (und zurück) umgewandelt werden können. Je nach Produkt werden sie über das Wifi Netzwerk (per UDP oder TCP) oder über USB bzw. NMEA0183 seriell verbunden.
Neben kommerziellen Lösungen gibt es für diesen Zweck auch Open Source Projekte. Ein Beispiel ist der NMEA2000 Gateway auf ESP32. Mit diesem Projekt kann man mit einigen wenigen Komponenten ohne Lötarbeiten einen Umsetzer NMEA2000 <-> NMEA1083 zusammenstecken. Dieses System ist explizit mit AvNav getestet. Man kann den Umsetzer sowohl per Wifi mit AvNav verbinden, als auch z.B. per USB. Insbesondere für die AvNav Android App ist das eine einfache Lösung.

