Jump to content
IGNORED

Welche Elektronikkommunikation wird bei Kawasaki verbaut? CAN Bus?


tralf
 Share

Recommended Posts

Dann müsste man gleich ein andere Tacho entwerfen und das durch das Originale wechseln - Zombie!

Möglich ist es, aber dann reden wir nicht von 100€ für das Tacho oder einer simplen Ganganzeige.

 

Ob, das Originale Tacho umprogrammierbar ist, weiß ich nicht, jedenfalls sitzt da ein eigen entwickelter Chip von/für Kawa drinnen für den KFZ Bereich.

Link to comment
Share on other sites

Da soll nen Denso chip drinsitzen, den wirste sehr vermutlich nicht ändern können.

Aber was mehr Probleme bereiten dürfte, es ist ja kein Pixel LCD Display sondern ein gefertigtes designtes LCD.

D.h. alles was als Symbolik Zahlen Buchstaben etc. nicht da ist, kannste auch nicht dartellen ;)

Link to comment
Share on other sites

Mißverstanden Paschy, den Wasserwert kann man ja abfragen, somit braucht man ihn nicht mehr am Tacho anzeigen lassen, sonder über euer Display.

Also hat man nur noch das Prob zwischen Uhr und Tageskilometerzähler am Tacho switchen zu müssen. Wobei ich nicht weiß ob eure verbauten Chips ne Uhr integriert haben/ anzeigen können??

Somit bräuchte man den richtigen Tacho nur noch fürn Tageskilometerzähler oder anderen Anzeigen.

 

Mir gings lediglich um deine Aussage, das Wassertemperatur keiner braucht, die so in meinen Augen nicht richtig ist.

Link to comment
Share on other sites

Da gibt es schöne Schwarz/Weiß TFT Displays wo man vereinzelt die Pixel ansteuern kann und somit nicht auf das designte LCD zurückgreifen muss.

 

 

Laut dem Video ist es möglich und verbaut soll ein Renesas m32r Chip.

 

PS: @Zombie mir ist die Öl Temp wichtiger abzulesen als die Wassertemp, klar ist die Wasser Temp. jetzt was feines, um abzuschätzen, wann die Maschine warm ist, aber der Fühler sitzt irgendwo sehr ungünstig wie ich finde.

Edited by PaschyS
  • Like 1
Link to comment
Share on other sites

Mißverstanden Paschy, den Wasserwert kann man ja abfragen, somit braucht man ihn nicht mehr am Tacho anzeigen lassen, sonder über euer Display.

Also hat man nur noch das Prob zwischen Uhr und Tageskilometerzähler am Tacho switchen zu müssen. Wobei ich nicht weiß ob eure verbauten Chips ne Uhr integriert haben/ anzeigen können??

Die Arduinos haben keine Echtzeituhr mit an Board, aber gibts halt als chip, kannste dann an den arduino mit anflanschen, und dazu dann ne knopfzelle auf die platine als puffer, und das kannste dann natürlich mit auf nem lcd ausgeben

  • Like 1
Link to comment
Share on other sites

PS: @Zombie mir ist die Öl Temp wichtiger abzulesen als die Wassertemp, klar ist die Wasser Temp. jetzt was feines, um abzuschätzen, wann die Maschine warm ist, aber der Fühler sitzt irgendwo sehr ungünstig wie ich finde.

Naja, wenn ich mit dem Bock auf der Renne wäre, würde das für mich auch interessant sein oder der Motor gemacht wäre, aber für die normale Landstraßen Kurverei brauch ich das nicht wirklich.

Link to comment
Share on other sites

  • 3 weeks later...

Jean Pütz würde sagen:

"Ich habe da mal was vorbereitet"

rdi62vf5.png

Eine Windows-Anwendung, die per serieller Schnittstelle eine ECU emuliert.

 

Aktuell können Speed, Gear, RPM, Throttle & Temperature beantwortet werden. Ob das so 100% mit dem übereinstimmt was das Mopped zurück gibt kann ich noch nicht garantieren.

Soweit scheint es aber ganz gut zu laufen, maximal die Berechnung ist noch nicht ganz so, wie es die ECU machen würde.

 

