Was du über die OBD-II-Buchse des U5 bekommst und was nicht — ermittelt durch Abtasten mit einem billigen USB-CAN-Adapter und Gegenprüfen anhand der Anzeigen der Head-Unit. Kurzfassung: du kannst sehr viel lesen, aber ohne den geheimen Schlüssel des Herstellers nichts schreiben. Siehe CAN-Bus dazu, wie sich dieser Anschluss von den internen Bussen unterscheidet.
Die genormten Abgasdienste funktionieren, funktional adressiert an 0x7DF (Antworten auf 0x7E8):
09 02) und Kalibrier-IDs.BF FB FF F7 und — bei einem Elektroauto praktisch — PID 0x5B („hybrid/EV battery remaining charge“, verbleibende Ladung der Antriebsbatterie).Wie bei jedem Elektroauto gibt generisches OBD wenig her — VIN, generische Fehlercodes, ein paar Werte (im geparkten Zustand meist 0). Alles Interessante — echter SoC, Packspannung, Zelldaten — liegt in der darunterliegenden herstellerspezifischen UDS-Schicht.
Das Gateway leitet UDS-Anfragen an die internen Steuergeräte weiter. Zähle sie behutsam mit einem
einzigen funktionalen TesterPresent auf (3E 00 → 0x7DF): das ändert nichts, und trotzdem antwortet
jedes erreichbare Steuergerät von seiner eigenen ID. Beim U5 findet man so 24 Steuergeräte.
Antwort-ID = Anfrage-ID + 8 (z. B. 0x701 → 0x709).
| Anfrage-ID | Anmerkungen |
|---|---|
| 0x7E0 | Antriebs-Endpunkt für generisches OBD. Antwortet auf Mode 01, weist aber jedes UDS ab (serviceNotSupported). |
| 0x7E1 | Batteriemanagementsystem — Packspannung / Strom / SoC / Zelldaten liegen hier (siehe unten). |
| 0x7E2, 0x7E3 | Antriebspaar (fortlaufende Teilenummern) — Motor-/Ladeelektronik. |
| 0x700–0x707, 0x710–0x713, 0x720–0x727, 0x730–0x736, 0x7AC | Steuergeräte für Karosserie / Fahrwerk / Komfort (BCM, HVAC, ESP, EPS, Airbag, Lenkung, Kombiinstrument, Sitze, Heckklappe, TPMS, …). |
Die so erreichbaren internen Steuergeräte sind der übliche EV-Satz: BMS, VCU, Motorsteuergerät, Bordladegerät, Fahrstufenwahl (Antrieb); BCM, Klimamodul, PTC/Kompressor, Sitzheizungen, Heckklappe, Warnklang für niedrige Geschwindigkeit (Karosserie); ESP, EPS, iBooster, Airbag, Lenkwinkelsensor, Kameras/Radare (Fahrwerk); Head-Unit, Kombiinstrument (Infotainment); T-Box (Telematik). Die genaue Zuordnung Adresse↔Modul ist nur für 0x7E0/0x7E1 bestätigt; der Rest ist aus den Daten und dem Adressblock erschlossen.
In der Standardsitzung (ohne Sitzungswechsel) geht üblicherweise:
19 02 FF = Abfrage nach Statusmaske).
Der Identifikationsblock (DIDs 0xF180–0xF1FF) liefert bei den meisten Steuergeräten: eine
Teilenummer im Schema 8619xxxxx, einen Lieferantencode (CS-000xxx), ein Programmierdatum und die
VIN (0xF190). Beispiel von einem Steuergerät: Teil 861923101B, Lieferant CS-000029,
programmiert 2021-11-10. Wenn du das über alle 24 Steuergeräte durchziehst, entsteht eine komplette
Teilenummern- und Build-Karte des Fahrzeugs — eine öffentliche Aiways-Steuergeräteliste gibt es sonst
nicht.
Das BMS (0x7E1) führt einen Live-Messblock rund um die DIDs 0x8800–0x887F — grob
120 aggregierte Batteriewerte: Packspannung, Strom, Zellspannungen, SoC, Temperaturen und
Statuswörter. Hier sollten die Zahlen liegen, die die Head-Unit nicht zeigt (Zelle min/max,
Temperaturen, Alterungszustand).
Ein breit angelegter Scan — viele Steuergeräteadressen durchfahren und dabei eine erweiterte
Sitzung erzwingen (10 03) — bringt Steuergeräte dazu, ihre normalen CAN-Botschaften einzustellen.
Das Kombiinstrument markiert die „fehlenden“ Module dann mit Warnsymbolen, und eine nachgelagerte
Anzeige kann auf einem Ersatzwert einfrieren (wir haben gesehen, wie die Außentemperaturanzeige
hängenblieb). Es ist nur lesend und geht von selbst zurück, sobald das Abtasten aufhört, aber:
Die letzten zwei Hex-Stellen eines DTC sind das genormte Fehlertyp-Byte: …88 = CAN Bus Off, …87 = fehlende Botschaft / Zeitüberschreitung, …82/83 = Aktivitätszähler / Prüfsumme. Ein `U…87`- / `U…88`-Code bedeutet also „Kommunikationsverlust“, kein echtes Hardware-Ereignis.
Eine Folge davon: jede Bus- oder Spannungsunterbrechung — auch ein aggressiver Scan — lässt viele Module gleichzeitig „Kommunikationsverlust“ gegeneinander eintragen. Nach einem heftigen Scan ist mit einer langen Liste von U-Codes zu rechnen (und mit zusammenhängenden B-/C-Code-Bereichen); das sind Artefakte, die sich über saubere Fahrzyklen selbst löschen. Beachtung verdienen die Antriebs-P-Codes, die auf echte Sensor- / HV-Fehler zeigen. Lies erst alle mit 0x19 aus, dann urteile.
Die herstellerspezifischen Codes (zweites Zeichen `1`, z. B. P110C00) sind, wie sich zeigt, ordentlich dokumentiert und tatsächlich EV-relevant — Spannungsprüfungen der HV-Schütze, Fehler der BMS-Stromsensoren, Zeitüberschreitungen von Gateway-Botschaften, Crash-/Airbag-Signalisierung. Keiner davon ist ein Überrest aus der Verbrennerwelt. Die folgenden Codes des Batteriemanagements sind identifiziert und bestätigt:
| Code | Bedeutung |
|---|---|
P112868 | Fehler des CAN-Kollisions-(Crash-)Signals |
U11FA87 | Zeitüberschreitung der Botschaft 0x2BB des Gateways |
U11FB87 | Zeitüberschreitung der Botschaft 0x2DF des Gateways |
U11FC87 | Zeitüberschreitung der Botschaft 0x3AA des Gateways |
U11FD87 | Zeitüberschreitung der Botschaft 0x050 des Gateways |
U11FE87 | Zeitüberschreitung der Botschaft 0x2F1 des Gateways |
U11FF87 | Zeitüberschreitung der Botschaft 0x195 des Gateways |
U120087 | Zeitüberschreitung der Botschaft 0x37F des Gateways |
U120187 | Zeitüberschreitung der Botschaft 0x28C des Gateways |
U120287 | Zeitüberschreitung der Botschaft 0x17D des Gateways |
U002888 | CAN-Bus deaktiviert (Bus-Off ≥3 s im geweckten Zustand) |
U00BA88 | CAN-Bus für Gleichstrom-Schnellladen deaktiviert |
U10BA87 | Zeitüberschreitung der Botschaft Gleichstrom-Schnellladen (Ladesteuergerät) |
U112182 | Fehler im Zähler der Crash-Botschaft des Airbag-Steuergeräts |
U112183 | Prüfsummenfehler der Crash-Botschaft des Airbag-Steuergeräts |
U011187 | Kommunikationsverlust mit dem BMS (Botschaft 0x2C7 fehlt 10 s) |
P110364 | Plausibilitätsfehler der Spannung hinter dem Hauptrelais |
P110386 | Spannung am Hauptrelais ungültig |
P11021C | Batteriespannung außerhalb des zulässigen Bereichs |
P11081C | Versorgungsspannung des internen Stromsensors (CAB) fehlerhaft |
P110A1C | Versorgungsspannung des internen Stromsensors (LEM) fehlerhaft |
P110C00 | 12-V-Versorgung schaltet sich unerwartet ab |
P11011D | Shunt-Strom außerhalb des zulässigen Bereichs |
P110162 | Plausibilitätsprüfung des Shunt-Stromsignals fehlgeschlagen |
P110164 | Selbstlernfehler des Shunt-Stromsensors |
P110167 | Fehler des Shunt-Stromsensors |
P110192 | Strommessfehler in zwei Schaltkreisen |
P110711 | Interner Stromsensor (Iem) — Kurzschluss nach Masse |
P110712 | Interner Stromsensor (Iem) — Kurzschluss nach Plus |
P110264 | Plausibilitätsprüfung des Batteriesignals fehlgeschlagen |
P110286 | Batteriespannungssignal ungültig |
P110464 | Plausibilitätsfehler der Spannung hinter dem Relais für Gleichstrom-Schnellladen |
P110486 | Gleichstrom-Ladespannung ungültig |
P11B467 | Spannungsfehler beim Gleichstrom-Schnellladen |
P11051D | Messwert des Hall-Stromsensors außerhalb des Bereichs |
P110562 | Plausibilitätsprüfung des Hall-Stromsignals fehlgeschlagen |
P110564 | Selbstlernfehler des Hall-Stromsensors |
P110567 | Hall-Stromsensor defekt |
P110592 | Abweichung des von verschiedenen Sensoren gemessenen Sammelschienenstroms zu groß |
P110609 | Fehler des internen Stromsensors (CAB) |
P11061C | Versorgungsspannung des internen Stromsensors (CAB) fehlerhaft |
P110692 | Fehler des internen Stromsensors (CAB) nach dem BMS-Selbsttest |
P115B92 | Gleichzeitiger Ausfall der Sensoren zweier Strom-Schaltkreise |
U11F487 | Zeitüberschreitung der Botschaft des internen Stromsensors (CAB) |
Jeder Code hier löscht sich automatisch, wenn er 40 Fahrzyklen lang nicht auftritt — oder per Diagnosegerät. Die übliche Eskalation bei der Reparatur ist: Codes anderer Module gegenprüfen → Kabelbaum/Steckverbinder prüfen → Isolationswiderstand des HV-Kabelbaums prüfen (Zielwert >1,5 MΩ, ≥120 MΩ für die PTC-Heizung, bei 500 V DC) → Antriebsbatterie komplett als Baugruppe ersetzen — einen Reparaturweg auf Bauteilebene für die BMS-Platine gibt es nicht.
Die generischen/SAE-Codes dagegen (zweites Zeichen `0`, z. B. die oben bei Live-Scans gesehenen P02C1/P01C1) liegen in Bereichen, die die Norm für Verbrenner-Teilsysteme definiert — P02xx heißt nominell „fuel injector circuit“ (Einspritzventil-Schaltkreis) und ist an diesem Auto bedeutungslos. Das Steuergerät, das sie meldet, identifiziert sich über Mode 09 selbst als HPCM-HybridPtCtrl („Hybrid Powertrain Control Module“) — ein echter Hinweis darauf, dass seine Diagnosesoftware von einer Hybrid-/Verbrennerplattform stammt und einige alte generische Prüfungen für die reine EV-Variante nie ganz herausgenommen wurden. Behandle unerklärte Codes im generischen P0-Bereich mit Misstrauen; verlässlich ist der herstellerspezifische P1xx-Bereich.
Auch Codes des Ladesystems sind aufgetaucht, bisher aber nur als nackte Kennungen (noch keine Definitionen gefunden): P120019, P120119, P122000, P122100, P128A19, P128B98, P12A500. Wenn jemand herausfindet, was die bedeuten, bitte hier ergänzen.
Hinweis zur Abdeckung: eine systematische Suche hat Fehlercode-Dokumentation nur für die obigen Codes des Batteriemanagements und für diese nackte Liste des Ladesystems gefunden — noch nichts für ESP, Parkbremse, Bremskraftverstärker, Lenkung, HVAC oder Karosserieelektrik. Wenn dein Auto einen Code aus einem dieser Bereiche wirft, ist er in diesem Wiki nicht dokumentiert — bitte ergänze, was du findest.
Für die herstellerspezifischen DIDs gibt es keine öffentliche Skalierung, also werden Rohwerte über Korrelation dekodiert — lies eine DID, während du den wahren Wert aus einer anderen Quelle kennst (die dekodierte Anzeige der Head-Unit ist ideal), und suche das Feld plus den Faktor, die passen. Einem Feld ist erst zu trauen, wenn du es bewegen kannst: schalte eine große HV-Last (Klimakompressor) ein und aus und schau, welche Felder mitgehen.
So am BMS (0x7E1) bestätigt:
0x8871 (Rohwert = Volt; gelesen 407 gegen 406,9 V in der Head-Unit).0x887b (steigt mit der Last; über den Klima-Ein/Aus-Test identifiziert).
Für Ladezustand und die Spannung des 12-V-Systems gibt es plausible Kandidaten, sie sind aber noch nicht
festgenagelt — nahezu konstante Signale brauchen das Fahrzeug in verschiedenen Zuständen (eine Fahrt,
ein Ladevorgang), bevor Feld und Skalierung bestätigt werden können. Die dekodierten Zahlen sind gegen die
bekannten Packdaten plausibel (Bereich ≈268–417 V, 24 Module, Zelle 2,8–4,35 V), also ist z. B.
ein 0x882d-Messwert von ≈4,01 V eine echte Zellspannung. Ein Logger, der Referenzwerte und DIDs
gemeinsam über normale Fahrten mitschreibt, ist der saubere Weg, die Karte fertigzustellen.
Das Löschen von DTCs ist der eine „Schreibzugriff“, der normalerweise ohne Security Access (Sicherheitszugriff) erlaubt ist — er wird für Reparaturen gebraucht:
ClearDiagnosticInformation): 04 an 0x7DF / 0x7E0 senden. Löscht Abgas-DTCs und Freeze Frames.14 FF FF FF („alle Gruppen löschen“) an ein bestimmtes Steuergerät senden (z. B. 0x7E1). Löscht die gespeicherten DTCs dieses Moduls, üblicherweise in der Standardsitzung.Anmerkungen: Löschen verdeckt echte Fehler (gute und schlechte gleichermaßen) — lies die Codes vorher aus. Permanente DTCs kann kein Werkzeug löschen; das Steuergerät löscht sie selbst, nachdem seine Readiness-Monitore durchgelaufen sind. Das Abklemmen der 12-V-Batterie setzt flüchtige Anzeigezustände zurück, löscht aber keine gespeicherten DTCs (nichtflüchtig) — dafür brauchst du einen Löschbefehl.
Diagnoseanfragen an diesem Anschluss wecken das Gateway und die adressierten Steuergeräte für die Diagnose (so arbeitet ein Diagnosegerät an einem geparkten Auto). Das ist aber nur ein Diagnose-Weckruf — es fährt das HV-System nicht hoch, schließt die Hauptschütze nicht und startet die Klimatisierung nicht. Das sind Aktuator-Funktionen hinter Security Access.
Alles, was verändert oder ansteuert — Konfiguration schreiben (0x2E), Aktuatortests (0x2F), Routinen (0x31), Steuergerät-Reset (0x11), Flashen (0x34/0x36/0x37) — liegt hinter Security Access (0x27). Das Gateway antwortet auf eine Seed-Anfrage, aber der Schlüsselalgorithmus ist ein OEM-Geheimnis, das für dieses Auto nicht öffentlich ist. In der Praxis ist OBD-II hier also nur lesend: Fehlercodes und Daten ja, Steuern nein.
Die interessante Ausnahme: ein Werkstatt-Diagnosegerät aktiviert Funktionen wie HV-Hochfahren oder Vorklimatisierung über eine sicherheitsgeschützte Routine (0x31) über denselben Diagnose-CAN. Der Diagnoseanschluss ist für die Steuerung also architektonisch keine Sackgasse — mit dem richtigen Security-Access-Schlüssel ließe sich die Vorklimatisierung im Prinzip direkt über OBD-II befehlen, ohne Anzapfen eines internen Busses. Der Schlüssel ist das fehlende Stück (siehe Roadmap).
Darunter steckt schlichtes UDS (ISO 14229) über ISO-TP (ISO 15765-2) auf 500 k / 11 Bit CAN — auf Protokollebene nichts Proprietäres. Das heißt, gängige offene Werkzeuge funktionieren: ein kleiner ISO-TP- + UDS-Client in Python oder Diagnosewerkzeuge von der Stange sprechen mit diesem Auto. Nicht offen sind das Datenwörterbuch (welche DID was bedeutet, mit welcher Skalierung) und der Security-Access-Schlüssel — beide stecken in der Diagnosedatenbank des Herstellers.
Ein USB-CAN-Adapter der CANable-Klasse (gs_usb) auf 500 k / 11 Bit, aus Python angesteuert (Rohframes + eine kleine ISO-TP-Schicht für mehrteilige UDS-Botschaften).