Christians Webseite        << zurueck        vor >>

Vorwort

Die Entwicklung des digitalen Cockpits ist komplex und langwierig. Dieser Entwicklungs-"Blog" berichtet deshalb in lockerer Folge vom aktuellen Stand und den dabei aufgetretenen Besonderheiten und Entscheidungen. Die Dokumentation auf den nachfolgenden Seiten spiegelt nur den initialen Stand zu Beginn des Projekts.

Update 7, November 2022

Das Projekt ist gestoppt. Das Ziel-Motorrad (die Fazer) ist verkauft und für die neue (CB1000R) ergibt die ganze Sache keinen Sinn. Zudem funktioniert die "Zwischenlösung" mit dem Android-Tablet sehr gut.

Update 6, August 2022

Und wieder ist ein frustiger Monat ins Land gegangen. Irgendwie ist der Windows-Tablet-Ansatz eine totale Sackgasse. Sehen wir es positiv: ich habe viel gelernt..

Als erste Hilfe für den in Kürze startenden Motorrad-Urlaub habe ich deshalb ein Android Tablet gekauft:
- Lenovo Tab M8 8.0 HD 2nd Gen, 8 Zoll Display
Als Navi-App verwende ich Organic Maps. Das ist der kompatible Nachfolger von MAPS.ME. Damit war ich bisher immer sehr zufrieden.
Und falls/wenn ich irgendwann mal JAVA lerne dann werde ich auch die Moto-Data Geschichte noch nach Android portieren.

Für das Tablet habe ich noch eine 2-Tasten-Bedienung gebaut. Sie wird am Lenkergriff befestigt und ist zum Zoomen gedacht. Das Teil ist ein USB-HID Device.
usb

Update 5, August 2022

Ein neuer Ansatz. Die komplette Kartendarstellung wird auf ein anderes Programm ausgelagert. Mein Programm übernimmt "nur noch" die Darstellung der Motorrad-Daten und startet das Kartenprogramm als eigene Applikation in einem separatem Fenster.
DigCockpit

Als Kartenprogramm habe ich mir NavIt ausgeguckt.

Die Suche hat mehrer Wochen gedauert. Es ist extrem schwierig ein Navi-Programm zu finden das keine Kachel-Karten verwendet und unter Windows lauffähig ist.

NavIt ist als Windows Binary verfügbar und verwendet kompakte Karten. Besonders interessant ist dass es ferngesteuert werden kann. Durch einfache Windows-Botschaften kann man zoomen und den Mittelpunkt verschieben. Die genaue Syntax herauszufinden hat mich 2 Wochen Analyse gekostet... Jetzt funktioniert es aber.

Leider hat Navit einige erhebliche Schattenseiten:

  • Selbst auf einem guten PC ist es sehr langsam, und erst recht auf dem alten Tablet.
  • Die gesamte Konfiguration der Karten und Layouts läuft über eine XML-Datei. Das ist mehr als lästig.
  • Das GUI-Design und der ganze Code scheinen aus der Andriod-Ecke zu stammen und sind nur mittelmässig auf Windows adaptiert worden.
  • Die Erkennung der GNSS-Signale hat erhebliche SW-Probleme. Und sobald solche Signale anliegen sinkt die Geschwindigkeit noch weiter ab.
Sehr schade. Es fing so gut an. Aber in der Praxis ist die Kombination mit NavIt nicht brauchbar :(



An diesem Punkt bin ich wieder auf Leaflet zurückgefallen. Dazu benötigt man nur einen normalen Browser und eine HTML-Seite. Und ich habe gelernt das Leaflet sog. "MBTiles" verarbeiten kann. Das sind viele Kacheln "am Stück", gesammelt in einer grossen XML-Datei. Damit wäre das Problem der vielen Kachel gelösst.

Aber auch hier steckt die Tücke wieder im Detail. Leaflet will die MBTiles einfach nicht darstellen. Und das Datei-Format und sein Inhalt sind offensichtlich nicht so universell und identisch wie man denkt. Und die Geschwindigkeit (auf dem Tablet) ist auch wieder mal grenzwertig.

Update 4, Juli 2022

Das Anzeige-Programm macht gute Fortschritte. Die Moto-Daten können alleine oder gleichzeitig mit den Karten angezeigt werden. Klappt alles und auch der Zugriff auf die Offline-Karten funktioniert gut.

DigCockpit DigCockpit

Ich arbeite immer noch mit Lazarus/FPC. "MapViewer" ist eine gut brauchbare Komponente um Kartendaten anzuzeigen. Die Kartendaten zu generieren und zu handhaben ist aber eine echte Herausforderung. Für eine 100km x 100km Region benötigt man ca 150.000 Einzelkarten. Selbst das Umkopieren auf eine SD-Karte dauert ewig lange.

Eine Alternative wäre sog. Vektor-Karten zu verwenden. Dafür gibt es aber leider kein Pascal-Sourcen oder Beispiele. Alle Welt benutzt nur noch JavaScript und Phyton..

Auch für Garmin-Geräte gibt es jede Menge Karten. Wenn man die nutzen könnte wäre schön. Aber leider ist auch dafür keine (öffentliche) Anzeige-SW verfügbar.

Weiterhin könnte ich ein fertiges Navi-Programm verwenden und "irgendwie" gleichzeitig mit meinen Moto-Daten anzeigen. Aber auch da ist die Luft sehr dünn. Praktisch alles ist nur für Android und iOS ausgelegt..

Das ganze Projekt driftet ein wenig in ein Dilemma. Die Windows-Welt ist die einzige in der ich aktuell ein vernünftiges Programm mit Lazarus erstellen kann. Aber für die Karten-App wäre Android die bessere Umgebung.

Immerhin hat das ganze jetzt einen stabilen Stand erreicht mit dem man auch mal Road-Tests machen kann.

Update 3, Mai 2022

Das Windows Tablet funktioniert mittlerweile ganz gut. Nach tagelanger Konfiguration, und diversen Neuinstallationen von Windows, läuft es stabil und sauber. Lazarus lässt sich problemlos installieren und alles kompiliert fehlerfrei.

Genaugenommen habe ich jetzt 3 fast baugleiche Geräte :). Die waren so günstig dass ich nicht nein sagen konnte. Und eine Reserve ist immer gut.

Die Lötpunkte des UART habe ich auch gefunden. Zusammen mit einer kleinen Schaltung zur Pegelanpassung/Anhebung kann man sich problemlos mit einem PC oder einem GPS-Modul verbinden.

Sowohl ein GPS-Modul als auch eine serielle COM-Verbindung mit einem PC laufen erfolgreich und zuverlässig. Die Moto- Daten lassen ebenfalls darüber bereits übertragen und werden in Echtzeit auf dem Display angezeigt. Sehr erfreulich :)

Update 2, April 2022

Die Idee mit dem 7 Zoll Tablet habe ich dann doch mal direkt getestet.

DigCockpit

Die Suche nach einem passenden Tablet erwies sich als erheblich schwieriger als gedacht. Die 7-Zöller sind praktisch vom Markt verschwunden. Noch seltener ist Windows als Betriebssystem. Fündig wird man nur wenn man sich die vor ca. 5 Jahren aktuellen Modelle anschaut.

Für 40€ fand ich ein no-name Exemplar bei ebay. Kein Branding, Hersteller ist "iNet", Intel Atom Z3735G Prozessor, 1GB RAM, 16 GB eMMC Speicher. Das Gerät ist ein billigst zusammengenageltes Gerät aus asiatischer Fertigung. Aber es läuft akzeptabel und ich konnte problemlos Lazarus installieren.

Die Probleme begannen beim USB-Anschluss. Entweder Laden oder Tastatur/Maus anschliessen, beides gleichzeitig geht nicht. Das wird besonders zum Problem wenn ich darüber die Daten von meiner Adapterplatine empfangen möchte. In einem Foren fand ich aber einen Hinweis zu einem (optisch) ähnlichen Clone der interne, kontaktierbare UART Pins haben soll. Also das Gehäuse öffnen und nachschauen:

DigCockpit

Alles sehr komprimiert und sparsam, selbst die Camera wurde weggelassen. Und leider überhaupt kein Hinweis auf wo die UART-Pins zu finden sein könnten.

Und irgendwie scheine ich momentan doofe Hände zu haben. Beim Zerlegen bekam die Abdeckscheibe einen kleinen Riss, genau dort wo die Leitungen für den Touch-Sensor entlanglaufen. Schon wieder ein Gerät vernichtet!! .. :/

Update 1, März 2022

Raspberry Pi und Display (7 Inch WaveShare DSI) sind während meiner Versuch kaputt gegangen. In einem unachtsamen Moment habe ich 12V an Stelle von 5V als Versorgungsspannung angelegt. Nach wenigen Sekunden stieg eine kleine Rauchwolke über der TVS-Diode des Raspberry auf. Mal eben 100€ getoastet :/ Mist!!

Die TVS-Diode ist durchgebrannt und hat einen Kurzschluss gebildet. Die Diode habe ich ausgetauscht und mich gefreut dass die Reparatur so einfach war. Aber nach wenigen Betriebsstunden zeigte sich dass auch andere Baugruppen bereits Schaden genommen hatten. Das Verhalten wurde instabil mit häufigen Abstürzen. Das Display hat erheblichen Strom gezogen und Störungen gezeigt.

Ich bin stinksauer auf mich selbst. Jetzt habe ich mir erstmal eine Pause zur Beruhigung und Besinnung genehmigt. Wegen Corona sind auch sowieso keine Raspberrys zu bekommen.

Die gute Seite: ich konnte bisher mehr als 2 Monate erfolgreich testen :)

Aber auch schon wieder neue Ideen die mir durch den Kopf spuken. Und schliesslich brauche ich das Teil für den nächsten Motorradurlaub und kann jetzt nicht lange rumheulen :)

Weshalb benutze ich eigentlich einen Raspberry? Wäre es nicht pfiffiger direkt ein 7 Zoll Tablet zu verwenden? Und direkt eins mit Windows Betriebssystem? Dann hätte ich Rechner und Display bereits als fertige Einheit und kann sogar (wieder mit Lazarus) direkt in Windows programmieren. Ich werde mich mal umschauen was es da so gibt..