Das Problem mit den meisten selbst gebauten Kabeln
Die ALDL-Leitung von GM mit 8192 Baud ist eine einzelne Open-Collector-Leitung: Im ECM (und im CCM, ABS …) zieht ein Widerstand von ~10 kΩ sie auf +5 V, und jedes Modul zieht sie mit einem Transistor auf LOW, um ein 0-Bit zu senden. Ruhezustand = HIGH. Jeder darf nur auf LOW ziehen; niemand darf die Leitung auf HIGH treiben.
Das beliebte „20-Dollar-Kabel“ verbindet TXD und RXD des FT232R miteinander und direkt mit Pin M. TXD ist ein Push-Pull-Ausgang, der die Leitung im Ruhezustand auf HIGH treibt, sodass jedes 0-Bit des ECM zu einem Kampf zwischen dem Transistor des ECM und dem FTDI-Ausgang wird. Je nach Bauteilen liegt das resultierende „LOW“ bei 0,5–1,5 V – genau an den Schaltschwellen des Empfängers –, und man bekommt Rahmenfehler und Datenmüll, umso schlimmer, je mehr das CCM sendet. Dasselbe Kabel belastet außerdem den Ausgang des ECM.
Zwei weitere klassische Fallen:
- FT_Prog „Invert TXD/RXD“ – nur richtig für RS-232-Adapter (DB9) mit invertierendem Transceiver. Auf einem TTL-FT232R-Board ruht TX damit auf LOW (hält den ganzen Bus des Autos auf LOW – das CCM speichert dann Code 41), und RX liest invertierte Daten.
- 3,3-V-Boards / VCCIO-Jumper auf 3,3 V – die Leitung arbeitet mit 5 V; 5-V-I/O verwenden.
Empfohlenes Design (Rev B)
| Bez. | Bauteil | Zweck |
|---|---|---|
| U1 | Original-FTDI-FT232RL-Breakout-Board, VCCIO-Jumper = 5 V (oder FTDI TTL-232R-5V) | USB ⇄ TTL-UART, 5-V-Logik, keine Treiber-Sabotage |
| Q1 | 2N3904 NPN (SMD MMBT3904) | Inverter: TXD in Ruhe HIGH → Q1 leitet → Q2 sperrt |
| Q2 | 2N3904 NPN, 40 V (SMD MMBT3904, PN2222A passt auch) | Open-Collector-Leitungstreiber – zieht die Leitung immer nur auf LOW, wie jedes GM-Modul |
| Q3 | N-MOSFET BSS138, 50 V (SOT-23) oder BS170 (TO-92) | RX-Trennstufe: Gate an +5 V, Source → RXD, Drain → DATA |
| R1 | 150 Ω, 0,5 W | Vorwiderstand von Q2 |
| R2 | 10 kΩ RXD → +5 V | Ruhepegel von RX (Werkbank, Auto aus) |
| R3 | 10 kΩ | Basis Q1 |
| R4 + SW1 | 10 kΩ + Schalter zwischen A und B | Diagnosefreigabe nur für ECMs von 1982–88 (160 Baud), AUS ab 1989 |
| R5 | 10 kΩ TXD → +5 V | TXD auf HIGH, während der FTDI startet oder abgesteckt ist → Leitung frei |
| R6 | 10 kΩ Kollektor Q1 → +5 V | Basisstrom für Q2 |
| R7 | 22 kΩ | Basis Q2 – bewusst hochohmig, begrenzt den Kurzschlussstrom |
| C1 | 100 nF | Abblockung der 5-V-Versorgung |
| D1 | TVS SMAJ24A, unidirektional – Ring (Kathode) an DATA, Anode an GND | nur gegen Spannungsspitzen (ESD, Zündung); leitet bis 24 V nicht |
| JP1 | 3-fach-Wahlschalter | M (1990–95), E (1982–88), E+M (1989) |
| J1 | GM-ALDL-Stecker 12-polig | 1995: 16-polige DLC, Datenpin 9, GND 4+5 |
So funktioniert es
- TX – TXD ruht auf HIGH, Q1 leitet, Q2 sperrt: Die Leitung ist frei. Ein 0-Bit (TXD LOW) sperrt Q1, R6+R7 steuern die Basis von Q2 an, und Q2 zieht DATA über R1 auf LOW. Zwei Invertierungen = dieselbe Logik wie am FTDI-TX, daher wird keine Invertierung in FT_Prog verwendet. LOW-Pegel ≈ 0,1 V + R1 × Busstrom (≈0,2–0,4 V bei einem Bus-Pull-up von 2–10 kΩ).
Polarität (identisch bei Rev A und Rev B – beide invertieren nicht):
UART-Zustand TXD Rev A: Ausgang 74LVC1G07 Rev B: Q1 Rev B: Q2 DATA-Leitung Ruhe / Stoppbit / 1-Bit HIGH hochohmig (frei) leitet sperrt HIGH (Bus-Pull-up) Startbit / 0-Bit LOW zieht auf LOW sperrt leitet LOW Eine einzelne Transistor- oder Open-Drain-Stufe würde für sich allein invertieren (Basis HIGH → Leitung LOW); der 74LVC1G07 enthält Puffer + Open-Drain (nicht invertierend – die kleine Raute in seinem Symbol kennzeichnet den Open-Drain-Ausgang, sie ist kein Negationskreis), und Rev B hebt mit Q1 die Invertierung von Q2 auf. Eine invertierende Stufe würde den Bus auf LOW halten, solange der UART ruht – siehe „Warum die Polarität wichtig ist“.
- RX – Q3 ist der klassische MOSFET-Pegelwandler. Zieht irgendetwas DATA auf LOW, ziehen die Body-Diode von Q3 und dann sein Kanal RXD auf LOW; liegt DATA auf HIGH (5 V oder sogar 24 V), sperrt Q3, und R2 hält RXD auf 5 V. RXD sieht daher immer nur 0–5 V, und zwar die echte Leitung, sodass jedes Byte, das wir senden, zurückkommt (Echo) und VetteALDL es Byte für Byte prüft.
- Stromlos – bei abgestecktem USB haben Q1/Q2 keinen Basisstrom und das Gate von Q3 liegt auf 0 V, sodass das Kabel für das Auto wirklich unsichtbar ist (Rev A belastete den Bus noch über R3 und den RXD-Eingang).
- Loopback auf der Werkbank funktioniert ohne Auto: Q2 zieht die offene DATA-Leitung auf LOW, Q3 gibt das an RXD weiter.
Warum die Polarität wichtig ist
Ein UART ruht auf HIGH (Mark), und ein Byte beginnt mit einem Startbit auf LOW; die ALDL-Leitung ruht ebenfalls auf HIGH, und die Module ziehen sie auf LOW. Die Leitung muss TXD also direkt folgen. Würde eine Stufe invertieren,
- läge der Bus die ganze Zeit auf LOW, in der die App nicht sendet – das CCM verliert das ECM (Code 41), das Kombiinstrument bekommt keine ECM-Daten mehr, und niemand kann senden;
- käme jedes Byte invertiert am Auto an (Startbit HIGH = kein Startbit), sodass nichts verstanden wird;
- wäre eine „Reparatur“ per FT_Prog „Invert TXD“ unzuverlässig: Bevor der FTDI sein EEPROM lädt (Einstecken, USB-Reset, abgesteckter Laptop), würde die Leitung wieder auf LOW gezogen.
Die Verbindungsprüfung erkennt das auf der Werkbank (Schritt 2: Leitung hängt auf LOW / Echo invertiert) und am EEPROM (Schritt 1: „invertierte Leitungen“).
Was passiert, wenn 12 V (oder mehr) an den Datenpin gelangen
Das ECM selbst legt nie 12 V auf die ALDL-Datenleitung (siehe unten), wohl aber ein falscher Pin, ein um einen Pin versetzter Stecker, der Prüfpin G der Kraftstoffpumpe bei Fahrzeugen von 1984–89, Pin 16 (Batterie) an der 16-poligen DLC oder ein Fehler im Kabelbaum.
| Spannung an DATA | Rev B | Rev A (74LVC1G07 + Klemmdiode) |
|---|---|---|
| 12–16 V, Ruhe | nichts leitet (Q2 40 V, Q3 50 V, D1 24 V Sperrspannung); R2 hält RXD auf 5 V | die Klemmdiode zieht aus einer niederohmigen Quelle mehrere Ampere und brennt durch; U2 (abs. max. 6,5 V) bekommt ~55 mA über R1 und stirbt |
| 12–16 V beim Senden | Strom durch Q2 über die Basisansteuerung auf ~15–40 mA begrenzt; RX sieht die Leitung auf HIGH hängen → Echofehler → die App hört auf zu senden | wie oben |
| 24 V (Starthilfe) | nichts leitet (D1 Sperrspannung 24 V) | wie oben |
| Spitzen > 27 V | D1 begrenzt (≤ 39 V bei 10 A, unter den 40 V von Q2) | Klemmung bei ~6–7 V |
Alte Kabel mit „TX+RX verbunden“ und die BAT85-Schnelllösung unten sind nicht geschützt: 12 V würden direkt in den TX-Pin des FTDI gedrückt. Verwenden Sie sie nur am richtigen Pin.
So sieht die Datenleitung in den Steuergeräten des Autos aus
Die ALDL-Leitung von GM mit 8192 Baud (Pin M, 1990–95; Pin 9 an der 16-poligen DLC von 1995) ist nicht die europäische K-/L-Leitung nach ISO 9141 (12 V, z. B. bei Opel/Vauxhall – der Tech 1 hat dafür ein eigenes KW2000-Modul). Sie ist eine einzelne bidirektionale Leitung:
- jedes Modul (ECM, CCM, ABS, SIR, Klimasteuerung) hat einen Open-Collector-Ausgang (NPN), der die Leitung auf Masse zieht, um ein 0-Bit zu senden, und sie für ein 1-Bit freigibt;
- die Leitung wird über einen Widerstand auf die geregelten 5 V des ECM hochgezogen (Größenordnung 10 kΩ; der genaue Wert für das 1227727 ist in unseren Quellen nicht dokumentiert – messen Sie ihn, falls Sie ihn brauchen, siehe unten);
- jedes Modul empfängt zugleich auf derselben Leitung (über einen Komparator- oder Transistoreingang) und hört so seine eigene Übertragung – deshalb arbeitet der Bus als „Wired-AND“, und deshalb darf unser Kabel nur auf LOW ziehen.
Die 160-Baud-Leitung (Pin E, 1982–88) ist ebenfalls ein 5-V-Open-Collector-Ausgang des ECM, sendet (pulst) aber nur, wenn der 10-kΩ-Widerstand A–B vorhanden ist. Einige andere GM-Systeme dieser Zeit nutzten eine serielle 12-V-Leitung (der Selbsttest des Tech 1 kennt sogar „LOW SPEED 12 V SERIAL DATA“); Rev B funktioniert auch damit, weil Q2 und Q3 40 bzw. 50 V vertragen.
So schätzen Sie den Pull-up Ihres Autos ab: Zündung EIN, Motor aus, DATA (M) gegen Masse (A) messen, bei abgestecktem Kabel – etwa 5 V (durch den CCM-Verkehr flackert der Wert). Dann einen 10-kΩ-Widerstand von M nach A legen und erneut messen: R_pullup ≈ 10 kΩ × (5 V − V) / V. Nur kurz – solange die Leitung belastet ist, kann das CCM das ECM verlieren und Code 41 speichern, den Sie danach löschen können.
Geschichte: Rev A
Rev A nutzte einen Open-Drain-Puffer 74LVC1G07, 4,7 kΩ vor RX, einen 47-kΩ-Pull-up und eine Klemmdiode an der Leitung. Zeichnungen vor dem 26.09.2026 zeigten diese Diode verkehrt herum (Anode an DATA = Bus hängt bei ~0,6 V) und als 5,0-V-TVS; beides ist korrigiert, und Rev B ersetzt die gesamte Busanbindung, weil Rev A 12 V am Datenpin nicht übersteht.
Schnelllösung für ein vorhandenes Kabel mit verbundenem TX+RX
TX auftrennen, eine Schottky-Diode (BAT85/1N5817) einsetzen: Ring (Kathode) zu TXD, Anode zur ALDL-Leitung; 4,7 kΩ in Reihe mit RX; 5-V-Board; alle Invertierungen in FT_Prog AUS.
Nicht gegen 12 V am Datenpin geschützt (die Diode würde 12 V in den TX des FTDI durchlassen) – nur am richtigen Pin verwenden und für alles Dauerhafte Rev B bauen.
12-poliger ALDL-Anschluss (Buchse im Auto, vom Innenraum aus gesehen)
F E D C B A A = Masse B = Diagnosefreigabe (ECM)
G H J K L M E = 160-Baud-Daten (1982–89) M = 8192-Baud-Daten (1990–95)
G–A = Kombiinstrument-Diagnose 1990–93 (NIE bei 1984–89: G = Kraftstoffpumpe)
Testablauf
- Werkbank: VetteALDL → Verbindungsprüfung Schritt 1 (PC & Treiber) und 2 (Loopback) – muss zu 100 % sauber sein.
- Auto, Zündung AUS: Schritt 3 – die Datenleitung darf nicht auf einem Massepin liegen.
- Zündung EIN: Schritt 4 – CCM-Verkehr sichtbar, ECM antwortet.
- Irgendetwas rot → Sitzungen & Support → Support-Paket erstellen.