MicroKI - Digitale Zusatzanzeigen (Open Source Projekt)

Mein Algorithmus-Rechner bot mir zum Anklicken auch mal sowas an. Würde perfekt in das offene Fach oben auf dem Armaturenbrett passen. Vielleicht kann man den auch programmieren, so dass er einiges anzeigt, was man haben möchte:

 
Das ist so etwas ähnliches wie ScanGauge, allerdings aus China.

Um da zusätzliche Werte zu ermöglichen, müsste man an das Programm kommen.
Das halte ich für extrem schwierig.
Eine andere Idee wäre es, ein eigenes OpenSource Projekt zu starten, bei dem der Code offen ist und man mit verschiedenen Displays arbeiten könnte, vom Einbau im Armaturenbrett über eine Integration im Radio bis zum HeadUp-Display.
 
Eine andere Idee wäre es, ein eigenes OpenSource Projekt zu starten, bei dem der Code offen ist und man mit verschiedenen Displays arbeiten könnte, vom Einbau im Armaturenbrett über eine Integration im Radio bis zum HeadUp-Display.
Hä, der Themenstarter, siehe erster Beitrag, hat genau das gemacht. Es liegt alles auf Github und auf Anfrage hat er hier sogar promt einen aktuellen Schaltplan eingestellt.
Wahrscheinlich freut sich der Autor sogar sehr über weitere Mithilfen zur Weiterentwicklung.
 
Schade, Trotzdem Danke. Wasser- und Öltemperatur hab ich ja übers Radio.
 
Hä, der Themenstarter, siehe erster Beitrag, hat genau das gemacht. Es liegt alles auf Github und auf Anfrage hat er hier sogar promt einen aktuellen Schaltplan eingestellt.
Wahrscheinlich freut sich der Autor sogar sehr über weitere Mithilfen zur Weiterentwicklung.
Ich hatte das schon gelesen, aber nicht so verstanden, dass da ein größeres Display angesteuert werden kann, sondern eher Einzelanzeigen.
 
Geht theoretisch alles. Meine test Platine die aktuell verbaut ist hat sogar 3x CAN, kann also problemlos "übersetzen" und per RS232 z.B. ein Nextion Display ansteuern. Nur die wird kaum jemand nachbauen können, außer er kann wirklich fein löten.

Ist immer die Frage was man will.
 
Geht theoretisch alles. Meine test Platine die aktuell verbaut ist hat sogar 3x CAN, kann also problemlos "übersetzen" und per RS232 z.B. ein Nextion Display ansteuern. Nur die wird kaum jemand nachbauen können, außer er kann wirklich fein löten.

So ähnlich habe ich das auch verstanden.
Von siehe erster Beitrag, hat genau das gemacht. ist das noch eine ganze Ecke weg. 😉
 
Ich schmeiß mal meine aktuellen Gedanken dazu in den Raum.

Technisch wäre das absolut kein Problem. Als Controller kommt hier ein teensy 4.0 zum einsatz, welcher diverse Anschlüsse von Haus aus mit sich bringt.

Dazu zählen:
3x CAN Bus (1x sogar mit CAN FD)
3x SPI Bus
3x I2C Bus
14x Analoge Inputs
6x Serielle Ports (RS232)
8.png

Nicht alle dieser Ports sind gleichzeitig nutzbar, aber das ist kein Problem.

Als Version des MicoKIs nehmen wir für diesen Gedankengang nun mal eine Version, welche nur das nötigste mit sich bringt. Ich habe sie "P1.2 only CAN" genannt und wir haben hier folgende Anschlüsse:
1x CAN (z.B. für den Antriebs CAN vom T5.1)
1x Externe Batterie (z.B. 2. Batterie unterm Sitz)
6x Ausgang für kleine Displays kombiniert mit den Tastern zum weiter schalten.

6 Buttons sind direkt auf der Platine integriert, die externen sind nur optional und nicht nötig zum betreiben von dem ganzen.
(PS: Ja ich weiß, dass das MicroKI falsch geschrieben ist :D )
4.png
5.png
6.png
1.PNG
(unten drunter sind die Taster für die LCDs, davon habe ich gerade nur kein Bild)

