Christians Webseite        << zurueck        vor >>

J2534 Pass-Thru Tactrix OpenPort 2.0

Dieser Adapter ist ein Klon des Tactrix OpenPort 2.0. Er unterstützt den SAE J2534 Standard der einen von Protokollen unabhängigen Zugriff auf Steuergeräte definiert. Theoretisch hat man damit einen Universaladapter mit dem man "alles programmieren kann"..

OBD2 OBD2 OBD2

Den Adapter habe ich erfolgreich mit der HUD ECU Hacker Software an einer Honda CB1000R getestet (nur Auslesen der Zustandsdaten und Fehlercodes). Die Verbindung per CAN funktionierte einwandfrei, der Adapter benötigte dafür keine Modifikationen.
Eine K-Line Verbindung aufzubauen war leider auch mit diesem Adapter nicht möglich. Die Ursache dafür wird aber sehr wahrscheinlich im Steuergerät liegen.

OBD2

Am Anfang, und auf dem Papier, sah der Adapter toll und vielversprechend aus. Für simple Lese-Aufgaben und spielende Hobby-Bastler wie mich scheint er auch ganz brauchbar zu funktionieren. Und vermutlich auch in den beworbenen Szenarien.

Die mitgelieferte Software (Techstream, ECUflash, SDD, MongoosePro) soll Landrover, Jaguar, Toyota, Mitsubishi, Subaru und Mercedes unterstützen (überwiegend aber nur die "älteren Gurken"). Sie kommt auf CD und macht keinen seriösen Eindruck. Es sind (natürlich) irgendwelche gehackten Versionen mit teilweise abenteuerlichen Installationsanweisungen.

Aber beim Klonen sind offensichtlich einige Eigenschaften auf der Strecke geblieben (z.B. fehlen Programmierspannungen) die ihn für mich zu einem Tool machen bei dem ich misstrauisch bleibe. Und bei abweichender Steuersoftware muss man vorsichtig sein und sich vorab schlau-lesen. Angeblich kann der Adapter durch ein Firmware-Update eventuell "gebrickt" werden. Beim Beschreiben von Steuergeräten die eine externe Programmierspannung benötigen sollte man ebenfalls genau hingucken.

Für seriöse Arbeiten, oder wenn man nicht genau weiss was man tut, würde ich diese Klone nicht empfehlen. Das Original von Tactrix ist dann die bessere Wahl.

Berichte im Internet

Man findet überraschend wenig Detail-Informationen zu diesem Adapter. Viele Beiträge sind uralt und berichten über unterschiedlichste Bestück-Fehler. Bei aktuellen Versionen scheinen die nicht mehr relavant zu sein, werden aber immer wieder mal gerne aufgekocht.

Treiber- und Software für Windows

Bei der ersten USB-Verbindung mit einem Windows-PC wird automatisch ein default COM-Port Treiber installiert. Der ist aber nutzlos und funktionslos und muss durch den originalen Tactrix-Treiber ersetzt werden. In dem Treiber-Datenpaket sind zusätzlich auch Programmierbeispiele zum Ansprechen der J2534-DLL enthalten.

In der Benutzeroberfläche der HUD ECU Hacker Software wird praktischerweise eine Funktion angeboten die ebenfalls den richtigen Treiber installiert.

Eine simple Anwendung für J2534 ist unter dem Namen GenericDiagnosticTool im GitHub zu finden.

Die Firma OPUS VIS bietet eine J2534 Toolbox zum Download an.

Eigenschaften

Laut eigener Beschreibung unterstützt der Klon-Adapter die folgenden Schnittstellen und Protokolle:

  • CAN 2.0 (CAN / ISO 15765)
  • K-line (ISO 9141 / ISO 14230(KWP 2000) / dual K line)
Weiterhin kann (angeblich, siehe weiter unten) GND oder 5V..25V auf die OBD-Pins 1, 3, 9, 11, 12, 13 oder auf die 2,5mm AUX-Buchse geschaltet werden. Diese Spannungen werden von einigen Steuergeräten für die Programmierung benötigt.

Der Adapter weicht hier in einigen Punkten deutlich von der J2534-Spezifikation ab.
  • SAE J1850PWM, SAE J1850VPW und SAE J2610 sind nicht implementiert
  • Es wird die Möglichkeit zum Aufschalten einer Spannung im Bereich 5 .. 20V (Auflösung 1mV) auf einen der Pins 6 (CAN H), 9, 11, 12, 13, 14 (CAN L) oder einen externen AUX-Pin gefordert. Dazu die Option Pin 15 (ISO-9141 L) auf GND zu schalten.

