Forum: Mikrocontroller und Digitale Elektronik KFZ Datenlogger, Serielle LCD Anzeige - Werte umrechnen und anderes Display nutzen


von Philipp K. (pippo_92)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

erstmal hoffe ich das ich im richtigen Unterforum gelandet, da ich noch 
nicht so richtig weiß in welche Richtung das läuft, dachte ich, passt 
Projekte ganz gut.

Worum geht es?
Ich habe in meinem Auto (Audi S2 Bj. 93) einen Zeitronix ZT-2 
Datenlogger.
An diesen können mehrere Anzeigen angeschlossen werden mit den üblichen 
Telefonkabeln mit RJ11 Stecker.

Ich habe nun eine Anzeige (Bilder im Anhang) die 1. zu groß ist um sie 
schön zu verbauen und 2. mir einen Wert ausgibt der noch weiter 
umgerechnet werden müsste, undzwar "User" (auf dem Bild aktuell 0,50).
Die beiden oberen Werte "Lambda" und "AFR" bräuchte ich gar nicht, die 
werden sowieso auf einer zweiten runden Anzeige angezeigt.

Was soll am Ende raus kommen?
Ziel wäre es, nur die unteren beiden Werte "User" und "EGT" auf einer 
Anzeige angezeigt zu bekommen, sowie den Wert "User" umzurechnen mit 
einem gewissen Faktor.
Am besten wäre die beiden Werte untereinander, oder zur Not alle 4 
untereinander, also evtl ein 2x10 oder 4x10 Display, anstatt 2x20.

Warum bin ich hier?
..ganz einfach, ich bin zwar beruflich Techniker für 
Automatisierung/Mechatronik, habe jedoch kaum Berührungspunkte mit 
Mikrocontrollern, LCD Anzeigen, und deren Programmierung.
Bevor ich mich jetzt in das Projekt stürze und einen Haufen Zeit 
verbrate, wollte ich bei Leuten die in der Materie sind nachfragen ob so 
etwas sinnvoll machbar ist.

Ich hatte auch schon in Erwägung gezogen mit einem Arduino oder 
Raspberry PI zu arbeiten, aber mir fehlt einfach die Erfahrung und das 
Wissen um abschätzen zu können ob sowas machbar ist.
Ich würde mich gerne hautpsächlich mit Kaufteilen arbeiten, einfach um 
den Aufwand gering zu halten.

Ich wäre froh um einige Einschätzungen; Ideen und Tipps zu dem Projekt.

Hier folgen nun die Bilder:

Display:
https://abload.de/image.php?img=20200322_135954vmkvq.jpg

Platinen:
https://abload.de/image.php?img=20200322_140130vakrd.jpg
https://abload.de/image.php?img=20200322_1402246pkgm.jpg
https://abload.de/image.php?img=20200322_140330s8k3f.jpg
https://abload.de/image.php?img=20200322_140338zykhm.jpg
https://abload.de/image.php?img=20200322_140341x6ko1.jpg
https://abload.de/image.php?img=20200322_140350fjjq5.jpg



Vielen Dank und MfG
Philipp

: Verschoben durch Moderator
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Philipp K. schrieb:
> dachte ich, passt Projekte ganz gut

Nein, passt gar nicht. Das ist für die Vorstellung fertiger Projekte, 
vorzugsweise in einer Form, in der das anderen auch was nutzt (also mit 
Bauplänen, Software etc.).

Hab's verschoben.

von pegel (Gast)


Lesenswert?

Das ist ja offenbar eine reine "dumme" Anzeige, ohne Rückmeldung.

Der MAX232 bedeutet, das ein echter RS232 Pegel vorliegt, also nicht 
TTL!

Ich bin eigentlich nicht für Arduino, aber in diesem Fall dürfte das die 
einfachst Lösung sein.

Also such dir ein schönes Display aus, dazu Ardu-Mini und einen 
RS232-TTL Pegelwandler.

Mit einem Einsteiger youtube Video zur seriellen Schnittstelle dürfte 
das keine grosse Sache sein, auch wenn es dein erstes Mal ist.

von pegel (Gast)


Lesenswert?

Ach so, übel wäre natürlich, wenn die Daten verschlüsselt übermittelt 
werden, was ich allerdings nicht unbedingt glaube.