Schauen wir uns hierzu mal die rein technische Seite an. genau genommen die Belegung am teensy Microcontroller (den gesamten Schaltplan habe ich auch mal angehangen)
P1_2 onyl CAN.PNG

Auch ohne viel technisches Verständniss erkennt man schnell, das kaum Pins genutzt werden. Das liegt an folgendem:

Die OLED Displays werden über den I2C Bus angesteuert und haben eine feste I2C Adresse. Man kann diese ändern, aber nicht unlimitiert. Von Haus aus stehen 2 verschiedene Adressen zur verfügung. Und um diese zu ändern, muss man auf der Platine von den LCDs etwas umlöten. Möchte man nun auf 2 verschiedenen Displays etwas unterschiedliches anzeigen lassen, benötigt jedes Display am selben Bus eine individuelle Adresse. Möchte man aber nun mehrere Geräte an einem Bus mit der selben Adresse nutzen, benötigt man etwas das sich "I2C Multiplexer" nennt.
In unserem Beispiel hier ein TCA9548APWR. Dieser kann bis zu 8 Geräte Multiplexen, 6 davon werden aber nur genutzt. Dadurch schaffen wir es, 6 OLED Displays separat mit nur einem I2C Bus an zu steuern ohne auch irgendwas an den Displays umlöten zu müssen.

6 weitere Eingänge am teensy werden für die Taster zum umschalten der angezeigten Informationen genutzt. Diese können aber mit beliebigen Eingängen am Microcontroller verbunden werden. Über die Widerstände liegt ein hier ein ständiges "HIGH" an und beim drücken auf den taster werden diese gegen Masse geschaltet und erzeugen so ein "LOW".

2 weitere Pins gehen für den CAN Bus drauf (Siehe CRX/CTX am teensy). hier hängt ein SN65HVD232QDR Tranceiver dran. Ansonsten benötigen wir noch 4 weitere Pins. 3x Analoge Eingänge zum messen der Hauptbatterie Spannung, Spannung der 2. batterie und als Eingang für den Öl Druck. Letzteres gibts auf dem CAN Bus vom T5 etc. einfach nicht. Der letzte Pin kann wieder frei gewählt werden, er gibt nur die +3,3V für die Displays frei.

Mit diesem Wissen im Hinterkopf schauen wir uns mal die Geschichte mit dem Radio sowie den "verschiedenen" Displays an.

Radio

Hier kommt es drauf an, was verbaut ist. Ich habe z.B. einen T5.1 mit einem Discover Media. Das Discover versteht jedoch die Nachrichten vom Bus nicht, somit muss übersetzt werden. Dafür benötigt es einen zweiten CAN Anschluss am MicroKI. So wie bei meinem MicroBCM, welches aktuell zum testen verbaut ist.
"CAN2" wird am teensy für die Abfrage des Motor CANs (Antriebs CAN) genutzt, bleiben uns also noch 2 weitere. Beide sind auch noch nicht belegt, welchem man nimmt hängt vom Layout der Platine ab. CAN FD brauchen wir eh nicht, also nehmen wir den, der zum Routen einfacher ist.

Andere Displays
Displays wie vom Scangauge machen meiner Meinung nach absolut keinen Sinn. Ich finde die einfach zu Oldschool und vom Design her "störend" für solch ein "modernes" Auto. Aber wie immer Geschmacksache, anderen gefällts.
Aber da das hier ja ein reines "Gedanken rein werfen" von mir ist, machen wir mal weiter.
Oldschool monochrom Displays fallen also raus, nur was dann nehmen? Richtig, moderne TFT LCDs. andere OLEDs wie das aktuell von mir verwendete nehme ich mal raus, viele davon funktionieren bereits am I2C Bus. somit muss man nur die Sachen für die neue Auflösung im Code anpassen und darauf achten, dass die Leistungsaufnahme der LCDs nicht zu groß wird. eventuell muss man die Spannungsversorgung größer dimmensionieren.

TFT Möglichkeit 1
z.B. Touch LCDs mit ILI9341 Treiber (KLICK MICH HART). Werden über SPI angesteuert, SPI verwenden wir bisher gar nicht vom teensy. Der 3. SPI Bus ist auch komplett unbelegt, kann also problemlos verwendet werden. Einzige Sache ist halt, die programmieren für solch ein Display ist schon nicht zu unterschätzen. Bei dieser Variante kommen nämlich alle Daten vom Microcontroller und müssen auch dementsprechend verarbeitet werden. Alle touch Befehle, alle Grafischen kleinigkeiten etc.
Aber durchaus möglich. Ich brauchs nicht, somit werde ich es auch erstmal nicht machen. Ist einfach brutal aufwendig und kostet sehr viel Zeit. Aber möglich und leicht Hardware technisch zu implementieren.

TFT Möglichkeit 2
Eine Variante welche recht schnell zum Ziel führt und tatsächlich gar nicht mal schlecht funktioniert. Ich habe damit schon mehrere Projekte umgesetzt.
Es ist die rede von Displays des Herstellers "Nextion". KLICK MICH EBENFALLS RICHTIG HART
Das besondere an diesen Displays ist, dass sie bereits eine eigene "Logik" enthalten. Mit hilfe des Nextion Editors kann man recht schnell und einfach eine grafische Oberfläche erzeugen, ganz wie es einem passt. Jedes Element erhält eine klar zugewiesene ID, welche man ansteuern kann. Die Daten empfängt das Display über Seriell (RS232). Man findet bei Youtube genügend Videos dazu GUCKST DU Z.B. HIER (Ist nur ein Beispiel, man bekommt die Oberflächen grafisch auch sehr ansprechend hin :D ). Das ganze natürlich mit Touch.
Hierfür bräuchten wir sogar nur einen Seriellen Port am teensy zu belegen (TX/RX), wovon definitiv noch genug frei sind. Simple, aber effektiv.



So, mein Kopf raucht, bin erstmal raus für heute. Und sorry für Rechtschreibfehler :uuups:
 

Anhänge

  • MicroKI_P1_2_only_can.pdf
    884,9 KB · Aufrufe: 20
Ich lasse die Bilder mal so wirken.
(Gehäuse habe ich voll verkackt, muss nochmal ein par Toleranzen überarbeiten xD)
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
 
UPDATE TIME

Ich hole euch mal auf den neusten Stand. Die Platine für die abgespeckte "nur CAN-Bus" Version funktioniert so weit. Ein par kleinigkeiten muss ich am Layout noch ändern, da ich mich im Footprint einer Diode vertan habe und Beschriftungen noch nicht passen. Aber grundsätzlich läufts.

Aber auch nicht auf anhieb. Die erste Platine habe ich ums verrecken nicht zum laufen gebracht, keine Ahnung wo der Fehler war. Am Ende diente sie nur noch als Briefbeschwerer und den Teensy habe ich ebenfalls gegrillt... Doch auch sowas gehört bei der Entwicklung halt dazu. Mache daraus auch kein Geheimnis.

Ansonsten funktioniert nun auch das Durchschalten über die Buttons usw.
Das Gehäuse muss ich auch nochmal überarbeiten, aber alles zu seiner Zeit :D

3.jpg
2.jpg
1.jpg
 
RESPEKT…!
Tolles Projekt.
Fahre zwar einen T6 und bin hier nur Zaungast, aber ich finde Deine Herangehensweise und Deinen Enthusiasmus spitze. Mach weiter damit!

Viele Grüße
Jan
 
Sehr cooles Projekt :)
Sowas brauche ich auch unbedingt in meinem T5. Wenn du fertig mit der Can only Platine bist, immer her damit :)
Dann würde ich mir auch mal eine bei JLCPCB bestellen, Code hattest du noch nicht veröffentlicht oder?
 
Sehr cooles Projekt :)
Sowas brauche ich auch unbedingt in meinem T5. Wenn du fertig mit der Can only Platine bist, immer her damit :)
Dann würde ich mir auch mal eine bei JLCPCB bestellen, Code hattest du noch nicht veröffentlicht oder?
Von der aktuellen Version ist noch nichts online. Weder Code, noch Platine. Ist auch ganz gut so, gab noch ein par Fehler. Muss an den Code auch nochmla ran, aktuell bleiben die Displays manchmal beim start hängen.

Ich bin außerdem gerade am testen, ob man den Teensy mit einem Arduino Nano ESP32 ersetzen kann. Der ESP32 unterstütz ebenfalls CAN und wäre 10€ günstiger. Klingt nicht viel, aber in Summe macht es schon einen Unterschied. Denn ganz günstig ist die Platine leider nicht...
 
was eine geile Idee, ich lese schon länger mit. Leider fehlt mir für so etwas immer die Zeit.
 
Von der aktuellen Version ist noch nichts online. Weder Code, noch Platine. Ist auch ganz gut so, gab noch ein par Fehler. Muss an den Code auch nochmla ran, aktuell bleiben die Displays manchmal beim start hängen.

Ich bin außerdem gerade am testen, ob man den Teensy mit einem Arduino Nano ESP32 ersetzen kann. Der ESP32 unterstütz ebenfalls CAN und wäre 10€ günstiger. Klingt nicht viel, aber in Summe macht es schon einen Unterschied. Denn ganz günstig ist die Platine leider nicht..
Könntest du vielleicht schon etwas von dem Code veröffentlichen? Ich würde mir auch selbst gerne etwas bauen mit einem kleinen Oled Display primär für die Öl Temperatur.
Würde mir dann etwas aus dem Teensy und einem Oled Display zusammen basteln. Will über Can Bus dann nur die Öl Temp auslesen.
Wäre super nett :)
Dann müsste ich nicht anfangen mir selbst alles zusammen zu suchen 🫠
Beste Grüße
Jan
 
Ich würde mir auch selbst gerne etwas bauen mit einem kleinen Oled Display primär für die Öl Temperatur.
Hallo Nachbar,
falls es nur um die "Anzeige eines einzelnen festgelegten Wert" geht, google und bau das doch selber ;)
 
Hallo Nachbar,
falls es nur um die "Anzeige eines einzelnen festgelegten Wert" geht, google und bau das doch selber ;)
Ich bin noch nicht ganz drin in dem Can Thema, aber ich glaube es ist schwierig erstmal herauszufinden was genau die Öl Temp ist, welcher wert. Wenn das schonmal jemand gemacht ist, übernehme ich das gerne :)
 
Könntest du vielleicht schon etwas von dem Code veröffentlichen? Ich würde mir auch selbst gerne etwas bauen mit einem kleinen Oled Display primär für die Öl Temperatur.
Würde mir dann etwas aus dem Teensy und einem Oled Display zusammen basteln. Will über Can Bus dann nur die Öl Temp auslesen.
Wäre super nett :)
Dann müsste ich nicht anfangen mir selbst alles zusammen zu suchen 🫠
Beste Grüße
Jan
Guckst du Anhang ;-)

Das ist der Code, welcher aktuell auf meinem Teensy mit I2C Multiplexer Prototypen läuft. Ungeschönt, nicht angepasst, unkommentiert und noch leicht vermüllt. Aber vielleicht hilft es dir ja :)
(Würde das so eigentlich niemals veröffentlichen, aber dir gehts ja nur ums Prinzip. Also kopier was auch immer du benötigst)

Die CAN Nachrichten generell hatte ich aber auch schon mal hier im Forum gepostet, der Rest ist eigentlich recht simpel.

BTW: Kannst aber auch z.B. nen ESP32 nehmen und den Code dementsprechend anpassen, ist DEUTLICH günstiger als nen Teensy. Den Teensy hatte ich auch ursprünglich nur geplant, da ich die Dinger sehr mag und mehr als ein CAN geplant war. Deswegen adaptiere ich das ganze auch aktuell auf nen ESP32, da es das ganze nochmal gut 10-20€ günstiger macht. Beim Teensy muss man nämlich auch aufpassen, da kann es zu Problemen kommen, wenn man ihn einfach nur extern mit 3,3V versorgt, ohne den internen Spannungswandler über "VIN" zu nutzen. Der Teensy benötigt nämliche eine Start Routine, welche im Zweifelsfall nicht richtig funktioniert, sobald man über extern 3,3V rein gibt. Siehe: Teensy40 - only 3.3V power supply?
Da hat Paul das erklärt
 

Anhänge

  • P1_2_CAN_ONLY_V_0_1.zip
    6,3 KB · Aufrufe: 5
Zurück
Oben