OBD2 mit Arduino und MCP2515

OBD2 mit Arduino und MCP2515

Badenser
read
Hallo allerseits,

ich würde gerne mit einem MCP2515 Modul und einem Arduino über die OBD2 Schnittstelle Werte abfragen. Zum Initialisieren der OBD2/CAN Libraries muss ich einen Takt und eine Datenrate einstellen. Weiss zufällig jemand, wie diese Werte beim IONIQ eingestellt werden müssen? Ich habe ausgiebig gesucht, aber leider nix gefunden.

Als ich mit den Defaultwerten das Modul an meine alte ZOE angeschlossen habe, ging auf dem Armaturenbrett die Lichtorgel an und jede edenkliche Fehlermeldung wurde angezeigt. Einige gingen auch nicht wieder weg...da hab ich doch ein wenig Panik geschoben...zum Glück war nach dem Einschlafen des Autos alles wieder normal. Die Defaultwerte scheinen also nicht richtig zu sein und ich würde mir dieses Erlebnis an meinem IONIQ wenn möglich ersparen.
Analoge Ladesteuerung - einfach, günstig, zuverlässig
Platinen und Bausätze: http://www.analogevse.xyz
Anzeige

Re: OBD2 mit Arduino und MCP2515

ITStromer
  • Beiträge: 367
  • Registriert: Fr 10. Mär 2017, 21:58
  • Hat sich bedankt: 3 Mal
  • Danke erhalten: 35 Mal
read
Der Ioniq spricht auf dem OBD2 ein ISO 15765-CAN Protokoll mit 11bit und 500k Baudate.
Hyundai IONIQ Elektro Premium in Polar White bestellt: 15.2.17 produziert: 14.09.17 verschifft: 15.9.17 Ankunft beim Händler: 10.11.17 16.8. 22.6. 15.5. rumstromern seit: 16.11.17

Re: OBD2 mit Arduino und MCP2515

USER_AVATAR
  • noradtux
  • Beiträge: 1001
  • Registriert: Mi 30. Nov 2016, 19:21
  • Wohnort: Rellingen
  • Hat sich bedankt: 85 Mal
  • Danke erhalten: 214 Mal
read
ISO 15765-2 (ISO-TP) ist hierbei die Herrausforderung. Ich versuche das gleiche gerade mit 'nem RasPi und PiCAN2-Board.
2017 - 2022: Ioniq Electric
2022 - : Kia EV6 GT-Line

Re: OBD2 mit Arduino und MCP2515

Badenser
read
Danke für die Infos, das hilft mir schon mal weiter. Für die 11 bit/500k Baud gibts eine Konstante in der Bibliothek. Aber man muss auch noch eine Frequenz angeben (16MHz, 8MHz, 4MHz..) und da bin ich mir nicht sicher. Ist das die Frequenz vom Oszillator? Auf meinem Board sitzt ein 8MHz Quarz, da wären das dann 8MHz...

Gibts OBD2 Protokollvarianten? Davon hab ich bis jetzt noch nichts gehört. Wo liegt denn die Herausforderung?
Analoge Ladesteuerung - einfach, günstig, zuverlässig
Platinen und Bausätze: http://www.analogevse.xyz

Re: OBD2 mit Arduino und MCP2515

g4rb4g3
  • Beiträge: 464
  • Registriert: Do 4. Okt 2018, 20:43
  • Hat sich bedankt: 39 Mal
  • Danke erhalten: 179 Mal
read
Badenser hat geschrieben: Danke für die Infos, das hilft mir schon mal weiter. Für die 11 bit/500k Baud gibts eine Konstante in der Bibliothek. Aber man muss auch noch eine Frequenz angeben (16MHz, 8MHz, 4MHz..) und da bin ich mir nicht sicher. Ist das die Frequenz vom Oszillator? Auf meinem Board sitzt ein 8MHz Quarz, da wären das dann 8MHz...

Gibts OBD2 Protokollvarianten? Davon hab ich bis jetzt noch nichts gehört. Wo liegt denn die Herausforderung?
Keine Ahnung welche Bibliothek du verwendest aber üblicherweise ist die Geschwindigkeit des Arduinos gemeint.
Creator of the fabulous ABRPTransmitter for Ioniq BEV :)
Bild

Re: OBD2 mit Arduino und MCP2515

emega
  • Beiträge: 161
  • Registriert: Sa 28. Jul 2018, 18:40
  • Hat sich bedankt: 6 Mal
  • Danke erhalten: 12 Mal
read
Wenn wir wüssten, welche Lib Du verwendest könnten wir ja mal rein schauen. Sollte sogar in der Doku stehen. Der MCP2515 hat auch einen Listen-Only Mode. In diesem Modus höhrt der Chip einfach nur zu. Um die Datenrate heraus zu finde kann man sie in diesem Modus solange verändern, bis gültige Nachrichten rein kommen.

Ich schätze mal, die MHz-Angabe bezieht sich auf den Takt des MCPs. Wie schnell der Arduino läuft interessiert eher weniger. Der MCP kann 10 MHz SPI verarbeiten. Der Arduino müsste dann auf 20 MHz laufen, was mit den meisten nicht geht. Das ist jetzt aber nur geraten.

Re: OBD2 mit Arduino und MCP2515

Badenser
read
Im Moment benutze ich die OBD2 Library von Sandeep Mistry (https://github.com/sandeepmistry/arduino-OBD2), die wiederum dessen CAN Lib verwendet (https://github.com/sandeepmistry/arduino-CAN). Ich bin aber nicht darauf festgelegt. Das war nur die erste/beste/erstbeste die ich über die Arduino IDE bei den Bibliotheken gefunden habe. Mittlerweile habe ich auch noch eine ganze Reihe von anderen Bibliotheken auf Github gefunden, brauche aber immer für die Initialisierung den Takt und die Baudrate.

Edit: und noch eine Frage (wo wir schon dabei sind)...muss man an der OBD2 Schnittstelle nur die beiden Signalleitungen verbinden oder auch noch Masse dazu?
Analoge Ladesteuerung - einfach, günstig, zuverlässig
Platinen und Bausätze: http://www.analogevse.xyz

Re: OBD2 mit Arduino und MCP2515

emega
  • Beiträge: 161
  • Registriert: Sa 28. Jul 2018, 18:40
  • Hat sich bedankt: 6 Mal
  • Danke erhalten: 12 Mal
read
Badenser hat geschrieben: Im Moment benutze ich die OBD2 Library von Sandeep Mistry (https://github.com/sandeepmistry/arduino-OBD2), die wiederum dessen CAN Lib verwendet (https://github.com/sandeepmistry/arduino-CAN).
Hab jetzt keine Init-Funktion gefunden, die neben der Baudrate auch noch eine Taktrate braucht. Das einzige was ich gefunden hab war das: "#define MCP2515_DEFAULT_CLOCK_FREQUENCY 16e6" Das ist eindeutig die Frequenz des MCPs. Hier musst Du eventuell noch 8e6 rein schreiben. Kenne mich mit Arduino nicht so aus, ob man das so in der IDE machen kann. Komme aus der C-Ecke.
Badenser hat geschrieben: Edit: und noch eine Frage (wo wir schon dabei sind)...muss man an der OBD2 Schnittstelle nur die beiden Signalleitungen verbinden oder auch noch Masse dazu?
Prinzipiell reichen die Datenleitungen. Bei den MCP2515 Modulen die ich verwende muss die Masse aber mit verbunden werden. Ist ja nicht schwer. Sollte im OBD-Stecker mit geführt sein. Die Versorgungsspannung kommt ja wahrscheinlich auch aus dem Stecker.

Re: OBD2 mit Arduino und MCP2515

Badenser
read
Die unterliegende CAN Library hat eine Methode CAN.setClockFrequency bei der man die Frequenz angeben kann. Ich werde das mal mit 8E6 ausprobieren. Laut der Doku der Library scheint das tatsächlich die Taktfrequenz des MCP2515 zu sein.

Ich möchte meine Schaltung aus Akkus speisen (also nicht aus der OBD2 Schnittstelle) aber die Masse mit zu verbinden ist in der Tat keine Kunst.

Vielleicht noch eine kleine Erklärung, was ich eigentlich vorhabe... Ich möchte eine simple Alternative zu EVNotify haben, die ohne OBD-Dongle auskommt. Dazu habe ich eine Akku-betriebene Schaltung mit einem Arduino Nano, einem MCP2515 Modul und einem SIM800L GSM Modul gebaut. Ist das Auto an, wird der Akku geladen und die Schaltung schläft. Geht das Auto aus, läuft die Schaltung für einige Stunden aus dem Akku (Optimierung des Stromverbrauchs steht noch aus) und erfragt Lade-Parameter. Wenn das Auto lädt, überträgt es zyklisch ein paar Werte (SOC, Stromstärke, Ladeleistung und Restzeit) an einen Webservice, über den man dann die Werte auf dem Handy sehen kann. Die Kosten für alle Komponenten dürften im Bereich von etwa 20€ liegen und die 12V Batterie des Autos wird nicht belastet. Man könnte es also einbauen und vergessen.

Danke für Eure Tips und Hinweise!
Analoge Ladesteuerung - einfach, günstig, zuverlässig
Platinen und Bausätze: http://www.analogevse.xyz

Re: OBD2 mit Arduino und MCP2515

USER_AVATAR
read
Hi Badenser,

klingt sehr interessant. Nutzt du dann auch eine Netzklub-SIM-Karte zur Datenübertragung?
Seit 08.08.18 im Ioniq unterwegs
PV-Anlage 9,91kWp, 3 x Fronius Primo WR, OpenWB-Standalone, go-eCharger, EVNotiPi
Anzeige
AntwortenAntworten

Zurück zu „IONIQ - Infotainment“

Gehe zu Profile
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag