Moin,
Ich hatte leicht Malheur (aber, um das vorwegzunehmen: alles wieder gut!).
Beim Wechseln der Bremsleitungen ist durch eine Sekunde der geistigen Umnachtung Luft ins ABS-Modul gekommen, was sich beim anschließenden Wiederbefüllen und Entlüften durch Merkwürdigkeiten am Handbremshebel bemerkbar machte. Ich hatte zunächst die Handbremspumpe überholt, jedoch ohne Verbesserung der Lage - so blieb nur noch das ABS Modul. Eine Überführungsfahrt in eine Werkstatt auf eigener Achse war mir unter den Gegebenheiten zu heikel und Hänger habe ich keinen. Von der Schande mal ganz abgesehen...
Nun konnte ich ein Diagnosegerät in die Finger bekommen, welches das ABS Modul meiner Euro 3 MT-07 zum Ausführen von Regelvorgängen bewegen kann. Das hat die Bremsfunktion auch sofort verbessert und nach einigen Regelläufen des ABS im Stand und nochmaligem Entlüften war bremsenmäßig wieder alles supi.
Mich interessiert natürlich brennend wie das Diagnosegerät das ABS anspricht und ob man das nicht mit einfachen Mitteln, wie z.B. einem 20€ Arduino und angestöpseltem CAN-Transceiver, improvisieren kann.
Vorstellbar wäre ein Kästchen, das man an den Diagnosestecker hängt und nur einen Knopf drückt, um dieses Test/Spülprogramm des ABS Moduls zu starten. Aber nur so als unkonkreter Gedanke.
Um überhaupt zu wissen, was da am Diagnose-Stecker abgeht, hatte ich ja schon mal das Garagenoszi dort angeschlossen:
Zu sehen war das Bild eines typischen CAN-Bus mit dominanten und rezessiven Bits und den entsprechenden Signalpegeln. Die Länge des ganz linken Bits zwischen den blauen Cursern A und B beträgt ziemlich genau 2µs. Davon bekommt man 500.000 Stück in einer Sekunde unter. Man könnte auch von einer Datenrate von 500 kBit/s sprechen, ebenfalls typisch für einen stinknormalen Fahrzeug - CAN Bus.
Der Widerstand zwischen den beiden Datenleitungen CAN H(igh) und CAN L(ow) beträgt ca. 60 Ω. So sollte das sein, wenn der CAN-Bus je an Anfang und Ende durch parallel liegende 120 Ω Widerstände terminiert wird.
Nun ist es gem. Schaltplan allerdings so, dass wir in unseren Yamahas eher eine Sternform haben, was aber bei geringen Kabellängen meines Wissens ok ist. Ich habe die Lage mal auf das Wesentliche herunter skizziert:
(Was ich etwas seltsam finde: das Diagnosegerät hat zwischen CAN H und L seinerseits nochmals eine 120 Ω Terminierung. Finde ich fraglich bis falsch, funktioniert aber offenbar trotzdem

Nun bräuchte man ja eigentlich nur die Leitung ablauschen um zu ermitteln, was das Diagnosegerät von sich gibt um das ABS in Bewegung zu setzen. Ich vermute, es wird keine Raketenwissenschaft sein.
Soweit bin ich noch nicht ganz, habe mich aber schon mal am Schreibtisch (OHNE angeschlossenes Motorrad

Wenn man die Diagnosefunktionen für das ABS aufruft und der Tester versucht Erstkontakt mit dem ABS-Steuergerät aufzunehmen, passiert auf dem Bus folgendes:
Spoiler anzeigen
;
; Message Number
; | Time Offset (ms)
; | | Type
; | | | ID (hex)
; | | | | Data Length
; | | | | | Data Bytes (hex) ...
; | | | | | |
;---+-- ----+---- --+-- ----+--- + -+ -- -- -- -- -- -- --
1) 9839.3 Rx 07DF 8 02 10 01 00 00 00 00 00 broadcast request an alle
2) 9894.7 Rx 07E3 8 02 10 03 00 00 00 00 00 ECU #3: SID 10 = Aufruf Diagnose-Session gem. UDS Standard
3) 12925.2 Rx 07DF 8 02 10 01 00 00 00 00 00 Wiederholung
4) 12980.6 Rx 07E3 8 02 10 03 00 00 00 00 00 Wiederholung
Alles anzeigen
Da komme ich im Bereich Landfahrzeuge ins Schwimmen, aber schauen wir mal.
Ich hatte zunächst versucht, die CAN Messages nach Dokumentationen über OBD / OBD2 zu entschlüsseln. Aber wie wir mittlerweile wissen, funzt das zumindest mit normalen OBD 2 Testern bei den Euro 3 Yamahas nicht.
Aaaaber einiges passt, ich hatte hier angefangen:

Ich habe die Messages oben nach erstem Gutdünken interpretiert. Das erste Byte ( "02" ) gibt an, dass 2 weitere Datenbytes folgen.
Das zweite Byte ist dann die angefragte SID (Service ID) , das dritte und letzte Byte die PID (Parameter ID).
Auf diese Anfrage (Request) müsste nun vom angesprochenen Steuergerät eine entsprechende Response erfolgen. Da kommt im obigen Beispiel natürlich nichts, da kein Motorrad angeschlossen.
Und was noch interessant ist:
Die oben in jeder Zeile zu sehende SID ist "10".
Sucht man diese einfach mal in Wikipedias Liste der OBD 2 SIDs findet man sie nicht.
OBD-II PIDs - Wikipedia
Aber folgenden Hinweis:
"The nonOBD UDS services start at 0x10 to avoid overlap of ID-range"
Da tut sich dann eine neue Welt auf.
Dieses Byte mit dem Wert "10" fordert das angesprochene Steuergerät nämlich gem. UDS (Unified Diagnostic Services) Standard auf, aus seinem normalen Betriebsmodus in den Modus "Diagnostic Session Control" zu wechseln.
Dies ist fast genau wie oben im CAN - Trace ersichtlich in folgendem Dokument beschrieben:
Ab Kapitel 4.2 und unter Kap. 5 ist genau der Request an das (verm.) ABS Steuergerät aufgeführt
"07E3 02 10 03"
02- 2 Datenbytes folgen
10 - gehe aus dem normalen Betriebsmodus in die Diagnostic Session Control
03 - Extended Session
Im Response müsste nun doch ein "07EX(?) 02 50 03" erscheinen, oder?
Ich denke ich werde am Wochenende mal ausprobieren wie die Kommunikation aussieht, wenn das Motorrad tatsächlich antwortet.
Vielleicht kann man das ABS Modul ja mit 2-3 manuell aus der CAN Bus Analyzer - Software gesendeten Messages zum Rattern bringen?