Elektronik_Header_3Lüftersteuerung mit ESP-01

 

BMW Throttle Sync

Die BMW Boxermaschinen Àlterer Generationen haben die Eigenart, dass nach einigen hundert Kilometern die Synchronisation der beiden Zylinder nachlÀsst und der Motor in Folge bei niedrigen Drehzahlen anfÀngt ziemlich unruhig bis ruppig zu laufen - der Kenner spricht von Konstantfahrruckeln.

Geschuldet ist das der Ansteuerung der beiden Drosselklappen ĂŒber eine Y-Konstruktion aus BowdenzĂŒgen. BowdenzĂŒge lĂ€ngen sich im Laufe der Zeit und das gegebenenfalls unterschiedlich, was im betrachteten Fall zu den beschriebenen Problemen fĂŒhrt.

Abhilfe schafft die sogenannte Synchronisierung der beiden Zylinder aufeinander. Hierbei wird jeweils ĂŒber eine Stellschraube an den Drosselklappen der Unterdruck auf beiden Seiten identisch nach Datenblatt eingestellt und die beiden Zylinder ziehen auch bei kleiner Gasstellung wieder gleichmĂ€ĂŸig am Antriebsstrang.

Ich habe vor Jahren eine alternative Anleitung in einem englischsprachigen Forum  gefunden, nach der die beiden Drosselklappen mechanisch miteinander verbunden werden, was allerdings eine Bohrung durch das MotorgehĂ€use bedingt, denn die Drosselklappen werden dabei mit einer Stange verbunden, die Y-Abzweigung im Gaszug entfĂ€llt und die Synchronisationsprobleme sind ab da Geschichte.

Wer nun seinen Motorblock nicht durchbohren, das Konstantfahrruckeln aber dennoch loswerden will, muss die beiden Zylinder also hin und wieder synchronisieren und benötigt dafĂŒr eine Anzeige fĂŒr den Unterdruck im Ansaugtrakt der beiden Zylinder. FrĂŒherTM hat man dafĂŒr eine Schlauchwaage, eine Konstruktion aus Glasröhren und SchlĂ€uchen, hergenommen, heutzutage bietet sich hingegen der Einsatz eines Microcontrollers mit elektronischen Unterdrucksensoren an.

Michael Miller, aka Makuna stellt auf Instructables.com ein solches GerĂ€t fĂŒr Vierzylindermotoren vor, komplett mit passender Firmware fĂŒr den ”C, einen Arduino, sowie Software zur anschaulichen Darstellung der Werte auf einem Windows PC.

Da ich fĂŒr den BMW Boxer nur zwei Sensoren benötige und ich Fan von einseitigen Layouts bin, habe ich seine Schaltung etwas eingedampft und die in der NXP application note AN1646 vorgeschlagene Filterung der Ausgangssignale mit einem RC Tiefpass hinzugefĂŒgt.

Das Schaltbild ist ĂŒbersichtlich.

ThrottleSync2Z Schaltbild

Die Buchsenleiste ist so angeschlossen, dass ein Arduino Nano V3 von der Unterseite aus angesteckt werden kann, die Oberseite des Arduino vom Header abgewandt. Es ist die Reihe mit den AnaloganschlĂŒssen des Arduino zu verwenden.

Die verwendeten Unterdrucksensoren sind MPXV5050VC6T1 von NXP (ehemals Philips) und arbeiten bis zu einem Unterdruck von 50 kPa, das sind 0,5 bar, gegenĂŒber dem umgebenden Luftdruck.

Das zugehörige Layout.

ThrottleSync2Z Board          (Click auf das Bild fĂŒr Darstellung mit Bauteilangaben)

Alle SMD Bauelement sind auf der Oberseite platziert, die Buchsenleiste und die beiden WiderstÀnde werden von der Unterseite her eingelötet.

In Natura sieht das Ganze dann so aus:

BMW ThrottleSync

Hinweis
Die Sensoren haben zur Kennzeichnung von Pin 1 entweder eine kleine Kerbe am entsprechenden Anschlussbein oder die Ecke des KunststoffgehÀuses ist an Pin 1 etwas abgeschrÀgt.

BMW ThrottleSync

BMW ThrottleSync


Zuerst muss die Verbindung zwischen Rechner und Arduino hergestellt werden, anschließend wird das Programm TBS4Rpm auf dem Rechner gestartet. TBS im Programmnamen ist die AbkĂŒrzung fĂŒr Throttle Body Sync, ĂŒbersetzt Drosselklappen Synchronisierung, Rpm bezieht sich auf die Anzeige der Drehzahl unterhalb der beiden Grafiken. Das Programm sucht der Reihe nach alle COM Ports des Rechners ab und versucht jeweils, die Kommunikation mit dem Arduino aufzubauen. Meist wird die Verbindung nach einigen Sekunden hergestellt und die OberflĂ€che erscheint.

