Climatronic mit grafischen OLED-Displays ausstatten (07.02. beide Displays laufen)

    • Climatronic mit grafischen OLED-Displays ausstatten (07.02. beide Displays laufen)

      Unsere Climatronic soll schöner werden

      Idee:
      Die PQ35-Climatronic (Golf 5, Touran 1T) hatte noch schöne, grafische Displays zur Temperaturanzeige.
      Nach der ziemlich hässlichen Climatronic im Golf 6 ist VW dann wieder zurück zu Drehreglern und Displays.
      Leider aber nur mit 7-Segment-LCDs. Zwar optisch in weiß schon sehr hübsch, aber es war halt nicht die Schriftart wie im KI und Radio.

      Also müssen grafische Displays rein. OLED bietet sich da absolut an. Arduino bietet die perfekte Plattform für schnelle Erfolge und dazu recht günstig.

      Also schnell mal was bestellt:
      1. Arduino Uno zum basteln (war vorhanden, Preise variieren)
      2. MCP2515 CAN-Shield (~2€)
      3. 2x 0,96" weißes OLED-Display (~2€)
      Dazu dann ein Climatronic-Bedienteil für den Schreibtisch (Danke an MrAnderson für das schnelle & günstige Angebot).

      Umsetzung:
      Erste Idee: Platine nach Multiplexer für die LCDs absuchen, die abgreifen und dekodieren auf die Klarzahlen. Blöde Idee. Erstmal keine direkten Multiplexer gefunden, es scheint direkt über den Hauptprozessor zu gehen und dann wäre es ziemlicher Aufwand (syncen auf den Multiplexer, mitlesen und Zahlen daraus zusammen bauen...)

      Zweite Idee: Die Wunschtemperatur wird im Radio angezeigt! Also muss sie aufm CAN liegen. Also CAN-Interface ran, an den Reglern gedreht und den Trace durchsucht, um auf die Zahlen zu kommen.

      Will nicht ausufern, hab mehrere Abende/Stunden gebraucht um den CAN-Shield richtig anzusteuern, aber dann klappte es.
      Der Rest ist Fleißarbeit die Hex-Werte umzurechnen und auf dem Display darzustellen.
      Wer mehr zur Vorgehensweise wissen möchte, darf gerne fragen ;)

      Schreibtisch-Aufbau:
      IMG20210103221049.jpg

      Die CAN-Nachricht bei Änderung wird ohne Verzögerung sofort gesendet. Deswegen gibt es keine merkliche Verzögerung beim drehen. Weder im Radio (vorher getestet) noch jetzt im Arduino.

      Hab das mal gefilmt und als GIF gemacht (doppelte Geschwindigkeit, deswegen so "zittrig"):
      20210103_223823.gif

      Wie gehts weiter?

      • Font aus Radio/KI nachbauen, reinladen zur Anzeige
      • kleinere Displays besorgen (0,64" aus China. 0,96" passt nicht ins CT-Gehäuse)
      • Animation einbauen, das die Zahlen von oben nach unten scrollen bei Änderung, wie beim Tageskilometer-Zähler
      • Start-Animation eines VW-Logos bei Öffnung der Tür, bis die Climatronic eingeschaltet wird
      • vielleicht noch mit einem Vollfarb-Display probieren
      Werde hier weiter berichten. Fragen und Ideen immer gern.

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

      ANZEIGE

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von de50ae ()

    • ALTER... wie geil ist das denn :D :D :thumbsup: :thumbsup:

      In der Tat, jetzt wo du es sagst, der 1T2 hat eine andere Darstellung. Naja, ob schöner oder nicht, das sein mal dahingestellt.

      Die Idee finde ich super geil - das ist ein absolut cooles Projekt und die Ideen, die du hast, finde ich genial.
      Freu mich auf deine weiteren Fortschritte.

      Das Projekt bekommt jetzt schon von mir 5 Daumen hoch 8)
      :daumendrück:
    • Sehr viel schöner ist es beim PQ35 nicht, da es auch sehr grobpixelig ist, dazu ein LCD mit Hintergrundbeleuchtung.

      Das OLED ist viel feiner aufgelöst. Dieses hat 128x64 Pixel. Entsprechend fein kann man noch die Schrift auflösen.
      Die erste Anzeige oben ist mit der Standardschrift, die auch grob aufgelöst ist.

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

    • MrAnderson schrieb:

      Ich freu mich drauf, wenn du dann die ersten neuen Grafiken im OLED Display abfährst :thumbup:
      Da geht es jetzt erstmal weiter.
      CAN läuft.
      Als nächstes ein zweites Display ansteuern.
      Die laufen über I²C mit festen Adressen. Zum Glück scheint man bei den China-Displays zumindest eine alternative Adresse einstellen zu können.

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

    • Wie sieht denn eigentlich das "OFF" in deinem Display aus? Auf dem original sieht es ja immer bescheiden aus (durch die kleine Zahl nach dem Komma). Da kann man bestimmt auch was besseres machen oder sogar auf deutsch ^^

      meiner: Golf 7 Variant 1.5 TSI 110kw/150PS DSG Bj: Okt 18 Farbe: Weiß
      von meiner Freundin: Golf 7 1.2 TSI Schaltgetrieb Bj: 2014 Farbe: Schwarz

    • Masterottel schrieb:

      Wie sieht denn eigentlich das "OFF" in deinem Display aus? Auf dem original sieht es ja immer bescheiden aus (durch die kleine Zahl nach dem Komma). Da kann man bestimmt auch was besseres machen oder sogar auf deutsch ^^
      Ausgezeichnete Frage, daran hab ich noch gar nicht gedacht!

      Muss ich erstmal schauen, wie das OFF aufm CAN übertragen wird, um das umzusetzen.

      Wie gesagt: aktuell schicke ich die Werte sturr mit na Standard-Bibliothek mit integriertem Schriftsatz an das Display.
      Da muss ich jetzt schauen, wie ich die Bibliothek auf meine Wünsche umbaue oder komplett von Hand die Darstellung mache...

      edit:
      Hab auch die Idee LO durch eine Schneeflocke und HI durch ein Feuer zu ersetzen...

      Also was der Arduino dann ausgibt, da gibt es kaum Grenzen (außer Auflösung und Speicher).

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

    • :thumbup:
      Du musst ja Langeweile haben... :D

      Soll das ganze einfarbig bleiben oder machst du die Anzeige noch bunt? So blau - gelb/orange - rot, wie bei den Wasserhähnen.
      :blumen:
      ANZEIGE
    • So, mal ein kleines Update, da es auch hier weiter geht, wenn ich nicht gerade an den anderen Projekten bin.

      • Lib-Wechsel von der Adafruit_SSD1306 auf die U8g2, weil mit zwei Displays der RAM knapp wird
      • Optimierungen: es wird jetzt der Interrupt des MCP2515 genutzt, damit der Arduino schneller läuft und keine Informationen verloren gehen (vorher gab's Probleme, wenn man schnell die Temperatur änderte und es war einfach nicht "schön" programmiert, sondern ja nur der erste Versuch)
      • Mit U8g2 dann auch mal eine Helvetica-Font genommen, die ähnlich der VW-Schriftart ist
      • Jetzt mit zwei getrennten Displays
      • Off funzt und bei On kommen auch die alten Werte
      Mittlerweile sind auch die 0,42" Displays aus China gekommen. Die sind aber etwas kleiner als die originalen und deswegen hab ich nochmal 0,66" geordert, in der Hoffnung, dass die dann optimal passen und auch ohne Anpassungen ins Gehäuse gehen.

      Problem aktuell ist noch, dass der MCP2515 manchmal beim booten auf Error geht. Hab zwar eine Routine, die ihn dann nochmal neu startet und dann klappt es auch. Trotzdem interessiert mich, was ihn da stört.

      IMG_20210207_200747.jpg

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

    • Gefällt mir. Vor allem steht dann nicht mehr OFF sondern Off.
      Vergiss nicht den Text mittig auszurichten. :)

      Codierungen + Nachrüstungen + Umbauten im Rhein/Main Gebiet (+ remote deutschlandweit) möglich
      Erstellen von Rückleuchten Adapterkabel (einfache Montage ohne Nutzung von BCM)
      Navigation/Radio Freischaltungen (Aktivieren von AppConnect / Sprachsteuerung / Patch / VIM / uvm ...)

    • Hallo Andreas

      Aus meiner Sicht ist es immer wieder beeindruckend über welches Know-how manche User hier verfügen, wie ausgefallen und kreativ die Ideen sind und mit welcher Besessenheit das Entstehen möglich gemacht wird.
      Von deinem Projekt bin ich auch wieder tief beeindruckt!
      Fabelhaft!

      Ein großes Kompliment an dich und auch alle anderen Technik-Enthusiasten hier.

      Chapeau.

      Gruß
      Rolf

      Sag doch einfach, wir fahren Golf!

    • Vielen Dank, @crankdoc
      Jeder hat halt so seine Hobbies :P
      Ich bin auch immer offen für Ideen, vielleicht sollte man dazu mal ein Labber-Thread machen.

      Hit. schrieb:

      Gefällt mir. Vor allem steht dann nicht mehr OFF sondern Off.
      Vergiss nicht den Text mittig auszurichten. :)
      Jupp, den Cursor anzupassen, wo der Text aufm Display steht, ist ne kleine Sache.

      Das wird dann individuell angepasst, wenn die Displays eingebaut sind.
      Als nächstes werde ich mit den Grafik-Routinen experimentieren, das die Zahlen durchlaufen wie bei der KM-Anzeige im Tacho.

      Von den farbigen TFT-Displays bin ich noch nicht so überzeugt. Deswegen erstmal die OLEDs realisieren und dann weitersehen.

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

    • de50ae schrieb:


      • Lib-Wechsel von der Adafruit_SSD1306 auf die U8g2, weil mit zwei Displays der RAM knapp wird

      Problem aktuell ist noch, dass der MCP2515 manchmal beim booten auf Error geht. Hab zwar eine Routine, die ihn dann nochmal neu startet und dann klappt es auch. Trotzdem interessiert mich, was ihn da stört.
      Das ist ja mal ein Interessantes Projekt. Ich habe auch schon viele Projekte beruflich als auch privat entwickelt (Hard-u.Software).
      Die Adafruit Lib ist so ganz nett aber lange nicht so flexibel wie die U8g2 vom Oli. Mit dieser arbeite ich privat auch gern, allerdings ist beim UNO auch schnell die Luft raus (Speicher). Kennst Du die Teensy´s? Die machen richtig Dampf und haben Speicher bis zum abwinken.

      Zu dem MCP2515: Ich vermute eine zu langsame Initialisierung oder ein zu langsames hoch laufen, sodass er schon etwas empfängt während er noch beim initialisieren ist.

      Welche MCP2515 Lib verwendest Du?

      EDIT: Da fällt mir auf, der MCP läuft auf SPI ... wie hoch ist der SPi Speed? Bei volldampf und den langen Leitungen könnte das auch ein Grund sein warum er auf Error geht.

      Gruß
      Jens

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von JNE () aus folgendem Grund: Nachtrag zum MCP2515

    • JNE schrieb:

      Das ist ja mal ein Interessantes Projekt. Ich habe auch schon viele Projekte beruflich als auch privat entwickelt (Hard-u.Software).
      Die Adafruit Lib ist so ganz nett aber lange nicht so flexibel wie die U8g2 vom Oli. Mit dieser arbeite ich privat auch gern, allerdings ist beim UNO auch schnell die Luft raus (Speicher). Kennst Du die Teensy´s? Die machen richtig Dampf und haben Speicher bis zum abwinken.


      Die Adafruit liefert schnelle Ergebnisse, aber ist dann doch sehr speicherhungrig. Die U8g2 ist da wirklich sehr universell, sparsam und hat ein paar nette Funktionen, die ich benötige. Hätte von Anfang an auf die Lib setzen sollen, naja nun hab ichs einmal geändert.

      Teensy kenne ich noch nicht. Bastel auf dem Uno, weil ich davon zwei rumliegen habe und mit denen mal was anfangen wollte. Wenn es ins Auto geht, muss eh was kompakteres her.


      JNE schrieb:

      Zu dem MCP2515: Ich vermute eine zu langsame Initialisierung oder ein zu langsames hoch laufen, sodass er schon etwas empfängt während er noch beim initialisieren ist.

      Welche MCP2515 Lib verwendest Du?


      Das vermute ich auch. Ich nehme die arduino-mcp2515. Hatte ihn schonmal nach dem Initialisieren per delay() ausgebremst, war aber keine Abhilfe.
      Da ich aufm Schreibtisch den MCP auch nutze, die Kl.15 an die Climatronic zu senden und vorher der CAN tot ist, sollte er nix empfangen, bis der loop-Teil läuft.

      Also was ich über getInterrupts zurück bekomme, kommt Bit 7 des CANINTF-Registers. Nach Datenblatt:
      bit 7 MERRF: Message Error Interrupt Flag bit
      1 = Interrupt is pending (must be cleared by MCU to reset the interrupt condition)


      Kommt aber halt, ich sag mal circa 50/50. Häufiger, wenn ich den Sketch neu hochlade als wenn ich einfach nur Spannung auf den Arduino gebe. Nach dem ersten Reset des Arduino oder eines mcp.reset über meine Routine aber nie wieder.
      Vielleicht hilft ein delay() vor der Initialisierung?


      JNE schrieb:


      EDIT: Da fällt mir auf, der MCP läuft auf SPI ... wie hoch ist der SPi Speed? Bei volldampf und den langen Leitungen könnte das auch ein Grund sein warum er auf Error geht.

      Gruß
      Jens


      Gerade nachgeschaut, die Lib setzt den SPI-Clock auf 10Mhz. Maximum vom MCP.

      VW Golf 7 Variant Highline 2.0TDI DSG (gebaut am 19.03.2015)

    • de50ae schrieb:

      Kommt aber halt, ich sag mal circa 50/50. Häufiger, wenn ich den Sketch neu hochlade als wenn ich einfach nur Spannung auf den Arduino gebe. Nach dem ersten Reset des Arduino oder eines mcp.reset über meine Routine aber nie wieder.
      Vielleicht hilft ein delay() vor der Initialisierung?

      Da ich aufm Schreibtisch den MCP auch nutze, die Kl.15 an die Climatronic zu senden und vorher der CAN tot ist, sollte er nix empfangen, bis der loop-Teil läuft.


      Gerade nachgeschaut, die Lib setzt den SPI-Clock auf 10Mhz. Maximum vom MCP.
      Hast Du mal probiert den USB Stecker nicht gesteckt zu lassen und nur mit Fremdspannung zu speisen?
      Der Arduino macht nämlich gern einen Doppelreset.
      Das Datenblatt des MCP muss ich mir mal näher anschauen. Der Chip ist aber auch angekündigt.

      Ich würde als erstes die SPI Clock runtersetzen. 10MHz sind für das lange Kabel zuviel. Wenn alles später auf einer Platine ist kannst Du ihn wieder hochsetzen. Solche SPI Probleme hatte ich damals auch mit der Ansteuerung eines Profibus ICs.

      Wenn Du die Platinenentwicklung später mal nicht selber machen willst oder kannst darfst Du Dich gern bei mir melden.

      LCDs müsste ich auch noch in 0,66 haben, bin mir aber grade nicht sicher ob die für I2C sind.

      Gruß
      Jens

      Offtopic: Wie macht man denn mehrfach Zitate? ;(