Aktuelle Zeit: Dienstag 16. Dezember 2025, 08:46 Erweiterte Suche

Touchscreen Bedienfeld

Hier geht es um den Antrieb, das Fahrwerk und Tuning des iQs

Moderatoren: baiertaler, SkinDiver

Touchscreen Bedienfeld

Beitragvon grilly » Montag 11. März 2019, 00:45

Hallo zusammen,

Los gehts mit meinem ersten Umbau überhaupt. Dieser Thread wird ein gemütlicher Build-Log werden.

Standard Disclaimer:
Extravagante DIY Lösungen sind mein Ding. Es geht sicher einfacher, aber das ist nicht der Punkt ;-)
Ich bin Informatiker und kein KFZ Mechaniker, Mechatroniker, Elektrotechniker oder sonst was vom Fach. Ich versuche so vorsichtig wie möglich und mit gesundem Menschenverstand zu agieren. Nachmachen auf eigene Gefahr, ich übernehme keine Haftung!

Motivation:
Als Teil eines ambitionierten Masterplans die Audio-Anlage meines iQ's auszubauen, ein Navi fest zu verbauen und diverse Fahrzeug Telemetrie darzustellen, bietet sich die Integration eines CarPCs an. Dann bauen wir uns eben einen "kleinen" Touchscreen ein, wie es Tesla schon vorlebt. Um den Schwierigkeitsgrad noch ein wenig zu steigern möchte ich keine Original-Bauteile meines Toyotas sichtbar bearbeiten oder beschädigen, sodass man das alles wieder zurück bauen könnte oder im Erfolgsfall die ganze Lösung in einen anderen iQ verpflanzen kann.

EPISODE 1 - Erstmal Shoppen! - Dezember 2018:
Ich habe mir einen halbwegs bezahlbaren externen 15.6" großen protablen Touchscreen Display bestellt der gerade noch ins Auto passen könnte: https://www.amazon.de/gp/product/B07HJ3XJ82
Auf dem ersten Blick macht der Monitor einen soliden Eindruck. Leider fiebt er etwas laut, wenn man die Helligkeit dimmt, aber damit kann man schon arbeiten. Der Plan ist vorerst einen Raspberry Pi als CarPC anzuschließen, quasi als Baustellen-Gerät. Das Bild um 90 Grad zu drehen war kein Problem und nach etwas Tüfteln mit Rotationsmatritzen machte auch die "Touchscreen-Maus" das was sie soll.

Wenn man das Ding mal an den vorgesehen Platz hin hält, wird offensichtlich dass die Klimaanlagensteuerung im Weg ist... Mist. Ein exzessives Brainstorming mit einem Kumpel förderte folgende Ideen zu Tage:
- Option A: Klimasteuerung nach unten setzen? Kein Platz.
- Option B: Klimasteuerung nach rechts setzten? Sieht doof aus und ist unpraktisch.
- Option C: Kabel der Klimasteuerung verlängern und das Panel irgenwo verstecken? Auch unpraktisch.
- Option D: Klimaanlage voreinstellen und das Gerät einfach abstecken? Funktioniert wahrscheinlich nicht.
- Option E: Klimaanlagensteuerung in Software emulieren und dann per Touchscreen bedienen? Challenge accepted!
grilly
Fahranfänger
Fahranfänger
 
Beiträge: 7
Registriert: Montag 21. Januar 2019, 16:45
Aktuelles Auto: iQ 1.0+

Re: Touchscreen Bedienfeld

Beitragvon grilly » Montag 11. März 2019, 02:26

Der Januar war zu kalt...

EPISODE 2 - Klima Linguistik 101 - Februar 2019:

Das Repair Manual das hier noch im Forum rumgeistert ist Gold wert! Damit war das Abnehemen des "Air Conditioning Control Panel" ein Kinderspiel und es offenbart sich der alles entscheidende Stecker "D5". Auch die Abdeckung mit dem Zigarettenanzünder ging leicht weg. Muss eh weg und dann hat man wenigstens auch vernünftig Platz.

Was läuft alles über Stecker D5?
- Pin 1: ILL+ (grau, Abblendlichtindikator)
- Pin 3: LIN1 (blau, LIN-Bus zur "AC Amplifier Assembly")
- Pin 4: GND (s/w, Erdung zur Batterie)
- Pin 5: IG+ (pink, 12V von der Batterie mit 10A Sicherung)
- Pin 8: TB (braun, Warnblinker)

Okay, über Pin 3 scheint die Kommunikation zwischen Panel und Klimaanlage zu laufen. Aber wer oder was ist LIN?

LIN (Local Interconnect Network) ist ein Bussystem um Kommunikation zwischen zwei oder mehr Bauteilen zu ermöglichen, kurzum der billige und etwas langsamere Bruder vom CAN Bussystem. Da das eine standardisierte Schnittstelle ist gibt es auch gute Dokumentation, die beschreibt nach welchen Regeln der Datenaustausch abzulaufen hat. Der Standard "ISO 17987" ist hier ganz gut beschrieben. Effektiv gibt es einen Master, der die Kommunikation diktiert und die Slaves nacheinander abfragt.

Laut LIN Protokollspezifikation sieht ein Datenpaket so aus:
- 1 Byte "Sync Pattern", um den Anfang einer Nachricht zu kennzeichnen, ist immer 0x55.
- 1 Byte "Identifier", um den Empfänger der Nachricht zu adressieren (6 Bit ID + 2 Bit Parity)
- 1-8 Byte "Data" <-- Diesen Teil gilt es zu entschlüsseln!
- 1 Byte "Checksum", um die Integrität der Nachricht zu gewährleisten

Jetzt müssen wir nur noch die aktive Kommunikation zwischen Panel und Klimaanlage im laufenden Betrieb abhören. Dafür habe ich erstmal alle Kontakte von Stecker D5 ausgepinnt und mal ein extra Kabel angelötet. Anschließend wurde ein Oszilloskop angesteckt und schon sieht man die ersten Signale mit einem Low Level von ca. 0,8-1,0 Volt und einem High Level von ca. 11,3-11,4 Volt. Wenn man jetzt mit 19,2kBaud zuhört und das Sync Pattern sucht, kann man die binären Nullen und Einsen ablesen. Stark!

Nächster Schritt: Kommunikation über längere Zeiträume aufzeichnen und analysieren was da geplappert wird.

Eine Notiz am Rande: Laut StVZO §53a Absatz 4 muss der Warnblinker weiterhin ein dedizierter Schalter bleiben und darf nicht (ausschließlich) über den Touchscreen bedient werden. Da kam Tesla auch nicht dran vorbei...
grilly
Fahranfänger
Fahranfänger
 
Beiträge: 7
Registriert: Montag 21. Januar 2019, 16:45
Aktuelles Auto: iQ 1.0+

Re: Touchscreen Bedienfeld

Beitragvon grilly » Montag 11. März 2019, 03:32

Langsam wirds ein wenig krass... naja egal.

EPISODE 3 - Klima Translate - März 2019:
Nachdem LIN ein relativ weit verbreitetes Bussystem ist, bin ich nicht der erste, der sich daran versucht LIN zu reverse engineeren. Netterweise hat ein User einen elegant einfachen Ansatz für seinen Volvo V50 auf GitHub dokumentiert (click). Den Code muss man lediglich ein wenig anpassen.

Die Zutaten sind überschaubar:
- 1x Arduino Uno
- 1x MCP2004 "LIN Tranciever" (Datenblatt)

Jetzt kann man sich mit Laptop und Kaffee bei bestem Regenwetter ins Auto setzen und loshacken...
War einfacher als gedacht: Effektiv gibt es in diesem System nur zwei verschiedene Nachrichtenarten. Im Folgenden wird das führende SyncByte 0x55 weggelassen, das letzte Byte ist immer die Checksumme.

