Christians Webseite        << zurueck        vor >>

Digitales Cockpit für die Yamaha FZS1000

Die Idee hinter diesem Projekt ist die Kombination eines Motorrad-Cockpits mit einem Navigationsgerät. Das Cockpit wird durch ein grosses TFT-Display ersetzt, gesteuert von einem Raspberry Pi. Alle analogen Zeiger-Anzeigen entfallen. Deshalb auch der Term "digital" im Namen.

Das Projekt ist ein Langläufer. Diese Seite berichtet über den aktuellen Projektstand, den Entwicklungsweg und die Fortschritte (hoffentlich..). Bisher gibt es nur wenig Hardware, ein bischen Software und viele Pläne.

Ein erster Entwurf der Anzeigeoberfläche existiert bereits. Hauptaufgabe ist die Kartendarstellung. Die Motorrad-Zustandsdaten werden am oberen Rand eingeblendet. Die Karten haben den gleichen Mittelpunkt, aber unterschiedliche Zoomstufen. Sie folgen der aktuellen GPS-Position.

DigCockpit

Sehr wahrscheinlich wird es später noch weitere Layouts mit anderen Schwerpunkten geben. Aber zuerst muss die Routen-Darstellung funktionieren.

Die ersten Verbaustudien und Dummys. Welches Display am Ende verwendet wird ist noch offen, in der Sonne ablessbare Varianten sind kaum zu finden. Eine 7-Zoll Diagonale ist das Ziel.

DigCockpit DigCockpit
DigCockpit DigCockpit

Das Layout des Anzeigebildschirms im Entwurfsstadium auf einem PC-Monitor. Die Einstellmöglichkeiten am Rand entfallen später am Motorrad. Dort wird nur der innere 800 x 480 Pixel-Bereich angezeigt.

DigCockpit

Die Adapterplatine für den Motorrad-Kabelbaum hat einen eigenen Controller der alle wesentliche Aufgaben der Signalaufbereitung und -Berechung übernimmt. Zudem auch alle Funktionen des originalen Cockpits:

  • Geschwindigkeit, Drehzahl und Gang
  • Zustand aller Signale (Neutral, Blinker, Ölstand,..)
  • Tankfüllstand
  • Kilometerzähler
  • Kühlerlüfter Kontrolle
  • GPS-Empfänger
Der DC-DC-Block symbolisiert die Stromversorgung, einen 12V->5V Step-Down Konverter.

DigCockpit DigCockpit

Die einzige Signalverbindung zum Raspberry Pi ist eine serielle Schnittstelle über die alle Daten zyklisch übertragen werden. Eine Updaterate von ca. 4/Sekunde scheint ausreichend zu sein.

Der Raspberry Pi dekodiert den Datenstrom und fungiert "nur noch" als "User-Interface". Er hat keinerlei direkte Verbindung zur Motorrad-Elektrik und auch keine Steuerungsaufgaben. Als willkommener Nebeneffekt können daher beide Baugruppen weitgehend getrennt entwickelt werden.

Motivation

Der erste Auslöser war ein Bericht von einem Mitglied im UK-Fazer-Forum der über sein selbstgebautes Austausch-Cockpit mit TFT-Display berichtete. Er hat dazu eine Doku-Webseite erstellt auf der das Gerät auch erworben werden kann:
TFT Dash Project

TFT
Das Cockpit erhielt grossen Zuspruch und hat mittlerweile eine kleine Fan-Gemeinde. Es ist ordentlich aufgebaut und die Video-Doku dazu ist sehenswert. Es ist ein gelungener und moderner Ersatz für das Zeiger-Cockpit.

Für meinen Geschmack ist das aber "zuviel TFT" für die paar Daten die angezeigt werden. Und ich wünschte mir zusätzlich ein Navigationsprogramm.

Der nächste Anschub kam von einem französischen Fazer-Fahrer der mich um Unterstützung bat um seine (ebenfalls) Raspberry Pi basierte Lösung an die Fazer zu adaptieren. Er integrierte
Leaflet
(eine JavaScript basierte Kartensoftware) in ein Demo-Programm. Eine sehr gute Basis. Das sah machbar aus.

Den letzten Anstoss gab mein defektes iPhone dass ich immer gerne als Navi am Lenker befestigt hatte. Durch Motorvibrationen wurde die eingebaute Kamera zerstört :/ Ein bei Apple offensichtlich gut bekanntes Problem.

Es war daher an der Zeit für eine "richtige" Navigationslösung.

Erstes grobes Konzept

Nach all den Vorüberlegungen war das Konzept in groben Zügen festgelegt.

  • Eine neue Cockpit-Box die das existierende Cockpit ersetzt
  • Ein Display mit 5.5'' oder 7'' TFT mit Touch
  • Ein Raspberry Pi 4B als Rechengehirn
  • Eine spezielle Adapter-Elektronik für den Motorrad-Kabelbaum
  • Software für Navigation und die Anzeige der üblichen Cockpit-Daten

Programmiersprache und Software

Die Software selbst erstellen zu können war für mich ein sehr wichtigster Punkt. Deshalb kamen Lösungsansätze mit irgendwelchen kaskadierten Softwarebaukästen, deren Inhalt ich nicht nachvollziehen kann, garnicht in Frage.

Zudem sind meine Programmierkenntnisse leider sehr beschränkt. Ich habe keine wirkliche Ahnung von JavaScript und auch keine Idee wie ich meine spezielle Hardware mit dieser Basis hätte steuern können. Zum Glück brachte mich ein Forumskollege (Danke Andreas!) auf die Spur dass es Lazarus auch für den Raspberry gibt.
Lazarus

DigCockpit

Lazarus ist eine IDE die auf dem Free Pascal Compiler aufbaut und als Nachfolger von "Delphi" angesehen werden kann. Beides ist heutzutage nicht mehr wirklich in Mode. Aber für mich ideal weil ich mit Pascal "aufgewachsen" bin.

Dadurch wird auch die SW-Entwicklung stark vereinfacht. Man kann bequem auf dem PC alles vorbereiten und testen und muss das ganze danach "nur nochmal" auf dem Raspberry Pi kompilieren. Das hat möglicherweise auch seine Tücken, ist aber ein Problem für später.

Karten-Anzeigesoftware

Der wichtigste Baustein ist eine Software zur Anzeige der Karten und der Routen. Wenn man im Pascal-Land bleiben möchte gibt es eigentlich nur genau eine einzige brauchbare Lösung:

MapViewer

DigCockpit
MapViewer ist eine sog. Komponente für Lazarus. Es ist das Pascal-Pendant zu "Leaflet". Sie kann "beliebige" Karten anzeigen, Tracks und POIs einblenden und ähnliches. Genau passend für meine Anwendungen.

Ein möglicher "Plan B" wäre es Leaflet in einem Browser in einem Pascal-Programm laufen zu lassen. Vielleicht eine Idee für später ... ?

Offline / Online

Heute, im Zeitalter der mobilen Daten, ist es gängige Praxis die Kartendaten einfach bei Bedarf aus dem Internet zu laden. Mit diesem Ansatz funktionieren auch MapViewer oder Leaflet gut und schnell. Für meinen Einsatzfall sprechen aber ein paar Dinge dagegen.

  • Der Raspberry Pi hat kein Mobilfunk-Modem. Man müsste entweder eins hinzufügen (inclusive SIM-Karte), oder ihn per WiFi an einen Smartphone-Hotspot koppeln. In beiden Fällen könnte es aber Überraschungen bei den Datenkosten geben, weil ich mit Darstellungen in hoher Zoom-Stufe plane.
  • Da (MMC-)Speicherplatz heutzutage sehr günstig ist kann man ohne weiteres riesige Kartenbereiche direkt Offline bereitstellen. Die Karten sind dadurch zwar nicht immer auf dem aktuellsten Stand, aber soo schnell ändern sich die Strassenverläufe ja nun auch wieder nicht..

Ein wenig schmerzhaft sind die fehlenden Real-Time Traffic-Informationen, also Stauinfos und sowas. Möglicherweise kann man dafür aber zu einen hybriden Ansatz gehen und diese Spezialitäten direkt online laden. Das gleiche gilt für die Routen-Berechnung.

Links

"Organic Maps" basiert auf "OpenStreetMaps" ist ein Ableger von "Maps.Me".
Organic Maps Homepage
Organic Maps GitHub

Ein speziell für Motorräder zugescnittener Online-Routenplaner ist
Kurviger.de