OBD II Daten auslesen mit CANdiy Shield - Problem!

Hallo liebe Community,

ich möchte gerne die typischen Fahrzeugdaten (Geschwindigkeit, Drehzahl etc.) über einen OBD II Stecker aus dem Fahrzeug-CAN auslesen und anschließend in Arduino für Projekte weiter verwenden. Ich habe bei YouTube einige Videos gesehen, in denen das Leute geschafft haben und bin top motiviert! :slight_smile:

Nach kurzer Recherche habe ich bereits diese Produktseite gefunden, auf welcher man ein derartiges Modul kaufen kann und anscheinend gibt es auch schon eine passende Libary für den Zweck. Allerdings sprengen 70$ leider mein Budget für das Projekt.

Es gibt ja noch andere CAN Shields von verschiedenen Herstellern.

Frage: Hat jemand von euch es schon mal geschafft, Fahrzeugdaten aus dem CAN Signal auszulesen und diese in Arduino einzulesen? Welche Hardware und Software(Libary) habt ihr dafür verwendet? Was ist der günstigste und beste Weg um an die Fahrzeugdaten zu kommen und diese in Arduino einzulesen?

Geht viel billiger....

https://code.google.com/p/mechanic/

gruß

Klasse! Das sieht ja richtig gut aus!

Jetzt kommt nur die längere Phase des Einlesens und Ausprobierens. Wie genau schließt man denn den OBD Stecker an das CANdiy Shield an? Das Shield verfügt ja über Netzwerk-Anschlüsse? Muss ich mir da ein passendes Kabel zurecht löten?

Was spricht gegen einen OBD Interface mit einem Serialport?

Steht alles unter dem 2. Link:

Here are the cable pinouts (RJ45 is for CANdiy, Sub-D is for Sparkfun and Seedstudio). I usually cut a CAT5/6 patch cable at one end and solder the OBD-II connector there.

Signal OBD-II RJ-45 Sub-D
CAN_H 6 1 3
CAN_L 14 2 5
GND 5 7 9
+12V 16 8 2