ToDo:

Schön machen der Anwendung (Icons & Beschreibung).

Die Einrichtung der Register (PID, Min.- & Max- Rückgabewerte) liegt aktuell in einer Datei. Sowie weitere Einrichtungsparameter des COM-Ports. Die würde ich noch aus der Applikation änderbar machen.

Filterung auf die Nachrichten einrichtbar machen. Prinzipiell kann man sich jedes byte auf der Datenleitung ausgeben lassen. Bracht man i.d.R. aber nicht.

 

Was bisher wirklich praktisch war, ist das Verhalten des Timeouts und der konvertieren der Daten auf dem Arduino. Damit konnte ich nun einiges schon vorbereiten und testen, bevor ich ans Bike gehe.

Aktuell gehe ich davon aus, dass ich am Wochenende den Arduino anschließe und ich sofort gültige Werte erhalte. Nur bei der Temperatur und dem Gas bin ich mit noch unsicher ob das richtig kalkuliert ist. Aber ankommen sollte was :)

 

Wenn das Programm mal vorzeigbar läuft, stelle ich es euch natürlich zur Verfügung!

  • Like 8
Link to comment
Share on other sites

  • 3 weeks later...

Ein kleines, aber hoffentlich feines Update des ganzen Projektes:

Grundsätzlich muss man wohl eine Unterteilung in 3,5 Teilbereiche vornehmen.

  1. Hardware
  2. Software ECU
  3. Software Bluetooth
  4. Hard/Software Display (Ganganzeige)

 

Wobei der letzte Punkt nur halb zählt, da ich mich noch nicht entschieden habe. Hab ein 2 Zeilen Display hier, was wohlmöglich ganz gut passen würde. Aber ein LCD in Farbe (aus dem Nokia 6100) macht echt was her! Ist aber recht groß und schlecht wasserdicht zu bekommen.

 

Hardware:

Ist zusammengebaut, will aber noch nicht so recht. Bin noch auf der Suche nach dem Problem (Glaube Versorgungsspannung L9637 [12V] vs. regulierter Stromversorgung Arduino [5V]).

Es sei aber extrem positiv gesagt, dass meine Wahl der Komponenten offensichtlich richtig gewesen ist. Durch die Entkopplung des Arduino vom Bluetooth (Externes HC-06 Modul) rennt die Kommunikation unglaublich. Vorher wurde das durch meinen BT 4.0 LE Chip gebremst, so dass manchmal Timeouts aufgetreten sind (>2 Sek macht die ECU dicht).

Bekomme momentan 4-6 Anfragen pro Sekunde übermittelt. Jedoch habe ich noch einiges an Debug-Nachrichten drin, die das aufblähen. Denke aber die ECU wird dann die begrenzende Komponente werden.

 

Software ECU:

Klappt dank des Emulators soweit sehr gut! Muss aber noch auf das Projekt Nr. 3 umgebaut werden. Aktuell teste ich mit der Android App Bluetooth Terminal. Daher verarbeite ich menschenlesbare Kommandos und wandel die Ergebnisse auch schon um. Für meine Virb Kamera oder der Torque-App muss ich nur noch die Hex-Befehle übersetzen und durchschleifen.

 

Software Bluetooth:

Hat mich in etwa so viele farbige Haare gekostet, wie das Hardware-Problem!

Die Kamera oder die App (Teste immer beides, jede hat so seine Eigenheiten) laufen nun aber endlich.

Grundsätzlich muss man zwischen 3 Arten von Kommandos unterscheiden.

AT-Kommandos, die die Verbindung konfigurieren:

Zeilenumbrüche, Leerzeichen, Echo, Header Informationen, Reset, usw. -> Textbasiert

PID-Abfrage:

Erwartet eine Anzahl von gültigen Registern. -> Hexadezimal (Aaaaaaber: bei z.B. PIDs 1 - 19 muss man binär abhaken welche PID gültig ist. Also z.B. 0010100... gibt die 3. & 5. PID als gültig an. Das Ganze [auf 20 Stellen aufgefüllt] muss dann in HEX umgewandlet werden)

