![]() |
C5: OBD2 Basteleien - Druckversion +- Corvetteforum Deutschland (https://www.corvetteforum.de) +-- Forum: Technikforen (https://www.corvetteforum.de/forumdisplay.php?fid=1) +--- Forum: C 5 Technikforum (https://www.corvetteforum.de/forumdisplay.php?fid=6) +--- Thema: C5: OBD2 Basteleien (/showthread.php?tid=55273) |
- vollmi - 10.06.2011 Zitat:Original von Zaphod Man könnte das Display ja rausdremeln und ein eigenes vom Aruino angesteuertes einbauen ![]() Spiegelschrift wär doch auch möglich. So vonwegen Hud ![]() - dersuchende - 10.06.2011 Zitat:Original von Zaphod ![]() ![]() ![]() - Thomas V - 11.06.2011 sehr schön Birger! Das macht Laune mit dem Teil, richtig? Habe heute mal versucht noch etwas aus dem Datenstrom zu filtern. Mir ist es gelungen den Gong anzusteuern, aber das Problem an der Sache: beim Nächsten Zündungszyklus ging es nicht mehr ![]() Das original Window Valet eröffnet ja ein Konfigurations Menü über die Reset Taste in Verbindung mit der Tür Unlock Taste. Ich habe mir das mal auf dem Bus angeschaut: Tür per FOB öffnen und reinsetzen. Tür zuziehen, Schlüssel nicht im Zündschloß. Der Datenbus ist relativ schnell ruhig. Druck auf die Reset Taste bringt folgende einzelne Meldung auf dem Bus: A8 A9 60 90 EB 01 (und 48 als CRC) kann man zig mal drücken, es kommt jedesmal diese Meldung. Ich bin der Meinung das man damit schon eine einfach Konfiguration durchführen kann. Die anderen Tasten vom DIC reagrieren nicht bei ausgeschalteter Zündung! Dummerweise hatte ich in Erinnerung das man beim original Window Valet "lock" drücken soll..... Aber egal, es geht auch mit lock..... Reset drücken und dann sofort "lock" ergibt folgende Sequenz: A8 A9 60 90 EB 01 (48) 8A C5 A0 A0 22 (13) 8A C5 A0 20 22 (DA) warum machen die das so? Einfach um zu vermeiden das man versehentlich das Konfig. Menü startet wenn man auf Reset drückt. Tür Lock/Unlock und Reset drückt man eigentlich nicht hintereinander.... Ich habe auch festgesteltl das es egal ist ob man RESET gedrückt hält oder nicht wenn man auf "lock" drückt. Das Ergebnis ist das gleiche. - Thomas V - 11.06.2011 Zitat:Ich hab vergessen, heute Lotto zu spielen - 85 Millionen im Jackpot. Micha, hätte für 1000 Best.-Automaten in der Grundausstattung ausgereicht ![]() - Thomas V - 11.06.2011 habe hier aktuell einen Mitschnitt von einer kleinen Runde mit meiner C5 und versuche rauszufinden wie das IPC an seine Daten kommt. Das IPC wird ja nicht ständig nach dem Drehzahlwert oder der Geschwindigkeit fragen..... Das kommt als Broadcast Nachricht vom Steuergerät. Um das genauer zu erkennen bin ich mal ein Stück mit konstanter Drehzahl/Geschwindigkeit gefahren. Grübel.... - Zaphod - 11.06.2011 Da kann ich evtl. weiterhelfen... Meine Session heute bestand darin, einzelne Messages vom plappernden Bus zu lesen, also nicht auf Anfrage. Dieser Code hier: Code: # Code für Arduino Mega, Serial1=ELM ...versetzt den ELM in Bus-Monitoring-Mode, welcher auf Gerät B0h (FB-Empfänger) lauscht. Drückt man nun eine Taste auf dem Schlüssel (z.B.) "Open", dann erscheint im Serial-Monitor: Zitat:ready... Der erste Block nach leeren Werten gefiltert ergibt: Zitat: Buffer 0 = A Also: A8FFB00286 im Array. Das kann man jetzt in einem Programm verwendet, welches genau diese Zeichenfolge erkennt, und dann ggf. eine Reaktion auslöst ![]() Natürlich könnte man Zeile 13 ( Serial1.print("ATMTB0"); ) auch gegen etwas anderes austauschen, z.B. gegen ATMT10, um Nachrichten vom PCM mitzulauschen. Oder gegen ein ATMA, um ALLES mitzuschneiden, ich weiß aber nicht, ob der Arduino das in der Form schafft, ohne daß der 128 Byte-Inputbuffer überläuft. Weiteres später, wenn meine Forschungen zum Packet-Mode weiter sind... - Zaphod - 11.06.2011 Der Packet Mode... Mit ATPD kann man dem ELM sagen, er soll die Daten nicht mehr in lesbarer Form liefern, sondern "Roh", d.h. jedes Byte kommt direkt (was dann nicht-lesbare ASCII-Zeichen sind), und ohne LF am Schluß. Hier ein Beispielprog: Code: char buffer[128] ; int a = 0; int b = 0; int pointer = 0; ergibt die Ausgabe: Code: Buffer Char: Buffer HEX: 5 Zeile 1 sagt, aus wievielen Bytes die Nachricht besteht, also 5 Die folgenden 5 Zeilen sind die Message selbst: A8 FF B0 02 86 Zeile 7 ist der Anfang der neuen Message, sie besteht also aus 7 Zeichen: CA C4 B0 10 22 08 CE Der Vorteil: Es wird hier nur ein Drittel der Daten übertragen, da das Leerzeichen wegfällt, und jedes Byte nur noch aus einem Zeichen besteht, anstelle von 2 Hex-Zeichen. Diese Prog ist aber noch ein Trümmerhaufen im Rohbau, und taugt noch überhaupt nichts. Muß jetzt aber erst mal mein Notebook und die Vette laden ![]() - Thomas V - 11.06.2011 sehr gut Michael! sowas habe ich heute auch gemacht, allerdings noch klassich mit ELM322 und Notebook Die 180KB Daten habe ich dann in Exel gepackt und kann schön rumsortieren oder suchen. Allerdings bisher ohne nennenswerten Erfolg was die Suche nach dem Drehzahl- und Geschwindigkeitssignal angeht. Wie wird bei der C5 das Speedsignal eigentlich übertragen? Laut Wiki im Mode 1 PID "0D" ist es direkt in km/h und nur 1 Byte groß..... das kann ja nicht sein. Meilen doch wohl auch nicht, dann wäre ja die Auflösung nicht mehr 1 km/h - Zaphod - 11.06.2011 Zitat:Original von Thomas V Ich muß gleich nochmal einkaufen fahren, dann sammle ich auch mal ein paar Daten - woher dürfte das Mode02-Signal denn kommen - BCM oder PCM? Ich schätze mal letzteres? Werde mal versuchen, eine Weile mit Tempomat und definierter Geschwindigkeit zu fahren, z.B. 80km/, und dann eine Weile 100km/h. Vielleicht erkennt man was an permanent gleichbleibenden Werten... Zitat:Wie wird bei der C5 das Speedsignal eigentlich übertragen? Ich schätze mal auf 01-Abfrage kommt ein Byte zurück, aber beim fahren ein 2-Byte-Wert via Broadcast vom PCM. Von der Richtung hier sollte der Header also so aussehen: [??] [FF] [10] und dann eine gleichbleibende Sequenz bei gleichbleibender Geschwindigkeit? - Thomas V - 11.06.2011 ich habe gerade in meinem Mitschnitt eine Folge gefunden die von der gefahrenen Geschwindigkeit stammen könnte: 8A 25 28 05 00 xx 03 wobei xx entsprechend meiner Fahrt in etwa mitläuft..... das prüfe ich aber noch ob es plausibel ist. Kannst ja mal bitte ein Augenmerk drauf legen.... |