NMEA2000 Datenaustausch mit Garmin-Geräten

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Abb.: Garmin GPSmap 420 (Garmin)

Ältere Garmin-Geräte der GPSmap Reihe haben je nach Modell keine Schnittstelle für NMEA2000, um einen Datenaustausch mit anderen Geräten zu ermöglichen. Beispielhaft sind im nachfolgenden Bild die Schnittstellensignale für Geräte der Serie GPSmap 400/500 gezeigt.

Abb.: Anschlusskabel GPSmap 400/500 Serie (Garmin)

Die CANet Schnittstelle entspricht aber nicht dem NMEA2000 Standard, so dass die Signale von Geräten anderer Hersteller nicht verarbeitet werden können. CANet basiert zwar auch auf CAN, benutzt allerdings andere Protokolle, die nicht kompatibel zu NMEA2000 sind. Inzwischen verwendet Garmin nur noch NMEA2000. Bei vielen älteren Geräten ist das aber nicht immer der Fall. In dieser Liste können sie nachsehen welche älteren Geräte schon NMEA2000 benutzen und welche auf CANet basieren.

Wer ein Gerät mit CANet Schnittstelle hat und dieses Gerät am NMEA2000 Bus verwenden möchte, benötigt dafür ein Gateway zur Übersetzung der Signale zwischen NMEA0183 und NMEA2000. Ein solches NMEA2000-Gateway wurde von Andreas entwickelt und basiert auf einem M5Stack Atom CAN-Bus Kit mit einem RS485-Bus-Modul. Dieses Gateway können wir nicht direkt am Garmin-Gerät verwenden, da die NMEA0183-Schnittstelle des Garmin nicht kompatibel zu RS422 oder RS485 ist. Es wird leider ein proprietäres Format verwendet. Die Schnittstellen basieren auf 5V-TTL-Signalen, die dazu noch invertiert sind. Die Schnittstelle hat folgende technische Spezifikation:

  • Kommunikationsart: Seriell, 8N1, RS232-ähnlich
  • Signalpegel: 5V TTL, invertiert
  • Uniplolare Datenübertragung
  • Bezugspotenzial: GND
  • Duplexbetrieb (senden und empfangen gleichzeitig)
  • Speed: 4800 Bd NMEA Standard (über NMEA High Speed auf 38400Bd umstellbar, wenn AIS-Signale verarbeitet werden sollen)

Daraus ergibt sich die Notwendigkeit die Signale zu invertieren. Das kann man mit einem einfachen Logikbaustein 74HC04 machen. Dieser Chip hat 6 Inverter, von denen wir zwei benötigen. Einen für das RX-Signal (Empfang) und einen für das TX-Signals (senden).

Abb.: Logik-Chip 74HC04

M5Stack Atomic DIY Proto Kit

Um die NMEA2000-Gateway-Firmware verwenden zu können, benutzen wir ein M5Stack Atomic DIY Proto Kit. Das DIY Proto Kit besteht aus einem Gehäuse und einer Lochrasterplatine auf der man eine eigene Schaltung unterbringen kann. Auf das Poto Kit kann ein M5Stack Atom Light mit einem ESP32 aufgesetzt werden.

Abb.: Proto Kit (M5Stack)

Abb.: M5Stack Atom Light (M5Stack)

Schaltung

Die Idee der Schaltung basiert darauf, dass die TTL-Signale der RS232-Schnittstelle (RX, TX) vom Atom Light über die Pin-Header benutzt und invertiert werden. Die invertierten Signale werden über Schraubkontakte mit dem Garmin-Gerät verbunden. Die Anbindung des NMEA2000 Busses erfolgt über eine CAN-Bus Unit mit einem Verbindungskabel zum Atom Light.

Die Schaltung im nachfolgenden Bild ist nicht ganz maßstäblich und dient zur groben Orientierung. Als IC muss ein SMD-IC verwendet werden, damit der IC im Gehäuse nicht zu hoch hinausragt und der Atom Light noch aufgesteckt werden kann. Die Verbindungen auf der Lochrasterplatine werden mit lackisolierten Fädeldraht realisiert. Das ist nicht unbedingt was für Anfänger und eher erfahreneren Leuten zu empfehlen. Wenn Interesse besteht, werden wir vielleicht auch eine kleine passende Platine erstellen. Melden Sie sich dazu über das Kontakt-Formular.

