CAN BUS MT-07 Daten

Du siehst das Forum als Gast - als registriertes Mitglied stehen dir alle Forenbereiche zur Verfügung. Wir freuen uns auf dich!

  • Hier mal ein Thema für den CAN-Bus. Wäre toll wenn wir uns die gefundenen Daten austauschen könnten.

    Ich fang mal an mit den Daten für die Ganganzeige:

    ID = 236, Datenlänge 1
    Liegt kein Signal am Cockpit (also weder Gang eingelegt noch Leerlauf) sendet es e0;

    bei Gang...N = 00, 1 = 20, 2 = 40, 3 = 60, 4 = 80, 5 = a0, 6 = c0

  • Taster Links und Rechts am Cockpit:
    Cockpit sendet permanent ID = 22e mit Datenlänge 2: 00 00

    Bei...
    Taster Links gedrückt: 08 00
    Taster Rechts gedrückt: 04 00
    Beide gedrückt: 0C 00

    Es wird so lange z.B: 08 00 gesendet so lange der Taster gedrückt wird.

  • RPM - Drehzahl

    In der Message ID 20a, Datanlänge 8 sollte die RPM in den Bytes 3 und 4 stehen.
    Das 3te Byte sieht so aus als ob es die Drehzahl wäre in hunderter-Einheiten. z.B. 8200 = 82 = 52hex
    Sende ich den Satz mit 52hex im 3ten byte sehe ich am Display 8200 rpm.
    Eigentlich könnte ich jetzt aufhören zu suchen aber ich würd es gerne 100prozentig wissen....es stimmt nämlich leider nicht immer, manchmal ist es um einen Balken verschoben.
    Das Display zeigt ja nur 200'er RPM Einheiten an, deswegen ist das auch schwierig zum eruieren. Bin mir auch ziemlich sicher, dass das Display den Wert gerundet anzeigt.

    Das 4te Byte ist mir nicht ganz klar.
    Bei 60 im 3ten und 00 im 4ten Byte bekomme ich 9600rpm am Display. Bei 60 01-02 noch immer 9600...bei 60 03 springt es dann um auf 9800.
    Also irgend eine Information scheint im 4ten Byte zu stecken.
    Ich dachte zuerst im 4ten könnte also nur 0=0, 1 für 25, 2 für 50, 3 für 75 rpm stehen, weil eine Auflösung bis auf 1rpm genau eigentlich meiner Erfahrung nach keinen Sinn macht weil die Motoren gar nicht so exakt laufen.

    Ein mitgeschriebener Datensatz bei laufendem Bike mit der ID 20a sieht so aus .
    20a: 8f 8b 10 de 00 01 91 00
    Das wären also 10hex = 16 = 1600rpm, ...im 4ten Byte steht aber "de".
    de = 222dezimal. was kann das wohl sein?

    Vielleicht hat jemand ja ne Idee.

  • Kannst du einfach mal eine Rampe über die beiden Byte laufen lassen und schauen was am Drehzahlmesser passiert? Klar, ist bissl aufwand aber vielleicht einfacher als ne Kennlinie über 3 Stützstellen zu extrapolieren :)

  • Kannst du einfach mal eine Rampe über die beiden Byte laufen lassen und schauen was am Drehzahlmesser passiert? Klar, ist bissl aufwand aber vielleicht einfacher als ne Kennlinie über 3 Stützstellen zu extrapolieren :)

    Danke für den Tip. Habe ich allerdings schon gemacht, vor allem um die anderen Daten zu finden. Sonst sitzt man da ja ewig.
    Das bringt allerdings beim 4ten Byte nicht viel weil wie gesagt dort nur "Detailinfo" zur RPM drin stehen. Also da ändert sich auf der Anzeige in der Regel nichts weil dort nur 200'er RPM-Schritte sichtbar sind und das 4te Byte nur minimal den Drehzahlwert beeinflusst. Nur wie genau ist mir nicht klar. :)

    Im übrigen muss man die meisten Messages mindestens alle 10ms senden sonst passiert am Cockpit nichts. Also eine Schleife muß man sich ohnehin programmieren.

  • mein Gott, was es heute zu beachten gibt ! Zu meiner Anfangszeit war nur die Frage, brauche ich jetzt einen 13er oder 14er Schlüssel bei einer M8 Schraube ? Oder warum hat BMW statt Feingewinde bei einer M6er Schraube ein Gewinde M6 mal1 ? Damals konnte man die "Karre" komplett zerlegen und wieder zusammenbauen und die lief dann wieder.

    Nix gegen die modernen Zeiten. Ich versthe die Diskussion hier sehr wohl, aber wer ist denn heute noch in der Lage in der Garage mal eben was zu reparieren, ohne gleich die Werkstatt zu konsultieren oder sich vom Händer abholen zu lassen (beim PKW übrigens das gleiche Problem) !

    Grüsse aus Südhessen !
    Wer einen Rechtschreibfehler findet darf ihn behalten.

  • Kurt, das klingt nur so kompliziert. Ich bin ein Neuling auf dem CAN Bus Gebiet und es scheint aber tatsächlich erfreulich einfach zu sein.
    Also bei der Drehzahl gehts darum , dass der Boss (die ECU) die Drehzahl kennt und sie permanent rausschreit. Ich versteh aber leider nicht alles was er sagt. Jetzt muss ich mir mühsam zusammenreimen was der Depp meinen könnte. Speziell beim 4ten Wort (4tes Byte) wird sein Geschreie unverständlich. :)

  • ...prinzipiell hast du aber schon recht. Man kann kaum noch was selber machen. Vieles wird aber auch schwierig gemacht. z.B: die Fehlercodes. Man könnte ja auch einfach in Klartext aufs Display schreiben was das Problem ist und jeder würde sich auskennen.

  • Hier zum Auslesen der Luft und Kühlwassertemperatur.
    ---------------------------------------------------------
    Message ID 23e, DLC 4: aa bb cc dd
    ---------------------------------------------------------

    aa...MotorTemp:
    (1hexWert = 0,625°C)
    aa < 70 --> LO
    aa = 70 --> 40°C
    aa = 80 --> 50°C
    aa = 90 --> 60°C
    ...
    aa = ea --> 116°C
    aa > ea --> HI

    bb...AirTemp:
    (1hexWert = 0,625°C)
    bb < 21h --> LO
    bb = 21h --> -9°C
    bb = 30h --> 0°C
    bb = 40h --> 10°C
    bb = 50h --> 20°C
    ...
    bb = cfh --> 99°C (MAX)

  • Geschwindigkeit auslesen
    Wie man auf den genauen Faktor von ca. 18.37 kommt weiss ich nicht. Ich habe es errechnet so gut es ging. Dann stimmt es aufs kmh in etwa genau
    Das müßte eigentlich eine art Gesamt-Übersetzungsverhältnis sein wo auch Umfang des Rades mitberücksichtigt wird!?
    ---------------------------------------------------------
    Message ID 20a, DLC 8: gg hh aa bb cc dd ee ff
    ---------------------------------------------------------
    cc...Speed:
    cc = 01 ergibt 19kmh, 02 = 38kmh...
    Der genaue Faktor dürfte etwa 18.37 sein.
    Man addiert alle ankommenden cc innerhalb eines Zeitraumes.
    Der aktuelle kmh Wert ist (Summe cc in einem Zeitraum z.B. 200ms) * (18.37) / (Anzahl der addierten cc)
    Dann stimmt der Wert mit der Anzeige überein.

  • Umschalten in Diagnosemodis. Vorsicht damit!
    ---------------------------------------------------------
    Message ID 23a, DLC 3: xx yy zz
    ---------------------------------------------------------
    bitgesteuert
    Byte xx = hgfedcba
    a,b...nichts gefunden
    c = 1...MotorstörungsLED leuchtet auf
    d = 1...MotorstörungsLED BLINKT!!!
    hgfe = 0001...es erscheint "5d..99" am Cockpit
    hgfe = 0100...es erscheint "Co" am Display
    hgfe = 0110...es erscheint "Co 99" am Display
    hgfe = 1000...es erscheint "d IAG" am Display
    hgfe = 1010...es erscheint "d1 99" am Display
    hgfe = 1110...es erscheint "Co 99 126" am Display
    ---------------------------------------------------------

  • Sehr gut!

    Ich Finde gut das du dir das Cockpit genommen hast, denn das kannst du immerhin auf dem Tisch testen. Jetzt hast du eigentlich schon alles was Angezeigt wird zusammen. Gesamt und Trip Kilometer werden wohl im Cockpit selber hinterlegt und nicht in der ECU.

    Ich nutze kein Whatsapp sondern Signal.

  • Sehr gut!

    Ich Finde gut das du dir das Cockpit genommen hast, denn das kannst du immerhin auf dem Tisch testen. Jetzt hast du eigentlich schon alles was Angezeigt wird zusammen. Gesamt und Trip Kilometer werden wohl im Cockpit selber hinterlegt und nicht in der ECU.

    ja genau. Die Kilometer laufen automatisch am Display hoch sobald man eine Geschwindigkeit sendet.
    Ich verwende übrigens gar nicht das Display von der MT-07 meiner Frau sonder ein "kaputtes" aus ebay ersteigert (nur aussen kaputt). Da hatte ich Glück eines relativ günstig zu finden.

  • Werden die Kilometer-Zähler exakt nach der Geschwindigkeit berechnet oder kommt da noch ein Mogelfaktor mit rein? Die Geschwindigkeitsanzeige soll ja relativ stark nach oben runden (gesetzlich muss sie wohl 0-15% zu schnell anzeigen). Der km-Zähler scheint aber laut eigener Messung mit GPS recht gut zu passen.

  • Werden die Kilometer-Zähler exakt nach der Geschwindigkeit berechnet oder kommt da noch ein Mogelfaktor mit rein? Die Geschwindigkeitsanzeige soll ja relativ stark nach oben runden (gesetzlich muss sie wohl 0-15% zu schnell anzeigen). Der km-Zähler scheint aber laut eigener Messung mit GPS recht gut zu passen.


    Du meinst also km-Zähler läuft richtig und Tacho zu viel. Das ist tatsächlich ne gute Frage. Ich werde das eruieren!

    Ich muss eigentlich nur die Zeit exakt stoppen für eine definierte Geschwindigkeit und schauen ob der km-Zähler dazu stimmt.
    Das sollte leicht gehen...einfach 299kmh einstellen und dann 5 min laufen lassen. :)

  • Wieviel der Tacho falsch anzeigt kann ich leider doch nicht so schnell errechnen. Brauche dazu zuerst einen Datenlog von einer Fahrt (die ich ohnehin machen muss).


    ...
    Es sieht nämlich wie folgt aus.
    Die Geschwindigkeit wird ziemlich sicher so errechnet wie ich beschrieben habe.

    nochmal kurz...
    Ich stelle mir das so vor. Die ECU sendet in einem bestimmten Intervall (dass ich leider noch nicht genau kenne...wieviele Umdrehungen die "Welle" seit der letzten CAN-Message gemacht hat (...welche Welle das auch immer ist, ist eigentlich unerheblich. Man muss nur den Faktor kennen)
    Sendet die ECU ständig den Wert 1 ergibt das auf dem Tacho 19kmh. Fahre ich jetzt z.B. 23kmh sendet die ECU unterschiedlich 1...2...1...x..x..x...x.
    Man muss dann einfach nur die Summe durch die Anzahl der Nachrichten dividieren und man bekommt die Geschwindigkeit.

    Jetzt bin ich aber beim Testen draufgekommen, dass der Kilometerzähler abhängig ist vom Intervall in dem ich die Can Messages zum Cockpit verschicke.
    Natürlich! Weil der km-Zähler addiert ja nur die Umdrehungen die von der Welle gemacht wurden (mal einem Faktor). Sprich ohne genau das CAN-Message-Intervall zu kennen kann ich das derzeit nicht genau ausrechnen.

    Lange Rede kurzer Sinn. Bei der Speed-Berechnung ist das Message-Intervall unwichtig (stimmt nicht 100%ig aber fast :)), beim Kilometerzähler aber schon.
    :)

  • Rein rechtlich darf der Tacho nach unten gar nicht abweichen und nach oben MAXIMAL 10 % + 4 km/h.


    Hab ich doch gesagt? Aber danke für die exakten Zahlen. Da war ich vorhin zu faul.

    @stev
    Bist du sicher, dass der originale Tacho die übertragenen Geschwindigkeitspakete zählt und dann durch die Anzahl teilt anstatt durch einen festen Quotienten? Wenn für den km-Zähler eh ein festes Intervall notwendig ist, wäre die Zählung doch überflüssig, oder nicht? In dem Fall wäre die Software doch unnötig kompliziert.
    OK, während ich das geschrieben habe ist mir aufgefallen, dass das nichts an der eigentlichen Problematik ändert und wahrscheinlich wirklich eine Testfahrt nötig ist :freak Wobei im Stand doch auch eine Geschw. gesendet werden müsste. Das würde zumindest helfen die Sendefrequenz zu bekommen.

  • Ja man kann im Stand messen, Hinterrad aufbocken und dann Gang rein reicht.

    Ich messe ca 152ms für den Abstand zwischen den Speed Signalen mit Abweichungen (mal 151ms bis 155ms) der CAN bus Kann aber per Definition keine exaktes Timing garantieren, was etwas gegen die Theorie spricht das ein exaktes Timing der Signal Voraussetzung fürs Kilometer zählen ist.

    Ich nutze kein Whatsapp sondern Signal.

    Einmal editiert, zuletzt von nichtstun (20. Februar 2017 um 09:59)