HowTo: CAN Datendisplay im DIY

  • Servus zusammen,


    erst einmal ein dickes, fettes DANKE fürs Entwickeln und Veröffentlichen!


    Das Projekt hier hat mir endlich den nötigen Arschtritt verpasst, mich hin zu setzen und mit dem CAN-BUS zu beschäftigen.
    Ursprünglich wollte ich mich aufgrund einer Spezialanforderung für mein Fahrzeug in die serielle Kommunikation zum Display einklinken und die notwendigen Daten abgreifen.
    Mittlerweile habe ich mich jedoch dazu entschieden, nur das Display und den Screen in abgeänderter Form zu verwenden und den µC durch einen ESP32 + SN65HVD230 zu tauschen. Ich hänge mich allerdings erst einmal nicht an den PT-CAN, sondern begnüge mich bis auf weiteres mit dem K-CAN.
    Ziel ist, ein etwas erweiterter Bordcomputer bezüglich Spritverbrauch und Fahrzeiten (Spielerei), sowie diverse Funktionen per WLAN zugänglich zu machen. Hier lässt sich der ESP32 mit seinem integrierten WLAN-Modul ideal ausnutzen.
    "Nebenher" entwickle ich noch ein eigenes Steuergerät, welches für die Schaltung und Überwachung von bis zu 4 Verbrauchern gedacht ist.
    Das soll mit an den K-CAN vom Fahrzeug angeschlossen und vom ESP über Eingaben vom Display gesteuert werden.
    Über das Display werden dann auch entsprechende Fehlermeldungen ausgegeben, sollte es Probleme mit einem der Kanäle geben (Kurzschluss, OpenLoad etc.).
    Ob das problemlos laufen und keine Störungen im Fahrzeug hervorrufen wird? Keine Ahnung - wird auf alle Fälle getestet :D


    Umgesetzt sind bisher:
    - Hardware Testaufbau läuft (Gegenstück ist aktuell noch ein zweiter ESP32 mit MCP2515 + TJA1050)
    - Nutzung von RTOS (real time operating system) auf dem ESP32
    - Webserver auf dem ESP32 liefert html-Seiten vom integrierten Flash (SPIFFS) aus (vereinfacht den Code)
    - Update des ESP32 per Webinterface
    - Fast alle CAN-Botschaften, die ich aus diversen Quellen gesammelt habe, sind bereits in Methoden eingebaut und damit recht einfach fürs Display verwendbar.
    Quellen sind unter anderem: http://www.loopybunny.co.uk/CarPC/k_can.html und die Excelliste von Ivy_E60 , die hier im Thread verlinkt ist.


    In Entwicklung:
    - CAN-Logger (linux can-utils per Serial über slcand)
    - CAN-Logger (Per WLAN, UDP -> Aktuell nur über Wireshark o.ä. nutzbar)
    - Update vom Display per Webinterface (Code ist geschrieben - Test steht aus. Warte noch auf den SD-Kartenhalter)
    - Umstellung der HTML-Seiten vom SPIFFS auf die SD-Karte
    - Aufhübschen der HTML-Seiten
    - Nutzung der RTC-Uhr des Displays zum Wiederher-/Stellen der Fahrzeuguhr
    - Bereinigung der festen, zeitlichen Aktualisierung der Daten auf dem Display auf OnChanged-Events und entsprechende Eventhandler, um ein Flickern des Displays zu verhindern. Library hab ich für ein anderes Projekt schon einmal geschrieben; muss ich "nur" noch auf dem ESP32 zum laufen bekommen. Da gibt's noch Abhängigkeitsprobleme.
    Eine anständige Möglichkeit, die Aktualisierung Eventbasiert (und nicht timerbasiert) auf dem Display zu steuern, habe ich leider noch nicht gefunden...


    Geplant:
    - Zusätzliche Absicherung des WLANs / der Kommunikation (MAC-Filter, evtl. HTTPS...)
    - Integration von Beschleunigungssensor & Magnetometer (FXOS8700 + FXAS21002) in den Datalogger
    - Aktivierung der Standheizung per Webinterface
    - Aufräumen des Codes (Objektorientierung verbessern, mehr Kommentieren), um ihn veröffentlichen zu können.
    - Steuerung des Displays über die originalen Tasten am Lenkstock


    Ein Bild vom BC hängt an.
    Beim Druck auf das M-Logo links unten geht's auf den originalen Screen mit Drehmoment und Temperaturen.
    Der Button unten Mitte ist für meine Spezialfunktionen.
    Die Blätter-Buttons sind zum Durchschalten von "Ab Start", "Ab Tanken" und "Langzeit".


    Das gezeigte Gehäuse für den Einbau links anstelle der originalen Defrosterdüse ... Das Displaykabel wird durch die Defrosterdüse in den Lüftungskanal geführt und hinter dem Kombi dann aus dem Lüftungskanal bis zur CAN-Elektronik.

    Zwei Fragen hätte ich zum Gehäuse für die Defrosterdüse:
    - Für welche Schrauben ist das Gehäuse denn designed?
    - Wie bist du denn mit dem Kabel aus dem Tunnel raus? Loch gebohrt?
    Nachdem der Tunnel scheinbar eingeklebt ist (oder täusche ich mich da?) könnte man ja sonst nur durch die Steckverbindung des Lüftungstunnels in der Mitte zum Klimakasten gehen...?

  • - Wie bist du denn mit dem Kabel aus dem Tunnel raus? Loch gebohrt?

    Richtig Loch gebohrt. Ich hatte danach Kitt um die Leitung geklebt, alternativ geht auch eine passende Gummilippe rein zu stecken.

  • - Für welche Schrauben ist das Gehäuse denn designed?

    Das Gehäuse für die Defrosterdüse besteht aus vier Teilen (1. Ersatzdefrosterdüse mit einer Nut für die Displayaufnahme 2. Displaygehäuse mit Ausschnitt und einer Zapfnase 3. Displaygehäuse-Rückwand, welche an das andere Gehäuseteil geschraubt wird 4. Sonnenschirm). Im Anhang habe ich ein Bild der Einzelteile angefügt.
    Die Schrauben für das Gehäuse sind EJOT DELTA PT WN5452.
    Die Bohrung für das Kabel habe ich durch die Öffnung des Kombis gemacht und eine Gummitülle eingesetzt.

  • Gerne :)


    Cooles Projekt! Ist evtl. einen eigenen Thread wert?

  • Habt ihr da evtl. auch eine Quelle aufgetan, wo man nicht 1000 Stück kaufen muss (oder hast du welche abzugeben?)?

    Druckservices gibt es sehr viele im Internet (auch für Einzelteile). Wichtig ist dabei einen geeigneten Kunststoff zu finden. PA12 sieht vom Datenblatt her sehr viel versprechend aus und könnte getestet werden. Im Moment habe ich kein Gehäuse über.
    Es gab natürlich im Laufe der Zeit einige kleine Änderungen am Gehäuse. Wer aktuelle Gehäusedaten haben möchte kann sich bei mir melden.

  • Druckservices gibt es sehr viele im Internet (auch für Einzelteile). Wichtig ist dabei einen geeigneten Kunststoff zu finden. PA12 sieht vom Datenblatt her sehr viel versprechend aus und könnte getestet werden. Im Moment habe ich kein Gehäuse über.Es gab natürlich im Laufe der Zeit einige kleine Änderungen am Gehäuse. Wer aktuelle Gehäusedaten haben möchte kann sich bei mir melden.

    Das Gehäuse habe ich wie gesagt bereits gedruckt (anhand der Daten von der ersten Seite).
    Ich glaube da hast du meine mit der Anfrage bezüglich der Schrauben mit der Anfrage vom Thunderhaake bezüglich Gehäusedaten verwechselt - mir fehlen nur die Schrauben. ;)

  • Gibt es gerne, wenn gewünscht und du nix dagegen hast - hab länger überlegt, ob ich es überhaupt veröffentlichen soll.
    Möchte ja keine Konkurrenz zu dem Projekt hier bilden!!

    Das musst du entscheiden. Fände es aber ungeschickt, wenn die Projekte vermischt werden.

  • So wie ich das verstanden habe macht der freakmaster WLAN, Mac, Media, Standheizung, STG Überwachung und saft macht Performance. Also ich hab noch Platz für einen zweiten Bildschirm obwohl WLAN ist eher interessant für Leute mit am Haus parkenden Auto oder nicht?


    Ihr könnt das gemeinsam auf einem Display machen das geht natürlich auch.
    Vor allem wenn man das CIC oder Android noch nutzen möchte hat man Platz Problem mit drei Bildschirmen.


    Für mich ist jedoch CIC oder Android uninteressant ich habe meine Musik und Google map am Smartphone.


    Nur das große Serien info Display stört mich, ich hätte den lieber kleiner das ich zwei Displays in der mitte nebeneinander habe zusammen mit dem DataDisplay oder nur einen größeren wo alles angezeigt wird mit besserer Auflösung.

  • "Fehlen" tut mir im Prinzip nur eine weitere Seite auf dem Display, über das ich mit meinem zusätzlichen Steuergerät kommuniziere.
    Ich hatte mit saft6luck diesbezüglich bereits netten Kontakt, bei dem er mich mit Infos und Ideen gefüttert hat - da hat mich mein Basteltrieb übermannt und ich habe selbst losgelegt, um ihm die notwendige Arbeit nicht aufzuhalsen und unabhängig zu sein.
    Daraus hat sich dann der erweiterte Umfang ergeben...


    Grundsätzlich möchte ich mein Projekt komplett veröffentlichen.
    Sobald alles soweit bereinigt ist, dass man es öffentlich zeigen kann, kommts auf GitHub.
    Wer möchte, könnte also gerne die Screens fürs Display übernehmen und müsste sich damit nur noch um die Datenfütterung kümmern...
    Ich versuche auch so viel Logik wie möglich ins Display zu integrieren, um die Datenübergabe zu vereinfachen.


    Was mir ganz wichtig ist, auszusprechen:
    Mein Projekt basiert auf der Idee von saft6luck!
    Ich möchte in keiner Weise in Konkurenz zu seinem Projekt treten! Das Ziel ist schließlich ein ganz anderes...
    Meine Ergebnisse stelle ich wie gesagt gerne zur Verfügung, möchte aber saft6luck unter keinen Umständen dazu nötigen oder drängen meine Screens zu integrieren!!
    Denkt bitte daran, dass man solche Elemente nicht einfach 1:1 übernehmen kann - und selbst wenn, würde immer noch massiv Arbeit dahinter stecken!

  • Ich hatte mit saft6luck diesbezüglich bereits netten Kontakt, bei dem er mich mit Infos und Ideen gefüttert hat - da hat mich mein Basteltrieb übermannt und ich habe selbst losgelegt, um ihm die notwendige Arbeit nicht aufzuhalsen und unabhängig zu sein.
    Daraus hat sich dann der erweiterte Umfang ergeben...

    Ich könnte mir gut vorstellen, dass da noch andere bei diesem Thema Kreativität entwickelt haben bzw. noch entwickeln werden. Die Komplexität ist überschaubar, die Investitionen begrenzt, die Freude über die neuen Möglichkeiten groß und man lernt etwas dabei. Irgendwann wird die Kommunikation vieler moderner Modelle transparent. Es könnte sich dadurch sogar eine eigene Open-Data Cloud Community entwickeln.


    Um dem Projekt die besten Entwicklungschancen zu geben, sollte zunächst das Wissen -um die Kreativität zu steigern- auf zahlreiche Personen verteilt sein und einer wie Saft sollte den Linus Torvald machen.


    Interessant ist der Open Hardware Aspekt und wer da Interesse zeigen könnte, in eine Produktion einzusteigen.


    P.S.:
    Mit einer Vernetzung (Freaks WLAN + Mobile App ...) könnten sich Data-Mining Aspekte ergeben, wie sie Autofirmen bereits privat über ihre Telemetrie verwenden:

    • Typischer Werte zwecks Ersatz- oder Gebrauchtteilbewertung (LMM-Werte,...)
    • Optimierung des Fahrverhaltens (Gefahrenvermeidung, ökonomische Aspekte, Realtime Auswertungen)
    • Diagnosedaten zur Fehlerfindung, KI?
    • Optimales Tuning
    • ...
  • Guten Abend zusammen,


    cool was du hier angeschoben hast, saft6luck :thumbup:
    ...ist die Sache denn noch am laufen? Wenn ja würde ich gerne einsteigen mit einem E61 525d LCI und es dann ggf. an meinem E46 330d (M57N) weiterführen.


    Grüße
    Timo

  • Ja, läuft :)


    Der Selbstbau ist für mich nicht so sichtbar, da jeder für sich die HW zusammenbauen kann und die SW etc. direkt läuft. Es gab hier rund 10 Rückmeldungen über den Erfolg, teilweise auch im Forum.


    Die voll ins FZG integrierte Variante (hatte ich in einer Sammelbestellung angeboten -> die lasse ich einfach laufen) ist bei mir sichtbarer, da über mich gemanaged. Hier haben wir einen Chat in Telegram, in dem der Support (und andere Themen) besprochen werden. Der Funktionsumfang ist deutlich angestiegen (aktuelle Arbeit: bei manchem Motor kann bereits die Abgasklappe gesteuert werden).


    Für die DIY-Nutzer werde ich den Funktionsumfang ein einem nächsten Schritt (soweit möglich) nachziehen.

  • Klingt gut :top: das heißt, über den Sammelbestellungs-threat kann man auch weiterhin einsteigen?


    Gibt es denn so was wie eine aktuelle Funktionsübersicht? Bei der Vollversion kann man sich dann genauso auch noch selbst den Screen zusammenstellen? (ggf. sogar mehere zum um Schalten erstellen?). Gibt es die Möglichkeit Graphen an zu zeigen wie zB Ladedruck Soll- und Ist-Wert zusammen mit der VTG? -hätte da so einige Ideen die man sinnvoll nutzen könnte^^ Wobei für den E61 mit 25er M57N2 in erster Linie ne Anzeige der Motortemperatur und Information über den aktuellen DPF-Status wünschenswert sind.
    Hast du mittlerweile schonmal für E46 und die eine Gereration ältere DDE was gemacht?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!