CAN-Hacking (war: OBD2 - ELM327 - Linux)

Alles, was mit dem Auslesen des CAN-Busses über den ODB2-Port zu tun hat (Scannen, OVMS und DashDAQ)
Antworten
gecko
111 kW - voll elektrisch
Beiträge: 125
Registriert: 13. Sep 2012 19:47
Wohnort: Köppling, Stmk, AT
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von gecko »

Hallo Tachyon,
In welche Kommando-Sequenz ist die "Tester Present"-Message einzubinden?
Ich bin mir nicht sicher. Ich habs noch nicht ausprobiert. Ist derzeit alles nur Theorie. Ich glaube man kann zu jeder Zeit die Tester Present Message senden. Einige ECU (Steuergeräte) und/oder Services (modes) scheinen das auch zu fordern. Bei purem OBD natürlich nicht.
Mit den funktionalen ECU ID's und den 22h Service bewegen wir uns hier aber schon im herstellerspezifischen Bereich. Man kann ja während der Abfrage der 22h PIDs alle 3s mal ein Tester Present an die ECU absenden, also für den Elm:
Nach setzen der funktionalen ECU ID im Header und lesen einiger 22h PID's ab und zu mal 3E 00 senden.
Arbeitest Du (nur) mit Windows?
Nein, nicht immer. also c und Linux ist auch kein Problem. Nur mit Windows erreicht man mehr User...und wir wollen ja was für die Mehrheit machen oder?

LG

Heiko
Ampera Cosmo, POWERBLAU, seit 25.09.2012 VIN xxxCU109394
gecko
111 kW - voll elektrisch
Beiträge: 125
Registriert: 13. Sep 2012 19:47
Wohnort: Köppling, Stmk, AT
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von gecko »

noch ne Info vom letzen 30min Studium :-)
Ich habe grad desehen, dass der Elm ja die AT WM und AT SW Kommandos hat. Das sollte mit Tester Present funktionieren. Also einfach ATWM013E an den ELM senden . ATSW braucht man nicht anzupassen, da default 3s.

LG
Ampera Cosmo, POWERBLAU, seit 25.09.2012 VIN xxxCU109394
gecko
111 kW - voll elektrisch
Beiträge: 125
Registriert: 13. Sep 2012 19:47
Wohnort: Köppling, Stmk, AT
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von gecko »

Mein Bluetooth ELM ist zu langsam!!! Ich hatte heute morgen etwas Zeit und mit dem Elm am Ampera gespielt. In Österreich ist ja heute Feiertag :-)

Hier die Initialisierung:

Code: Alles auswählen

>atz


ELM327 v1.5

>atrv
11.8V

>atsp0
OK

>0902
SEARCHING...
014
0: 49 02 01 31 47 30
1: 52 38 36 45 34 38 43
2: 55 31 30 39 33 39 34

>atdp
AUTO, ISO 15765-4 (CAN 11/500)

>ath1
OK
Soweit noch alles gut! Aber dann scheitere ich schon beim lesen der ECU Bezeichnungen...

Code: Alles auswählen

>090a
7EB 10 17 49 0A 01 46 50 43
7EA 10 17 49 0A 01 54 43 4D
7EF 10 17 49 0A 01 42 45 43
7E8 10 17 49 0A 01 45 43 4D
7E9 10 17 49 0A 01 48 50 43
7EC 10 17 49 0A 01 48 50 43
7EB 21 4D 2D 46 75 65 6C 50
7EA 21 00 2D 54 72 61 6E 73
7EF 21 4D 2D 42 2B 45 6E 65
7E8 21 00 2D 45 6E 67 69 6E
7E9 21
BUFFER FULL
Shit! BUFFER FULL. Der ELM interne 256byte buffer ist voll. Bluetooth ist zu langsam.
Aber, da gibs noch einen Trick! Wir können die Messages Filtern und haben so weniger Verkehr!!!

Code: Alles auswählen

>ats0
OK

>atcra7e8
OK

>090a
7E81017490A0145434D
7E821002D456E67696E
7E82265436F6E74726F
7E8236C0000AAAAAAAA

>atcra7e9
OK

>090a
7E91017490A01485043
7E921312D4879627269
7E9226450744374726C
7E923310000AAAAAAAA

>atcra7ea
OK

>090a
7EA1017490A0154434D
7EA21002D5472616E73
7EA226D69734374726C
7EA23000000AAAAAAAA

>atcra7eb
OK

>090a
7EB1017490A01465043
7EB214D2D4675656C50
7EB22756D704374726C
7EB23000000AAAAAAAA

>atcra7ec
OK

>090a
7EC1017490A01485043
7EC21322D4879627269
7EC226450744374726C
7EC23320000AAAAAAAA

>atcra7ed
OK

>090a
7ED1017490A01425343
7ED214D2D4272616B65
7ED2253797374656D00
7ED23000000AAAAAAAA

>atcra7ef
OK

>090a
7EF1017490A01424543
7EF214D2D422B456E65
7EF227267794374726C
7EF23000000AAAAAAAA
Hurraa, da sind sie alle! hat nur etwas länger gedauert :-)

@Tachyon: Das passive mitschneiden am CAN Bus kann ich mir mit dem Bluetooth ELM abschminken. Dazu braucht man USB ELM. Alles Serielle ist zu langsam!
Noch ein Grund die andere Variante zu verfolgen!

LG

Heiko
Ampera Cosmo, POWERBLAU, seit 25.09.2012 VIN xxxCU109394
micky4
500 kW - overdrive
Beiträge: 2077
Registriert: 5. Apr 2012 08:39
Wohnort: Wien, Österreich
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von micky4 »

Ich habe mir ein USB ELM 327 gekauft, kriegs aber nicht zum "Laufen" (Win Vista und Android 4.0) ... entweder ist es kaputt oder die USB Treiber sind ein Sch...
Stelle es gerne zur Verfügung !
Liebe Grüße, Michael CU#13068, lithiumweiss, ePionier
myampera.wordpress.com
Tachyon12
60 kW - range-extended
Beiträge: 87
Registriert: 27. Jul 2012 09:27
Wohnort: Wien Umgebung
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von Tachyon12 »

Hallo Micky4,

ich hab' auch den USB ELM 327. Bei mir funktioniert er (Windows7 und Linux). Wir können uns gerne treffen.

Tachyon12
Tachyon12
60 kW - range-extended
Beiträge: 87
Registriert: 27. Jul 2012 09:27
Wohnort: Wien Umgebung
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von Tachyon12 »

gecko hat geschrieben:noch ne Info vom letzen 30min Studium :-)
Ich habe grad desehen, dass der Elm ja die AT WM und AT SW Kommandos hat. Das sollte mit Tester Present funktionieren. Also einfach ATWM013E an den ELM senden . ATSW braucht man nicht anzupassen, da default 3s.

LG
Hallo,

das Cmd ATWM013E habe ich gerade ausprobiert. Funktioniert nicht wie erwartet. Ich bin aber auf etwas Anderes d'raufgekommen: Alle < 25 Sekunden z.B. 0100 senden. Siehe das nachfolgende LogFile.

Beschreibung:
- Auto hängt am Kabel.
- Auto ist voll aufgeladen.
- "POWER" ist aus.
- Wenn ich CAN-Errors bekomme steige ich auf die Bremse.
- Zeilen mit "Cmd:" habe ich interaktiv eingegeben.
- Bitte die ZeitSpalte beachten - wegen Timing

Code: Alles auswählen

# DATE=20121026 10:06:10.123
# SOFTWARE=AmperaCLI.c,v 1.4 2012/10/25 16:00:01
...
10:14:06.514: Cmd: 0100
10:14:07.315: 7EC 06 41 00 80 00 00 01 
10:14:34.395: Cmd: 0100
10:14:35.197: CAN ERROR
10:14:50.347: Cmd: 0100
10:14:51.150: NO DATA
10:14:59.444: Cmd: at wm 013e
10:15:00.247: OK
10:15:06.075: Cmd: 0100
10:15:06.878: NO DATA
10:15:40.876: Cmd: at rv
10:15:41.679: 12.5V
10:15:45.417: Cmd: 0100
10:15:46.220: CAN ERROR
10:16:02.307: Cmd: 0100
10:16:03.110: 7E9 06 41 00 80 00 00 01 
10:16:03.110: 7E8 06 41 00 BE 7F B8 13 
10:16:03.110: 7EA 06 41 00 80 00 00 01 
10:16:03.110: 7EB 06 41 00 80 40 00 01 
10:16:03.110: 7EC 06 41 00 80 00 00
10:16:03.111:  
10:16:03.111: 7EF 06 41 00 00 00 00 01 
10:16:03.111: 7ED 06 41 00 00 00 00 01 
10:16:38.417: Cmd: 0100
10:16:39.219: 7EB 06 41 00 80 40 00 01 
10:16:39.219: 7E9 06 41 00 80 00 00 01 
10:16:39.219: 7EA 06 41 00 80 00 00 01 
10:16:39.219: 7EF 06 41 00 00 00 00 01 
10:16:39.219: 7E8 06 41 00 BE 7F B8
10:16:39.220:  
10:16:39.220: 7EC 06 41 00 80 00 00 01 
10:16:48.784: Cmd: 0100
10:16:49.586: 7EF 06 41 00 00 00 00 01 
10:16:49.586: 7EC 06 41 00 80 00 00 01 
10:17:11.934: Cmd: 0100
10:17:12.736: 7EC 06 41 00 80 00 00 01 
10:17:21.294: Cmd: 0100
10:17:22.097: 7EC 06 41 00 80 00 00 01 
10:17:28.657: Cmd: 0100
10:17:29.459: 7E9 06 41 00 80 00 00 01 
10:17:29.459: 7E8 06 41 00 BE 7F B8 13 
10:17:29.459: 7EB 06 41 00 80 40 00 01 
10:17:29.459: 7EC 06 41 00 80 00 00 01 
10:17:29.459: 7EF 06 41 00 00 00 00
10:17:29.460:  
10:17:29.460: 7EA 06 41 00 80 00 00 01 
10:17:29.460: 7ED 06 41 00 00 00 00 01 
10:17:47.228: Cmd: 0100
10:17:48.031: 7E8 06 41 00 BE 7F B8 13 
10:17:48.031: 7E9 06 41 00 80 00 00 01 
10:17:48.031: 7EF 06 41 00 00 00 00 01 
10:17:48.031: 7EB 06 41 00 80 40 00 01 
10:17:48.031: 7EA 06 41 00 80 00 00
10:17:48.031:  
10:17:48.031: 7EC 06 41 00 80 00 00 01 
10:17:54.423: Cmd: 0100
10:17:55.226: 7E9 06 41 00 80 00 00 01 
10:17:55.226: 7EF 06 41 00 00 00 00 01 
10:17:55.226: 7EC 06 41 00 80 00 00 01 
10:18:02.685: Cmd: 0100
10:18:03.488: 7EF 06 41 00 00 00 00 01 
10:18:03.488: 7E9 06 41 00 80 00 00 01 
10:18:03.488: 7EC 06 41 00 80 00 00 01 
10:18:20.752: Cmd: 0100
10:18:21.554: 7EC 06 41 00 80 00 00 01 
10:18:30.916: Cmd: 0100
10:18:31.718: 7EC 06 41 00 80 00 00 01 
10:18:41.376: Cmd: 0100
10:18:42.178: 7EC 06 41 00 80 00 00 01 
10:19:00.843: Cmd: 0100
10:19:01.646: 7EC 06 41 00 80 00 00 01 
10:19:20.803: Cmd: 0100
10:19:21.605: 7EC 06 41 00 80 00 00 01 
10:19:40.732: Cmd: 0100
10:19:41.537: 7EC 06 41 00 80 00 00 01 
10:20:00.713: Cmd: 0100
10:20:01.515: 7EC 06 41 00 80 00 00 01 
10:20:31.030: Cmd: 0100
10:20:31.832: CAN ERROR
10:20:36.927: Cmd: q

Wenn ich das Ergebnis richtig interpretiere, melden sich beim ersten 0100 jede menge ECUs und zum Schluss nur mehr 7EC. Oder liege ich da falsch?

Tachyon12
gecko
111 kW - voll elektrisch
Beiträge: 125
Registriert: 13. Sep 2012 19:47
Wohnort: Köppling, Stmk, AT
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von gecko »

Hallo Tachyon,
Versuch mal ATWM013E gleich am Anfang einzugeben. Laut Log gibst du das erst ein, wenn schon alle ECU schlafen.
Wenn ich das Ergebnis richtig interpretiere, melden sich beim ersten 0100 jede menge ECUs und zum Schluss nur mehr 7EC. Oder liege ich da falsch?
Sieht so aus wie du sagst. 7EC ist das HybridPtCtrl2 (Hybrid Powertrain Control 2) Steuergerät. Man müsste jetzt mal rausbekommen, für was das verantwortlich ist. Studium ist wieder angesagt :-)
Ampera Cosmo, POWERBLAU, seit 25.09.2012 VIN xxxCU109394
Tachyon12
60 kW - range-extended
Beiträge: 87
Registriert: 27. Jul 2012 09:27
Wohnort: Wien Umgebung
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von Tachyon12 »

Hallo gecko,

Ok, wir scheinen ja ganz gut weiter zu kommen.

Aber wie ist jetzt die Zuordnung von den DashDAQ "PID"s - die sind ja 4-stellig, dezimal (?) - zu CAN-Cmds?

Tachyon12
gecko
111 kW - voll elektrisch
Beiträge: 125
Registriert: 13. Sep 2012 19:47
Wohnort: Köppling, Stmk, AT
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von gecko »

Aber wie ist jetzt die Zuordnung von den DashDAQ "PID"s - die sind ja 4-stellig, dezimal (?) - zu CAN-Cmds?
Hallo Tachyon,

ich habe es noch nicht probiert...aber lt. Theorie musst du folgendes machen:

a) Wir lassen jetzt erstmal alles auf Default beim ELM und Initialieren den ELM mit
ATZ 'Reset
ATRV 'read Voltage
ATSP0 'set Auto Protocol
0902 'read VIN
ATDP 'show protocol
ATH1 'show headers

jetzt lass uns einfach mal Service 22h mit PID 0000 in die runde senden und schauen ob wer antwortet:
22 00 00
wenn keiner antwortet, dann vielleichtmal PID 06 3E (Dashdaq: 1598 "ECT" "Engine Coolant Temperature""°C" 0), also:
22 06 3E

Wenn das alles noch nichts hilft, müssen wir wohl mal eine ECU direkt ansprechen. Also:
AT SH 7E8 'das ist die ECM EngineControl ECU
22 06 3E

Wenn das jetzt immer noch nicht geht, dann müssen wir noch tiefer in die Trickkiste greifen ...aber das muss ich mir dann nochmal genauer anschauen....

LG

Heiko
Ampera Cosmo, POWERBLAU, seit 25.09.2012 VIN xxxCU109394
Tachy
500 kW - overdrive
Beiträge: 1396
Registriert: 7. Aug 2011 13:16
Wohnort: Sulzburg-Laufen, Markgräflerland
Kontaktdaten:

Re: OBD2 - ELM327 - Linux

Beitrag von Tachy »

lustig, diese AT-Kommandos kenne ich noch aus alten Modem- und Mailboxzeiten!

Reset des Modems: atz !
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste