Neue Software

Software wird nie fertig. Immer wieder kommen neue Funktionen hinzu oder Fehler werden korrigiert. Deshalb gibt es die Möglichkeit die Ganganzeige mit neuer Software auf den letzten Stand zu bringen. Alternativ kann man natürlich auch eigene Kreationen aufspielen. Zum einfachen Start ist hier die grundsätzliche Programmierung des LCD-Displays beschrieben.

Die Software der Ganganzeige ist mittlerweile über sehr lange Zeit stabil und, von Kleinigkeiten abgesehen, unverändert. Für ein regelmässiges Updaten besteht daher überhaupt keine Veranlassung. Weiterhin sind viele Veränderungen, z.B. zusätzliche Sprachen oder Masseinheiten, nur für die wenigsten User relevant.

Das Schreiben und Stabilisieren von Software ist nicht einfach. Die Erstellung der Software für die Ganganzeige hat mich extrem viel Zeit, Mühe, Frust und Geld gekostet. Die jeweils neuesten Versionen sind deshalb nur für nicht-kommerzielle Vorhaben auf Anfrage verfügbar.

Die Software existiert  in 4 Varianten:
- für Hardware-Version 5 (sehr alt, aus der Anfan
- für Hardware-Version 5 mit Umbau -> 5X
- für Hardware-Version 6 und 7
- für Hardware-Version 8
Welche Version vorliegt ist auf der Platine im Kupfer eingraviert (z.B. V6.2 oder V7.1) und auch über einen Menüpunkt abfragbar.

Der Grundfunktionsumfang ist bei allen Versionen weitgehend gleich und im normalen Betrieb sind keine Unterschiede sichtbar. Die Version 6/7 hat jedoch eine höhere interne Verarbeitungsgeschwindigkeit als die V5 und dadurch mehr Reserven für Zusatzfunktionen zur Verfügung. Und nur sie unterstützt die 600er und TDM Modelle.

Die Version V5 kann durch einen kleinen Umbau etwas beschleunigt werden. Die notwendige Änderung besteht aus "nur" einer Drahtbrücke und ist hier beschrieben. Hard- und Software tragen die Endung "X" zur Unterscheidung von der normalen Variante. Sinnvoll ist der Umbau nur falls alle Zusatzfunktionen gleichzeitig (GPS, Kettenöler, Verbrauchsmessung) benutzt werden sollen.

Das Herz der Ganganzeige ist ein Mikroprofessor von Atmel in dessen Flash-Speicher der komplette Programmcode gespeichert ist. Auf dem Markt existieren sehr viele verschiedene Programmieradapter die alle prinzipiell zum Beschreiben geeignet sind. Für nur gelegentlichen Einsatz ist der folgende einfache Adapters allerdings völlig ausreichend. Er arbeitet über die RS232-Schnittstelle eines Windows-PC.
Einen Nachteil hat das sehr simple Design allerdings. Viele Laptops besitzen keinen echten RS232 Port mehr und es werden stattdessen häufig USB-RS232-Bridges eingesetzt. In diesem Fall steigt die Programmierzeit auf mehrere Stunden an!

Folgendes wird benötigt:
- Adapter
- Programmiersoftware
- Windows PC
- 12V Netzteil

Adapter

Der Adapter ist die vereinfachte Version eines Schaltungsvorschlags von www.lancOS.com. Alle Bauteile dafür sind an "jedem dicken Baum" zu bekommen.

AdapterAdapter Schaltplan

Auf der linken Seite des Schaltplans befindet sich die Verbindung zur seriellen Schnittstelle des PC. Die Signale am rechten Rand müssen mit den entsprechenden Punkten auf der Ganganzeige verbunden werden, entsprechend der jeweiligen HW Version, siehe folgende Bilder:

Kontaktpunkte V5Kontaktpunkte V6Adapter an V5

 
(Die lustigen Namen sind übrigens von Atmel übernommen).
Während des Programmierens muss die Anzeige mit Spannung versorgt werden. Dazu wird ein 12V-Netzteil benötigt, dass an den entsprechenden Befestigungsbolzen angeschlossen wird (zur besseren Übersichtlichkeit im Bild weggelassen).
Ebenfalls ist es möglich die Anzeige wieder (provisorisch) ins Cockpit einzubauen und über das Motorrad mit Spannung zu versorgen.

Programmiersoftware

Zur Ansteuerung des Adapters wird eine Programmiersoftware benötigt. Ihr Name ist "PonyProg2000" und sie ist hier zum downloaden erhältlich:  http://www.lancos.com/ppwin95.html (Version v2.06 oder neuer).
Installieren und folgende Einstellungen vornehmen:

- SETUP -> CALIBRATION : das Programm stellt sich auf den Prozessortakt ein
- SETUP -> INTERFACE SETUP : passenden Com-Port auswählen
- DEVICE -> AVRmicro -> ATmega128 : auswählen

Jetzt kann bereits alles getestet werden. Dazu auf das Schlüssel-Symbol klicken (Security und Configuration Bits) -> READ. Das Programm versucht jetzt Daten aus dem Atmel auszulesen. Bei Erfolg sind anschliessend einige "Häkchen" gesetzt.

Wenn es nicht klappt ist irgendwo ein Fehler :-) (tolle Antwort)
- Adapter falsch verdrahtet oder nicht richtig aufgebaut ?
- 12V angeschlossen ????
- richtiger COM-Port ?
Die Logik des Adapters/Atmels ist für eine Spannung von 0..3V ausgelegt. Manche PC-Schnittstellen haben Probleme die Daten richtig zu lesen (normaler RS232-Pegel ist +/-12V). -> anderen PC benutzen.