Das eigentliche Kommando:

Zu guter Letzt kommt die Abfrage der gültigen PID dran. Das ist wieder recht einfach!

01 (Info) XX (PID) \r (Zeilenumbruch)

 

Allerdings ist nirgendwo vollständig dokumentiert wie die Antwort im einzelnen auszusehen hat.. AT´s werden mit OK\r>\r quittiert.

Es sei denn Linefeed ist aktiv, dann mit OK\r>\n\r. Wobei das " > " jede Antwort abschließt.

Wichtig, gerade für die Kamera ist, wenn die Anforderung zum Reset kommt, seine Version zurück zu geben. Sonst passiert nämlich nix

ELM327\rOK\r>\r

Wenn man das alles mal zusammengesucht und stundenlang getestet hat, läuft es hervorragend.

Checksummen gibt es nicht. Die Header Informationen (Sender, Empfänger, Befehlsart, usw.) schalten beide aus. Daher habe ich mich nicht darum gekümmert. Es geht einfach 41XXYY\r raus. 41 ist eine gültige Antwort, XX die Wiederholung der PID und YY der letztendliche Wert. Ist aber bei z.B. RPM 4 Stellen lang.

 

Muss also nur noch mein Harware-Problem lösen und dann stelle ich mein gesamtes Wissen hier zur Verfügung:

  • ECU-Emulator (DotNet)
  • ECU-Sketch (Arduino)
  • Bluetooth-Sketch (Arduino)
  • Hardware & Verkabelung (Fotos und mit ganz viel Paint :D )

Die Links und Quellen waren so viele und überall stand immer nur die halbe Wahrheit, so dass ich die wahrscheinlich weglassen werde.

  • Like 5
Link to comment
Share on other sites

Sehr cool! Vielen Dank an dieser Stelle für deine Arbeit! :) Wenn's irgendwie eine Möglichkeit zum Spenden gibt, dann sag Bescheid, dem ein oder anderen wäre deine Arbeit bestimmt auch ein paar Euro wert ;)

 

Willst du das ganze Projekt nicht vielleicht auf Github veröffentlichen? Dann könnten andere dir vielleicht in Zukunft etwas Arbeit abnehmen bzw. den Code an ihre Gegebenheiten anpassen. Außerdem gäbe es dann eine zentrale Anlaufstelle für dein Projekt :)

Link to comment
Share on other sites

Hallo zusammen, ich habe euren Thread verfolgt und habe ein ähnliches Projekt vor.

Hilft euch für die Analyse und die Erstellung der Kommunikation mit der ECU der USB-Mitschnitt der Kommunikation zwischen der Healtech Software und der Kawa-Version des OBD Tools von Healtech ? Hätte beides vor mir liegen.....

Link to comment
Share on other sites

Naja wenn jemand vorhat noch mehr Daten aus der ECU auszulesen, als der bisher bekannten register, dann wäre ein mitloggen der Kommandos die zwischen Software und ECU hin und her gehen sicherlich hilfreich,

Das wäre vil was für Trib um das dann auseinander zu nehmen.

 

Es hapert ja immer nur an der Zeit ;)

Link to comment
Share on other sites

@Handle: Bisher habe ich mir über die Bereitstellungsart noch keine Gedanken gemacht. Wahrscheinlich werde ich die Codes erstmal zippen und hier "roh" veröffentlichen. Dann wäre GitHub sicherlich der zweite Step, wenn ich alles nochmal gesäubert habe.

Wie immer beginnt man sauber und strukturiert, aber bei dem ganzen Testen ist der Code nun doch schnell etwas komplexer geworden ;)

Puuh, über Spenden habe ich noch nicht wirklich nachgedacht... Wird dann Step Drei, nach GitHub :lol:

 

@B2R: Klar, immer her damit! Wie die Kommunikation aufgebaut wird, ist ja grundsätzlich bekannt. Aber die Jungs von Healtech haben da sicherlich etwa mehr KnowHow!

Im Winter hätte ich mir spätestens einen Sniffer gebaut, der nach und nach die Werte der PID´s ausliest. Bisher sind ja nur 04, 05, 06, 07, 09 & 0C bekannt. Fehlen noch läppische 43 Register...

Offensichtlich habe ich in Sachen "reverse engineering" bei Protokollen gerade einen Lauf :D

Hat acryd ja auch schon richtig erkannt :P

 

Meine Action Cam möchte auch noch ein paar mehr Informationen von mir haben (Engine Load, Fuel pressure, MAF air flow rate und so ein Kram). Vielleicht bekomme ich dann noch ein paar Lücken gefüllt.

Link to comment
Share on other sites

Und noch ein kleines Update:

 

qjh3vw7y.jpg

 

Mein ECU-Emulator auf dem Laptop gaukelt dem Microcontroller ein paar Daten vor. Und die naive, per Bluetooth verbundene Kamera glaubt es einfach :baeh:

Daher stehen GPS-Geschwindigkeit, Bike-Geschwindigkeit und Drehzahl in keinem kausalen Zusammenhang ;)

Die Werte der Drosselklappe habe ich wohl auch noch zu niedrig angegeben, oder muss sie noch umrechnen. Gibt ein paar unterschiedliche Berechnungen zwischen dem OBD-Standard und KDS.

 

Ein ver :zensur: tes Leerzeichen hat mich zwar um fast eine Woche zurück geschmissen, aber nun läuft es.

Wenn kein BT verbunden ist, fragt der µC regelmäßig den Gang an. Braucht das BT zu lange, gibt es kurz vor dem ECU-Timeout eine kleine "Keepalive"-Anfrage, ebenfalls an den Gang.

Die Torque-App fragt intitial einfach mal alles ab, und das dauert etwas länger als 2 Sekunden. So bleibt die ECU aber aktiv.

Als Trockenübung klappt das sehr gut! Ans Bike geht es erst im Laufe der Woche wieder. Ab da optimiere ich dann die Software noch ein bisschen, bastel an einem der Displays (16 Buchstaben x 2 Zeilen oder 132x132 Pixel in Farbe) und gleiche die PIDs ab.

 

Da sei nochmal ein herzlicher Dank an B2R ausgesprochen, der mich mit "heißer Ware" versorgt hat :genial:

Prinzipiell sind nun alle PID´s bekannt!!! Ein paar Kleinigkeiten muss ich noch verifizieren, aber dann stell ich euch das Gerödel bereit!

  • Like 4
Link to comment
Share on other sites

  • 2 weeks later...

Sieht doch super aus :)

 

Bei mir war ein paar Wochen stillstand wegen Zeitmangel.

Ich hab nun erstmal Digitale Messinstrumente besorgt um die oberseite des Cockpits genau zu vermessen, so das, das Gehäuse für die Ganganzeige auch so passgenau wie möglich wird.

Nach vielen Probieren hat sich für mich nun "123D Design" von Autodesk als Cad Software der Wahl herrausgestellt, die ganz einfachen konnten nicht das was ich wollte, und Profi Tools sind für nen Anfänger, bzw gelegenheits CAD User einfach zu komplex.

 

Ich denke in 1-2 Wochen sollte ich ein Druckfähiges Modell fertig haben.

Das wirds dann in 2 Ausführungen geben, einmal mit 6 Löchern für einfach nur Schlichte Ganzanzeige, und 1 weiteres mit nem 7 Loch in der Mitte, um z.b. ne Weiße Blitzled einzubauen, da die Drehzahl ja abfragbar ist, würde sich dann so recht einfach ein "Schaltblitz" realisieren lassen.

 

Was jeder draus macht ist ihm selber überlassen, gab ja schon ein paar Leute die mit dem Arduino Code erfolgreich daten auslesen konnten :)

Link to comment
Share on other sites

@TriB:

Welche Actioncam verwendest du denn, die diese Informationen einblenden kann?

Hab das in nem anderen Thread gefunden, ist wohl die Garmin Virb XE

 

Und dann gleich noch eine Frage:

Ist davon auszugehen, dass dieses Projekt sich auch auf andere Kawasaki-Modelle ohne größeren Aufwand adaptieren lässt? 

Edited by Matze_BLN
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.