Autoschrauber haben doch ein Notebook mit echter serieller 
Schnittstelle, oder?

Damit kannst Du erste einmal lauschen was so alles an Daten ankommt.

von Philipp K. (pippo_92)


Lesenswert?

@dl8dtl:
Sorry fürs auswählen des falschen Unterforums, jetzt hab ich auch die 
Beschreibung des Unterforums gesehen....
Vielen Dank fürs verschieben!

@pegel:
Korrekt, handelt sich um eine reine Anzeige, es ist zwar ein Druckknopf 
vorhanden mit dem man den Maximalwert und die angezeigten Werte 
durschschalten kann, aber das wird wohl rein auf dem Display geschehen.

Das klingt doch schon mal richtig gut, vielen Dank für die Top Infos! Da 
wäre ich so schnell von allein nicht drauf gekommen.

Dann wird wohl der Plan sein ein Arduino Mini + ca. 3" Display mit SPI 
Schnittstelle zu nehmen. Macht es in der Programmierung und Ansteuerung 
einen großen Unterschied im Aufwand ob ich ein z.B. 4x10 LCD Display 
verwende oder ein z.B. 2,8" TFT Display?

Zum Thema Laptop: Richtig erkannt. Ein Laptop mit serieller 
Schnittstelle ist vorhanden. Komme allerdings erst wieder in 1-2 Wochen 
zu dem Auto, werde dann aber mal versuchen den Traffic mitzuschneiden.
Gibt es da ein Programm was besonders zu empfehlen ist?

Zum Thema verschlüsselte Daten:
Ich vermute auch eher nicht das die Daten verschlüsselt sind,
habe heute zufällig ein Projekt auf Github für eine Android App 
gefunden,
die per RS232 - Bluetooth Adapter die Daten auf genau meinem Datenlogger 
(Zeitronix Z-2) ausliest und auf dem Handy anzeigen kann.

Hier mal der Link dazu: https://github.com/bnj04/Sub?files=1

Ich habe zwar keinerlei Erfahrung mit der Android App Programmierung,
aber eventuell kann ich dort etwas über die Daten auf dem Bus 
herausfinden.
Da auf dem Bus ja mehrere Sensorsignale laufen, muss es ja Identifier 
geben, mit denen ich die einzelnen Sensorsignale isolieren kann, und so 
einen Wert einem Sensor zuordnen kann.

von pegel (Gast)


Lesenswert?

Philipp K. schrieb:
> Macht es in der Programmierung und Ansteuerung
> einen großen Unterschied im Aufwand ob ich ein z.B. 4x10 LCD Display
> verwende oder ein z.B. 2,8" TFT Display?

Bei Ardu* musst Du dazu nur eine lib mehr einbinden, aber das wissen 
andere besser als ich. Bzw. eines der vielen yt Videos erklärt das.

Philipp K. schrieb:
> Traffic mitzuschneiden.
> Gibt es da ein Programm was besonders zu empfehlen ist?

Das kann jedes Terminal Programm. Es gibt sogar eins in der Ardu* IDE.
Musst nur die Baudrate herausfinden: 9600, 115200 .. 7 oder 8 bit usw.

Philipp K. schrieb:
> Da auf dem Bus ja mehrere Sensorsignale laufen, muss es ja Identifier
> geben, mit denen ich die einzelnen Sensorsignale isolieren kann, und so
> einen Wert einem Sensor zuordnen kann.

So hat der das für seine Android App sicher auch gemacht.

von Philipp K. (pippo_92)


Angehängte Dateien:

Lesenswert?

Ich bin heute mal ans Auto gekommen, und konnte mit HTerm bisschen was 
aufnehmen, ich hänge mal 3 Bilder mit ran.

Auf 2 Bildern habe ich die Original Anzeige mit versch. Werten bei 
"User" aufgenommen, die anderen Werte konnte ich leider momentan nicht 
so einfach verändern.(Hier hat allerdings die Darstellung mit HTerm noch 
nicht so gut geklappt...)

Auf dem 3. Bild habe ich in Rot die Werte für "User" markiert. Ich habe 
den Drucksensor mit Druck beaufschlagt, und es hat sich nur dieses byte 
geändert.
Ich habe in HTerm alle "14 Character" eine neue Zeile anfangen lassen, 
so sind die Werte nicht mehr hin udn her gesprungen, und ich vermute, 
das entspricht einer kompletten Nachrichtenlänge?

Ich habe hier noch ein ähnliches Projekt gefunden:
http://www.css-networks.com/2017/11/arduino-zeitronix-reader-logger/

Ich dachte ich finde dort etwas raus, allerdings kann ich mir nicht 
wirklich erschließen wie nun die 3 Start byte aussehen sollen.

Weiterhin habe ich das hier gefunden:
1
 
2
package com.alpinfra.subtunoid.comm;
3
4
import java.io.IOException;
5
import java.io.InputStream;
6
import java.util.ArrayList;
7
import java.util.List;
8
import java.util.TimerTask;
9
import android.content.Context;
10
import android.os.Handler;
11
import android.util.Log;
12
13
public class BTCommZeitronix extends CustomBTComm
14
{
15
  private static final String TAG = "Subtunoid-BTCommZeitronix";
16
  // MAC-address of Bluetooth module
17
  public static String addressBTZeitronix = "00:01:95:16:AB:94" ;  
18
  public static int rate = 100; 
19
    
20
  public double AFRv;
21
  public int EGTv;
22
  public double Boostv;
23
24
  public BTCommZeitronix(Context context, Handler myHandler, Runnable myRunnable)
25
  {
26
    super(addressBTZeitronix, rate, context, myHandler, myRunnable);
27
    Log.d(TAG, "...onCreation...");
28
    tt = new TimerTask() 
29
    {      
30
      @Override
31
      public void run() 
32
      {        
33
        List<Byte> b = readdata(inStream); 
34
        if (b.size() > 10)
35
        {
36
          EGTv = asUnsignedInt(b.get(5)) * 256 + asUnsignedInt(b.get(4));
37
          AFRv = 1.0 * asUnsignedInt(b.get(3)) / 10.0;
38
          
39
          // MAP = (MAP(low) + MAP(high) * 256) / 10 Units inHg vacuum/PSI boost
40
          if ((b.get(9) & 128) == 128)
41
          {            
42
            //byte t = ;
43
            Boostv = 0.0 - (asUnsignedInt((byte) (b.get(9) & 0x7f)) * 256.0) - asUnsignedInt(b.get(8));  
44
            // conversion inhg en bar
45
            Boostv = Boostv * 0.00295299830714;            
46
            
47
          }
48
          else
49
          {
50
            Boostv = asUnsignedInt(b.get(9)) * 256.0 + asUnsignedInt(b.get(8));
51
            // conversion psi en bar
52
            Boostv = Boostv * 0.0068947573;
53
          }                                             
54
        }
55
        _myHandler.post(_myRunnable);        
56
      }      
57
    };      
58
  }
59
60
  
61
  private int asUnsignedInt(byte bytes) 
62
  {
63
        int i = 0;
64
        for (int j = 0; j < 1; j++)
65
        {
66
            if (j > 0) 
67
            {
68
                i <<= 8;
69
            }
70
            i |= bytes & 0xFF;
71
        }
72
        return i;
73
    }
74
  
75
  private List<Byte> readdata(InputStream is) 
76
  {
77
    boolean stop = false;
78
    boolean packetStarted = false;
79
    List<Byte> buffer = new ArrayList<Byte>(14);
80
81
    int a = 0;
82
    try 
83
    {
84
      a = is.available();
85
      if (a > 28)
86
      {
87
        is.skip(a-28);
88
      }
89
    } 
90
    catch (IOException e1) 
91
    {
92
      // TODO Auto-generated catch block
93
      e1.printStackTrace();
94
    }
95
96
97
    while (!stop) 
98
    {
99
      byte[] ba = new byte[1];
100
      try {
101
        is.read(ba);
102
      } catch (IOException e) {
103
        // TODO Auto-generated catch block
104
        e.printStackTrace();
105
        stop = true;
106
      }
107
      byte b = ba[0];
108
      if (b == 0x02
109
          && buffer.size() >= 2
110
          && buffer.get(buffer.size() - 1) == 0x01
111
          && buffer.get(buffer.size() - 2) == 0x00) 
112
      {
113
        packetStarted = true;
114
        buffer.clear();
115
        buffer.add((byte) 0x00);
116
        buffer.add((byte) 0x01);
117
        buffer.add(b);
118
119
      } 
120
      else 
121
        if (packetStarted && buffer.size() <= 14) 
122
        {
123
          buffer.add(b);         
124
          switch (buffer.size()) {
125
          case 14:
126
            packetStarted = false;
127
            stop = true;
128
            //Log.d(TAG, "...Reading...");
129
          }
130
        } 
131
        else 
132
        {
133
          buffer.add(b);
134
          packetStarted = false;
135
136
137
        }              
138
    }
139
    return buffer;      
140
  }
141
  
142
}