das Kabel musst du dir zusammenbauen. Der CAN Bus ist hier über eine RJ45 Steckverbinung verfügbar, das hat nichts mit einem Netzwerk zutun. Nimm dir einfach ein Netzwerk Kabel und schließe ein OBD Stecker (http://www.watterott.com/de/OBD2-Stecker-mit-PCB) wie in der Tabelle hinterlegt an.

EDIT: @devrim: Die Daten werden über die serielle Schnittstelle ausgegeben

Gruß

Kauf dir für'n knappen Zwanni einen OBD zu Bluetooth Dongle. Das Teil kann man per HandyApp (Torque) auslesen oder du guckst mal mit nem Bluetooth Modul, was da rüberkommt. Am CAN Bus würde ich nicht rumfummeln, schon garnicht wärend der Fahrt. Du brauchst nur in einen Unfall verwickelt sein. Erkär DAS mal der "Rennleitung" und der Versicherung! :smiling_imp:

nix_mehr_frei:
Kauf dir für'n knappen Zwanni einen OBD zu Bluetooth Dongle. Das Teil kann man per HandyApp (Torque) auslesen oder du guckst mal mit nem Bluetooth Modul, was da rüberkommt. Am CAN Bus würde ich nicht rumfummeln, schon garnicht wärend der Fahrt. Du brauchst nur in einen Unfall verwickelt sein. Erkär DAS mal der "Rennleitung" und der Versicherung! :smiling_imp:

Na über Bluetooth darfst du das während der Fahrt genauso wenig....

Na über Bluetooth darfst du das während der Fahrt genauso wenig....

Funktioniert aber genauso gut.
Glaub 13€ hat der Dongle gekostet.
Fehler auslesen geht auch ganz gut.
Torque Pro muss es schon sein.

Chef Torque ist doch egal. Er will die Daten doch für den Arduino verwenden.

Hi zusammen,

ich bin aktuell mit selbiger Aufgabe beschäftigt. Allerdings versuche ich das ganze in ein Motorrad zu integrieren, was es ein bisschen Aufwändiger gestaltet. Der Stecker ist nicht genormt, und das Protokoll auch nicht so wirklich.
Gibt aber ausreichend Anleitungen und Material im Netz, so dass ich hoffentlich direkt anfangen kann, wenn ich meine letzten Bauteile erhalte.
Hatte dazu auch schon was im internationalen Forum verfasst: OBD II Bike Connector

Die Lxxxx Chips bekommt man für wenige Euro, damit fährt man dann nochmal eine ganze Ecke günstiger, also mit dem Shield. Gerade bei mir, aufgrund der Platzverhältnisse auch nicht zu verwenden.

Trib:
Die Lxxxx Chips bekommt man für wenige Euro, damit fährt man dann nochmal eine ganze Ecke günstiger, also mit dem Shield. Gerade bei mir, aufgrund der Platzverhältnisse auch nicht zu verwenden.

Der im englischen Post erwähnte L9637D ist ein Bustreiber für K-Line. Das ist kein CAN-Bus sondern eine Art serielle Schnittstelle.

Scherheinz:
Steht alles unter dem 2. Link:

das Kabel musst du dir zusammenbauen. Der CAN Bus ist hier über eine RJ45 Steckverbinung verfügbar, das hat nichts mit einem Netzwerk zutun.

Ah okay, das war mir irgendwie nicht ganz klar geworden. Ich bestelle dann mal und werde berichten :wink:

devrim:
Chef Torque ist doch egal. Er will die Daten doch für den Arduino verwenden.

Stimmt. Und außerdem wäre mir eine Bluetooth Verbindung sowieso zu instabil.

EDIT:

Was bedeutet: "Note that when using the CANdiy shield you must have the 2x3 pin ICSP header soldered. Otherwise the Arduino cannot talk to the CAN controller." und kann ich das Shield auch mit einem Standalone Arduino betreiben?

Schrauber47:
EDIT:

Was bedeutet: "Note that when using the CANdiy shield you must have the 2x3 pin ICSP header soldered. Otherwise the Arduino cannot talk to the CAN controller." und kann ich das Shield auch mit einem Standalone Arduino betreiben?

Das du den ICSP Header noch selbst anlöten musst.
Macht das Sinn wenn du ein Shield hast das genau auf den Uno passt?

Je nach dem, ob ich das ganze später in ein größeres Standalone Projekt einbinden möchte. Aber ich habe ohnehin im Moment das Problem, dass mir beim Atmega 328 die Pins ausgehen. Ich werde erstmal rumprobieren und dann weiter sehen.

Das mit dem ICSP Header habe ich ehrlich gesagt noch nicht verstanden bzw. auch generell nicht, wie das Shield mit dem Arduino kommuniziert. Aber vielleicht erklärt sich das auch von selbst, wenn ich das Shield erstmal habe.

Dann erzähl doch mal was du alles machen willst bzw. was noch alles am Arduino dran hängt.

Das ist die Schnittstelle die zur Kommunikation genutzt wird. Ein wenig löten musst du schon, das Shield wird so geliefert:

Hallo!

Leider war ich nicht besonders erfolgreich. Ich habe das CANdiy Shield von watterott bestellt, zusammen gelötet und dabei auch darauf geachtet, dass die ICSP Pins komplett in der Buchse sitzen.
Das OBD2 Kabel habe ich genau nach Anleitung mit einem CAT5 Kabel (mit RJ45 Stecker) verbunden (nur vier Kabel?).

Ich habe das Shield mit dem Arduino und meinem Auto (VW Polo Baujahr 2008) verbunden, aber leider ließen sich keinerlei Daten auslesen. Den "Self-Check" habe ich ohne Fehler durchführen können:

Allerdings wurde alle Fahrzeugdaten als 0 angezeigt:

Und der CAN-Kommunikationstest zeigte auch, dass anscheinend keine Kommunikation stattfindet:

Das Kabel habe ich komplett durchgemessen und nochmal überprüft, da sind alle vier Kabel richtig angeschlossen und haben durchgehend Kontakt. Auch beim Board bin ich mir ziemlich sicher, alles richtig gelötet zu haben. Bei den Jumpern hatte ich absolut keine Ahnung, welche jetzt zu überbrücken sind. Da habe ich aber auch alle Kombinationen ausprobiert - ohne Erfolg.

Hat hier jemand einen Tipp für mich oder eine Idee, was ich falsch gemacht haben könnte?

EDIT:
Ich habe hier noch einen Schaltplan gefunden, der die Funktion der Jumper ein wenig erklärt. Anscheinend bräuchte ich also gar keinen Jumper zu setzen? Spielt ja allerdings auch keine Rolle denn ob mit oder ohne Jumper - Werte bekam ich nie.

Die Jumper setzt du nur wenn du den Arduino über die 12V der OBD Buchse versorgen willst.
Also Kabel ist geprüft? Sicherungen im Auto kontrolliert? Mal ein anderes Auto ausprobiert?

EDIT: Baujahr 2008 kann kritisch sein, weiß nicht ob das auf diese Art funktioniet.

Gruß

Ach echt? Und dann alle drei Jumper? Oder wie?

Ja, das OBD2-RJ45 Kabel habe ich durchgemessen und anhand von PIN Belegung nochmal gecheckt, das ist so, wie auf der mechanic Website angegeben.

Sicherungen sind i.O. und ein anderes Auto habe ich bereits geprüft, ohne Erfolg :confused:

Das Baujahr sollte unkritisch sein, mein "normaler" OBD Tester funktioniert problemlos.

JP1: CAN kenne ich nicht, aber ein Bus braucht normalerweise eine Terminierung, also probieren.
JP2 und JP3: siehe Scherheinz, nicht verbinden.
JP4: versorgt IC 1P mit Spannung, das IC gibt es aber nicht. Wenn IC 1D gemeint ist, müßte eine Brücke zwischen 2 und 3 geschlossen werden, um den CAN Controller zu versorgen.

Ohne Gewähr!

Hi,

villeicht solltest du erstmal klären, ob dein VW Polo Baujahr 2008 überhaupt über CAN redet, evtl. kann der nur K-Line!?

Wie der dann redet steht in der ISO, die kostet aber meines Wissens Geld, for free gibts das nicht.

OBD-II definiert in jeweils eigenständigen Dokument den den OBD-Stecker (SAE J1962), das OBD-Scan-Tool (SAE J1978), die Diagnosedienste (SAE J1979), die Fehlercodes (SAE J2012) und die Data Link Security (SAE J2186). Folgende Bus-systeme sind für die OBD-Kommunikation möglich:
• ISO 14230 K-Line
• ISO 9141-2 CARB
• ISO 15765 CAN
• SAE J1850 PWM und VPWM

Gruß
Snoops