Jetzt geht's los

WICHTIG!! Bevor die neue SW eingespielt wird müssen 2 Abgleichwerte gesichert werden : VCCMAIN und REFERENCE VOLTAGE. Diese gehen beim Neubeschreiben eventuell verloren! Deshalb vorher im Menü ablesen und notieren.

Die eigentliche SW für die Ganganzeige kann als ZIP-File herunter geladen werden. Das ZIP besteht aus zwei Teilen, eine "HEX"-Datei (die eigentliche Software) und eine "E2S"-Datei , eine Batch-Datei für PonyProg2000. Beide müssen ins selbe Verzeichnis entpackt werden.

Abhängig vom HW Stand muss das passende File benutzt werden, Version 5 oder Version 6. Welche Version vorhanden ist wird in der Startmeldung der Ganganzeige angezeigt. Ebenso ist die Version auf der Platine eingeätzt.

Im PonyProg2000 SCRIPT -> Load and Run -> die entsprechende "*.e2s"-Datei auswählen. Damit wird ein Script gestartet dass alles weitere automatisch steuert. Das Programmieren dauert mehrere Minuten.

Im ersten Schritt wird versucht die alten Einstellungen auszulesen und zu sichern, am Ende werden sie wieder zurück geschrieben. Wenn sehr alte Versionen upgedatet werden kann es sein dass dies nicht funktioniert, die Einstellungen müssen dann per Hand korrigiert werden.

Nach einem Update startet die Ganganzeige möglicherweise in einem Modus in dem alle verfügbaren LCD-Treiber zyklisch getestet werden. Wenn der Text im Display klar lesbar ist muss SOFORT die SELECT-Taste gedrückt werden. Damit ist das Update abgeschlossen und der Adapter kann entfernt werden.

Falls die Anzeige nicht aufstartet kann es sein dass durch den Adapter die Resetleitung des Prozessors permanent aktiv ist. -> Adapter entfernen.

Herzlichen Glückwunsch!

Einstellungen wiederherstellen

Im Menü müssen eventuell nun noch einige Einstellungen vorgenommen werden.
- Die notierten Werte für VCCMAIN und REFERENCE VOLTAGE eingeben.
- Den Abgleich für VCCWATER durchführen.
- Wenn ein Tachokonverter vorhanden ist muss da zugehörige Menü aktiviert werden (Menü2 -> CONVERTER), danach im Menü1 -> SPEED CORRECTION den gewünschten Korrekturfaktor neu eingeben.

Hilfe! Da ging was schief!

Keine Panik. Das Programmieren kann beliebig oft wiederholt werden. Einfach nochmal versuchen. Es kann nichts passieren solange die Fuse-Bits nicht geändert(gesetzt) werden.

Auf dem PC sollten alle sonstigen Programme vorher beendet werden, auch alle Netzverbindungen. Die Verwendung eines USB-RS232 Adapters sollte vermieden werden, da sich sonst die Programmierzeit extrem verlängert.

Wenn bereits PonyProg2000 beim lesen der Configuration Bits (s.o.) Probleme hat wird auch das Update nicht funktionieren. -> Fehler suchen :-(.

Gerne wird auch vergessen die Abgleichwerte für VCC und REFERENCE VOLTAGE zu notieren.
Der Wert für VCC liegt eigentlich immer im Bereich 3.03 ... 3.06. Deshalb kann ohne grosse Nachteile ein Wert von 3.04 als Ersatz genommen werden.

REFERENCE VOLTAGE ist hingegen kritischer, sie liegt typischerweise im Bereich 2.55 ... 2.75. und kann auf folgende Weise indirekt gemessen werden:
- Den Stecker vom Wasser-Temperatursensor abziehen (vorne rechts oben am Kühler)
- Zündung einschalten
- Mit einem Multimeter die Spannung an den Kontakten des Kabels(!, nicht am Sensor) messen und mit 1.165 multiplizieren.
- Im Menü 1 zum Punkt VCCWATER gehen, dort die gemessene Spannung ablesen (rechts oben).
- Im Menü 2 den Wert für REFERENCE VOLTAGE in kleinen Schritten verändern und abwechselnd bei VCCWATER den Messwert beobachten bis er dem korrigierten Wert vom Multimeter entspricht. Damit ist REFERENCE VOLTAGE richtig eingestellt.