Nachricht 1: Statusbericht
Beispiel: B1-00-00-11-00-38-F0-00-00-C5 (alles aus, Lüftermodus "Front")
Byte 0x0: Identifier
Byte 0x2: Gebläsegeschwindigkeit
- 0x00 = Gebläse aus
- 0x01 = Stufe 1 (min)
- [...]
- 0x06 = Stufe 6
- 0x0A = Stufe 7 (max)
- 0x2F = Klimaautomatik an
Byte 0x3: Gebläsemodus
- 0x1* = interne Luftzirkulation
- 0x2* = externe Luftzirkulation
- 0x9* = Klimaanlage an
- 0x*1 = Frontal
- 0x*2 = Frontal + Fußraum
- 0x*3 = Fußraum
- 0x*4 = Fußraum + Windschutzscheibe
- 0x*9 = Windschutzscheibe
Byte 0x4: Heckscheibenheizung
- 0x00 = aus
- 0x40 = an
Byte 0x5: Temperatur
- 0x00 = low
- 0x01 = 16.0°C
- [...] (0.5°C Schritte)
- 0x1D = 30.0°C
- 0x37 = high
- 0x38 = off

Nachricht 2: Event-Message / Knopfdruck
39-10-30-10-00-10-00-00-00-9F <-- Kein Event
39-10-31-10-00-10-00-00-00-9E <-- Gebläsegeschwindigkeit +
39-10-2F-10-00-10-00-00-00-A0 <-- Gebläsegeschwindigkeit -
39-10-30-11-00-10-00-00-00-9E <-- Gebläsemodus +
39-10-30-0F-00-10-00-00-00-A0 <-- Gebläsemodus -
39-10-30-10-00-11-00-00-00-9E <-- Temperatur +
39-10-30-10-00-0F-00-00-00-A0 <-- Temperatur -
39-10-30-10-40-10-00-00-00-5F <-- Heckscheibenheizung an/aus
39-10-30-10-80-10-00-00-00-1F <-- Gebläsemodus Windschutzscheibe an/aus
39-10-30-10-00-10-40-00-00-5F <-- Klimaanlage an/aus
39-10-30-10-00-D0-00-00-00-DE <-- Innenzirkulierung an/aus
39-12-30-10-00-10-00-00-00-9D <-- Gebläse aus
39-18-30-10-00-10-00-00-00-97 <-- Klimaautomatik an

Aktuell habe ich noch nicht ganz raus wie die Checksumme berechnet wird und wie die Master/Slave Rollenverteilung ist, aber der März ist ja noch nicht vorbei...
grilly
Fahranfänger
Fahranfänger
 
Beiträge: 7
Registriert: Montag 21. Januar 2019, 16:45
Aktuelles Auto: iQ 1.0+

Re: Touchscreen Bedienfeld

Beitragvon baiertaler » Montag 11. März 2019, 08:08

Wow, da hat jemand sich sehr viel Gedanken gemacht :dieu:
Da folgen bestimmt noch Bilder vom Einbau und evtl. der Bedienung :)
Viel Erfolg
greez Baiertaler (Bild callto://gerds_baiertaler )
_________________________________________________
.-= seit 5.11.2009 iQ+ 1.0 || mysticschwarz || Navi TNS510 =-.
Benutzeravatar
baiertaler
iQ Legende
iQ Legende
 
Beiträge: 5228
Bilder: 103
Registriert: Montag 19. Oktober 2009, 22:12
Wohnort: Baiertal bei Heidelberg / RNK
Aktuelles Auto: Toyota iQ+ 1.0l (Schalt), schwarz, Navi TNS510, Subwoofer Pioneer TS-WX22A (Ez: 5.11.09) | Jeep Renegade 1.4 Schalter, schwarz,Leder (Ez:2015)



Zurück zu iQ Technik

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste