Hallo Tachyon,
Super was du da vor hast....endlich ein Mitstreiter. In einem anderen Tread habe ich ja mal geschrieben das OBD jeder kann und keine Kunst ist ...was zu beweisen ist :-)
Ich bin auch grad dabei den ELM auf meinen Ampera zu trimmen. Z.Z. bin ich noch in der Studium & Test Phase. Ich habe ja auch nicht den ganzen Tag Zeit dafür.
Was du vorhast ist ein passives Lauschen am CAN Bus und einfach alles mitzuschneiden was sich die Steuergeräte so zu sagen haben ... mit 500kbit. Ne Menge Daten, die man dann auch nicht braucht. Das ist auch nicht schwer mit dem Elm zu machen:
AT BRD 8 - 500kbit
AT H1 - headers on
AT MA - Monitor all
Das Erraten, was die Steuergeräte so den ganzen Tag beschäftigt ist viel schwerer. Also die Bedeutung aller Messages rauszubekommen.
Ich gehe aber einen etwas anderen Ansatz. Ich möchte dann doch lieber den DashDAQ Ansatz wählen, aber mit einem billig ELM. So schwer ist das auch nicht. Im OBD Standard mode 01h stehen nur normale abgasrelevante Messwerte (PID) zur Verfügung. Die stehen alle im OBD Standard drin.
Was wir brauchen sind die Hersteller PID's (sprich GM Volt Pids). Diese sind aber 2 Byte anstatt 1 Byte lang. DashDAQ macht das auch so und es gibt schon PID Listen hier im Forum. Lt. SAE J2190 kann man die PIDS mit Mode 22h abfragen. Mit Mode 24h kann man sogar Scaling & Offset der Messwerte PID‘s abfragen…cool. Dazu muss man aber den Elm entsprechen programieren. Zuerst muss man mit Funktionalen Adresse 7DFh alle Steuergeräte physikalische ID's rausbekommen. Dann kann man das Steuergerät, welches uns interessiert, mit der physikalischen Adresse und mode 22h ansprechen.
z.B.
Set functional addressing Header (always 7DFh, to which any module listening respond)
AT SH 00 07 DF
Set physical addressing Header (uses particular can ID, e.g. 720h for ford instrument)
AT SH 007 20
read propriatary data 22h from PID 116Bh
22 11 6B
SAE J 2178 gibt uns auch noch Auskunft, was sich hinter der phys. Adresse versteckt. Man kann den ECU namen auch mit mode 9 pid 0A abfragen. Für den Elm also 09 0A. Beim Ampera also sowas:
07E9 HybridPtCtrl HPC1
07EB FuelPumpCtrl FPCM
07EF B+EnergyCtrl BECM
Hier ist mal ein Link zum lesen.
http://obdcon.sourceforge.net/2010/06/obd-ii-pids/
und hier etwas schwerer:
http://www.canbushack.com/blog/index.ph ... &tb=1&pb=1
Was die eigentliche Programmierung angeht bin ich kein Freund von Python....um Daten auszuwerten bzw. mal schnell was zu automatisieren ist das super.
Ich habe da eher an C# oder C++ gedacht. Bei MS gibs ja die Free Edition. Oder doch vielleicht Java. Da habe ich aber nciht viel Erfahrung.
Noch geiler wäre Labview. Da hat man auch gleich die entsprechnde Super Grafik dazu...aber Labview ist teuer. Meine Firma hat eine Lizenz.
LG
Geko