BMW E30 Tachotester
DIY Tachotester für BMW E30

26. Juni 2023

Um den Fehler der sporadischen Aussetzer der Geschwindigkeitsanzeige an meinem E30 zu finden, habe ich einen Tachotester mittels Arduino gebaut. Somit kann ich die Einheit zum Anzeigen der Geschwindigkeit auch auf meinem Schreibtisch testen, was deutlich entspannter ist als im Auto.

Dieser Artikel ist eng mit dem Artikel „E30 Geschwindigkeitsanzeige reparieren“ verwandt. Ursprünglich war dieser Artikel ein Teil von genanntem Artikel, allerdings wurde er doch so lang, dass ich mich entschieden habe einen eigenen Artikel daraus zu machen. Um den Gesamtzusammenhang besser zu verstehen bietet es sich dann den gennanten Artikel im Vorfeld zu lesen.

Motivation für den Tachotester war das sporadische Aussetzen der Geschwindigkeitsanzeige an meinem E30 Tacho.

Um den Fehler überhaupt erst zu finden, musste ich diesen zunächst erstmal reproduzieren. Aus diesem Gedanke heraus entstand die Idee einen Tachotester zu bauen. Dazu musste ich erstmal rausfinden, wie das Geschwindigkeitssignal im E30 überhaupt aussieht bzw. das die Elektronik der Geschwindigkeitsanzeige eigentlich für Eingänge erwartet.

Dabei ist die Pinbelegung noch der einfacherere Teil. Die E30 Geschwindigkeitsanzeige hat nämlich nur 4 Pins:

Pinbelegung Geschwindigkeitsanzeige

  • + – entspricht der Versorgungsspannung von 12V
  • A – ehrlich gesagt keine Ahnung. Habe ich mich nicht weiter drum gekümmert, da der Kontakt nicht benötigt wird
  • 31b – Signaleingang
  • 31 – GND / Masse

Als nächstes galt es herauszufinden, wie das Eingangssignal auf 31b tatsächlich aussieht. Es scheint so zu sein, dass das Signal vom Sensor im Differential einfach bis in die Geschwindigkeitsanzeige durchgeschleift wird. Daher ist das Signal am Eingang vom Kombiinstrument und jenes, welches an der Geschwindigkeitsanzeige ankommt, identisch. Um also nur zu testen, ob die Geschwindigkeitsanzeige noch funktioniert, muss nicht das gesamte Kombiinstrument zerlegen. Dazu muss der Tachotester entsprechend auf der Rückseite des Kombiinstruments angeschlossen werden. Hier sind aber mehr Kabel notwendig, da das Kombiinstrument mehrere Masse und Versorgungseingänge besitzt.

Geschwindigkeitssignal beim E30

Das Geschwindigkeitssignal ist ein einfaches Rechtecksignal mit einem Verhältnis von 50:50. Das bedeutet, dass die Zeit, in der ein Signal anliegt genau gleich lang ist wie die, in der es ausgeschaltet ist. Je höher die Frequenz des Signals, desto höher die Geschwindigkeit. Der Zusammenhang ist proportional, wobei ich mir nicht die Mühe gemacht habe herauszufinden, welche Geschwindigkeit exakt welcher Frequenz entspricht. Mir war nur wichtig, dass sich die Nadel überhaupt bewegt.

Ich kann aber sagen, dass sich der Frequenzbereich in meinem Fall zwischen 0 und knapp 300Hz bewegt. Bei 300Hz steht die Tachonadel also bei 240km/h. Bei Modellen mit anderen Geschwindigkeitsbereichen kann das anders aussehen. Der Tacho des M3 beispielsweise geht bis 260km/h.

Wichtig ist aber noch, und das hat mich vor die größte Herausforderung gestellt, dass das Eingangssignal mindestens irgendwas zwischen 8-9V betragen muss. Warum das ein Problem darstellt, kommt jetzt.

Komponenten des Tachotester

Um ein passendes Rechtecksignal zu erzeugen, gibt es mehrere Möglichkeiten: entweder man steckt so tief im Elektrotechnikthema drin, dass man einen Signalgenerator bereits daheim hat. Dann muss dieser einfach nur angesteckt werden und der Tachotester ist quasi bereits vorhanden. Oder man hat diese Gerät nicht (so wie ich) und muss sich das entsprechend selber bauen. Ein wenig elektrotechnisches Grundverständnis vorausgesetzt.

Meine Idee war zunächst einen Arduino zu nehmen um damit das entsprechende Signal zu erzeugen. Die Frequenz lässt sich dabei entsprechend einstellen. Jetzt komm aber das oben angesprochene Problem. Beim Arduino handelt es sich um einen Mikrocontroller und diese laufen üblicherweise auf entweder 3,3 oder 5V. Wir brauchen aber 12V. Die Lösung ist eine kleine Schaltung mittels Transistor, welchen wir quasi als Schalter verwenden. Das Ausgangssignal des Arduino öffnet bzw. schließt den Transistor und wenn dieser geöffnet ist, liegt am Eingangspin der Geschwindigkeitanzeige 12V an. Somit haben wir das Ausgangssignal de Arduinoquasi „verstärkt“.

BMW E30 Tachotester
Zu sehen sind alle Komponenten des DIY Tachotesters

Welchen Transistor ihr genau verwendet, spielt keine Rolle. Wichtig ist, dass er bei 5V Basespannung sauber schaltet und eben mit 12V zwischen Emitter und Collector klar kommt. Nach ein wenig Suchen in meiner Kiste habe ich tatsächlich einen passenden NPN-Transistor gefunden. Außerdem habe ich noch ein 1kOhm Widerstand in die Steuerleitung gesetzt.