Ich habe außerdem versucht mit HTerm wieder Daten an das Display zu 
senden, also das Display direkt per USB-RS232 Adapter an den PC, Display 
extern mit 5V versorgt, und die vorher gespeicherten Daten wieder zu 
senden.
Das Display geht aus dem Standby (es wird no Data angezeigt) und zeigt 
die ganzen Namen der Werte, also AFR, User, EGT usw., aber keine Werte.

Wie finde ich raus ob ich in Hex, Bin oder Ascii senden muss?

: Bearbeitet durch User
von Ozvald K. (Gast)


Lesenswert?

Philipp K. schrieb:
> Wie finde ich raus ob ich in Hex, Bin oder Ascii senden muss?

Dein Problem ist eher das Protokoll. Ohne es zu kennen wird es 
schwierig. Es muss irgendeine Struktur haben w.z.B. 1.Wert: x, 2.Wert Y, 
.... Im weiteren ist die Frage ob die Werte schon im Klartext gesendet 
werden oder binär die noch umgewandelt werden müssen vor der Ausgabe an 
LCD. Versuche nachvollziehen wenn sich nur ein Wert auf eine Stelle 
ändert, was ändert sich im Protokoll und wo. Beispiel: Der Wert 100 im 
ASCII sieht so aus: 31h, 30h, 30h. Wird er aber binär als Byte 
übertragen, dann siehst du 64h. Das ist nur ein Beispiel.

von pegel (Gast)


Lesenswert?

Gibt es so etwas schönes wie GHex auch für Win?

https://wiki.gnome.org/Apps/Ghex

Damit kann man ein oder mehrere Byte(s) auswählen, die dann in den 
verschiedensten Zahlenformaten angezeigt werden.
Das macht die Suche nach sinnvollen Werten bedeutend einfacher.

von Philipp K. (pippo_92)


Angehängte Dateien:

Lesenswert?

Erstmal vielen Dank für die Rückmeldungen und Hilfestellungen.

Ich versuche nochmal etwas genauer zu beschreiben was ich herausgefunden 
habe.

1) Hier steht etwas zum Aufbau der Nachrichten: 
http://www.css-networks.com/tag/zeitronix/

> #Zeitronix Packet format, bytes[]
> #[0] always 0
> #[1] always 1
> #[2] always 2
> #[3] AFR
> #[4] EGT Low
> #[5] EGT High
> #[6] RPM Low
> #[7] RPM High
> #[8] MAP Low
> #[9] MAP High
> #[10] TPS
> #[11] USER1
> #[12] Config Register1
> #[13] Config Register2

2) Hier werden die bytes wie oben genannt auch für eine andere Logging 
software verwendet und weiter verarbeitet, also byte 11 passt hier auch 
zu User1: 
https://github.com/RomRaider/RomRaider/blob/0f4814c8ae2fec6ee58f9e84a36a1078f404ceed/src/main/java/com/romraider/logger/external/zt2/io/ZT2Runner.java

>   case 12:
>    dataItem = dataItems.get(USER1);
>      if (dataItem != null) {
>      int raw = asUnsignedInt(buffer.get(11));
>      dataItem.setRaw(raw);

Weiterhin ist hier m.M.n. zu sehen wie nach den Startbytes gesucht wird:

>    public void run() {
>        try {
>           boolean packetStarted = false;
>            List<Byte> buffer = new ArrayList<Byte>(14);
>            while (!stop) {
>                byte b = connection.readByte();
>                if (b == 0x02
>                        && buffer.size() >= 2
>                        && buffer.get(buffer.size() - 1) == 0x01
>                        && buffer.get(buffer.size() - 2) == 0x00) {
>                    packetStarted = true;
>                    buffer.clear();
>                    buffer.add((byte) 0x00);
>                    buffer.add((byte) 0x01);
>                    buffer.add(b);

Müssten demnach nicht die Startbytes so aussehen: 0x00 0x01 0x02 ?


3) Das ganze würde sich in meinen Daten wiederspiegeln:
(Siehe hierzu nochmal das angehängte Bild)

Demnach würde eine Nachricht (aufgenommen von mir) so aussehen:
00 01 02 D2 C8 00 00 00 FF 80 43 19 FE FF (14 bytes in HEX)

Die "19" konnte ich bereits als Wert für "User" identfizieren. 0x19 
wären DEC 25. Der Angezeigte Werte ist 0,5. Würde mit /50 passen.

Als ich den Sensor "USER" abgezogen habe, ging die LCD Anzeige auf 2.85 
hoch. Hier die Daten dazu:

00 01 02 D2 C8 00 00 00 FF 80 43 90 FE FF (14 bytes in HEX)

Als Daten kam 0x90 an, was DEC 144 entspricht. 144/50=2,88.
Hier ist eine leichte Abweichung, kann aber auch sein das dass LCD 
Display nur bis 2,85 hoch zählt, einen höheren Wert hatte ich dort noch 
nie. Konnte bisher leider keinen Wert dazwischen einstellen, das müsste 
ich mal testen, ist aber etwas aufwändiger da der Sensor als 
benzindrucksensor eingesetzt wird und das Auto momentan nicht lauffähig 
ist.

Ich bin der Meinung damit müsste ich die Daten zumindest mal auswerten 
können, warum nun das ganze Rückwärts, also vom Laptop auf das Display 
nicht klappt kann ja eventuell ganz andere Gründe haben. Ich weiß nicht 
wie HTerm genau sendet, ob die Baudrate auch wirklich passt etc... habe 
wiegeasgt mit sowas noch nie gearbeitet.

von Ozvald K. (Gast)


Lesenswert?

Philipp K. schrieb:
> 00 01 02 D2 C8 00 00 00 FF 80 43 90 FE FF (14 bytes in HEX)

Der Wert für EGT dürfte dann auch stimmen auf der Stelle 4 und 5. Dort 
hast du C8h, 00h. Darstellung in 16-bit Integer= 256*Hi + Lo = 0*256+ 
200 = 200 (C8h auf der Stelle 4)

Philipp K. schrieb:
> Ich weiß nicht
> wie HTerm genau sendet,

Checke ob das Senden mit CR+NL terminiert ist und schalte es ab, sonst 
wird das Paket um 2 Bytes länger.

von Philipp K. (pippo_92)


Lesenswert?

Genau, der Wert sollte soweit auch passen. Konnte ich aber noch nicht 
verifzieren ob die "200" nur Zufall sind oder nicht, komme an den 
Temperatursensor im Krümmer kaum noch ran, und der Motor läuft grad 
nicht.
Das sollte ich in paar Tagen sicher sagen können.

Ich denke ich werde mir jetzt mal die Hardware besorgen und los legen,
für mich sieht das machbar aus, mit den Informationen die ich bisher mit 
eurer Hilfe (VIELEN DANK!)und anderen Projekten sammeln konnte.

Zur Hardware:
@pegel hat einen Arduino Mini vorgeschlagen, der hat ja nur einen 
Hardware serial, das heißt ich kann entweder per USB Converter 
Programmieren, oder serielle Daten empfangen.

Wäre der Mini PRO eine Option? Soweit ich das nun verstanden habe, wäre 
es mit dem möglich über den USB Anschluss "Serial" zu programmieren und 
parallel über "Serial1" Daten von dem Zeitronix Datenlogger zu 
empfangen.
Das würde vermutlich auch das debuggen und die Fehlersuche einfach 
machen.
Oder habe ich hier die Funktion von Serial und Serial1 missverstanden?

Als Display ist dieses hier geplant:
Touchscreen 2.8" inch Zoll 240x320 SD SPI TFT LCD MCUfriend display für 
Arduino
https://www.ebay.de/itm/Touchscreen-2-8-inch-Zoll-240x320-SD-SPI-TFT-LCD-MCUfriend-display-fur-Arduino/174185924050?hash=item288e4a45d2:g:3RoAAOSwx1ReP9Z9

Touch brauche ich vermutlich erstmal nicht, aber villeicht mal nen 
kleinen button einbinden zum resetten von Min./Max. Werten oder sowas.

Die Kombination Mini/Micro mit diesem Display sollte ja wohl 
funktionieren über eine SPI Verbindung, oder ist das hier anders wegen 
Touch?

von pegel (Gast)


Lesenswert?

Welcher Ardu* es genau wird, konnte ich nicht sagen.
Stecke da nicht so drin.

Aber der Anbieter deines Wunsch Display hat auch ein Beispiel 
bereitgestellt.

https://github.com/prenticedavid/MCUFRIEND_kbv/tree/master/examples/diagnose_TFT_support

von pegel (Gast)


Lesenswert?

Laut Hinweis in der .ino:

11. It should run on a UNO, MEGA2560, LEONARDO, DUE, ZERO, M0-PRO,

von pegel (Gast)


Lesenswert?

Und natürlich RS232 Pegelwandler nicht vergessen.

von Philipp K. (pippo_92)


Lesenswert?

Danke, werde mich dann nochmnal bisschen im Internet umschauen ob das 
alles so zusammen passt.

Ja auf der Bestellliste sind:
- Arduino Mini oder Micro
- Touch TFT Display
- MAX3232 Pegelwandler
- Stepdown von 12V auf 5V: 
https://www.ebay.de/itm/Step-Down-Spannungsregler-DC-4-5V-24V-Eingang-1-8V-12V-Ausgangsspannung-3A-max/183157895908?hash=item2aa50fb2e4:g:Vw4AAOSwPnNawVJk
- RJ11 Kabel und Buchsen um alles Plug and Play an den Zeitronix 
Datenlogger anschließen zu können

Also das senden vom PC an das LCD Display klappt bei mir nicht. Liegt 
evtl an der gebastelten 5V Spannungsversorgung, evtl kommen da Störungen 
auf GND oder sonst was. Werde mich damit jetzt auch nicht weiter 
beschäftigen, das Ziel ist es ja die Daten zu empfangen und ein neues 
Display zu nutzen.
Das Originale fliegt ja dann raus, sieht man bei bisschen Sonne eh nix.

: Bearbeitet durch User
von pegel (Gast)


Lesenswert?

Philipp K. schrieb:
> Also das senden vom PC an das LCD Display klappt bei mir nicht.

Das ist schlecht.
Du solltest das schon zum laufen bringen.

Die seriellen Einstellungen lassen sich so leichter ermitteln, als 
später wenn vielleicht noch Ardu* Probleme hinzukommen.

von Philipp K. (pippo_92)


Lesenswert?

Ich kann morgen mal Screenshots  von HTerm einstellen.  Ich vermute es 
liegt eher an der Verkabelung.

An dem display kommen 3 Leitungen  an. GND, Plus und eine Datenleitung.
Ich habe auf GND und Plus ne 5v Spannungsversorgung  gehängt,  das gibt 
vielleicht Probleme  da der GND der gleiche ist wie der vom 
Datenanschluss...

von Philipp K. (pippo_92)


Angehängte Dateien:

Lesenswert?

Habe nochmals Bilder von HTerm sowie der Verkabelung angehängt.

Im Bild NoDataSend schicke ich noch keine Daten, das Display zeigt "No 
Data".
Auf dem Bild DataSend schicke ich die Hex Bytes und das Display geht aus 
dem Idle aber zeigt nur 0en.

Ich vermute das könnte an der Verkabelung liegen. Die 
Spannungsversorgung von 5V über eine Powerbank teilt sich ja den GND mit 
dem Seriellen Anschluss.
Ich musste das leider so machen, da der RS232 Converter keine 5V ausgibt 
um das Display zu betreiben.

Edit: Das Parity Even war nur für Testzwecke eingestellt. Es geht auch 
mit None nicht.

: Bearbeitet durch User
von Philipp K. (pippo_92)


Lesenswert?

Möchte mich hier nochmal für die Unterstützung bedanken, vorallem an 
pegel!

Hier mal der vorerst fertige, und eingebaute Stand:
https://abload.de/img/1wdklf.jpg
https://abload.de/img/2dskoo.jpg
https://abload.de/img/3nbjnt.jpg

Und noch ein kleines Video: 
https://www.youtube.com/watch?v=inmeuoig15M&feature=youtu.be

von pegel (Gast)


Lesenswert?

Gratuliere!

Das sieht aus, als ob es zum Auto gehört. :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.