Abb.: Verdrahtung auf dem PCB des Proto Kit

Am Ende sollte der fertige Aufbau so aussehen wie im unteren Bild. Die Verbindungen zum CAN-Bus und zum Garmin-Gerät sind im Bild beschriftet.

Abb.: Proto Kit mit Atom Light und CAN-Unit

Programmierung des Atom Light

Der Atom Light muss jetzt noch mit der NMEA2000-Gateway-Firmware programmiert werden. Dazu läd man sich die aktuelle Firmware von GitHub herunter und befolgt die Flash-Anweisungen in dieser Beschreibung.

Nachdem die Firmware geflasht und funktionsfähig ist, verbinden sie sich mit dem WiFi Netzwerk ESP32NMEA2K  und dem Passwort esp32nmea2k. Verwenden sie anschließend in einen Web-Browser die Adresse ESP32NMEA2k.local oder die IP-Adresse 192.168.15.1. Sie landen dann auf der Benutzeroberfläche des NMEA2000-Gateways. Um Ihre Änderungen zu speichern, werden Sie nach einem Admin-Passwort gefragt. Das Initial-Passwort ist esp32admin.

Im Garmin-Gerät wird die Schnittstelle auf NMEA Standard gestellt. Im NMEA2000-Gateway unter dem Tab Config gehen sie zu Serial port und stellen dort die Baudrate auf die Geschwindigkeit von 4800 Bd ein. Sollten sie im Garmin-Gerät eine höhere Geschwindigkeit nutzen, weil sie NMEA High Speed nutzen, dann stellen sie eine Geschwindigkeit von 38400 Bd ein.

Achtung! Bei den niedrigen Geschwindigkeiten mit 4800 Bd muss man darauf achten, nicht zu viele Daten in zu kurzer Zeit zu senden, denn die Schnittstellengeschwindigkeit gibt das nicht in allen Fällen her. Ein Zeichen wird mit ca. 10 Bit übertragen. Mit 4800 Bd kann man also maximal 480 Zeichen pro Sekunde übertragen. Die sind recht schnell zusammen bei einigen längeren GPS-Telegrammen, wenn noch einige andere Daten dazu kommen sollten. Über speziell Filter im Gateway können gezielt bestimmte Telegramme für die Übertragung ausgeschlossen werden. Das reduziert die Datenmenge und es lassen sich höhere Senderaten benutzen.

Auf der Statusseite im NMEA2000-Gateway können sie den aktuellen Datenverkehr überwachen und verfolgen. Wenn sie die Zeile Serial in/out aufklappen sehen sie im Detail welche Telegramme über die NMEA0183-Schnittstelle vom Garmin-Gerät übertragen werden. Damit haben sie eine gute Diagnosemöglichkeit zur Fehlersuche. Bei fehlenden Telegrammen schauen sie im Garmin-Handbuch nach, wie man die jeweiligen Telegramme zur Übertragung freischaltet. Es kann durchaus sein, dass je nach Konfiguration nicht alle Telegramme übertragen werden.

Abb.: Web-Oberfläche NMEA2000-Gateway

NMEA0183-Datenverkehr an der externen Schnittstelle

Die folgende Tabelle zeigt die jeweiligen NMEA0183-Telegramme die von einem Garmin-Gerät empfangen oder gesendet werden. Die Informationen beziehen sich dabei auf die GPSmap 400/500er Serie.

NMEA0183 Empfangen Bedeutung
AIS AIS Information
DCS Digital Selective Calling Information
DPT Wassertiefe
MTW Wassertemperatur
VHW Speed durchs Wasser
MWV Relativer Windspeed und Richtung
NMEA0183 Senden
GBS GPS Satellite Fault Detection
GGA GPS Daten
GNS Fix Positionsdaten
HDT True Heading
VTG Speed über Grund
XTE Kursabweichung
RTE Route
AAM Wegpunkt-Alarm