LIN Ansteuerung der Klima via Mikrocontroller

  • Hallo! Ein sehr interessantes Thema! Wenn ich es richtig verstehe, funktioniert das z. B. für die Klimasteuerung so:

    Ich möchte die Venti-Drehzahl erhöhen und drücke den entsprechenden Pfeil auf dem Bildschirm. Das NAC sendet daraufhin über die low-speed CAN-Info-Div. Schnittstelle bei jedem Drücken des Pfeils den passenden Datensatz an das BSI.

    Das BSI wandelt den Befehl um und sendet ihn via LIN-Netz an das Heizungs-Steuergerät. Dieses führt die Aktion aus und meldet auf demselben Weg zurück, dass die Drehzahl nun soundso ist, was auf dem Bildschirm mit den Flügelsymbolen angezeigt wird.

    Frage 1: Stimmt das so??

    Frage 2: Wo kann man das CAN-Netzwerk am besten abgreifen, ohne das NAC auszubauen. Wo geht das Kabel vom NAC genau hin? (Ich finde mich in dem unglaublichen Gewirr von Kabeln und Steckern nicht zurecht.)

    Frage 3: Kann man irgendwo die passenden Datensätze finden?

    Warum das Ganze? Ich möchte die Klimaanalage statt über den Screen mittels Drehknöpfen regulieren und dazu ein Blackböxli bauen.

    Vielen Dank für eure Hilfe.

  • Frage 1: Stimmt das so??

    Korrekt.

    Wobei nicht jedes Steuergerät über LIN angebunden ist, manche sind auch direkt am Low Bus.


    Wo geht das Kabel vom NAC genau hin?

    Zum BSI über 2 Drähte (Can High und Can Low) mit 125Kbps.

    Die zugehörigen Pins hängen natürlich von BSI ab, es gibt mehrere Versionen und auch Revisionen.

    Hier hab ich beispielsweise vom BSI2010 die Pins gelistet.

    Beim BSI2017 dürfte es wieder anders sein.


    Man kann sich quasi an jedes Steuergerät hängen, welches über den Low Bus mit dem BSI verbunden ist.

    Und wenn das Gateway im BSI nicht gerade Nachrichten blockiert, sollten die auch durchkommen.


    Frage 3: Kann man irgendwo die passenden Datensätze finden?

    Es gibt hier ein paar Datensätze, allerdings von der älteren Generation, da kann ich nicht genau sagen, ob die Befehle gleich geblieben sind.


    Ich bastel derzeitig an nem Sketch, den ich später veröffentliche, womit man den Bus leichter auslesen kann.

    Ich will mir nämlich auch sowas ähnliches bauen, um ein paar selbstgebaute Funktionen hinzuzufügen.

    Ich hänge dann später meinen Mikrokontroller dran und der soll bei entsprechenden Nachrichten reagieren.


    Ich hab da ein paar Ideen bzgl. Beleuchtung, Diagnose, Schaltkontakte und Co.

  • SUPER! Da haben wir doch sehr ähnliche Projekte vor! Ich habe neulich einen e-C4 probe gefahren, der hatte wieder Drehregler für die Temperatur und das Gebläse. Viel praktischer!

    Man kann sich quasi an jedes Steuergerät hängen, welches über den Low Bus mit dem BSI verbunden ist.

    Und wenn das Gateway im BSI nicht gerade Nachrichten blockiert, sollten die auch durchkommen.

    Ich habe versucht, am Controller für die Parksensoren (hinten links, Klappe im Kofferraum) die Daten abzufangen und zu analysieren. Ich habe aber nicht den Eindruck, dass dort Datensätze für's Klima ankommen. Da müsste man doch trotzt der immensen Flut von Infos feststellen können, wenn eine Taste z.B. 3 x gedrückt wird, dass dann 3 x ein spezieller Datensatz ankommt. Ich denke also, das BSI leitet nicht alles durch.


    Ich hänge mal 1 Dateien an, die mit PcanView ist zu gross (3MB), aber die mit CANHacker erzeugte sollte gehen. Ich werde daraus nicht schlau.


    Für eine dauerhafte CAN-Verbindung muss man sowieso eine Connection unter dem Dashboard finden, denke ich.


    test2.trc.txt


    OK, habe die Datei gekürzt. Hier ist sie:


    test3mod.trc.txt

  • Ich habe versucht, am Controller für die Parksensoren (hinten links, Klappe im Kofferraum) die Daten abzufangen und zu analysieren. Ich habe aber nicht den Eindruck, dass dort Datensätze für's Klima ankommen.

    Schade, dann könnte es sein, dass das Gateway wohl nicht alles durchlässt.

    Gerade mal die Textdatei durchforstet.


    Man muss natürlich beachten, dass nicht überall eine permanente Kommunikation stattfindet, sondern bei manchen Steuergeräten nur nach Bestätigung/Anforderung.


    Hattest Du mal über Touch probiert, die Lüftung zu ändern?


    Das Klima Steuergerät hat, glaube ich, die 0x76D und 0x66D.

    Man schickt den Befehl an 0x76D und die Antwort kommt von 0x66D.


    Da müsste man doch trotzt der immensen Flut von Infos feststellen können, wenn eine Taste z.B. 3 x gedrückt wird, dass dann 3 x ein spezieller Datensatz ankommt.

    Programmtechnisch wäre das relativ leicht zu lösen, indem man auf eine bestimmte ID wartet und innerhalb eines gewissen Zeitraums den Datensatz zählt.

    Kommt drauf an, womit man programmiert.

    C++ nutze ich, da Arduino und andere Controller halt mit C++ programmiert werden.



    Bzgl. Anschluss, Am optimalsten wäre dann halt der Infotainment Anschluss, wenn es nicht über das Gateway funktioniert.

    Ist auch sicherer, als am OBD, weil man über OBD auch Fehler reinhauen kann, die sich ggf. bei der Fahrt negativ auswirken kann.




    Ich splitte das Thema mal, damit wir weiter diskutieren können, weil wir sonst zu sehr vom eigentlichen Thema abdriften.

  • Schade, dann könnte es sein, dass das Gateway wohl nicht alles durchlässt.

    Ja, scheint so zu sein. Es kommt definitiv kein Frame mit dem Header 0x76D oder so. Es hört bei 0x5XX auf. 0x7XX wäre ja dann unterste Priorität?

    Programmtechnisch wäre das relativ leicht zu lösen, indem man auf eine bestimmte ID wartet und innerhalb eines gewissen Zeitraums den Datensatz zählt.

    OK, mit CANHacker ist das leicht zu lösen. Habe ich eben am Schreibtisch geübt. Ein Arduino sendet mir laufend 4 gleichbleibende Frames. Gleiche Frames werden nur gezählt, erzeugen aber keinen neuen Line Feed. Auf Knopfdruck sendet der Arduino dann nur noch einen Frame, mit gleichem Header aber mit leicht geänderten Daten. Dieser Frame wird separat an 5. Stelle aufgelistet! So kann man unter einem regen Traffic seltene Frames prima herausfischen. C++ kann ich leider nicht, bin mit programmieren und mit dieser ganzen neuen Technik leider ein Greenhorn.

    Hattest Du mal über Touch probiert, die Lüftung zu ändern?

    Ja klar, aber no result! Mit obiger Methode hätte ich den entsprechend generierten Frame sehen müssen.


    Fazit: NAC ausbauen? Habe nochmals in das Kabelgewirr geschaut.... schlimm.


    PS: Verwende ein Interface von Peak mit galvanischer Trennung und würde nie ein bestimmtes Frame senden ohne dass ich dieses Frame schon im System selber zirkulieren sah. OBD schliesse ich aus verschiedenen Gründen aus.

  • Ja, scheint so zu sein. Es kommt definitiv kein Frame mit dem Header 0x76D oder so. Es hört bei 0x5XX auf. 0x7XX wäre ja dann unterste Priorität?

    Kommt immer drauf an, jedes Steuergerät hat ein TX und RX.

    Also eine Adresse, zu dieser man sendet und eine, von der man dann eine Antwort bekommt.


    C++ kann ich leider nicht, bin mit programmieren und mit dieser ganzen neuen Technik leider ein Greenhorn.

    Welchen Microcontroller möchtest Du denn eigentlich verwenden?

    Du musst ja auch die Can Frames senden können.

    Mit C++ kann ich hier ggf. weiterhelfen.


    Fazit: NAC ausbauen? Habe nochmals in das Kabelgewirr geschaut.... schlimm.

    Optimalerweise direkt am Quadlock, die Pins habe ich hier aufgelistet.


    PS: Verwende ein Interface von Peak mit galvanischer Trennung und würde nie ein bestimmtes Frame senden ohne dass ich dieses Frame schon im System selber zirkulieren sah. OBD schliesse ich aus verschiedenen Gründen aus.

    Eine falsche Konfiguration (Bitrate/Speed) des Can Adapters reicht auch schon aus, um die Motorkontrollleuchte zum klingeln zu bringen, habs getestet. XDD

  • Welchen Microcontroller möchtest Du denn eigentlich verwenden?

    Du musst ja auch die Can Frames senden können.

    Mit C++ kann ich hier ggf. weiterhelfen.

    Ich habe 2 Arduino Uno mit 2 Can-Shield hier. Ein passendes Programm habe ich gefunden und es erweitert, damit es verschiedene Frames senden kann. Soweit kam ich schon, aber für mehr komme ich sehr gerne auf deine Hilfe zurück. Kann mir aber auch ein Lehrbuch für C kaufen, dauert halt einfach lange bis ich es kapiert haben werde.....


    Der nächste Schritt ist also nun eine gute Anzapfstelle für das CAN zu erstellen, dann geht es weiter. Werde meinen Garagisten bitten, das NAC mit mir auszubauen, habe nicht die passenden Werkzeuge und will keinen Schaden anrichten.

    Ich melde mich wieder wenn ich weiter bin. Wird aber eine Weile dauern.


    Ganz vielen Dank für deine Hilfe, du hast mir bereits sehr geholfen!! Überhaupt eine tolle Sache, dein Forum! Thanks a lot!

  • Soweit kam ich schon, aber für mehr komme ich sehr gerne auf deine Hilfe zurück. Kann mir aber auch ein Lehrbuch für C kaufen, dauert halt einfach lange bis ich es kapiert haben werde.....

    Wem sagste das, ich bin seit ca. 2021 dran, da ich noch mehr Projekte mache, als nur Canbus. ^_^

    Macht einfach Spaß.


    Der nächste Schritt ist also nun eine gute Anzapfstelle für das CAN zu erstellen, dann geht es weiter. Werde meinen Garagisten bitten, das NAC mit mir auszubauen, habe nicht die passenden Werkzeuge und will keinen Schaden anrichten.

    Ich melde mich wieder wenn ich weiter bin. Wird aber eine Weile dauern.

    Eilt ja nicht. 8)

    Also wenn's für Deinen 308 II ist, dann gibt's von mir auch hier eine Anleitung.


    Ganz vielen Dank für deine Hilfe, du hast mir bereits sehr geholfen!! Überhaupt eine tolle Sache, dein Forum! Thanks a lot!

    Kein Problem.

    Ich hege ja die Hoffnung, dass mehr Leute herfinden, die Bock auf solchr Spielereien und Umbauten haben. :)

Jetzt mitmachen!

Hey! Es scheint, als ob Dir dieser Austausch gefällt, aber Du hast bisher noch kein Benutzerkonto erstellt. Mit einem Konto kannst Du über neue Antworten informiert werden, Foto's in unsere Galerie hochladen, unsere Tools nutzen, anderen mit einem „Gefällt mir“ danken oder selbst dabei unterstützen, anderen zu helfen. Gemeinsam können wir dazu beitragen, diese Community zu etwas größerem zu machen.