Review DSE M812 Cabin Display

Elektronik für Off-Highway muss besonders harten Umgebungsbedingungen gewachsen sein. Neben elektrischer und mechanischer Robustheit ist jedoch ein moderner Software-Stack und flexible Anpassbarkeit äußerst wichtig, um die hohen Anforderungen im modernen Cabin-Design eines Off-Highway-Fahrzeuges umzusetzen. Ob diese Anforderungen vom DSE M812 (Qt Variante) erfüllt werden können, lesen Sie in diesem Review.

Im Sommer 2021 wurde uns zu Evaluierungszwecken ein DSE M812 vom Unternehmen Deep Sea Electronics zu Verfügung gestellt: https://www.deepseaelectronics.com/control/vehicle-off-highway-machinery-control-systems-m-series. Die Hardware basiert auf einem NXP i.Mx6 Quad-Core mit einem sehr kontrastreichem Display, das einen sehr guten Eindruck vermittelt.

Hardware
Display: 12.1″ TFT Touchscreen, 1280×800 Pixel, 16:10 Seitenverhältnis, spiegelnd
CPU: NXP i.MX6 Quad (4x Arm Cortex A9 1.2 GHz)
GPU: Vivante GC2000 (3D) + Vivante GC355 (Vector Graphics) + Vivante GC320 (Composition)
RAM: 2 GB
Flash: 16 GB
16 Hardware-Buttons
2 unabhängige Ethernet-Interfaces
3 unabhängige CAN-Interfaces
WiFi + GPS

Software
Embedded-Linux, Programmierbar mit Codesys oder Qt, Package mit Toolchain und Code-Beispielen

Gehäuse, Anschlüsse, Produktvariationen
Beim Auspacken des Deep Sea Electronics M812 fiel sofort die hohe Verarbeitungsqualität auf. Das Gerät kommt mit einer gummierten Front, in der die 16 Hardware-Buttons und die 12.1 Zoll große Touch-Anzeige integriert sind. Alternativ ist auch eine Version ohne Hardware-Buttons erhältlich. Auf der Rückseite sind Anschlüsse für CAN-Bus, Stromversorgung, Ethernet, USB und Wifi zu finden. Wir betrieben das M812 mit einem 24 V Netzteil, unterstützt werden Betriebsspannungen von 8 – 32 Volt.

Generell kann die Applikationsentwicklung für das DSE M812 mit Qt oder Codesys erfolgen. Dazu werden vom Hersteller unterschiedlich vorkonfigurierte Produkte angeboten. Wir haben die Qt-Version des M812 erhalten.

Inbetriebnahme Demonstrations und Konfigurations-Software
Verbindet man das DSE M812 mit Strom so startet eine Konfigurations- bzw. Demonstrations-Software. Wir finden es immer sehr benutzerfreundlich, wenn embedded Hardware nicht nur mit einem Basis „BSP“ geliefert kommt, sondern im Auslieferungszustand gleich mit einer Demonstrations-Software ausgeliefert wird, die sämtliche Hardware-Funktionalitäten in einer Beispielsoftware demonstriert. Diese Demonstrations- und Konfigurationssoftware ist DSE sehr gut gelungen! Sie besteht aus folgenden Untergruppen:

  • Information: Dieser Menüpunkt informiert über die verwendeten Versionen (etwa von Firmware, U-Boot, Qt, u.a), Hardware (CPU-Temperatur, PCB-Temperatur, RAM-Auslastung, IO-Spannung, Speicher-Auslastung, …), Netzwerk-Schnittstellen (Ethernet, CAN, WiFi), GPS und die Device History.
  • Settings: Dieser Menüpunkt erlaubt die Konfiguration der Netzwerkschnittstellen (DHCP, IP, Subnetmasken), CAN-Bus Bitraten, Display-Helligkeit, Hintergrundbeleuchtung der Buttons, Real-Time-Clock und anderen.
  • Control: Enthält verschiedene Tests (Touchscreen, Buttons, Camera, IP-Camera, Inputs, Outputs) zum Validieren der Funktionalität. Außerdem können hier Splash- und Bootscreen geändert werden und gewisse Speicherbereiche formatiert, geklont bzw. wiederhergestellt werden.

Recovery-Modus
Diese Demo-Software kann auch später wieder gestartet werden indem beim Bootvorgang zwei beliebige Tasten gedrückt werden. Dann kann zwischen der Konfigurations-Software und einem Recovery-Modus gewechselt werden. Im Recovery-Modus kann ein USB Upgrade, Ethernet Upgrade bzw. Reboot durchgeführt werden.

Entwicklungsumgebung
Vom Hersteller wird eine vorkonfigurierte virtuelle Maschine mit Ubuntu 16.04 LTS mitgeliefert. Zusätzlich zu rsa-Schlüsseln für die ssh-Verbindung zum M812 und Datenblättern für Hard- und Software, bekommt man auch einige Qt Programmbeispiele. Beispiele hierfür sind etwa die Ansteuerung von Hintergrundbeleuchtung oder den Hardware-Buttons, die über die dse_io Bibliothek funktionieren.

In Qt Creator sind zwar die Kits für M812 und das Schwestermodell M870 eingerichtet, allerdings fehlt ein Kit für die Ausführung am Desktop. Das wäre vor allem für schnelle Debug-Vorgänge und Iterationen sinnvoll, da damit der Deployment-Schritt über das Netzwerk wegfällt und man nicht zu einem anderem Gerät wechseln muss.

Ausführung Sequality-Automotive-Demo-Software
Das M812 verwendet Qt 5.11, daher mussten wir unsere Software Sequality-Automotive-Suite (original Qt 5.12) etwas anpassen. Die Ausführung machte trotzdem noch Probleme, der Grund hierfür war die Verwendung von Mapbox und dessen Abhängigkeiten. Am M812 ist zwar Mapbox installiert, kann aber nicht genutzt werden, weil der Qt Core ohne SQL-Pakete kompiliert wurde (auf Nachfrage wurde uns mitgeteilt, dass man Qt SQL nicht mit ausliefert und dies nicht vorgesehen ist).
Damit kommen wir auch schon zu einer Schwachstelle im Gesamtsystem: Es ist nicht möglich selbst ein Root-Filesystem neu zu bauen und zu flashen, dadurch ist es uns als Embedded-Entwickler auch verwehrt selbst die SQL-Packages oder andere benötigte Pakete hinzuzufügen. Hier wäre eine offene Technologie wie Yocto oder Buildroot ein Ansatz, mehr Flexibilität für die Anwendungsentwickler zu ermöglichen. In vorliegenden Fall muss man mit dem bereitgestellten Image auskommen oder mit dem Support Kontakt aufnehmen.

Display
Die Bedienung des M812 ist aufgrund des überraschend guten Displays und der erreichten Frameraten eine echte Freude. Helligkeit, Kontrast, Darstellung von Schwarz, Blickwinkelstabilität ist sehr gut!

Ausführung Sequality-Embedded-GPU-Benchmark
Zum Testen der Performance führten wir zusätzlich auch den Sequality-Embedded-GPU-Benchmark aus. Das Resultat kann sich für einen i.MX6 durchaus sehen lassen, auch wenn der Benchmark einige Framedrops erzwingt. Im Vergleich zu anderen getesteten i.MX6 Quad schneidet das DSE M812 sogar am Besten ab. Dieser Performancegewinn liegt an der Verwendung des proprietären GPU Treibers des Herstellers Vivante Corporation anstelle des Etnaviv-Treibers. Interessant wäre noch, ob es in Zukunft für dieses Display vom Hersteller auch eine i.Mx8-Version gibt. Für einfache Grafik-Anwendungen mag der i.Mx6 noch ausreichend sein, kommen jedoch größere gestreamte Daten wie digitale Video-Kamera-Streams, Navigations-Kartendaten oder Multi-Display-Anzeigen hinzu, ist eine schnellere embedded CPU wie der i.Mx8 notwendig.

Zusammenfassung und Fazit
Insgesamt stellt das Deep Sea Electronics M812 ein solides und optisch ansprechendes Embedded Linux Display dar. Leider konnten wir mit dem bereitgestellten Exemplar kein eigenes root Filesystem bauen und die zusätzlich benötigten Libraries selbst hinzufügen. Diese Flexibilität wäre wünschenswert um auch auf zukünftige Anforderungen reagieren zu können und den Build-Prozess selbst anstoßen zu können. Das Display mit seinen sehr guten Schwarz-Werten und satten Farben entschädigt dafür das Auge – zudem die Umsetzung in Kombination mit dem Vivante Grafik-Treibern sehr gelungen ist und die Grafik-Performance für einen i.Mx6 einer der besten ist, die wir bisher bei einem i.Mx6 wahrgenommen haben. Ob es eine i.Mx8 Variante geben wird bleibt noch offen – für diejenigen, die mit der Kraft des i.Mx6 und dem Standard-Linux-Package auskommen, ist das DSE M812 eine interessante Option.