Die J2534-Spec ist daher nicht vollständig implementiert.

Das ist aber meistens garnicht schlimm oder schädlich. Die J2534 Spezifikation will formal alle erdenklich Protokolle abdecken. Auf seltene oder überhaupt nicht vorhandene Exoten kann man gut verzichten. Solange CAN und ISO 9141 implementiert sind hat man alles wichtige.

Hardware

Eine Übersicht der Pin-Belegung:
OBD2 OBD2

Die Positionen und Funktionen der wichtigsten Bauteile:
OBD2

Name Bezeichnung Alternative Marking Marking Housing Anmerkung
U1 LPC2368FBD100 LPC2364FBD100 LQFP100 Microcontroller
U2 SIT1040 6251DS SOP8 CAN transceiver
U3 NCV7708B SOIC28 Double Hex Driver
U6 AMS1117 3.3 SOT-223-3L Voltage Regulator
U7 LM2734 SFEB ??6A SOT23-6 Step-down converter
U8 NCP1406 LTH7R DAMRHC SOT23-5 Step-up converter
U10 LM317L Voltage Regulator
Y1 12.000 Quartz
Q1, Q6, Q7, Q9, Q11, Q12 BC846 1B SOT23 NPN low power
Q2, Q3, Q5, Q10 BC856 3B SOT23 PNP low power
D1, D3, D4, D5, D6, D8 MBR0540 B4 Schottky Diode
D11, D12, D13, D14, D15, D16 BZT52C5V1 W9 SOD123F Z-Diode 5V1

U1 scheint nicht einheitlich bestückt zu sein. Die Varianten unterscheiden sich in der Speichergrösse.
U7 verringert die 12V vom OBD2-Stecker auf ~4.9V. U6 regelt diese Spannng auf 3.3V.
U8 erzeugt eine höhere Spannung die vermutlich in einigen Fällen für die Programmierung benötigt wird.
U3 schaltet beliebige Spannnungen auf die OEM-Pins. Allerdings sind in meiner Platinenvariante alle wichtigen Leitungen von U3 bewusst unterbrochen und das IC hat keine Funktion.

Empfohlene Modifikationen?

Diese Umbauempfehlungen würde ich erstmal ignorieren und zuerst untersuchen welche Klon-Variante man vor sich hat. Alle Internet-/Foren-Empfehlungen beziehen sich auf Probleme die lange zurückliegen, Einzelfälle, undefinierte Lieferanten und sonstiges Gejammer. Zumindest mein Exemplar scheint eine normale, aktuelle Variante zu sein und keine Verbesserungen zu benötigen. Wobei ich aber auch noch nicht sehr internsiv getestet habe..
Und selbst "Klone" werden ja manchmal über die Zeit von groben Fehlern bereinigt..

Die aufgedruckte Platinen-Revision scheint keine wirkliche Aussage zu haben. Zielführender ist es an Hand der Bauteilwerte abzuschätzen welche Ausführung man hat.

Auto-Update unterbinden?

Vor einem Firmware-Update wird gewarnt und abgeraten. Als Folge können die Klone, je nach Variante, unbrauchbar werden. Ein Update wird vermutlich von einigen PC-Steuer-Softwaren automatisch angestossen. Wenn gleichzeitig eine Online-Verbindung vorhanden ist wird die Firmware direkt aktualisiert.
Der interne Bootloader (und damit das Update) wird gestartet wenn während eines Reset ein LOW an Pin U1[53] anliegt. Laut "dem Internet" soll ein zusätzlicher 10k Pull-up Widerstand zwischen U1[53] und C12[3.3V] das verhindern.

Wie diese Massnahme wirken soll ist mir aber ein Rätsel. R7 (2.7k, andere Platinenseite) übernimmt bereits exakt diese Aufgabe. Möglicherweise ist der 10k ein Artefakt aus Diskussionen über alte/abweichende Revisionen der Platine?

In jedem Fall ist dieser Umbau sinnlos und kann entfallen. Wie und ob man überhaupt ein Firmware-Update unterbinden kann ist offen.

OBD2 OBD2 OBD2

U1[53] und U1[74](serial Rx) sind miteinander und mit Q1 verbunden.
OBD2

Die Hauptfunktion von Q1 ist offensichtlich ein RS232-Signal von J6[Ring] an den Prozessor weiterzugeben.
Man kann darüber aber auch U1[53] bewusst auf Masse schalten. Dazu muss an J6[Ring] eine Spannung anliegen. Wenn man das nicht tut dann wird der Bootloader beim Power-Cycle nicht gestartet.

Möglicherweise gibt es aber auch andere Möglichkeiten die Firmware ohne Beteiligung des Bootloaders zu beschreiben ..!?

Spannungsversorgung verbessern?

Wesentliche Teile der Elektronik werden von U6 (AMS1117) mit 3.3V versorgt. Für mehr Stabilität wird empfohlen zwei zusätzliche Kondensatoren hinzuzufügen. Aber wie vorher sind auch diese Modifikationen nicht zwingend notwendig.

  • Ein 10uF Keramik Kondensator parallel zu C8 am Ausgang des AMS1117
  • Ein 100uF/25V Elko parallel zum Eingang des AMS1117

Am Ausgang ist bereits ein 22uF vorhanden, das entspricht genau der Empfehlung des Datenblatts. Deshalb habe ich nur einen 1uF 0603 Keramik hinzugefügt (direkt an die Beinchen von U6). In der Hoffnung die HF-Filterung etwas zu verbessern.

Am Eingang sitzt ein 22uF, der Ausgangskondensator von U7. Ich habe aus Langeweile noch einen 47uF/35V dazu geschaltet.
OBD2 OBD2

Der 3.3V-Spannungsregler U6 wird vom USB- oder alternativ über den OBD-Stecker mit ~5V versorgt.

Im OBD-Zweig sitzt ein Step-Down Konverter der rund um U7 aufgebaut ist. Er setzt die 12V vom OBD verlustarm auf 5V herunter.
OBD2

In Verbindung mit fehlerhafter Bestückung scheint es hier mal Probleme mit falscher Ausgangsspannung gegeben zu haben. Der AMS1117 hat eine Dropout-Spannung von mindestens 1V und sollte daher nicht unterhalb einer Eingangsspanung von ~4.5V betrieben werden.

In meinem Adapter liefert U7 eine stabile Spannung von 4.89V. Und da sowieso immer auch USB verbunden ist sehe ich auch ohne Modifikationen keine Probleme an dieser Stelle.

U8 ist ein Step-Up Converter der eine umschaltbare Ausgangsspannung von 12V bzw 23V erzeugt. Die Umschaltung erfolgt über U1[6], einen Port von U1. Die Spannung geht auf U3[5] und U3[10], den Umschalter für die OEM-Pins am OBD2-Stecker.
OBD2

Da aber alle wichtigen Leiterbahnen in der Umgebung von U8 und U3 unterbrochen sind ist dieses Feature sowieso nicht nutzbar.

Sonstige Bestückung ändern?

Die Bestückung der Klone ist nicht identisch mit dem Original. Es gibt diverse Umbauanleitungen zur Anpassung. Zudem wird von einigen Klonen berichtet die fehlerhaft bestückt wurden und Probleme mit der Spannungsversorgung haben.

Dieser Link listet die Abweichungen. Die Klone existieren in unterschiedlichen Varianten mit abweichender Bestückung und Layout. Die Änderungsliste ist daher nicht einheitlich.

Ob man dadurch am Ende eine "richtige Adapter-Kopie" bekommt darf aber sehr bezweifelt werden. Bootloader und Seriennummer sind, z.B., zwei Punkte an denen die Ergebnisse und Diskussionen in den Foren verschwommen werden.

Hier eine Liste der Abweichungen bei den Widerstandswerten für 4 unterschiedliche Varianten:

