Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus CAN-Bus selbst auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Daten aus CAN-Bus selbst auslesen

    Moin.

    Nanocom, Scangauge, Diagnosegeräte und Apps schön und gut - aber hat einer hier abseits der Fertiglösungen schonmal versucht, selbst Kontakt mit dem CAN-Bus aufzunehmen? Also z.B. mit Arduino o.Ä.? (Meines Wissens gibt es im TD4 eine highspeed CAN-Verbindung zwischen Motorsteuergerät und Cockpit.)

    Mit der Forumssuche hab ich nichts dergleichen gefunden. Nur Nanocom rauf und runter.

    Gruß

    #2
    AW: Daten aus CAN-Bus selbst auslesen

    Ich kann leider keine diesbezüglichen Erfahrungen beisteuern, fände das aber ein sehr interessantes Projekt!

    Gruß
    Dieter

    Kommentar


      #3
      AW: Daten aus CAN-Bus selbst auslesen

      Interessanter Gedanke! Ich hab zwar 2 Arduinos im Landy verbaut (einer fuer Innen-/Aussentemperatur, Batteriespannungen und Neigung zum Ausrichten beim Uebernachten im Auto, den anderen zum Aufzeichnen der gefahrenen Route mit GPS auf Speicherkarte), aber an den CAN-Bus bin ich bisher noch nicht dran. Ein kurzes Nachfragten bei Tante Google zeigt mir aber, dass es fertige Arduino Shields bzw Bauplaene fuer ebensolche gibt, um die Hardware anzuschliessen, sowie mehrere Arduino libraries, um damit Werte auszulesen. Vielleicht helfen Dir ja solche Webseiten besser weiter als dieses Forum in diesem speziellen Fall? Fuer mich ist Dein Beitrag jedenfalls ein Denkanstoss, den ich bei genuegend Zeit sicher mal vertiefen werde... Danke dafuer!

      Kommentar


        #4
        AW: Daten aus CAN-Bus selbst auslesen

        @DefNder, hast das mal irgendwo vorgestellt oder einen Link zum Belesen?
        @khamuul nur zu, sowas ist geil, ... deine Heizungssteuerung ist abgeschlossen?

        Kommentar


          #5
          AW: Daten aus CAN-Bus selbst auslesen

          Zitat von sollner11 Beitrag anzeigen
          @DefNder, hast das mal irgendwo vorgestellt oder einen Link zum Belesen?
          Nein, weder noch. Eine Doku habe ich beim Basteln auch nicht parallel erstellt. Wenn Du konkrete Fragen hast, kannst Du mir die gerne stellen - ich weiss allerdings nicht, ob dieser Thread hier der richtige Ort dafuer ist. Also entweder ein neuer Thread "Arduino-Projekte am Landy" oder PN an mich.

          Kommentar


            #6
            AW: Daten aus CAN-Bus selbst auslesen

            Also ohne ein DBC File wird das Vorhaben schwierig werden. Und das ist normalerweise ein gut gehütetes Geheimnis!

            Kommentar


              #7
              AW: Daten aus CAN-Bus selbst auslesen

              Ja Moin!

              @DefNder Also wenn ich ehrlich bin, hab ich auch schon angefangen. :) Seit längerem liegt hier schon ein CAN-Bus-Shield "v1.2" (Ich meine von "seeed".) in der Warteschleife. Aber wie das so ist - man hat einfach zu viele Projekte...

              Ursprünglich hatte ich gehofft, dass ich darauf ein LCD-Shield stecken kann, aber das tuts noch nicht zusammen mit dem CAN-Shield. Pin-Doppelbelegungen gibt es eigentlich keine - ich muss mal schauen, ob die librarys nicht vielleicht dieselben Timer verwenden wollen oder sowas. Aber ohne LCD-Shield habe ich bereits Kontakt zum CAN und kann Daten mitschreiben! :kl Die schicke ich derzeit über USB an den Laptop und schreibe sie mit Putty mit. (Sprich: Hardware-Kabel-etc ist als Prototyp schon vorhanden und einsatzbereit auf Arduino UNO.)

              @sollner11 Heh, nein, die Lüftungssteuerung lag ein Weilchen auf Eis, weil das Relais aus der Grabbelkiste wohl doch zu klein dimensioniert war. (Leider keine Beschriftung. (HS) Das ist nach einer Weile Lüftungs-max im Fahrbetrieb in der Ruheposition festgegangen. Für solche Fälle hatte ich einen Dummy-Stecker gebaut, den man anstelle des Relais im Motorraum anstecken kann. (= Originalzustand) Das Relais wollte ich dann doch nicht länger drin haben. Nach einem passenden Relais musste ich ein Weilchen suchen. (2x Umschalter >= 20A) Bin aber fündig geworden und bald gehts weiter, dann schreib ich auch wieder was. Angeschlossen hab ichs schon.

              @SirJAn Weißt Du mehr über "DBC-Files"? Der Begriff ist mir noch nicht untergekommen, aber ich kann mir denken, dass das vielleicht so eine Art Top-Secret Beschreibungsdatei ist, die mir den großen Haufen Daten auf dem Bus im Einzelnen erklären, richtig? Und ja, mit sowas rücken die Hersteller nicht raus. Ich hatte auch schonmal in Richtung Transit recherchiert aber auch da nichts weiter gefunden. Mein Ansatz ist im Moment "reverse engineering", also Daten mitschreiben in unterschiedlichen Fahrzeugzuständen und sich selbst einen Reim aus den Daten machen. Ja, ist aufwändig. Ja, ich werde sicher nicht alle "Geheimnisse" aufdecken. Macht mir aber Spaß und ich wills zumindest probieren. Daher ja auch meine Anfrage hier nach Mitstreitern, die ähnliche Gedanken haben. Etwas hilft auch das Wissen, welche Sensoren denn die OBD-Apps im TD4 so anzeigen können, das schränkt die Möglichkeiten schon gut ein. Daten auf den Bus senden möchte ich erstmal nicht. Aber eine Anzeige einiger Sensordaten, die da eh vorbeirauschen, wär schon schön. ("echte" Kühlwassertemperatur zum Beispiel, oder eine Verbrauchsanzeige.) Fehler auslesen kann ich auch erstmal anders.

              Kommentar


                #8
                AW: Daten aus CAN-Bus selbst auslesen

                Ich werte die Daten immer wieder mal ein Stück aus, wenn ich Zeit habe. Heute war aber erstmal Ventile einstellen am Moped dran und am Wochenende muss ich endlich mal was im Garten tun...

                Damit es hier in der Zwischenzeit nicht langweilig wird, hier mal ein kleiner Datenfetzen aus meinem CAN-Bus - so sieht sowas aus:

                0x12A 0 0 0 0 0 0 0 0
                0x129 0 0 3 16 0 0 C 0
                0x38B 0 0 0 F 0 0 0 0
                0x129 0 0 3 16 0 0 C 0
                0x38B 0 0 0 F 0 0 0 0
                0x38B 0 0 0 F 0 0 0 0
                0xF6 3 0 E3 6C 63 79 0 0
                0x38B 0 0 0 F 0 0 0 0
                0x129 0 0 3 16 0 0 C 0
                0x38A 0 0 0 F 0 0 0 0
                0x129 0 0 3 16 0 0 C 0
                0x38B 0 0 0 F 0 0 0 0

                Kommentar


                  #9
                  AW: Daten aus CAN-Bus selbst auslesen

                  Also, das DBC File ist quasi der Schlüssel zu den CAN Messages, mit den Hex Zahlen wirst du nichts anfangen können.
                  Ich empfehle Dir hier mal etwas Literatur, ist ja alles genormt und im Netz verfügbar.

                  Hersteller hüten DBC Files natürlich, da man so auch aktiv Signale manipulieren könnte.
                  man muss auch aufpassen, dass man nicht versehentlich irgend etwas auf den Bus legt!

                  Viele Grüße
                  Jan

                  Kommentar


                    #10
                    AW: Daten aus CAN-Bus selbst auslesen

                    Den genormten Teil (Der CAN-Bus selbst) habe ich doch schon im Griff, Jan! Schau oben, da sind schon die HEX Daten, die ankommen. Das behütete Hersteller-Geheimnis, welche Daten nun was bedeuten, meinetwegen in Form einer DBC Datei, (Ich nähm sonst wohl auch jede andere lesbare Form einer Dokumentation.) werde ich wohl schwerlich finden und ist eben nicht genormt. Wie im Eingangspost bereits gesagt, gesucht hatte ich bereits und für meine Verhältnisse auch lange und tief genug. Wenn Du was weißt oder einen Tipp hast, wie ich die Daten des 2,4l TDCI interpretieren kann, dann immer her damit! :) Ansonsten bin ich da glaube ich eine Spur optimistischer als Du.

                    Mit dem "versehentlich was auf den Bus legen" hast Du sehr Recht. Das ist ja auch der Grund, warum ich nichts auf den Bus senden möchte, sondern nur die Daten, die auch ohne mein Zutun dort schon kursieren, mitlesen und interpretieren. (Sonst dürfte ich übrigens genausowenig irgendwelche China-OBD-Adapter und -Geräte dort anschließen und mit irgendwelchen Apps drauf zugreifen lassen. Bei denen weiß ich schon gar nicht genau, was die auf dem Bus so treiben und muss ihnen schlicht vertrauen.) Eine zusätzliche Sicherheit: Immerhin hängt an meinem CAN außerdem nichts so wichtiges mit dran, wie es bei moderneren Autos der Fall ist. (ABS/ESP/Tempomat/Einparkautomatik/Spurassistent/Airbags/Autopilot/... - gibts bei mir alles nicht.)

                    Kommentar


                      #11
                      AW: Daten aus CAN-Bus selbst auslesen

                      Ich denke mal eine gut Anlaufstelle wäre https://www.canhack.de/
                      https://www.dfndr.de/

                      Kommentar


                        #12
                        AW: Daten aus CAN-Bus selbst auslesen

                        @khamuul: magst Du Dir mal die Lib unter

                        ansehen? Laut der Doku im www gibt's da Funktionen wie zB

                        unsigned int getEngineLoad();
                        unsigned int getEngineCoolantTemp();

                        unsigned int getEngineRPM();

                        unsigned int getVehicleSpeed();

                        unsigned int getIntankeAirTemp();

                        unsigned int getThrottlePosition();

                        unsigned int getFuelLevel();

                        unsigned int getBarometricPressure();

                        usw. Ich weiss nicht, ob die genormt sind von den Hex-Codes her, aber einen Versuch waer es wert...

                        Edit: in der Datei arduinoCAN.h sind einige #defs drin, mit Erklaerung der Hex-Werte und Umrechnung der zugehoerigen Parameter. Bitte probier doch einfach mal davon was aus, ohne die Lib zu installieren, zB Deine mitgelesenen Hex-Werte nach 0x0C filtern (= ENGINE_RPM), den Parameter entsprechend umrechnen und Dir auf Laptop ausgeben lassen bei laufendem Motor. Wenn das dann der Drehzahl (laut Drehzahlmesser) entspricht, dann kann man auf diese Weise schon mal eine ganze Menge Hex-Werte identifizieren und umrechnen...

                        Edit 2: Und wenn man erst mal angefangen hat zu suchen, findet man tatsaechlich folgende Uebersicht an naheliegender Stelle: https://en.wikipedia.org/wiki/OBD-II_PIDs
                        Inkl der parameter-Umrechnungen. Das wuerde mir fuer den Anfang schon mal reichen...
                        Zuletzt geändert von DefNder; 29.03.2019, 09:38.

                        Kommentar


                          #13
                          AW: Daten aus CAN-Bus selbst auslesen

                          Ja, über das canhack Forum war ich auch gestolpert. Angemeldet bin ich dort nicht - kann also nicht alle Beiträge sehen.

                          @DefNder: Die lib schau ich mir gleich mal an, danke! Aber ich habe das Gefühl, dass die IDs doch sehr Hersteller-spezifisch, ja sogar Modell-spezifisch sind. (Ich hatte etwas Doku von anderen Ford Modellen gefunden, aber nichts passte. Auch im Wikipedia-Artikel im Teil über CAN liest man nicht selten "Vehicle specific"...)

                          Hier eine Liste aller IDs, die ich bis jetzt gesammelt habe - sortiert nach der Häufigkeit, mit der im normalen Fahrbetrieb Daten von ihnen kommen. (Allen voran die ersten beiden.) Ein wenig meiner Interpretation der Daten schreibe ich dazu.

                          0x38B // Hier ist die Geschwindigkeit dabei
                          0x129 // Hier ist das Gaspedal dabei / eventuell auch Verbrauch & engine timer ?
                          0x38A // Daten sehr ähnlich bzw. identisch mit 0x38B, aber deutlich seltener
                          0x4C2 // eventuell air intake temp
                          0xF6 // Hier gibts viele Variablen mit "Leben" drin - ich kann sie aber noch nicht zuordnen
                          0x12A // Eigentlich nur ein Bit? - Motor an/aus
                          0x128 // viele Daten / große Daten (16 Bit) - vielleicht (???) Drehzahl dabei
                          0x127 // vielleicht Kühlwassertemperatur dabei?
                          0x405 // "periodische" Daten
                          0x442 // gar keine Daten
                          0x400 // ?

                          Wie Ihr seht, ich war schon etwas fleißig. :)
                          Ich bin gespannt, ob irgendeiner der TD4-IDs in arduinoCAN.h vorkommt...

                          Auf jeden Fall sollten in den Daten dieser IDs alle Daten vorkommen, die man im Cockpit sieht, denn dahin werden sie schließlich gesendet.

                          Grüße
                          Martin

                          Kommentar


                            #14
                            AW: Daten aus CAN-Bus selbst auslesen

                            Das wäre doch mal ein tolles Projekt. So eine Multifunktionsanzeige positioniert zwischen der Lüftung . Dargestellt auf einem kleinen Display.
                            Ich kenne mich zwar nich mit dem CAN Bus aus , aber ich könnte auf dem Arduino eine Ausgabe und Datenverarbeitung programmieren.
                            https://www.dfndr.de/

                            Kommentar


                              #15
                              AW: Daten aus CAN-Bus selbst auslesen

                              Zitat von khamuul Beitrag anzeigen
                              Hier eine Liste aller IDs, die ich bis jetzt gesammelt habe
                              Hast Du denn (bis auf die PID 0xF6) alles nur PIDs mit 2 Byte gefunden, die ueber den Bus laufen? So wie ich den wiki-Artikel verstehe, sollten zumindest die Service 1 (= aktuelle Werte) PIDs 0x00-0xC4 normiert sein und fuer alle Fahrzeuge gelten (offenbar auch noch weitere service level, aber zum Abfragen der Daten reicht wohl erst mal service 1). Oder muss man jeden Wert, den man auslesen moechte, erst einmal anfordern? Also einen request auf den Bus schicken, um dann eine entsprechende Antwort zu erhalten.

                              Ist bissl bloed, das theoretisch zu betrachten ohne die entsprechende Hardware, um es auch auszuprobieren. Ich werde mir da wohl bald selber mal so ein CAN-Shield besorgen...

                              Kommentar

                              Lädt...
                              X