Heieiei, da wird einiges durcheinander geworfen...
Fangen wir mal bei "OBD" an. Stecker, Interface und Protokoll sind drei Paar Stiefel. "OBD1" gibt es als eindeutige Spezifikation nicht. Im Wesentlichen bezeichnet OBD1 das Sammelsurium an allen möglichen verschiedenen Steckern und Protokollen verschiedener Hersteller vor der "OBD2"-Ära. Deswegen nennt man auch die runde, BMW-spezifische Buchse im Motorraum umgangssprachlich "OBD1". Über diese Steckverbindung verbindet man sich über die K-Line (physikalisch wie ein LIN-Bus, aber mit anderem Protokoll) mit den Steuergeräten.
Bei den älteren Steuergeräten braucht es zusätzlich eine zweite, sogenannte "Reizleitung", die L-Line. Weil der Z3/E36 über zwei getrennte K-Line Diagnosebusse (TXDII = Motor/Getriebe und TXDI = alles andere) plus die L-Line verfügt, findet sich bei den Interfaces oft die Bezeichnung "KKL"-Interface.
Alles was man da so zu kaufen bekommt, hat in der Regel einen sogenannten "OBD2"-Stecker. Der heißt so, weil dieser Stecker tatsächlich in Verbindung mit dem OBD2-Protokoll genormt wurde, und heutzutage Standard bei allen Autos ist. Das eine hat aber mit dem anderen nichts zu tun.
Wenn wir mit den bekannten BMW-Tools mit den Steuergeräten sprechen, wird über die beschriebene K-Line mit einem BMW-eigenen Protokoll (früher ADS, später dann KWP) kommuniziert. Hat überhaupt nichts mit OBD2 zu tun, selbst wenn dessen Stecker genutzt wird.
Das eigentliche OBD2-Protokoll kam um die Jahrtausendwende in die Fahrzeuge (in den USA teilweise schon vorher Pflicht), und wird ausschließlich vom Motorsteuergerät ZUSÄTZLICH zum BMW-Protokoll unterstützt (in der Regel erst ab FL bzw. ab den TU-Motoren der späten VFLs).
Das OBD2-Protokoll ist standardisiert und bei jedem Auto gleich. Das heißt aber nicht dass es bei jedem Auto vollständig implementiert ist. Gesetzlich vorgeschrieben sind nur bestimmte (abgasrelevante!) Standard-Fehler und Werte, die z.B. der TÜV bei der HU ausliest (nach Bj. 2000).
Beim Z3 entscheidet also das Diagnose-Gerät, mit welchem Protokoll das Steuergerät angesprochen wird, BMW oder OBD2, der Stecker ist immer der gleiche, und es läuft auch immer über die K-Line. Das ist auch der Grund, warum man mit Universal-Testern oder normalen Bluetooth ELM327 "OBD2"-Adaptern und zugehörigen Apps nur ein paar wenige Werte und Fehler aus dem Motorsteuergerät ausgelesen bekommt. Das was halt damals schon implementiert wurde, mehr nicht.
Für alles andere muss man "BMW" sprechen.
Ein voll belegter OBD2-Stecker eines guten Universalen Diagnosegeräts hat übrigens nicht nur K- und L-Line, sondern auch CAN-Bus und J1850-Bus belegt. Bei modernen Autos gibt's keine K-Line mehr, diese werden über den CAN-Bus ausgelesen. Entweder wieder mit dem herstellerspezifischen Protokoll für die Tiefendiagnose und genauen Fehlerbeschreibungen, oder eben das OBD2-Standardprotokoll mit den wichtigsten Daten.
Der Grund, warum wir auch beim Facelift an die runde Dose im Motorraum müssen ist simpel: Dort im Deckel ist eine Brücke (Pin 17 auf Pin 2), die lediglich die TXDII-Leitung an die "OBD2"-Buchse im Fußraum weiterleitet, zum Zwecke der "OBD2"-Funktionalität. Sonst ist da nichts zu holen im Fußraum. Und weil die Interfaces halt alle einen "OBD2"-Stecker haben, brauchen wir den Adapter auf die runde Buchse.
Geheimtipp(s):
1) Will man (auch mit den BMW-Tools/BMW-spezifisches Protokoll) nur aufs Motorsteuergerät, kann man also die Buchse im Fußraum nutzen.
2) Ist der Deckel an der Rundbuchse im Motorraum ab, brückt sich nix, und logischerweise ist dann auch die Dose im Fußraum "tot".
3) Ist kein Adapter von "OBD2" auf Rundbuchse zur Hand oder der Verdacht da, dass der Adapter nicht richtig belegt ist, dann kann man auch einfach an der runden Buchse im Motorraum Pin 20 (TXD I-Leitung = restliche Steuergeräte) mit einem Draht auf Pin 2 (Weiterleitung zur Buchse im Fußraum) brücken. Damit hat man also die Diagnose-Leitung der restlichen Steuergeräte auf die OBD2-Dose im Fußraum gelegt, und kann dort auslesen. Motorsteuergerät geht dann in dem Zuge natürlich nicht mehr.
Das ist z.B. auch dann interessant, wenn man Werte (z.B. ABS-Raddrehzahlen) während der Fahrt im Auto (Beifahrer!) live verfolgen möchte, ohne eine abenteuerliche USB-Verlängerungskonstruktion vom Motorraum durchs Fenster ins Auto.
Die beste Lösung dafür ist aber immernoch der IN*PA-kompatible spezielle
Bluetooth-Adapter von Ulrich Holeschak plus Rundsteckeradapter, welcher auch das alte ADS Protokoll unterstützt und somit Uraltlaptops mit physikalischer Serieller Schnittstelle überflüssig macht.
Die meisten Universal-Apps wie z.B. Torque und Co. nutzen eben besagtes OBD2-Protokoll, funktionieren daher nur mit Fahrzeugen ab ca. Bj.2000 und liefern darüber nur sehr wenige Standardwerte (z.B. Drehzahl) und Standard-Fehler mit (sehr oberflächlichen) Standard-Beschreibungen. Apps wie Carly kommunizieren über das BMW-Protokoll, geben die Fehler aber nicht sauber wieder bzw. können diese auch nicht vollständig entschlüsseln. Bei einer Vielzahl von Fehlern je Steuergerät ist das Reverse-Engineering zeitaufwändig, vorallem da nicht alle Fehlercodierungen dem gleichen Muster folgen. Teilweise sind Fehler-Attribute wie Motorbetriebszustand ("Start", "Teillast", ...) nur bei bestimmten Fehlern mit codiert, bei anderen Fehlern bedeuten diese Bits etwas anderes.
Spaßeshalber habe ich mal ein paar Fehler entschlüsselt, einfach um es besser zu verstehen. Hier ein Auszug wie zwei Fehler in Bits und Bytes aussehen (hexadezimal, 2 Zahlen sind je ein Byte).
Die Attribute wie "Fehler momentan vorhanden", "Sporadischer Fehler" usw., die IN*PA dann anzeigt, sind im Fehler-Status und in den fehlerspezifischen Werten codiert. Das fehlt in der Regel bei den Apps, sind aber wichtige Informationen!
Hier der zugehörige Auszug aus dem BMW-Tool mit dem decodierten Fehler.
Auf die Gefahr hin dass nun beim ein oder anderen die Fragezeichen eher noch größer geworden sind.....
So long...
Gruß Steffen