originaloriginalClone 1Clone 1Clone 2Clone 2My deviceMy device
Designatormarkingvaluemarkingvaluemarkingvaluemarkingvalue
R151k51k01D100k10310k51351k
R201C10k01D100k10310k01C10k
R301D100k01D100k10310k01C10k
R42,2M2,2M2,2M2,2M2252,2M01C10k
R5220k220k220k220k224220k224220k
R6220k220k220k220k224220k224220k
R72,7k2,7k2,7k2,7k2722,7k2722,7k
R874C57k74С57k74С57k74С57k
R901C10k01D100k10310k2252,2M
R1074C57k74C57k74C57k74C57k
R1101C10k01D100k10310k01C10k
R121,5k1,5k13B1,3k1521,5k18B1,5k
R1322k22k22k22k22322k22322k
R1401C10k01D100k10310k01C10k
R1501C10k01D100k10310k01C10k
R162402424024241240241240
R1701C10k01D100k10310k01C10k
R182,2k2,2k2,2k2,2k2222,2k2222,2k
R191,5k1,5k01B1k01B1k01B1k
R204,7k4,7k4,7k4,7k4724,7k4724,7k
R21222222222202222022
R22222222222202222022
R231k1k1k1k1021k1021k
R2422k22k22k22k22322k22322k
R252,2k2,2k2,2k2,2k2222,2k2222,2k
R2601C10k01D100k10310k01C10k
R271k1k1k1k1021k1021k
R2822k22k22k22k22322k22322k
R292,2k2,2k2,2k2,2k2222,2k2222,2k
R3001C10k01D100k10310k01C10k
R314,7k4,7k2,7k2,7k2722,7k2722,7k
R324704747047471470471470
R3322k22k22k22k22322k22322k
R341,8k1,8k1.8k1,8k1821,8k1821,8k
R3522k22k22k22k22322k22322k
R3601B1k01B1k01B1k01B1k
R374,7k4,7k2,7k2,7k2722,7k2722,7k
R3801C10k01D100k10310k01C10k
R392,7k2,7k2,7k2,7k2722,7k2722,7k
R402,7k2,7k2,7k2,7k2722,7k2722,7k
R4101D100k2,7k2,7k2722,7k2722,7k
R4201C10k01D100k10310k01C10k
R432,7k2,7k2,7k2,7k2722,7k2722,7k
R442,7k2,7k2,7k2,7k2722,7k2722,7k
R4501C10k01D100k10310k01C10k
R462,2k2,2k2,2k2,2k2222,2k2222,2k
R4701C10k01D100k10310k01C10k
R482,2k2,2k2,2k2,2k2222,2k2222,2k
R4974C57k74C57k74C57k74C57k
R5001C10k01D100k10310k01C10k
R5174C57k74C57k74C57k74C57k
R5201C10k01D100k10310k01C10k

Layout Veränderungen

Auf meiner "Klon-Platine" sind viele Leiterbahnen in der Umgebung von U3 und U8 bewusst unterbrochen und die Bauteile dadurch komplett deaktiviert. Augenscheinlich wurden die Leitungssegmente zu einem späten Zeitpunkt händisch aus den Fertigungsdaten entfernt. Die entkoppelten Bauteile sind vermutlich für das Aufschalten von Spannungen auf die "OEM"-Pins am OBD2-Stecker.

OBD2 OBD2 OBD2

Die Abweichungen zum Original sind massiv und können nicht "mal eben" korrigiert werden. Zudem hat die Platine mindestens eine weitere innere Kupferlage über deren Layout und Veränderungen nichts bekannt ist. Die Klon-Meister werden diese Modifikationen nicht ohne Grund gemacht haben. Höchstwahrscheinlich sollte ein Fehlverhalten möglichst billig und schnell korrigiert werden und die Originaldaten waren nicht vorhanden. Das Wiederherstellen könnte daher auch Probleme hervorrufen.

J2534 API functions

In der J2534 wird eine DLL mit ihren generischen Grundfunktionen und deren Übergabeparameter definiert. Diese Anforderungen muss jeder Hersteller für seinen Adapter identisch erfüllen. Dadurch soll volle Kompatibilität sichergestellt werden.

Function Description
PassThruConnect Establish a connection with a protocol channel
PassThruDisconnect Terminate a connection with a protocol channel
PassThruReadMsgs Read message(s) from a protocol channel
PassThruWriteMsgs Write message(s) to a protocol channel
PassThruStartPeriodicMsg Start sending a message at a specified time interval on a protocol channel
PassThruStopPeriodicMsg Stop a periodic message
PassThruStartMsgFilter Start filtering incoming messages on a protocol channel
PassThruStopMsgFilter Stops filtering incoming messages on a protocol channel
PassThruSetProgrammingVoltage Set a programming voltage on a specific pin
PassThruReadVersion Reads the version information for the DLL and API
PassThruGetLastError Gets the text description of the last error
PassThruIoctl General I/O control functions for reading and writing protocol configuration parameters (e.g. initialization, baud rates, programming voltages, etc.)

Auf der Anwenderseite (PC-Programm) implementiert jeder Fahrzeughersteller seine spezifischen Programmabläufe, die aber alle nur über diese DLL auf den Adaper zugreifen können.

Links


Kvaser Introduction to SAE J2534

OBD Wiki J2534

Bosch J2534 FAQs

http://blog.obdii365.com/2022/03/23/how-to-choose-the-right-clone-tactrix-openport-2-0-j2534/

http://blog.obdii365.com/2022/03/24/modify-openport-2-0-clone-to-enable-network-connection/

https://www.drive2.ru/l/546040015415673901/

https://www.digital-kaos.co.uk/forums/archive/index.php/t-1004360.html

https://github.com/bouletmarc/HondaReflashTool