ThrottleSync GUI

Da der Boxermotor nur zwei Zylinder hat, habe ich die Anzeige passend geschrumpft. Das hĂ€tte man im Programm parametrisch abfangen können, denn der Arduino-Teil der Software bekommt diese Information vor der Übersetzung mitgeteilt, aber die Änderung ist relativ leicht im Code des Windows Programms durchzufĂŒhren und muss ja nur einmal erfolgen. Die Anpassung des Programmnamens, um dieser Änderung Rechnung zu tragen, habe ich mir gespart, nur in der Caption der GUI steht passend TBS 2.

Manchmal klappt die Verbindung nicht beim ersten Versuch, es erscheint folgende Fehlermeldung:

Verbindung hat nicht geklappt

Nicht verzagen, einfach das Programm nochmal starten.

Nachdem die GUI erscheint muss abgewartet werden, bis der Status links unten von “idle” auf “Alive” wechselt. Jetzt werden die Sensoren kalibriert (Button Calibrate), anschließend wird die Messung gestartet (Button Start). Die korrekte Vorbereitung (warmlaufen, Anschluss der SchlĂ€uche usw.) und die Einstellungen am Motorrad (Drehzahl bei der Messung, welche Schrauben wohin drehen - und welche definitiv NICHT) ist der Wartungsanleitung des Motorrads zu entnehmen.

Die Originalsoftware von Michael findet man auf Github - fĂŒr Arduino und fĂŒr Windows.

Hier gibt es die von mir auf den Zweizylinder Boxer angepasste Version des Programms, Arduino und Windows Software in einem gemeinsamen ZIP. FĂŒr den Arduino meine angepasste INO Datei mit der Lib fĂŒr die Sensoren sowie die ausfĂŒhrbare EXE Datei und die beiden geĂ€nderten Sourcen fĂŒr Windows.

In der Datei MainWindow.xaml ist die Routine zur Erkennung des Arduino geĂ€ndert um die Trefferwahrscheinlichkeit etwas zu erhöhen und den Start der GUI zu beschleunigen. Weiterhin sind die zwei nicht mehr benötigten Aufrufe zur Aktualisierung der Anzeige fĂŒr Zylinder Drei und Vier auskommentiert. Im zugehörigen Code in MainWindow.xaml.cs wurde die Caption der GUI auf “TBS 2” geĂ€ndert, das Grid auf nur zwei Spalten angepasst und die dadurch ĂŒberflĂŒssigen Column Definitionen gelöscht.


Nachdem das Ganze soweit zu funktionieren scheint, muss die Elektronik noch in ein GehÀuse verfrachtet werden, immerhin werden solcherlei Arbeiten ja gemeinhin im Freien oder zumindest in der Garage stattfinden. Da kommt eine nackte Elektronik nicht so gut weg.

Da die Platine ziemlich rudimentĂ€r entworfen wurde und keine Möglichkeiten zur Befestigung aufweist, mĂŒssen im GehĂ€use passende Auflagen und Abstandshalter realisiert werden, damit die Elektronik nicht darin herum klappert.

ThrottleSync GehÀuse

Das Unterteil stĂŒtzt den Arduino Nano mit 4 Blöcken an den Ecken. Da der Arduino nur auf einer Seite ĂŒber die Stiftleiste einen definierten Abstand zur Sensorplatine hat, muss die andere Seite auch auf der Oberseite gefĂŒhrt werden. Das leistet ein schmaler Vorsprung auf halber Höhe der Seitenwand.

ThrottleSync Unterteil

Die Sensorplatine liegt auf dem oberen Rand des Bodens auf und wird von den beiden AbsÀtzen an den LÀngsseiten des Deckels von unten fixiert.

ThrottleSync Deckel

Ich habe die beiden Teile des GehĂ€uses aus transparentem, mittelhartem  TPU gedruckt, 0,2 mm Schichtdicke, 50% Infill, mit Supports.

Entworfen habe ich das GehĂ€use mit DesignSpark Mechanical, die Konstruktion stelle ich als RSDOCX Datei fĂŒr DSM V6.x sowie als STL Dateien fĂŒr den 3D-Drucker zur VerfĂŒgung.


Die Einheit aus Sensorplatine und Arduino wird von der Schmalseite aus eingeschoben, anschließend wird der Deckel aufgesetzt.

ThrottleSync Elektronik und GehÀuse

ThrottleSync im GehÀuse

Jetzt mĂŒssen die beiden SchlĂ€uche auf die Sensoren aufgesteckt und der Arduino per USB Kabel mit dem Rechner verbunden werden, dann kann es losgehen.

 


Beim Aufruf dieser Funktion werden Daten an Google in USA ĂŒbermittelt. Neben Ihrer IP-Adresse wird auch die URL der besuchten Seite ĂŒbertragen.
Besucherzaehler

Besucher seit
25.11.2000