@chaoslandlord
Da alfaobd auch im neuesten Update nichts Richtung FSM gemacht hat, hier mal ein Weg, wie man trotzdem mit einem ELM327 dran kommt. Dazu braucht man nur ein serielles Terminal, welches auch über Bluetooth funktioniert. AlfaOBD hat diese Funktion auch drin wenn, wenn man vom einfachen zum erweiterten Modus umstellt und das Protokoll KWP2000 auswählt. Mit der Bedienung bin ich da aber noch nicht zurecht gekommen. Deshalb hab ich aus dem Play Store die App "Serial Bluetooth Terminal" von Kai Morich installiert.
Zuerst muss die Software konfiguriert werden:
Unter "Devices" muss man den Bluetooth Dongle suchen und sich damit verbinden. Bei mir ist das ein OBDLink MX.
Bei "Settings" stellt man in der Registerkarte "Terminal" UTF-8 ein, Display mode "Terminal" und die Schieberegler "Auto scroll" und "Show Connection Message" auf an. Bei "Receive" muss CR stehen, bei "Send" kommt "CR+LF" bei Newline rein, Edit mode "Text", Line delay 20ms und character delay "0ms" sowie die Schieberegler für Local echo an und Clear input an
Nun kann man sich bereits mit dem Fahrzeug verbinden, Dazu auf das Connect Symbol in der blauen Menuleiste klicken. Das Terminal meldet dann "Connecting to OBDLinkMX" und in der nächsten Zeile "Connected". Damit kann es losgehen.
Das FSM-Modul spricht man über die CAN-ID 770 an (hex-Zahlen), Antworten kommen dann über die ID 52E. Zuerst müssen wir die 4 Initialisierungsbefehle absenden, damit das FSM-Modul weiß. dass es jetzt mit uns kommunizieren soll. Die Eingabe zuvor auf Großbuchstaben einstellen.
Am unteren Bildschirmrand zuerst ATZ eintippen und dann auf den Pfeil (senden). das Auto quittiert mit ATZ ok. Das ist sowas wie ein RESET der Anwendung
- Anschließend gibt man ATH1 ein und dann wieder auf den Pfeil klicken. Das Auto quittiert mit ATH1 OK
- Jetzt ATSH770 eintippen und senden und das Fahrzeug antwortet ATSH770 OK
- Nun ATCRA52E eintippen und senden. Das Fahrzeug antwortet mit ATCRA52E in der nächsten Zeile
- Abschließend ATCAF0 eintippen, senden und man erhält die Antwort ATCAF0 ok
Nun ist man am FSM-Modul dran. Zusammengefasst wurden als Initialisierung also die folgenden 4 Befehle eingetippt:
ATH1
ATSH770
ATCRA52E
ATCAF0
Nützlicher Hinweis:
Diese Befehlszeile kann man auch komplett in ein Makro einbinden, z.B. das Makro M1. Dazu einfach lange auf den Button M1 drücken. Im neuen Fenster z.B. den Namen FSM eingeben und bei "Edit mode" auf Multiline Text einstellen. Bei Value kann man jetzt alle Befehle untereinander eintippen und dann speichern. Zukünftig wird dann beim Drücken auf den Button FSM immer die ganze Initialisierungskette gesendet. (siehe Bild FSM-Makro)
Wenn der gesamte elektrische Sitz oder eine der beiden Hälften nicht mehr bewegt werden kann/können, dann stimmen reale Sitzposition und im FSM-Modul gespeicherte Einstellungen nicht mehr überein. Damit funktionieren die Tasten der Schalterleiste nicht mehr. Deshalb prüfen wir, welche Position im Sitzmodul für die linke und rechte Sitzreihe gespeichert ist. Die Abfrage erfolgt mit einem 2 Byte-Befehl 02 21 50.
Das Modul antwortet uns darauf mit 4 Bytes. Als Ergebnis wird 52E 04 61 50 xx yy zz zz zz angezeigt. 52E ist die Antwortadresse des FSM-Moduls 04 heißt, dass jetzt 4 Bytes ausgegeben werden. 61 50 ist die Bestätigung auf den Befehl 21 50. xx steht für die linke Sitzhälfte und yy für die rechte Sitzhälfte, zz sind uninteressant.
Mögliche Werte = Sitzeinstellungen für xx und yy sind:
00 Normal
01 Stow
02 Fold
03 Tailgate
FF Position unbekannt
Wenn die Ausschrift also 52E 04 61 50 00 01 lautet, dann ist das FSM Modul der Meinung, dass die linke Hälfte ganz normal ausgeklappt ist (00) und die rechte Hälfte verstaut (01) ist. Sollte das falsch sein, dann muss dem Sitzmodul die realen Positionen gemeldet werden, damit der Schalter wieder funktioniert.
Ist eine Korrektur nötig, dann muss man drauf achten, dass man immer die Konfiguration für beide Sitzhälften schreiben muss, auch wenn nur eine Hälfte falsch sein sollte. Das liegt daran, weil es ein kombinierter Befehl für beide Seiten ist. Angenommen, die linke Seite ist in der Realität gar nicht in Normalstellung sondern gefaltet und die rechte Seite ist verstaut, dann schickt man den Befehl 04 3B 50 02 01 an das Modul.
Dabei steht die 04, dass man jetzt 4 Bytes an das Modul senden will. 3B 50 ist der Befehl zum Schreiben der beiden Sitzfläche, 02 ist die linke Hälfte (gefaltet), 01 die rechte Hälfte (verstaut).
Bevor man in ein Modul schreiben darf, muss man dem Modul zuerst mitteilen, dass ein Tester angeschlossen ist.
Das erfolgt mit dem Befehl 02 3E 01. Die 02 wieder als Mitteilung, das jetzt 2 Byte Daten = Befehl gesendet werden und 3E 01 ist der eigentliche Befehl für "Tester present". Das Auto muss mit 7E 50 antworten. 7E 50 steht für erfolgreich ausgeführt, Kommt 7F 50, dann wurde der Befehl verweigert.
Geschrieben werden kann weiterhin nur in einer Extended Diagnostic Session. Diese startet man anschließend mit dem Befehl 02 10 92. 02 für 2 Bytes sollen gesendet werden und 10 92 ist im KWP-Protokoll der Befehl zum Starten einer extended Diagnostic Session. Das Auto muss mit 02 50 92 antworten, was heißt, dass die Diagnostic Session gewährt wird bzw. nun gestartet ist
Anschließend sendet man den Befehl 04 3B 50 02 01. Kommt 03 7F 80, dann wurde der Befehl verweigert, weil die Bedingungen nicht korrekt sind. Das kommt z.B., wenn der Wählhebel nicht in P-Stellung ist oder ein Hardware-Defekt vorliegt. Bei mir sind im Labor die Motoren des Sitzes nicht dran.
Ob alles korrekt reingeschrieben worden ist überprüft man danach wieder mit dem Befehl 02 21 50. Wurde die Konfiguration erfolgreich geschrieben, dann meldet das Fahrzeug nun 52E 04 61 50 02 01 zz zz zz zurück. Die einzelnen hintereinander geschickten Befehle sind im Bild FSM - Sirzflächen sichtbar
Wenn man schon dabei ist, dann kann man den Sitz auch gleich noch kalibrieren.
Dazu sendet man zuerst wieder die Initialisierung der Kommunikation mit dem Modul, wenn man nicht mehr mit dem FSM-Modul verbunden war (passiert nach einer längeren Zeit ohne Dateneingabe).
ATZ
ATH1
ATSH770
ATCRA52E
ATCAF0
02 3E 01 Tester present
02 10 92 Extended Diagnostic Session
02 31 11 kalibriert die Sitzflächen
02 31 14 kalibriert die Lehnen
Diesen Mechanismus kann man z.B. auch dafür verwenden, um ein Backup aller Einstellungen des TIPMs zu tätigen. Bei einem Tausch kann man dadurch alle Einstellungen wieder zurückschreiben. Ich hatte das früher schon einmal geschrieben. Link am Ende.
Hier mal die Initialisierungsstrings für die im Fahrzeug verbauten Module:
ABS = Antilock Brake Module, (Protokoll UDS)
ATH1
ATSH784
ATCRA785
ATCAF0
AHBM = Auto High Beam Module, Protokoll KWP
ATH1
ATSH710
ATCRA522
ATCAF0
AMP = Amplifier, KWP
ATH1
ATSH7F0
ATCRA53E
ATCAF0
BSM = Blind Spot Module, UDS
ATH1
ATSH690
ATCRA512
ATCAF0
CCN = Cabin Compartment Node, KWP
ATH1
ATSH6A0
ATCRA514
ATCAF0
DMFL = Door Module Front Left, KWP
ATH1
ATSH640
ATCRA508
ATCAF0
DMFR = Door Module Front Right, KWP
ATH1
ATSH650
ATCRA50A
ATCAF0
DMRL = Door Module Rear Left, KWP
ATH1
ATSH648
ATCRA509
ATCAF0
DMRR = Door Module Rear Right, KWP
ATH1
ATSH658
ATCRA50B
ATCAF0
DVD = Digital Versatile Disc, KWP
ATH1
ATSH7A0
ATCRA534
ATCAF0
EPPM = Electronic Pedestrian Protection Module, UDS
ATH1
ATSH6CC
ATCRA6CD
ATCAF0
FSM = Fold Stow Module, KWP
ATH1
ATSH770
ATCRA52E
ATCAF0
HFM = Hands Free Module, KWP
ATH1
ATSH7F8
ATCRA53F
ATCAF0
HIDT = High Intensity Discharge Translator, KWP
ATH1
ATSH7C8
ATCRA539
ATCAF0
HSM = Heated Seat Module, KWP
ATH1
ATSH6D8
ATCRA51B
ATCAF0
HVAC = Heating, Ventilation, and Air Conditioning, UDS
ATH1
ATSH688
ATCRA511
ATCAF0
ITM = Intrusion Transceiver Module, KWP
ATH1
ATSH670
ATCRA50E
ATCAF0
LBSS = Left Blind Spot Sensor, UDS
ATH1
ATSH690
ATCRA512
ATCAF0
MSMD = Memory Seat Module Driver, KWP bis MY10, ab MY11 UDS
ATH1
ATSH660
ATCRA50C
ATCAF0
ORC = Occupant Restraint Controller, KWP
ATH1
ATSH6E0
ATCRA51C
ATCAF0
PCM = Powertrain Control Module, KWP
ATH1
ATSH7E0
ATCRA7E8
ATCAF0
PEM = Passive Entry Module, UDS
ATH1
ATSH628
ATCRA505
ATCAF0
PLGM = Power Lift Gate Module, KWP
ATH1
ATSH728
ATCRA525
ATCAF0
PSDML = Power Sliding Door Module Left, KWP
ATH1
ATSH678
ATCRA50F
ATCAF0
PSDMR = Power Sliding Door Module Right, KWP
ATH1
ATSH680
ATCRA510
ATCAF0
PTS = Parkctronics, UDS
ATH1
ATSH698
ATCRA513
ATCAF0
Radio = Radio/Navi, KWP
ATH1
ATSH6B0
ATCRA516
ATCAF0
RBSS = Right Blind Spot Sensor, UDS
ATH1
ATSH6B8
ATCRA517
ATCAF0
SAS = Steering Angle Sensor, KWP
ATH1
ATSH622
ATCRA484
ATCAF0
SDARV = Satellite Digital Audio Receiver Video, KWP
ATH1
ATSH738
ATCRA527
ATCAF0
SUNR = Sunroof, KWP
ATH1
ATSH638
ATCRA507
ATCAF0
TCM = Transmission Control Module, KWP
ATH1
ATSH7E1
ATCRA7E9
ATCAF0
TIPM = Totally Integrated Power Module, KWP
ATH1
ATSH620
ATCRA504
ATCAF0
TPM = Tire Pressure Module, UDS
ATH1
ATSH7DA
ATCRA7DB
ATCAF0
VES2 = Vehicle Entertainment Screen 2, KWP
ATH1
ATSH7D0
ATCRA53A
ATCAF0
VES3 = Vehicle Entertainment Screen 3, KWP
ATH1
ATSH780
ATCRA530
ATCAF0
WCM = Wireless Control Module, KWP
ATH1
ATSH600
ATCRA500
ATCAF0
Wie das Backup und andere Sachen funktionieren hatte ich dort schon einmal erklärt:
Backup TIPM Settings
[Edit]
2022-03-06 doppeltes Bild entfernt und fehlendes hinzugefügt