Die Komponenten im Überblick:

Wer möchte kann sich zunächst eine LED besorgen und so die Schaltung erstmal testen, bevor sie direkt an die E30 Geschwindigkeitsanzeige angesteckt wird. Habt ihr alles richtig gemacht, wird die LED in der angegebenen Frequenz ein und ausgeschaltet (Vorwiderstand nicht vergessen, sonst grillt euer Tachotester die LED).

Ich jedenfalls hatte alle benötigten Komponenten irgendwo rumfahren und habe mir die Schaltung entsprechend aufgebaut.

Schaltplan

Im Folgenden seht ihr einen beispielhaften Schaltplan. Im Schaltplan habe ich den Arduino Uno verwendet. Einfach weil er kleiner ist und daher der Schaltplan übersichtlicher aussieht. Wie gesagt, grundsätzlich funktioniert jeder Arduino. Nur muss im Code dann entsprechend der Pin angepasst werden. Auch benötigt der Arduino natürlich eine Stromversorgung. Auf gar keinen Fall darf der Arduino an 12V angeschlosse werden. Zum Programmieren müsst ihr ihn aber ohnehin per USB an den Computer anstecken. Damit ist keine weitere Stromversorgung notwendig.

Die Pinbelegung am Tacho sieht dann wie folgt aus:

  • Pin 1 geht auf +
  • Pin 2 geht auf 31b
  • Pin 3 geht auf 31

Arduino Code

Folgenden Code habe ich auf dem Arduino verwendet. Natürlich kann man das alles noch eleganter lösen, aber es ging mir in erster Linie um das Auffinden des Fehlers und nicht um super schönen Code.

int freq = 0;
char buffer[6];
bool direction = 1;
bool testRoutineStarted = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("Hello...");
}

void loop() {
  int index;
  while (Serial.available()) {
    index = Serial.readBytesUntil('\n', buffer, 5);  //newline or max of 5 chars
    buffer[index] = '\0';

    freq = atoi(buffer);  //convert readString into a number
    Serial.print("new value: ");
    Serial.println(freq); //so you can see the integer
    buffer[0] = '\0';

    if (freq == 42)
      testRoutineStarted = 1;
    else
      testRoutineStarted = 0;
  }

  if (testRoutineStarted) {
    if (direction) {
      if (freq < 50)
        freq = 50;
      else if (freq == 300)
        direction = !direction;
      else
        freq++;
    }
    else {
      if (freq > 50)
        freq--;
      else
        direction = !direction;
    }
    Serial.println(freq);
    tone(53, freq);
    delay(20);
  }
  else {
    tone(53, freq);
  }
}

Ein paar Anmerkungen zum Code:

  • über den seriellen Monitor können beliebige Frequenzen eingegeben werden woraufhin die Tachonadel eine entsprechende Geschwindigkeit anzeigt
  • zur Erzeugung des Rechtecksignals habe ich mich der Funktion „tone“ bedient, welche, wie der Name bereits vermuten lässt, eigentlich zum erzeugen von Tönen gedacht ist (wenn man denn einen entsprechenden Lautsprecher angeschlossen hat). Nachteil ist, dass Frequenzen unterhalb von 31Hz nicht dargestellt werden können. Das bedeutet Geschwindigkeit bis ca 40km/h sind nicht möglich. War für mich aber auch nicht wichtig
  • bei der Eingabe von 42 läuft der „Selbsttest“ los. Das heißt die Tachonadel bewegt sich einmal über den kompletten Tacho und wieder zurück

Hat sich der DIY Tachotester gelohnt?

Vermutlich hätte ich früher oder später den Fehler auf der Platine auch ohne den Tester gefunden, aber es hat Spaß gemacht ihn zu bauen und den Tacho entsprechend dazu zu bringen, sich zu bewegen. Und zumindest für mein Gewissen behaupte ich, dass sich der Bau des Tachotesters gelohnt hat. Schließlich konnte ich meine Geschwindigkeitsanzeige am Ende reparieren.

Weitere Artikel, die dir gefallen könnten:

E30 Kofferraum ohne Schlüssel öffnen

E30 Kofferraum ohne Schlüssel öffnen

Insgesamt über 2 Jahre war der Kofferraum des E30 nun verschlossen, weil ich irgendwann mal den Schlüssel verloren hatte. Dummerweise war der Kofferraum aber auch noch abgeschlossen. Also stellt...

E30 Geschwindigkeitsanzeige reparieren

E30 Geschwindigkeitsanzeige reparieren

Seit einiger Zeit habe ich bereits das Problem, dass die Geschwindigkeitsanzeige meines E30 sporadische Aussetzer hat und manchmal auch einfach komplett auf Null stehen bleibt. Auch wenn es eher...

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

(*) Affiliate Links

Während du unsere Beiträge liest, kann es vorkommen, dass du auf externe Links stößt, welche mit einem Sternchen (*) gekennzeichnet sind. Dabei handelt es sich um sogenannte Affiliate-Links.

Wenn du im Shop der verlinkten Website etwas kaufst, dann bekommen wir dafür eine Provision.

Für dich entstehen dadurch weder Kosten noch ändert sich der Preis der verlinkten Produkte. Mit Hilfe dieser Provision unterstützt du unser Projekt.

Pin It on Pinterest