Multifunktionsdisplay OBP 60

Vorab ein paar wichtige Hinweise die sie unbedingt beachten sollten.

Display in Aktion

https://www.segeln-forum.de/thread/73307-multifunktionsdisplay-diy/

open-boat-projects LIVE:
Videovortrag in Deutsch zum Multifunktionsdisplay OBP 60 (45min Vortrag, 30min Diskussion)

Nachdem wir uns in 2019 mit dem M5Stack als Multifunktionsdisplay beschäftigt haben und einige Anwendungen auf der Boot 2020 zeigen konnten, unternehmen wir hier einen neuen Ansatz für ein neues Multifunktionsdisplay. Der M5Stack war nicht schlecht, unterlag aber gewissen Einschränkungen für die einige Marineanwendungen nicht möglich waren.

Zu den Nachteilen des M5Stack zählen:

  • Zu kleines, nicht sonnenlichttaugliches Display
  • Nur 3 Bedientasten
  • Nicht wasserdicht
  • Zu geringe Akkuleistung für autarke Anwendungen

Einige sinnvolle Anwendungen konnten jedoch umgesetzt werden:

Der M5Stack ist sehr flexibel einsetzbar und gut dokumentiert, konnte jedoch nicht in der Großzahl der Marineanwendungen überzeugen. In Anlehnung an die weit verbreitete und beliebte ST60-Geräteserie von Raymarine wurde ein neuer Versuch unternommen ein geeigneteres Multifunktionsdisplay zu bauen. Von den Gehäusemaßen her ist das neue Multifunktionsdisplay identisch zur ST60-Geräteserie. So kann das Multifunktionsdisplay als direkter Ersatz für alte und defekte Geräte dienen. Duch Unterstützung alter Busssysteme wie NMEA0183 und SeaTalk soll eine Brücke in die neue Welt mit NMEA2000 bereitgestellt werden, um auch ältere Systeme weiterhin betreiben zu können. Die WLAN-fähigkeit erlaubt auch komplett neue Wege in der Signalübertragung zu gehen mit Anbindung z.B. an SignalK. Kommerziell gibt es eine gute Auswahl an Multifunktionsdisplays, jedoch sind sie bezüglich Erweiterbarkeit und Anpassbarkeit an individuelle Bedürfnisse sehr eingeschränkt. Man kann nur Dinge mit dem Multifunktionsdisplay machen für die die Hersteller Funktionen vorgesehen haben. Modifiziert oder erweitert werden kann vom Nutzer leider nichts. Ziel der ganzen Entwicklung soll ein offenes System werden wo der Nutzer Zugriff auf alle Funktionen des Multifunktionsdisplays hat und eigenen Ideen durch Anpassung der Software und zusätzliche Hardware umsetzen kann. Die Standard-Elektronik ist so konzipiert, dass zukünftig durch weitere Gehäuseformen auch anderer Geräteserien ersetzt werden können. Somit ist maximale Flexibilität und Offenheit gegeben.

Aktuell befindet sich das Projekt noch in der Entwicklung.

Spezifikation

Beim Design des neue Displays wurde auf folgende Punkte Wert gelegt:

  • Standardgröße für ein Multifunktionsdisplay (110 x 110 mm)
  • Tageslichttauglich
  • Wasserdicht
  • 6 Tasten
  • Unterstützung folgender Bussysteme:
    • NMEA0183
    • NMEA2000
    • SeaTalk
    • I2C
    • 1Wire
  • Geringer Stromverbrauch
  • WLAN-fähig
  • Bluetooth-fähig
  • Erweiterbarkeit über I2C-Bus und 1Wire
  • Hardwareerweiterungen über I/O-Port
  • Autark mit Akkusatz über mehrere Tage nutzbar
  • Standardelektronik für Kompatibilität zu anderen Geräteserien (NASA, Clipper, Navman, etc…)
  • Frei gestaltbares Gehäuse und damit anpassbar an andere Geräteserien
  • Offenheit (OpenSource, OpenHardware)
  • Nachbaubarkeit mit Hobby-Mitteln durch einfache Konstruktion
  • Verwendung von fertigen Elektronikmodulen
  • Anpassbarkeit an verschiedene Bedürfnisse
  • Software-Bibliothek für die Arduino-IDE (ähnlich dem M5Stack)
  • Softwareaktualisierungen über Micro-USB und WiFi

Video zum Aufbau des Multifunktionsdisplays

Video zu Platine

Umsetzung

Konkret wurde das Multifunktionsdisplay mit folgenden Komponenten und folgender Spezifikation umgesetzt:

  • NodeMCU-32S als CPU-Einheit
  • E-Ink Display (400 x 300 Pixel, 4.2″, tageslichttauglich)
  • NMEA 2000 (vollduplex)
  • NMEA 0183 (RX oder TX, konfigurierbar)
  • SeaTalk (vollduplex)
  • I2C
  • 1Wire
  • 8x I/O Erweiterungsport (intern)
  • 6x Touch-Tasten (wischgestentauglich)
  • 2x Digital Out (12V, 4A)
  • 2x Digital In (12V)
  • 2x Analog In (Tankgeber 0…180 Ohm, Batterie etc.)
  • Batteriemonitor (12V Spannungsmessung)
  • Akustischer Signalgeber (Buzzer)
  • Optischer Signalgeber (rote LED)
  • LED Displaybeleuchtung (rote LEDs)
  • BME280 (Temperatur, Luftdruck, Luftfeuchtigkeit)
  • GPS-Empfänger (NEO-6M mit interner Mini GPS-Antenne)
  • WiFi 2.4GHz (HTTP, TCP)
  • Bluetooth
  • Stromverbrauch ca. 2W (ohne Hintergrundbeleuchtung)
  • Stromverbrauch ca. 3W (mit Hintergrundbeleuchtung)
  • Batterie Tiefentladeschutz < 9.0V (Deep Sleep, 0,2W)
  • Low Power Modus (Deep Sleep mit WeakUp 0,2W, 15mA @ 12V)
  • Anschlüsse für optionalen LiPo-Batterie-Pack (50Wh, ca. 24h autark)
  • Erweiterungsanschlüsse 8x digital IO, RX, TX, I2C, 5V 0,5A, GND

Das nächste Bild zeigt schematisch die Funktionsblöcke und deren Verschaltung.

Abb. Funktionsschaltbild

Die Platine ist mit diversen SMD-Bauelementen bestückt und wird damit nicht mehr selbst ohne Weiteres lötbar sein. Einige Elektronikmodule können individuell bestückt werden ( E-Ink-Display, NodeMCU-32S, BME280, GPS) Die Platine soll später fertig bestückt ohne Elektronikmodule zum Kauf angeboten werden.

Abb. Frontseite Platine

Abb. Rückseite Platine

 

Abb. Elektronik Vorderseite

Abb. Elektronik mit E-Ink Display

Abb. Elektronik Rückseite

Abb. Frontgehäuse mit Display-Scheibe und Kontaktfedern für Tastatur

Abb. Rückseite des MFD

Schaltplan

Einsatzmöglichkeiten

Grundsätzlich ließen sich mit dem Multifunktionsdisplay folgende Dinge realisieren:

  • Instrumentenanzeige der Busdaten aus NMEA2000, NMEA0183, SeaTalk, WiFi
  • Gateway zwischen NMEA2000, NMEA0183 und SeaTalk
  • Export aller Sensordaten über WiFi für Tablets
  • SignalK-Anbindung
  • Wetteranzeige mit Wetterhistorie (BME280)
  • GPS-Anzeige
  • Aktuelle Positionsanzeige in Seekarte (mit Internetverbindung über OpenSeaMap)
  • Windanzeige (wahrer Wind)
  • Einfacher GPS-Autopilot (mit Gleichstrommotor als Aktuator)
  • Ankerwache
  • Batteriemonitor (mit I2C-Stromsensor auch Ladungsüberwachung)
  • Solar-Monitor (mit I2C-Stromsensor)
  • Motordiagnose (Temperatur, Drehzahl)
  • Speedmesser (mit gängigen Pulsgeber)
  • AIS-Anzeige grafisch (mit AIS-Receiver)
  • Infoanzeige für Email, Messenger-Dienste
  • Anzeige für Uhr (UTC, Local Time), Datum, Sonnenauf- und Untergang
  • Segeltimer (Entfernung und Zeit bis zur Startline)
  • Wache-Timer
  • Anzeige Next Treckpoint mit XTR und akustischem Alarm
  • Tank Füllstandsanzeige
  • Bilgenüberwachung mit Pumpensteuerung
  • Alarmanlage mit Meldung über WLAN inklusive GPS-Tracker
  • Wettervorhersage (bei Internet-Verbindung)
  • Bootsautomation (mit Sonoff-Komponenten)
  • Empfang von Befehlen einer Bluetooth-Fernbedieung mit Weiterleitung ins Bordnetz
  • Empfang von Bluetooth-Windsensor-Signalen von Raymarine (sofern die Signale dekodiert werden können)
  • Steuerung von Audio-Mediaplayern (DLNA)
  • Firmware-Update über WiFi
  • und, und, und ….

Zur Realisierung der möglichen Anwendungsfälle braucht es allerdings eine Software die noch programmiert werden muss und in Form einer Firmware ins Multifunktionsdisplay übertragen werden muss. Die Firmware wird aber nicht gleichzeitig alle Funktionen realisieren können. Je nach Anwendung läd man sich per USB oder WiFi-Verbindung eine passige Firmware auf das Gerät und kann damit dann eine oder mehrere Funktionen realisieren. Wir hoffen, dass das Multifunktionsdisplay großes Interesse findet und sich einige an der Software-Entwicklung beteiligen werden.

Aktueller Stand

In der Zwischenzeit konnte jetzt eine erste Firmware realisiert werden. Dank des großartigen Softwareprojektes NMEA2000-Gateways von Andreas konnten ich auf eine Core-Software aufsetzen, die schon viele Teile abdeckt, die ich ebenfalls für meine Firmware benötigte. Das NMEA2000-Gateway beinhaltet ein vollständiges Gateway zur Konvertierung der Daten zwischen NMEA2000 und NMEA0183 und unterstützt dabei die Übertragungs-Layer CAN-Bus, RS485, RS422, TCP und USB seriell. Die Core-Softare wurde von Andreas für ESP32 Mikrocontroller in C++ geschrieben und war ursprünglich für einen M5Stack Atom gedacht. Da im Multifunktionsdisplay ebenfalls ein ESP32 als CPU benutzt wird, entschloss ich mich kurzer Hand Erweiterungen für Andreas Gateway-Software zu programmieren. Damit können die Hardware-Funktionalitäten des Multifunktions-Displays genutzt und Daten angezeigt werden. Andreas musste verschiedene Erweiterungen und Software-Funktionalitäten in seiner Software für mich hinzufügen. Innerhalb kurzer Zeit ist eine recht brauchbare Firmware für das Multifunktions-Displays entstanden mit folgender Funktionalität:

  • Instrumentenanzeige der Busdaten aus NMEA2000, NMEA0183, WiFi, USB
  • Gateway zwischen NMEA2000, NMEA0183
  • Generierung von beliebigen userdefinierten XDR-Daten für NMEA0183
  • WiFi AccessPoint zur Konfiguration
  • Web User Interface (passwortgeschützt)
  • Statuszeile im Display
  • Ein- und ausschaltbare rote Hintergrundbeleuchtung
  • Einfaches Dashboard zur Anzeige und Diagnose von Busdaten
  • Firmware-Update über WiFi und USB
  • Export aller Sensordaten über WiFi für Tablets
  • Wetteranzeige (BME280)
  • GPS-Anzeige
  • Einfacher Batteriemonitor (Spannungsanzeige)

Momentan können 4 Anzeigeseiten durch die Web-Konfiguration frei parametriert werden, die über Wischgesten aufgerufen werden können. Es gibt verschiedene Typen der Anzeigeseiten die folgendermaßen definiert sind:

  • Frei konfigurierbare Anzeigeseiten
    • Ein-Wert Anzeige
    • Zwei-Wert Anzeige
    • Drei-Wert Anzeige
    • Vier-Wert Anzeige
  • Nicht konfigurierbare Anzeigeseiten
    • Batterie-Spannungsanzeige
    • Batterie-Verbrauchsanzeige
    • Solar-Leitungsanzeige
    • Generator-Leistungsanzeige
    • Wahrer Wind, scheinbarer Wind mit Instrumentenanzeige
    • Uhrzeit, Datum, Sonnenaufgang, Sonnenuntergang
    • Ruderwinkel
    • Roll, Pitch
    • Kielneigung
    • DST810 (Tiefe, Speed, Wassertemperatur, Distanz)

Alle verfügbaren Busdaten könne dann auf die Anzeigeseiten gebracht werden. Die aktuelle Firmware ist bei GitHub zu finden: https://github.com/norbert-walter/esp32-nmea2000

Eine genaue Beschreibung wie man die Firmware aufspielt ist im Projekt zum NMEA2000 Gateway zu finden.

Abb. Status

Abb. Config

Abb. Data

Abb. Update

Eine der größten Hürden war die Beleuchung des E-Ink Displays für den Nachtbetrieb. Es kann nur von vorn beleuchtet werden und benötigt spezielle Frontgläser, die das seitlich über LEDs eingekoppelte Licht auf das E-Ink Display um 90° umlenkt. Das als Maker selber herzustellen war nicht ganz einfach. Industriell gefertigte E-Ink Displays mit Beleuchtung verwenden Frontgläser die mikrostrukturiert sind. Solche Gläser kann man nicht im normalen Fachhandel kaufen. Ziel war es, die Mikrostrukturierung mit Hilfe eines Lasers selber aufzubringen. Für Maker käufliche Lasergeräte bringen aber nicht eine so hohe Auflösung mit und wir mussten einige Kompromisse bezüglich Effizienz und Sichtbarkeit machen. Die besten Ergebnisse brachte nach vielen Versuchen ein gedithertes Laserpunktraser mit einem eingebrachten Punktdichte-Gradienten. Ein Laserpunkt ist ein Störkörper an der Oberfläche der Frontscheibe, der das Licht  in alle Richtungen ablenkt. Die Effizienz ist nicht sonderlich gut, da das Licht nicht gerichtet umgelenkt werden kann und nur allseits im Raum abgestrahlt wird und damit nur ein kleiner Teil des Streulichtes genutzt werden kann. Wir konnten mit dem Laser eine minimale Punktgröße von ca. 200 µm realisieren. Um einen Gradienten zu erzeugen benutzten wir ein Grafikprogramm und haben uns einen Graustufenkeil mit 0…12% Grauanteil erzeugt und anschließend gedithert. Die Bildauflösung betrug dabei 600dpi. Diese Bild-Vorlage haben wir für den Laservorgang benutzt. Aufgrund der hohen Anzahl der Punkte dauerte der Laservorgang bei einem Laser mit XY-Verfahreinheit gut 45 min, da der Laser das Bild Linie für Linie aufbauen musste. Das Ergebnis kann sich sehen lassen. Das Licht wird wie gewünscht auf die Oberfläche des E-Ink Displays umgelenkt.

Abb. Laserpunkte unter dem Mikroskop (1% Grauanteil)

Abb.: Geditherte Bildvorlage für den Laservorgang

Abb. E-Ink Frontbeleuchtung

Als Frontscheibe wird eine 3 mm dicke Plexiglas-Scheibe verwendet. Die laser-stukturierte Seite befindet sich auf der Außenseite. Alternativ kann man auch spezielle Plexiglasscheiben für die Werbeindustrie verwenden. Dieses Plexiglas wird verwendet, um Werbeplakate von hinten zu durchleuchten und wird oft in Schaukästen oder bei Leuchtbildern verwendet. Dieses spezielle Plexiglas ist transparent und man kann seitlich in die Stirnkante der Scheibe Licht einkoppeln, das dann gestreut wird. Dabei wirkt das gesamte Volumen des Plexiglases als Streukörper. Solche Spezialgläser stellt die Fa. Röhm unter der Bezeichnung Plexiglas LED Platte 0E010SM (4 mm) her. Die Beleuchtungsergebnisse sind aber nicht so gut wie bei der laser-strukturierten Frontscheibe. Der Kontrast des beleuchteten Displays ist zu gering und das Bild verrauscht.

Abb. links laser-strukturiere Scheibe, rechts Röhm Scheibe

Die Plexiglasscheibe hat aber neben der Schutz- und Beleuchtungsfunktion noch eine weitere Aufgabe. Sie soll das E-Ink Display vor UV-Strahlung (UVB, UVC) schützen, damit das Display nicht erblindet. Laut Spezifikation darf das E-Ink Display nicht direktem Sonnen- und UV-Licht ausgesetzt werden. Hintergrund ist, dass die kleinen vorgeladenen Farbkügelchen im Display durch UV-Strahlung ihre Ladung verlieren und dann nicht mehr ausgerichtet werden können. Gewöhnliches Plexiglas hat die für uns nützliche Eigenschaft, UV-Licht zu unterdrücken.

Abb. UV-Transmission verschiedener Gläser (2.v.r. Plexiglas)

Bilder

Abb. Multifunktionsdisplay mit geladener Demo-Seekarte

Abb. Inbus-Senkkopfschrauben als Touch-Tasten

Abb. Viton-Dichtung als Feuchtigkeitsschutz

Abb. Raymarine Standard-Befestigungen

Abb. Abschlussdichtung gegenüber Cockpitwand mit 2mm dicken Mosgummi

Abb. Gesamtdicke entspricht dem Original

Abb. 3D-Druckvorgang

Abb. 3D Frontgehäuse

 

Abb. Frontgehäuse mit E-Ink-Display

 

Abb. Beleuchtetes E-Ink-Display