ELM-Adapter (Clone Contra Original)

  • Habe jetzt drei Tage rumgerätselt warum ich mit meinen ELM-Adaptern (und ich habe reichlich davon...) keine Multiframe-Messages (ISOTP Fragmentierung) direkt über die Serielle Console empfangen kann, es lag am Clone. Heute habe ich einen OBDLinkEX (Original STN-Chipsatz) erhalten und der funktioniert wie erwartet.

    Folgendes habe ich probieren wollen: Abfrage der im BCM gespeicherten VIN direkt mit AT-Befehlen, also ohne Software.

    Ich habe folgende Adapter-Typen, allesamt Clones:

    Tunnelrats ELM327 (manueller Umschalter)

    Tunnelrats TRE27 (automatischer Umschalter, STN-Kompatibel)

    ELS27 (autom. Umschalter, STN-Kompatibel):

    CM327 von ConversMod (autom. Umschalter)

    Alle drei haben bislang mit ELMConfig und ForScan keinerlei Probleme gezeigt.

    Wie gut zu erkennen ist haben alle einen Clone-Chip drauf, irgendein PIC. Der Original-ELM ist auch ein PIC, allerdings wurde die Software davon scheinbar nur teilweise kopiert.

    Man schnappt sich ein beliebiges Terminalprogramm (ich habe HTerm verwendet), verbindet sich mit dem Adapter und gibt folgendes ein:

    Code
    AT WS

    Da sollte es eine Rückmeldung geben, ähnlich

    Code
    ELM327 v1.3a

    (die Version kann variieren)

    Dann den Adapter mit dem Fahrzeug verbinden und folgendes eingeben

    Code
    AT SP 6
    AT SH 726
    22 F1 90

    Das stellt HS-CAN mit der OBD-ID 726 ein und sendet den UDP-Request "Read Data By Identifier" mit der DID 0xF190 welcher der VIN entspricht.

    Erwartet hätte ich eine Multi-Frame Antwort, bekommen habe ich aber immer nur das erste Paket (0: ...):

    Code
    >22 F1 90
    01B 
    0: 62 F1 90 57 46 30 

    Technisch gesehen kann eine CAN-Botschaft nur 8 Bytes transportieren, wovon bei UDS eins für das Protokoll draufgeht. Beim ersten Frame noch eins für die Gesamtlänge der Antwort (0x1B = 27 Zeichen). Der ELM (Tester) sendet die Anfrage zur ECU (Server) und diese antwortet mit einer Multiframe-Info im First-Frame. Das müsste der ELM ein Flow Control Frame quittieren und sodann würde das BCM die weiteren Consecutive Frames antworten bis alles übertragen wurde. Mittels eines CAN-Sniffers habe ich gesehen das der ELM kein Flow Control sendet. Dadurch verbleibt es bei dem First Frame.

    Mit dem OBDLinkEX läuft das ganze wie erwartet:

    Code
    >22 F1 90
    01B 
    0: 62 F1 90 57 46 30 
    1: 53 58 58 47 53 41 53 
    2: 43 47 58 34 32 37 33 
    3: 00 00 00 00 00 00 00 

    Vielleicht wollt ihr das mit Euren auch mal testen, wäre interessant?!

    "Lernen ist Erfahrung. Alles andere ist einfach nur Information."

    Albert Einstein

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!