Überschussladen mit Heidelberg Home Eco Wallbox

Ironischerweise haben wir es zu hause geschafft alle Förderprogramme „gekonnt“ zu umschiffen. Als wir uns für ein Elektroauto entschlossen haben, war die Wallboxförderung schon durch. Mit der PV-Anlage war es die gleiche Geschichte. Naja, jedenfalls haben wir endlich unsere PV-Anlage bekommen und sind happy damit. Wir haben uns beim Kauf der Wallbox für ein eher schlichtes Modell entschieden. Es ist die Heidelberg Home Eco geworden. Das war sicher auch ein Kostenfaktor aber sie hat sehr gute Testergebnisse und funktioniert zuverlässig.

Mit der PV-Anlage kam aber auch der Wunsch nach Überschussladen, was unsere Wallbox aber nicht kann. Es gibt aber einen potentialfreien Kontakt zur Freigabe bzw. Sperrung der Wallbox und einen 4bit Wählschalter zur Einstellung der Ladeleistung. Damit lässt sich doch was anfangen.

Fangen wir bei der Wallbox an. Wenn man die Heidelberg Home Eco öffnet, sieht das ganze so aus.

Bildquelle: https://autofilou.at/heidelberg-wallbox-energy-control-vergleich-home-eco-unterschiede/

Im unteren Bereich über der Kabelklemme für das Ladekabel zum Auto befindet sich der potentialfreie Kintakt zur Freigabe der Wallbox. Im Originalzustand ist hier eine Brücke gesteckt und die Wallbox funktioniert immer. Links daneben auf der Leiterplatte befindet sich der 4bit Drehschalter zur Einstellung der Ladeleistung. Die Brücke kommt raus und der potentialfreie Kontakt wird zur Steuerung genutzt. Der Drehschalter bedarf noch etwas Bearbeitung.

Dank „Patrik4A“ vom PV-Forum weiß ich jetzt, dass man zwei Kontakte des Drehschalters brücken kann um somit die höchste Ladeleistung einzustellen. Ich habe hier zwei Drähte angelötet und den Drehschalter auf Position 0 gestellt. In Position 0 stellt die Wallbox im zweiphasigen Betrieb 2,8kW bereit und wenn die Kontakte gebrückt sind, was Position 5-9 entspricht, 7,4kW . Weitere Infos hierzu entnehmt Ihr bitte der Tabelle unten.

Bildquelle: https://www.heidelberg-wallbox.eu/heidelberg-wallbox-home-eco-11-kw/2/heidelberg-wallbox-home-eco-11kw-3-5m/5m/7-5m

Die Lötstellen sehen etwas abenteuerlich aus, aber ich lasse das jetzt so. Es funktioniert und beim ersten Lötversuch hat das doch etwas zu steife Kabel die Leiterbahn von der Platine abgerissen. Also hier bitte sehr vorsichtig sein, sollte das jemand nachbauen. Das hat mich ein Jahr meines Lebens gekostet, das wieder hinzukriegen.

Letztendlich gehen vier Kabel in die Wallbox. Zwei an den Potentialfreien Kontakt um sie zu aktivieren bzw. zu deaktivieren und zwei um die maximale Ladeleistung einzustellen. Bei mir sieht das dann so aus.

Steuerung des Ganzen

Zur Steuerung der Wallbox standen einige Möglichkeiten zur Auswahl. Ursprünglich hatte ich vor mit einem ESP32 den Wechselrichter auszulesen und auch über ein Relais die Wallbox zu aktivieren bzw, zu deaktivieren. Das hat leide nicht geklappt, weil es mir nicht gelungen ist über den Modbus TCP (RS485) die Daten auszulesen.

Bei unserem Wechselrichter handelt es sich um einen Huawei Sun2000 6KTL-M1. Der spricht Modbus TCP und hat einen Port um die Daten im WLAN bereitzustellen. Das muss in den Einstellungen des Wechselrichters aktiviert werden. Hierzu ist es notwendig einen Installateurzugang zu haben, oder man fragt einfach den Anlagenbauer, ob er es freischaltet. Wichtig ist hierbei, dass die Einstellung „Unbegrenzt“ gewählt wird, sonst kann man nur von festen IP-Adressen (5 Stück) darauf zugreifen.

Letztendlich habe ich mich für den iOBroker auf einem Raspberry Pi 4 entschieden. Hier werden verschiedenste Softwareadapter zur Kommunikation mit Geräten bereitgestellt und eben auch ein Adapter für den Huawei Wechselrichter. Das funktioniert sehr gut.

Um die nötige Steuerung zu programmieren, bietet iOBroker verschiedene grafische Programmiertools an. Ich habe mich für Blockly entschieden. Mein Code für die Wallboxsteuerung sieht so aus.

Für die Bedienung und Installation

Fortsetzung folgt!

Kennfeldoptimierung für Moto Guzzi V10

Mit dem Umbau auf K&N Luftfilter hat sich das Gemisch geändert. Der Luftduchsatz ist gestiegen, wie auch die ersten Fahrten mit Lambdasonde bestätigt haben. Der Motor läuft obenrum viel zu mager. Das ist besonders bei einem luftgekühlten Motor gefährlich und kann auf keinen Fall so bleiben.

Die Centauro besitzt eine Weber Marelli 16M Einspritzanlage. Ein Zugriff auf die Kennfelddaten ist nicht so einfach möglich, jedoch lässt sich der Speicherchip (EPROM) ausbauen, auslesen und durch einen neuen ersetzen.

Was das Ausbauen, Auslesen und Brennen der Daten auf einen neuen Speicherchip angeht möchte ich hier nicht noch ein weiteres Süppchen kochen. Ich verweise vielmehr auf die Homepage von Dirk Pannhoff, welche das sehr gut beschreibt. http://www.pannhoff.com/guzzi2/V10Werkstatt/Eprom_Prog4.htm

In diesem Beitrag soll es vorrangig darum gehen, wie ich die Zielwerte für das neue Kennfeld zu ermitteln beabsichtige. Das Einspritzkennfeld basiert hauptsächlich auf zwei Eingangsgrößen. Das ist auf der X-Achse die Drehzahl und auf der Y-Achse die Drosselklappenstellung. Weiterhin gibt es Korrekturfaktoren für Motortemperatur, Umgebungstemperatur und Umgebungsdruck. Diese sollen uns aber nicht interessieren, da diese weiterhin Ihre Gültigkeit behalten.

Das Kennfeld der Centauro sieht im ECU-Editor ECUEDIT so aus:

Kennfeld Moto Guzzi V10

Die Werte im Diagramm beschreiben einen Wert für die Öffnungszeit der Einspritzventile. Je größer der Wert umso länger bleibt das Einspritzventil offen und umso mehr wird eingespritzt.

Die Drosselklappe der Centauro hat ein Potentiometer, welches den Winkel in ein Spannungssignal von 0-5V umwandelt. Im geschlossenen Zustand der Drosselklappe beträgt die Spannung laut Moto Guzzi Werksangabe 150 mV +/-2mV. Ein 10V Rechtecksignal der Motordrehzahl liegt vor. Das gibt die ECU der Weber Marelli 16M für den Drehzahlmesser aus. Dieses lässt sich einfach abgreifen. Die Lambdawerte werden mittels eines Innovate MTX-L Plus gemessen. Das MTX-L Plus hat eine analoge Schnittstelle und gibt abhängig vom Lambda bzw. AFR Werte ein 0-5V Signal aus. Beide Krümmer haben im Rahmen des Umbaus M18x1,5 Schweißmuffen bekommen um die Lambdasonde aufnehmen zu können. Das MTX-L Plus Messgerät habe ich notdürftig am Lenker befestigt.

Lambdasonde Moto Guzzi V10

Krümmer mit Schweißmuffe und eingebauter Lambdasonde

Werbeanzeigen

Der Datenlogger

Es sollen also die Drehzahl, die Drosselklappenstellung und der Lambdawert permanent mitgeschrieben werden wenn das Motorrad läuft. Ich hab mich entschieden das Projekt Datenlogger auf der Arduino Plattform aufzubauen. Damit konnte ich schon einige, sehr gute Erfahrungen sammeln.

Den Schaltplan und die Platine habe ich wie so einige vorher mit EASYEDA erstellt.

Schaltplan für einen Datenlogger für Moto Guzzi V10

Die Platine sieht dann im der EASYEDA 3D-Viewer so aus.

3D-Ansicht der Platine des Datenlogger für Moto Guzzi V10

Platine als 3D Darstellung

Die Platinen sind endlich angekommen. Die Mindestbestellmenge beträgt immer 5 Stück.

Werbeanzeigen

Aufgebautes Modul

Das Modul ist fertig aufgebaut und die ersten Funktionstests sind positiv. Als Nächstes müssen die Eingänge kalibriert werden und ein Gehäuse konstruiert und gefertigt werden.

Werbeanzeigen

Das Gehäuse

Das Gehäuse habe ich im CAD mit CREO konstruiert, als STL-Daten exportiert und online bestellt. Die Fertigung ist bereits abgeschlossen und die Teile sind auf dem Weg zu mir.

Das Gehäuse besitzt vier Füße an denen Saugnäpfe mit eingespritzten Gewindestiften eingeschraubt werden. Damit kann der Datenlogger auf dem Tank befestigt und über das Display die Messwerte im Auge behalten werden. Somit sollte es auch recht einfach möglich sein den Datenlogger abzunehmen wenn man das Motorrad irgendwo abstellt. Das setzt natürlich voraus, dass es einen Verbindungsstecker zum Kabelbaum gibt.

Werbeanzeigen

Das Gehäuse ist angekommen.

Heute sind die beiden Gehäuseteile angekommen. Sie sehen sehr gut aus und alles passt soweit.

Werbeanzeigen

Weiter Arbeiten am Gehäuse

Mitlerweile habe ich am Gehäuse weiter gearbeitet. Die Gewinde sind fertig geschnitten und der Zusammenbau ist weiter vorangeschritten.

Moto Guzzi Datenlogger Gehäuse

Moto Guzzi Caferacer

Hier sieht man die eingeschraubten Saugnäpfe.

Datenlogger auf dem Tank befestigt.

Werbeanzeigen

Fehler im Schaltplan der vielleicht keiner ist

Mittlerweile habe ich herausgefunden, dass das Drehzahlsignal eine 10V Rechteckspannung ist. Das heißt, dass die Supressordiode alles was oberhalb von 6,7V ist abschneidet. Vielleicht ist das kein Problem, aber ich weiß nicht wie das Steuergerät damit umgeht. Darum habe ich mich entschieden, die Diode im Drehzahlzweig hinter dem 10kOhm Widerstand anzuschließen. Dafür habe ich das eine Ende einfach ausgelötet und direkt an den 10kOhm Widerstand angelötet. Damit kann ich besser schlafen.

Werbeanzeigen

Datenlogger ist verkabelt

Heute habe ich endlich Zeit gefunden, die notwendigen Anschlüsse für den Datenlogger am Motorrad anzuschließen. Drosselklappenstellung und Lambdawert funktionieren. Die Drehzahl muss noch etwas warten. Erst muss der Tank noch von innen versiegelt werden. Leider ist es noch zu kalt in der Garage. Das Harz härtet bei 20°C ca. 7-8 Tage aus. Bei den aktuellen Temperaturen dauert das wohl eine Ewigkeit. Ich könnte es im Haus machen aber ich befürchte, dass es nicht besonders angenehm riechen wird.

Ich habe mal ein kleines Video erstellt, auf dem man sehr schön die Werte am Datenlogger sehen kann.

Werbeanzeigen

1. Test im Stand und nötige Verbesserungen

Es ist soweit, ich konnte die ersten Daten ermitteln. Es funktioniert soweit ganz gut aber die Werte springen noch sehr. Da werde ich noch etwas mit dem Dämpfungswerten in der Software spielen. Der Wert für das Drosselklappenpoti gefällt mir auch noch nicht. Ich bin mir sicher, dass hier ein Masseproblem vorliegt. Dem muss ich auch noch nachgehen.

Auf jeden Fall gibt es hier schon mal ein erstes Video.

Werbeanzeigen

Werte besser gedämpft und siehe da…

Werbeanzeigen

Datensammlung hat begonnen

Mittlerweile konnte ich schon fleißig Daten sammeln. Drei halbstündige Fahrten haben eine ordentliche Zahl von Datensätzen erbracht. Damit kann man schon mal was anfangen. Ich habe die Daten in eine Tabelle übertragen, die dem Kennfeld des Einspritzmappings aus ECUEDIT entspricht aber statt der Einspritzzeiten die Lambdawerte enthält.

So sieht die Logdatei aus:

In der Textdatei lässt sich erkennen, dass die Dämpfung der Messwerte etwas zu hoch ist. Die Änderung aller Messwerte ist zu träge. Das erklärt auch die recht großen Sprünge. Das muss ich nochmal ran. Nachdem die Textdatei in Excel importiert wurde, die Daten sortiert und in die Mappingtabelle eingetragen sind, ergibt sich in Excel folgendes Bild:

Es fehlen zwar noch jede Menge Daten, aber man kann schon gut erkennen, dass das ganze Einspritzmapping viel zu mager ist. Die Lambawerte liegen fast über den ganzen Drehzahl- und Drosselklappenbereich um bzw. über Lambda 1.

Es geht voran…

mittlerweile bin ich beim 11ten Kennfeld angekommen. Es wird wirklich besser. Jedoch konnte ich erst ab dem 10ten Kennfeld wirkliche Verbesserungen erzielen. Warum ist das so? Die Kennfelder basieren auf einem bereits angepassten Kennfeld von Dirk. Damit habe ich auf Basis meine Messwerte weitergearbeitet, aber irgendwie war das nur Flickschusterei. Hier mal etwas weniger Einspritzmenge und dort mal etwas mehr. Das führte zu einem sehr inhomogenen Einspritzkennfeld. Hier mal der ermittelte Ist-Stand von Kennfeld-Version 9.

Wenn man sich die zugehörigen Daten anschaut, sieht das so aus.

Alles schick sollte man meinen. Ich habe aber mal die Einspritzzeiten für jede einzelne Drehzahl über die Drosselklappenstellung in einem Diagramm dargestellt. Wenn man sich das anschaut sieht man, dass es nicht damit getan ist nur einzelne Felder anzupassen, sondern man muss die Kurven versuchen anzugleichen.

Was für ein Durcheinander.

Nach dem Angleich der Werte sieht das Einspritzkennfeld dann so aus.

Und die dazugehörigen Einspritzzeiten über Drosselklappenstellung sehen so aus.

Wenn man sich die Werte aus der Tabelle als Fläche anzeigen lässt erhält man jetzt ein viel homogeneres Kennfeld.

Die zugehörigen mit dem Datenlogger ermittelten Lambdakennfelder sehen so aus.

Man kann sehr gut erkennen, dass die Lambdawerte langsam aber stetig von zu mager im unteren bis mittleren Teillastbereich zu fetter fallen. Im oberen Teillastbereich ist sie noch zu fett eingestellt und bei Volllast zu mager, was sich auch in der Endgeschwindigkeit widerspiegelt.

Wenn ich mit dem Lambdakennfeld soweit zufrieden bin, kann es an die Feinjustierung gehen. Dafür bietet das bin.File ein Korrektur-Kennfeld an, bei welchem die Schrittweiten geringer sind und man somit die Werte in kleineren Schritten anpassen kann.

15.6.2023

So, nur dass keiner denkt es geht nicht weiter. Ich habe fleißig weiter Daten gesammelt, Kennfelder erstellt und optimiert und bin nunmehr bei Version MD-017 angekommen. Mittlerweile bin ich schon sehr zufrieden und möchte nur noch ein paar kleine Änderungen vornehmen. Die Maximale Leistung ist noch ein wenig zu niedrig. Das liegt daran, dass der Motor obenrum noch zu mager läuft. Im Bereich des Standgases läuft er etwas zu fett und genau im Bereich von 4000U/min und daraus resultierenden 100km/h hätte ich es gern noch etwas magerer. Das spart Sprit genau in dem Bereich den man auf der Landstraße am meisten fährt. Bedenken bezüglich Motortemperatur habe ich da nicht, da es sich um den unteren Teillastbereich bis ca. 28° Drosselklappe handelt. Der Bereich um die 50km/h passt sowohl für den 5. als auch für den 4. Gang schon ziemlich gut.

8.7.2023 Leistungsmessung

Mittlerweile ist der TÜV abgelaufen und ich muss aktiv werden. Der TÜV verlangt für die Eintragung der K&N Luftfilter eine Geräusch und Leistungsmessung. Ich bin zwar mit dem Einspritzmapping noch nicht ganz fertig, aber eine kurzer Zwischenstand kann ja nicht schaden. Also war ich am Wochenende mit der Guzzi auf dem Leistungsprüfstand und was soll ich sagen, ich bin mehr als zufrieden.

Moto Guzzi V10 Centauro Leistungsdiagramm

Werbeanzeigen

Scheiße!!!

Letzte Zeit hat die Guzzi am Krümmerausgang am Zylinderkopf leichte Geräusche gemacht. Das hat sich nach der letzten Fahrt extrem verschlimmert. Ich habe auf eine defekte Krümmerdichtung getippt und auch schon eine neue bestellt, aber es kommt doch noch schlimmer.

Der vordere Ring vom Krümmer ist abgerissen. Das heißt, dass der Krümmer nicht mehr zum Kopf abgedichtet wird. Das ist insofern schlimm, dass ich momentan nicht abschätzen kann, welche Auswirkungen das auf meine Abstimmungsarbeiten hat. Der Krümmer ist jetzt erstmal zum Schweißen und dann sehen wir weiter.

Werbeanzeigen

Repariert!

Der Metallbauer meines Vertrauens hat mal wieder sehr gute und schnelle Arbeit geleistet.

Werbeanzeigen

Weiter gehts!

Nachdem der Krümmer geschweißt war konnte es wieder ans Optimieren gehen. Mittlerweile bin ich bei EPROM Version MD-021 und schon ziemlich gut unterwegs.

Die Tabelle sieht auch schon sehr homogen aus. Die Ermittlung der Tabellenwerte erfolgt seit einiger Zeit mittels einer „Datenwolke“. Hierfür ziehe ich nicht nur einen Lambda-Wert heran, der der Drehzahl und dem TPS-Winkel entspricht sondern so viele wie möglich. Zum Beispiel nutze ich für den Drosselklappenwinkel von 5,1° einen Bereich von 4,9°- 5,3° und für die Drehzahl ca. +/-50U/min. Das sieht dann so aus:

Dann noch eine Trendlinie einfügen und die Y-Achse anpassen.

Der TPS (Throttle Position Sensor)

Man sollte es nicht meinen, aber ich erreiche mit meinem Blog doch den einen oder anderen und habe dadurch tatsächlich sachdienliche Hinweise aus der Community erhalten. Was ich bis jetzt nicht wusste, ist die Tatsache, dass der in der Centauro verbaute TPS keine lineare Kennlinie hat. Die Kurve steigt bis 32° sehr steil an um dann von da bis 80° flacher zu verlaufen. Die Ingenieure von Moto Guzzi wollten damit sicher die Auflösung im unteren Teillastbereich erhöhen um eine sanfteres Ansprechen des Motors zu erreichen.

Hier ein Diagramm mit der Kennlinie und dafür vielen Dank an Peter Birtel, der sich bereits sehr intensiv damit beschäftigt hat.

Die schwarze Linie zeigt den Spannungsverlauf über den Drosselklappenwinkel, die pinkfarbene Linie die Öffnungsfläche der Drosselkappe über dem Winkel.

Was heißt das jetzt für meine Abstimmungsarbeiten?

Wenn ich in allen Bereichen des Kennfeldes einheitliche Lambdawerte erreichen möchte, spielt die Kennlinie des TPS keine Rolle. Aber genau das will ich nicht. Ich möchte im unteren Teillastbereich eine magerere Abstimmung. Dadurch sinkt der Kraftstoffverbrauch genau in dem Bereich, der für eine „normale“ alltägliche Fahrweise relevant ist. In den höheren Drehzahlen und gleichfalls offeneren Drosselklappenstellungen möchte ich aber ordentlich Druck und muss in diesen Bereichen den Motor fetter betreiben. Somit spielt die Kennlinie eben doch ein Rolle.

Im Datenlogger werde ich die Kennlinie derart umsetzen, dass ich die Drosselklappenstellung mittels der Steigungsformel für den jeweiligen Kennlinienabschnitt ermittele.

Für 0° – 32° Drosselklappenwinkel (3,45V gleich 706 Digits) gilt:

Drosselklappenwinkel = map (dkpoti_smooth, 0, 706, 0, 32,);

Darüber gilt:

Drosselklappenwinkel = map (dkpoti_smooth, 706, 1012, 32, 80);

 if (dkpoti_smooth < 706.00)
 {
    dkpoti = map(dkpoti_smooth, 0, 706, 0, 32);
  } 
else 
{
    dkpoti = map(dkpoti_smooth, 707, 1012, 32, 80);
  }

Hier findet Ihr den aktualisierten Schaltplan zum Projekt.

Fortsetzung folgt!

Werbeanzeigen

Hier findet Ihr die Daten zum Projekt:

https://oshwlab.com/mdauso/datenlogger-moto-guzzi_copy

Arduino Sketch: Datenlogger_006

Synchrontester für 2-Zylindermotoren

Schon vor Jahren hatte ich mich damit beschäftigt einen Synchrontester zu bauen, dessen Messdaten auf einem PC visualisiert werden können. Das hat mehr oder weniger gut geklappt. Die Geschwindigkeit des 8-Kanal USB-Adapters war damals einfach zu langsam. Etwas enttäuscht habe ich mich damals entschieden die Variante mit den Schläuchen und einer ölgefüllten Flasche zu verwenden. Das funktioniert in gewissen Grenzen auch gut, aber letztendlich bin ich damit nicht ganz zufrieden.

Jetzt gibt es einen neuen Anlauf, da ich ja auch noch viele der benötigten Bauteile von damals in meiner Krabbelkiste liegen habe. Da wären die Druck- bzw. Unterdrucksensoren MPX5100DP und die zugehörigen Kondensatoren. Einen Arduino Nano hab ich auch noch, los geht’s.

Ich habe mich gegen eine Anzeige am Synchrontester entschieden. Die Auswertung soll über den seriellen Plotter in der Arduino IDE erfolgen. Das erscheint mir sehr komfortabel und reduziert den Aufwand erheblich.

Den Schaltplan und das Platinenlayout habe ich wie immer mit EasyEDA erstellt und die Platinen auch schon dort bestellt.

Serieller Plotter in der Arduino IDE

Eine gute Beschreibung gibt es hier.

https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-serial-plotter

17.06.2023 Die Platinen sind da und bestückt

Vor zwei Tagen sind die Platinen angekommen, wie immer schnell und in einer super Qualität.

Platine für Synchrontester.

Platine für 2-Zylinder Synchrontester

Natürlich lässt einem das keine Ruhe und man will dass es weiter geht. Also habe ich die Platinen auch gleich bestückt und siehe da es funktioniert. Getestet hab ich noch nicht am Motorrad, aber mit zwei großen Einwegspritzen. Mir fehlt noch ein T-Stück, dass man auf beiden Drucksensoren den gleichen Unterdruck hat. Mit einer Einwegspritze kommt man fast bis ca. -0,8 Bar, mehr ist schwierig, da man die Spritze nicht richtig halten kann.

2-Zylinder Synchrontester mit Arduino

Der Arduino Code

Falls sich jemand fragt, wo er die „Filter.h“ Bibliothek herbekommt, die gibt es hier (klick!).

/* 
-Synchrontester by Mario Deuse 
 
-V001 
 
*/ 
 
#include "Filter.h" 
  
const int Zyl_1_Pin = A0; 
const int Zyl_2_Pin = A1; 
const int Daempf_Pin = A5; 
 
int Daempfung = 5; 
int Zyl_1 = 0; 
int Zyl_2 = 0; 
 
ExponentialFilter<long> Zyl_1_raw(Daempfung, 0); //je größer der erste Wert umso geringer die Filterung 
ExponentialFilter<long> Zyl_2_raw(Daempfung, 0); 
  
void setup() { 
  
pinMode(Zyl_1_Pin, INPUT); 
pinMode(Zyl_2_Pin, INPUT); 
pinMode(Daempf_Pin, INPUT); 
 
 
Serial.begin(19200); 
 } 
 
void loop() { 

Daempfung = analogRead(Daempf_Pin) / 10; 

Zyl_1_raw.SetWeight(Daempfung);

Zyl_2_raw.SetWeight(Daempfung);

 
Zyl_1_raw.Filter(analogRead(Zyl_1_Pin)); 
Zyl_1 = Zyl_1_raw.Current(); 
 
Zyl_2_raw.Filter(analogRead(Zyl_2_Pin)); 
Zyl_2 = Zyl_2_raw.Current(); 
 
Serial.print("Daempfung:"); 
Serial.print(Daempfung); 
Serial.print(","); 
Serial.print("Zylinder_1:"); 
Serial.print(Zyl_1); 
Serial.print(","); 
Serial.print("Zylinder_2:"); 
Serial.println(Zyl_2); 
 }

Schaltplan kurz erklärt

Also, PS1 und PS2 sind die MPX5100DP Drucksensoren. Zum Datenblatt gehts hier (klick!). Der Sensor ist ein Differenzdruckmesser. Er hat einen Anschluss für Unterdruck und einen für Überdruck. Ich lasse hier den Anschluss für Überdruck offen, da beim Synchronisieren der Unterdruck im Ansaugkanal gemessen wird.

Der Sensor gibt proportional zum Druck/Unterdruck eine Spannung von nominal 0-4,7V aus. Das lässt sich sehr gut mit dem Arduino auswerten. Der Sensor bringt auch eine interne Kalibrierung und eine Temperaturkompensation mit. Prinzipiell ist das egal, da man beim Synchronisieren nur den Unterschied der Zylinder ausgleichen will. Druckwerte spielen da eine untergeordnete Rolle.

Der Ausgang jedes Sensors geht über einen Spindeltrimmer (VR1 & VR2) zu einem Analogeingang des Arduino. Mit den Spindeltrimmern kann man die Sensoren gegenseitig abgleichen, damit die Messwerte bei Umgebungsdruck (nicht am Motor angeschlossen) gleich sind. Über den 3. Spindeltrimmer (VR3) wird die Dämpfung eingestellt. Das ist vergleichbar mit den Einstellschrauben an den allseits bekannten Synchronuhren. Die Kurve wird in der Anzeige im Seriellen Plotter des Arduino träger oder flinker. Das kann man dann einstellen, wie es einem lieber ist.

Die Kondensatoren sind entsprechend der empfohlenen Grundbeschaltung der Sensoren aus dem Datenblatt.

22.06.2023 Kalibrieren und Dämpfung

Hier beträgt der Dämpfungswert 35. Das heißt, dass neue Daten zu 35% in die Berechnung des Durchschnitts herangezogen werden.

Hier beträgt der Dämpfungswert 5. Es gehen nur noch 5% der neuen Daten in die Berechnung des Durchschnitts ein.

Erfolgreiche Synchronisierug

Mittlerweile ist ein wenig Zeit ins Land gegangen und ich komme mal wieder dazu an diesem Projekt weiter zu arbeiten. Bereits im August konnte ich den Synchrontester erfolgreich einsetzen. Das Video zeigt die Synchronisierung meiner Guzzi. Was man sehr gut erkennen kann, ist die Wellenform. Hier wünsche ich mir eher so etwas wie eine gleichmäßige Linie. Das heißt, ich muss weiter an der Datenauswertung arbeiten. Daten stehen reichlich zur Verfügung, sie müssen nur besser Ausgewertet werden. Wenn man nur die Maximalwerte der Wellenkurve zur Visualisierung heranzieht, sollte das besser aussehen.

Das Geheimnis der Limits

Autozoom im Arduino Serial-Plotter nervt. Das kann man einfach umgehen, indem man einen unteren konstanten Wert und einen oberen konstanten Wert zusätzlich sendet. Dann sieht das ganze so aus:

Eine nächste Idee ist, die Limits über ein Poti steuern zu können. So ließe sich an einem Drehknopf in den Graph hinein- bzw herauszoomen. Der Graph wäre dann immer zentriert.

Projektupdate

Die Idee mit dem Zoomen über Potis hat mir keine Ruhe gelassen. Selbstverständlich habe ich mich gleich an die Arbeit gemacht, und eine neue Version meines Synchrontesters ausgearbeitet. Die Bauteile sind schon bei DigiKey bestellt, da es die kleinen SMD Drucksensoren nirgends in DE zu kaufen gibt, wenn man kein Unternehmer ist.

Die neue Variante hat jetzt drei Potis für das untere Level im Serial Plotter, eines für das obere Level und eines für die Einstellung der Dämpfung ähnlich der Überwurfmutter bei den mechanischen Unterdruckuhren.

Ich habe noch eine SPI Schnittstelle für ein Display vorgesehen. Dieses könnte man über einen 8Pin Header anschließen. Wer weiß, vielleicht wird aus dem Projekt ja doch nochmal eine stand-alone Version ohne Arduino Serial Plotter.

Hier der Schaltplan:

3D-Ansicht der Platine:

Der neue Arduino Code sieht nun so aus:

/*
-Synchrontester by Mario Deuse

-V001
-V002
  -ein min. und max. Wert wird zusätzlich an den Serial Plotter gesendet, dadurch wird Autoscale unterbunden

-V003
  - Anpassungen für Hardware Version V002
  - Automatische Kalibrierung der Sensoren nach dem Einschalten des Modules
  - Potis für Low und High Grenzwerte
  - Dämpfung noch kleiner regelbar

*/

#include "Filter.h"



const int Zyl_1_Pin = A0;
const int Zyl_2_Pin = A1;
const int Daempf_Pin = A5;
const int Low_Pin = A2;
const int High_Pin = A3;

long Daempfung = 0.50;
int High = 1000;
int Low = 0;
int Zyl_1 = 0;
int Zyl_2 = 0;
int Low_sum = 0;
int High_sum = 0;
int Low_out = 0;
int High_out = 0;
int i = 0;
int Zyl_1_cal = 0;
int Zyl_2_cal = 0;


ExponentialFilter<long> Zyl_1_raw(Daempfung, 0);  //je größer der erste Wert umso geringer die Filterung
ExponentialFilter<long> Zyl_2_raw(Daempfung, 0);


void setup() {


  pinMode(Zyl_1_Pin, INPUT);
  pinMode(Zyl_2_Pin, INPUT);
  pinMode(Daempf_Pin, INPUT);
  pinMode(Low_Pin, INPUT);
  pinMode(High_Pin, INPUT);


  Serial.begin(115200);

  AutoCal();
}

void loop() {

  Daempfung = analogRead(Daempf_Pin) / 30;

  Zyl_1_raw.SetWeight(Daempfung);
  Zyl_2_raw.SetWeight(Daempfung);

  Zyl_1_raw.Filter(analogRead(Zyl_1_Pin));
  Zyl_1 = Zyl_1_raw.Current();

  Zyl_2_raw.Filter(analogRead(Zyl_2_Pin));
  Zyl_2 = Zyl_2_raw.Current();



  Low = analogRead(Low_Pin);

  High = analogRead(High_Pin);

  if (i <= 50) {
    Low_sum = Low_sum + Low;
    High_sum = High_sum + High;
    i++;
  } else {
    Low_out = Low_sum / 50;
    High_out = High_sum / 50;
    i = 0;
  }




  Serial.print("untere Grenze:");
  Serial.print(Low);
  Serial.print(",");
  Serial.print("obere Grenze:");
  Serial.print(High);
  Serial.print(",");
  Serial.print("Zylinder_1:");
  Serial.print(Zyl_1 - Zyl_1_cal);
  Serial.print(",");
  Serial.print("Zylinder_2:");
  Serial.println(Zyl_2 - Zyl_2_cal);
}



void AutoCal()

{
  for (int i = 0; i <= 500; i++) {
    Zyl_1_raw.Filter(analogRead(Zyl_1_Pin));
    Zyl_1 = Zyl_1_raw.Current();

    Zyl_1_cal = Zyl_1_cal + Zyl_1;

    Zyl_2_raw.Filter(analogRead(Zyl_2_Pin));
    Zyl_2 = Zyl_2_raw.Current();

    Zyl_2_cal = Zyl_2_cal + Zyl_2;

    Serial.println("Automatische Kalibrierung");
  }

  Zyl_1_cal = Zyl_1_cal / 500;
  Zyl_2_cal = Zyl_2_cal / 500;
}

Jetzt ist es passiert,

ich finde die Idee mit dem standalone Gerät so cool, dass ich mich gleich tiefer reingekniet habe. Mit einem TFT Farbdisplay sieht der erste Test schon sehr vielversprechend aus.

Auf dem Bildschirm werden zwei waagerechte Balken dargestellt, welche den jeweiligen Unterdruck repräsentieren. Wenn beide Zylinder synchron laufen, das heißt beide Unterdrücke in einem gewissen Range liegen werden die Balken grün, sonst sind sie rot. Am unteren Rand werden die Unterdruckwerte in Zahlen gezeigt. Weiterhin werden die untere und obere Grenze des angezeigten Bereiches angezeigt. Diese lassen sich später mit je einem Poti einstellen. So kann man in den Messbereich hinein zoomen und die Auflösung der gemessenen Unterdruckwerte erhöhen. Im Video habe ich einen Unterdrucksensor mit einem Potentiometer simuliert. Weiterhin kann später mit einem weiteren Potentiometer die Dämpfung ähnlich der Rändelschrauben an den mechanischen Unterdruckuhren eingestellt werden.

Im CAD angeordnet, kann man schon ahnen wo die Reise hingeht. Jetzt noch ein schickes Gehäuse und es kann weiter gehen.

Ein Gehäuse

So könnte das Gehäuse aussehen. Mal sehen, wie es weiter geht.

Softwareupdate

Die aktuelle Softwareversion 005 bietet nun eine bessere Ablesbarkeit der Balken und mit den Potis kann in den Bereich um die Balken hinein gezoomt werden.

Hier der Code:

/*
-Synchrontester by Mario Deuse

-V001
-V002
  -ein min. und max. Wert wird zusätzlich an den Serial Plotter gesendet, dadurch wird Autoscale unterbunden

-V003
  - Anpassungen für Hardware version V002
  - Automatische Kalibrierung der Sensoren nach dem Einschalten des Modules
  - Potis für Low und High Grenzwerte
  - Dämpfung noch kleiner regelbar

-V004
  - TFT Screen 128x160 hinzugefügt
  - Autocal entfernt

-V005
 - Strich besteht nun aus zwei Linien ur besseren Sichtbarkeit
 - mit den Potis für oberne und unteren Grenzwert kann der Anzeigebereich gezoomt werden

*/

// This examples uses the hardware SPI only. Non-hardware SPI
// is just too slow (~8 times slower!)
#include <Adafruit_GFX.h>     // Core graphics library
#include <Adafruit_QDTech.h>  // Hardware-specific library
#include <SPI.h>
#define sclk 13  // Don't change
#define mosi 11  // Don't change
#define cs 10
#define dc 9
#define rst 8  // you can also connect this to the Arduino reset

#include <Filter.h>

Adafruit_QDTech tft = Adafruit_QDTech(cs, dc, rst);  // Invoke custom library

const int Zyl_1_Pin = A0;
const int Zyl_2_Pin = A1;
const int Daempf_Pin = A4;
const int Low_Pin = A2;
const int High_Pin = A3;

long Daempfung = 0.50;
int High = 1000;
int Low = 0;
int Zyl_1 = 0;
int Zyl_2 = 0;
int Low_alt = 0;
int High_alt = 0;
int Low_out = 0;
int High_out = 0;
int i = 0;
int Zyl_1_cal = 0;
int Zyl_2_cal = 0;
int y1 = 0;
int y2 = 0;
int y1_alt = 0;
int y2_alt = 0;
int Zyl_1_alt = 0;
int Zyl_2_alt = 0;
int Colour;

ExponentialFilter<long> Zyl_1_raw(Daempfung, 0);  //je größer der erste Wert umso geringer die Filterung
ExponentialFilter<long> Zyl_2_raw(Daempfung, 0);

void setup() {

  pinMode(Zyl_1_Pin, INPUT);
  pinMode(Zyl_2_Pin, INPUT);
  pinMode(Daempf_Pin, INPUT);
  pinMode(Low_Pin, INPUT);
  pinMode(High_Pin, INPUT);

  Serial.begin(115200);

  tft.init();

  uint16_t time = millis();
  tft.setRotation(0);  // 0 - Portrait, 1 - Lanscape
  tft.fillScreen(QDTech_WHITE);
  tft.setTextWrap(true);

  delay(200);

  tft.setTextColor(QDTech_BLACK);
  tft.setTextSize(1);
  tft.setCursor(45, 70);
  tft.print("Marios");
  tft.setCursor(33, 85);
  tft.print("Synchrotest");
  tft.drawLine(10, 67, 118, 67, QDTech_RED);
  tft.drawLine(10, 95, 118, 95, QDTech_RED);
  tft.setCursor(8, 150);
  tft.print("Version 001");

  delay(3000);

  tft.fillScreen(QDTech_WHITE);

  tft.setTextColor(QDTech_BLUE);
  tft.setCursor(38, 150);
  tft.print("mBar");
  tft.setCursor(102, 150);
  tft.print("mBar");

  tft.setTextColor(QDTech_BLUE);
  tft.setCursor(4, 150);
  tft.print("-");
  tft.setCursor(68, 150);
  tft.print("-");

  tft.drawLine(64, 15, 64, 135, QDTech_BLACK);
}

void loop() {

  Daempfung = analogRead(Daempf_Pin) / 30;
  if (Daempfung < 1) {
    Daempfung = 1;
  }

  Zyl_1_raw.SetWeight(Daempfung);
  Zyl_2_raw.SetWeight(Daempfung);

  Zyl_1_raw.Filter(analogRead(Zyl_1_Pin));
  Zyl_1 = Zyl_1_raw.Current();

  Zyl_2_raw.Filter(analogRead(Zyl_2_Pin));
  Zyl_2 = Zyl_2_raw.Current();

  Low = analogRead(Low_Pin);
  High = analogRead(High_Pin);
  
  Low = map(Low, 0, 1023, 1023, 0);
  High = map(High, 0, 1023, 1023, 0);

  tft.setTextColor(QDTech_WHITE);
  tft.setTextSize(1);
  tft.setCursor(57, 137);
  tft.print(Low_alt);

  tft.setTextColor(QDTech_BLACK);
  tft.setTextSize(1);
  tft.setCursor(57, 137);
  tft.print(Low);

  Low_alt = Low;

  tft.setTextColor(QDTech_WHITE);
  tft.setTextSize(1);
  tft.setCursor(52, 5);
  tft.print(1023 - High_alt);

  tft.setTextColor(QDTech_BLACK);
  tft.setTextSize(1);
  tft.setCursor(52, 5);
  tft.print(1023 - High);

  High_alt = High;

  y1 = map(Zyl_1, (Low), (1023 - High), 5, 145);

  if (y1 < 11)
   {y1 = 11;}

  y2 = map(Zyl_2, (Low), (1023 - High), 5, 145);

  if (y2 < 11)
   {y2 = 11;}

  if (abs(Zyl_1 - Zyl_2) < 15) {
    Colour = QDTech_GREEN;
  } else {
    Colour = QDTech_RED;
  }

  tft.drawLine(20, (145 - y1_alt), 63, (145 - y1_alt), QDTech_WHITE);
  tft.drawLine(20, (145 - y1_alt - 1), 63, (145 - y1_alt - 1), QDTech_WHITE);
  tft.setTextColor(QDTech_WHITE);
  tft.setTextSize(1);
  tft.setCursor(10, 150);
  tft.print(Zyl_1_alt);

  tft.drawLine(20, (145 - y1), 63, (145 - y1), Colour);
  tft.drawLine(20, (145 - y1 - 1), 63, (145 - y1 - 1), Colour);
  tft.setTextColor(QDTech_BLUE);
  tft.setTextSize(1);
  tft.setCursor(10, 150);
  tft.print(Zyl_1);

  y1_alt = y1;
  Zyl_1_alt = Zyl_1;

  tft.drawLine(65, (145 - y2_alt), 108, (145 - y2_alt), QDTech_WHITE);
   tft.drawLine(65, (145 - y2_alt - 1), 108, (145 - y2_alt - 1), QDTech_WHITE);
  tft.setTextColor(QDTech_WHITE);
  tft.setTextSize(1);
  tft.setCursor(75, 150);
  tft.print(Zyl_2_alt);

  tft.drawLine(65, (145 - y2), 108, (145 - y2), Colour);
  tft.drawLine(65, (145 - y2 - 1), 108, (145 - y2 - 1), Colour);
  tft.setTextColor(QDTech_BLUE);
  tft.setTextSize(1);
  tft.setCursor(75, 150);
  tft.print(Zyl_2);

  y2_alt = y2;
  Zyl_2_alt = Zyl_2;
  
  /*
  Serial.print("untere Grenze:");
  Serial.print(Low);
  Serial.print(", ");
  Serial.print("obere Grenze:");
  Serial.print(High);
  Serial.print(", ");
  Serial.print("Daempfung:");
  Serial.print(Daempfung);
  Serial.print(", ");
  Serial.print("Zylinder_1:");
  Serial.print(Zyl_1);
  Serial.print(", ");
  Serial.print("Zylinder_2:");
  Serial.println(Zyl_2);
  */
}

Display angeschlossen

Heute habe ich das Display n die neue Platine angeschlossen. Es funktioniert, aber es muss eine Anpassung an der Platine vom Display vorgenommen werden. Auf der Rückseite befinden sich zwei Lötpads. Hier kann zwischen 5V oder 3,3V gewählt werden indem diese überbrückt werden. In meinem Fall musste ich dies tun, da ich das Display mit 3,3V betreibe.

Zum einfacheren Verkabeln des Displays habe ich mal zwei Bilder gemacht die mit unterschiedlich farbigen Kabeln alles etwas einfacher machen.

Anschlusskabel an der Hauptplatine

Anschluss am Display.

Eine Sache noch. Die Bedienung der oberen Grenze beim „Hineinzoomen“ ist etwas unglücklich, da das Poti falschherum funktioniert. Das wird noch geändert. Wenn ich das getestet habe poste ich hier die zu ändernde Codezeile.

Fortsetzung folgt!

Falls es jemand nachbauen möchte:

Project Homepage with Schematic and PCB

Arduino Code Synchrontester_V006

Moto Guzzi V10 Cafe Racer

Irgendwann muss man sich eingestehen, dass man nicht mehr kleiner und schmaler wird und somit Motorräder wie die MZ Skorpion doch etwas zu klein sind. Außerdem war da ja noch die Sache mit dem Bastelvirus, Hobby und so weiter. Also musste ein neues Projekt her, welches auch von der Größe besser zu meiner Statur passt. Eine Harley wird kategorisch ausgeschlossen. Vielleicht wenn ich mal alt bzw. noch älter bin. BMW hatte ich schon. Vielleicht Guzzi? Ja, das hat Stil und Charakter. Und weil es von den normalen Zweiventil-Guzzis schon jede Menge gibt habe ich mich für eine Centauro entschieden. Das ist quasi die wunderschöne Prinzessin als hässliches Entlein verkleidet. Das reizt den Umbauer umso mehr.

Moto Guzzi Cafe Racer

Das ist sie nun. Nach fast einem Jahr Umbauzeit steht sie da und wartet darauf losgelassen zu werden, den Staub der Straße zu fressen und dem Fahrer ins Kreuz zu treten und das kann sie, oh ja.

Moto Guzzi Caferacer

Wenn sie so da steht, hat sie gar nichts mehr von der Centauro, die ich vor einem Jahr gekauft habe. Jetzt gefällt sie mir viel besser, sportlicher und dynamischer.

Werbeanzeigen

Der originale Tank hätte es fast ins neue Leben geschafft, wäre er nicht aus Kunststoff und nach notwendigen Änderungen vielleicht nie wieder dicht. Jetzt hat sie den Tank einer 1984er Lemans 4. Dieser ist die bessere Wahl, weil er einfach wunderschön ist. Es war zwar einiges dran zu ändern damit er ordentlich sitzt, aber es hat sich gelohnt. Außerdem benötigte er einen Anschluss mehr als die zwei, die er schon mitbrachte. Dank meines Sandkastenfreundes Johnny hatte ich keinerlei Bedenken ordentlich die Flex anzusetzen. Johnny hat es dank seiner Schweißkünste wieder gerichtet. Der originale Heckrahmen ist auch Geschichte. Der von der Moto Guzzi V11 Sport passt dank Guzzi-Baukasten perfekt und sieht zudem noch richtig gut aus. Die Grundplatte der Sitzbank ist neu laminiert, mit Verbundschaum in Form gebracht und vom Sattler veredelt. Die Farbstreifen, die sich über die ganze Maschine ziehen, lassen keinen Zweifel an ihrer Herkunft, Bella Italia!

Moto Guzzi Caferacer

Dass es Stummellenker werden mussten, stand außer Frage. LSL hat da sehr schöne Sachen im Angebot. Auch die Spiegel von Highsider machen eine gute Figur. Die Gabelbrücke ist schwarz eloxiert worden. Der Kupplungs- und der Bremshebel mussten eine Politur über sich ergehen lassen.

Werbeanzeigen
Moto Guzzi Caferacer

Die Sitzbank ist im Cafe Racer Look gehalten, was sonst. Der „Bürzel“ ist auch aus Leder. Somit kann man wenn auch mehr oder weniger gut zu zweit fahren. Für den vorderen Teil wurde schwarzes Alcantara verwendet und teilweise abgesteppt.

Für den motoscope mini von Motogadget wurde ein Gehäuse mit sechs integrierten Kontrollleuchten entwickelt, gefräst und rot eloxiert.

Werbeanzeigen

Moto Guzzi Caferacer

Der, wie ich finde, sehr schöne Tankverschluss hat einen Schriftzug erhalten. Schließlich soll jeder wissen, dass es eine „Moto Guzzi V10“ ist und das „MD“ diese im Jahre 2022 umgebaut hat.

Moto Guzzi Caferacer

Wenn alles neu lackiert, beschichtet oder poliert ist es immer wieder ein Fest für das Auge.

Werbeanzeigen
Moto Guzzi Caferacer

Moto Guzzi Caferacer

Werbeanzeigen
Moto Guzzi Caferacer

Moto Guzzi Caferacer

Da fliegt er, der Moto Guzzi Adler. Zwar etwas stilisiert, aber ein Moto Guzzi Adler.

Werbeanzeigen

Moto Guzzi Caferacer

Moto Guzzi Caferacer

Moto Guzzi Caferacer
Werbeanzeigen

Der originale Scheinwerfer ist sehr schön und darf natürlich bleiben. Der vordere Kotflügel übrigens auch. Die originalen Fußrasten sind ein Graus und gehören entsorgt. Schuld daran ist unter anderem auch ihre Position. Für mich zu weit vorn und zu weit oben. Ich habe mich für Tarozzi Fußrasten entschieden, welche sehr schön und universell sind. Ich habe damit gute Erfahrungen aus anderen Projekten. Ein TÜV-Gutachten gibt es hierfür auch. Als Halterungen für die hinteren Fußrasten und die Auspuffanlagen sind die von der V11 Sport verwendet worden. Mit leicht geänderten Aufnahmen am Heckrahmen ist das stimmig.

Moto Guzzi Caferacer

Die Elektronik und der Kabelbaum sind an die neuen Gegebenheiten angepasst und verrichten ihren Dienst unscheinbar unter der Sitzbank und dem Tank, genau wie die Zündspulen.

Der Weg zum fertigen Motorrad war recht lang und es wurde viel mehr geändert oder angepasst als es hier geschrieben steht. Letztendlich muss ich sagen, dass ich sehr zufrieden bin und das ist alles was zählt. Trotzdem, über staunende Augen und Worte des Lobes freut man sich natürlich, denn ein bisschen Bestätigung brauch jeder im Leben.

Viele Grüße,

Mario

Werbeanzeigen
Werbeanzeigen

Moto Guzzi V10 Centauro

Moto Guzzi Centauro Cafe Racer

Eigentlich hatte ich gedacht, dass nach dem Umbau der MZ Skorpion etwas Ruhe in meiner Garage einkehrt aber weit gefehlt. Der Bastelvirus geht niemals weg. Das passende Motorrad sollte diesmal etwas größeres sein. Die MZ ist einfach zu klein für mich. Diesmal habe ich meine Fühler nach Italien ausgestreckt und mich für eine Moto Guzzi entschieden. Ich finde eine Moto Guzzi ist schon was besonderes und ich wäre nicht ich, hätte ich mich für eine von tausenden Zweiventilerguzzis entschieden. Die gibt es zuhauf und es sollte doch was exotisches sein. So fiel die Wahl auf eine V10 Centauro. Ein Bekannter war in die Motorradsuche involviert und hatte eine Centauro zu einem unschlagbaren Preis aufgetan. Zugegeben, sie war nicht fahrbereit, hierzu gleich mehr, aber ich habe trotzdem zugeschlagen.

Werbeanzeigen

Erste Probefahrt

Als ich auf dem Hof ankam stand sie schon vor der Garage. Der Verkäufer meinte es gäbe ein Problem mit der Bremse. Diese hatte keinen Druck aufgebaut. Das konnte nicht das große Problem sein und ich absolvierte die Probefahrt nur mit Hinterradbremse. Wieder zurück erbat ich mir eine Nacht Bedenkzeit und am nächsten Tag habe ich angerufen und den Deal klar gemacht.

Ein paar Tage später hat der Verkäufer sie mir dann auf dem Hänger vorbei gebracht. Er sagte, dass er noch ein Problem entdeckt habe und wenn ich sie nicht mehr möchte sie gleich auf dem Hänger bleiben könne. Das linke Radlager vorn hatte keine Kugeln mehr.

Damit war auch die Ursache für die nicht funktionierende Bremse gefunden. Erstaunlich ist, dass die Probefahrt keinerlei Hinweis darauf gegeben hat. Viel erstaunlicher ist, dass das Motorrad einen Monat vorher neue Reifen und neuen TÜV bekommen hat. Da frage ich mich ernsthaft was hier abgeht.

Das grundsätzliche Problem war ein falsches Kugellager. Irgendwer hatte auf beiden Seiten das gleiche Kugellager verbaut und somit ließ sich das Rad nicht mehr in der Telegabel verspannen. Zwei neue Lager rein und alles läuft wieder wie geschmiert. Die Bremse hat danach sofort wieder funktioniert. Mittlerweile bin ich schon über 500km damit gefahren.

Werbeanzeigen

Design

Ich habe mal eine Skizze angefertigt wie ich mir meine Guzzi vorstellen könnte.

Moto Guzzi V10 Centauro Cafe Racer

Der Tank ist von einer LeMans 4. Sonst gibt es noch Stummellenker, das riesige Instrumentengeraffel kommt weg und wird durch einen motoscope.mini von Motogadget ersetzt und das Heck wird klassich Cafe Racer. Die ganze Originalverkleidung inclusive Tank und Seitenverkleidungen verschwindet. Der Heckrahmen kommt, dank Moto Guzzi Baukasten, von einer V11 Sport.

Werbeanzeigen

motoscope.mini

Den motoscope.mini habe ich schon mal bei Louis erstanden.

Den Halter habe ich in CAD konstruiert und gerendert. Da die Moto Guzzi Centauro sechs Kontrollleuchten hat, eine mehr als alle am Markt gängigen Anzeigemodule, musste ich etwas eigenes konstruieren und habe die Kontrollleuchten gleich in den Halter integriert. Der Halter soll aus Aluminium gefräst und rot eloxiert werden. Rot wird eine der Hauptfarben des Motorrades werden. Dazu mehr, wenn es dann irgendwann zur Lackierung kommt.

20.9.2021

So, die Teile fürs Cockpit sind bestellt. Zwei Teile sind sogar schon fertig.

Die Abdeckung mit den Symbolen ist aus 0,25mm Edelstahlblech gelasert. Das durchsichtige Teil wurde aus PMMA ebenfalls mit Laser ausgeschnitten.

Werbeanzeigen

Der Tank

Wäre der originale Tank nicht aus Kunststoff, hätte ich mich für ihn entschieden. Dann hätte ich nämlich den hässlichen Dom mit dem Tankdeckel absenken können und den Tankdeckel eben einbauen können. Da ich aber nicht weiß, ob der Tank jemals wieder dich werden würde, habe ich mich anderweitig orientiert und mich für einen von der LeMans 4 entschieden.

Der Tank muss im Bereich der Zylinderköpfe ausgespart werden, sonst würde er zu hoch sitzen. Auf dem obigen Bild sind die Aussparungen schon drin.

Hier habe ich schon mal eine Schablone aus Pappe angefertigt. Das wird später auf 1mm Blech übertragen und der Tank dann zum Schweißen gegeben. Die Aussparung gibts übrigens auf beiden Seiten.

Werbeanzeigen

22.09.2021

Kontrollleuchtentest

Die LEDs und Vorwiderstände für das Cockpit sind angekommen. Allein wenn man die LED hinter das Symbolblech hält sieht das schon richtig gut aus.

27.9.2021

Der Tachohalter ist angekommen


Schon mal grob zusammengesteckt und eine LED angeschlossen, passt!


Hier habe ich die LEDs reingesteckt und gegen die Sonne gehalten.

Werbeanzeigen

1.10.2021

Tachohalter ist vom Eloxieren zurück

Halter für motoscope mini

Bracket for motoscope mini
Werbeanzeigen

7.10.2021

Tachohalter geht weiter

Werbeanzeigen

1.11.2021

Saisonende, es geht los!

Da die Motorradsaison für dieses Jahr nun zu Ende ist, habe ich begonnen das Motorrad auseinander zu bauen. So etwas geht immer schnell, da man sich nicht merken muss, was wohin gehört weil ja sowieso alles anders wird.

Werbeanzeigen

4.11.2021

Erste Anpassungsarbeiten

Mittlerweile ist fast alles abgebaut was weg soll und erste Anpassungen mit den neuen Teilen haben stattgefunden. Der Tank muss doch noch mehr geändert werde als ursprünglich gedacht, da er sonst zu hoch sitzt. Der heckrahmen von der V11 Sport passt perfekt und ist auch viel höher als der Centauro Heckrahmen. Das verschafft mir auf jeden Fall eine entspanntere Sitzposition.

Werbeanzeigen

3.1.2022

Mittlerweile hat sich wieder einiges getan. Der Heckrahmen ist nun von unten mit einem 2mm Stahlblech verkleidet worden um die ganze Elektrik aufnehmen zu können. Die Tarozzi-Fußrasten sind angekommen und montiert. Hierfür muss ich noch einen Umlenkhebel für die Schaltung fräsen lassen. Die Konstruktion ist bereits abgeschlossen.

Der Tank musste doch noch viel mehr aufgeschnitten werden als anfangs gedacht. Er saß einfach immer noch zu hoch. Das sah bescheiden aus. So wie es nun ist kann es bleiben, außer dass natürlich die riesigen Löcher geschlossen werden müssen.

modifizierter Heckrahmen 1100 Sport

Heckrahmen mit Bodenblech und Elektrik.

Der Kabelbaum kann nicht so bleiben. Das ist mittlerweile alles viel zu lang und muss massiv gekürzt werden.


Das ist das größere der beiden Riesenlöcher auf der Tankunterseite


Hier sieht man das kleinere der beiden Riesenlöcher.


Tarozzi Fußraste auf der Bremsseite


Tarozzi Fußraste auf der Schaltungsseite

Hier sieht man sehr schön die Anbindung des originalen Schalthebels an des Getriebe und den Rahmen. Das wird durch eine Umlenkung ersetzt, welche die Tarozzi Fußraste und den Getriebehebel verbindet.


Schalt-Umlenkhebel fertiges Design

Werbeanzeigen

21.4.2022

Es hat sich wieder einiges getan. Die Sitzbank ist fertig laminiert und das Schaumgummi geklebt und ausgeformt. Die Bleche zum Verschließen der Aussparungen im Tank sind fast fertig. Die Fußrasten haben eine neue Position etwas weiter hinten bekommen. Der Heckrahmen ist fertig modifiziert und geschweißt. Endlich habe ich auch einen Platz für den blöden Ausgleichsbehälter für das Federbein gefunden.

Sitzbank

Am schwierigsten war es den richtigen unterbau für die GFK-Laminierung der Grundplatte zu formen. Ich habe das mit Holz und jeder Menge Panzerband gemacht. Es ist genügend Platz für die Batterie und die Elektronikbox unter der Sitzbank.

Auf diesen Unterbau wurde die Grundplatte für die Sitzbank laminiert.

So sieht die fast fertige Grundplatte aus. Der umlaufende Rand muss noch geschliffen werden. Danach kommt das Schaumgummi. Es sind vier Lagen mit 5mm Verbundschaum im Bereich des Fahrersitzes und sechs sieben Lagen im Bereich des Rücksitzes aufgeklebt worden. Das Ganze ist denn mit deinem Metallsägeblatt und letztendlich mit dem Winkelschleifer in Form gebracht worden.

So sieht die Vorbereitete Sitzbank aus. Daneben liegt der Farbfächer für den italienischen Look und daneben der Designentwurf. Mal sehen, was der Sattler sagt.

Werbeanzeigen

Fußrastenanlage

Die ursprünglich geplante Position der Fußrastenanlage war sehr unbequem. Jetzt sitzt sie weiter hinten und etwas weiter unten. Das ist viel besser. Dazu mussten die Gewinde der Fußrasten entfernt werden und ein Innengewinde eingebracht werden. Die Schraube für die Motorhalterung ist einem Gewindestab mit Mutter gewichen und auf dem Überstand sitzen jetzt die Fußrasten.

Werbeanzeigen

24.5.2022

Der Rahmen ist fertig.

Werbeanzeigen

Der Sattler hat sich gemeldet.

Das sieht allein auf den Bildern schon mal sehr gut aus.

Ich habe endlich eine Lösung für die Schaltungsanbindung.

Das ist ein Screenshot aus dem CAD.

Die gefrästen Teile sind angekommen und ich habe sie mal kurz grob zusammengesteckt. Was noch fehlt ist die Welle mit dem angeschweißten Hebel auf der Außenseite (rechts wo auch die Fußraste sitzen wird.)

Heute morgen ist der Motor zum Sodastrahlen gegangen.

Werbeanzeigen

22.6.2022 Der Motor ist vom Sodastrahlen zurück

Vor zwei Wochen konnte ich den Motor vom Sodastrahlen abholen.

Um die Zylinder schwarz lackieren zu können wurde der Rest mit Papier abgeklebt.

Werbeanzeigen

Das Nadellager im Hinterradantrieb

Im Hinterradantrieb ist ein 16mm breites Nadellager mit einem 18mm breiten Innenring verbaut. Dieses war wirklich hinüber und den Innenring gibt es nicht mehr zu kaufen.

Das ist das alte Lager welches verbaut war.

Was tun? Man könnte einen Außenring mit Nadeln von einem 16mm Lager und einen Innenring von einem 18mm Lager verbauen. Leider gibt es kein 18mm breites Nadellager, zumindest hab ich keins gefunden. Also ein 16mm und ein 20mm Lager gekauft und den 20mm Innenring auf 18mm abgedreht. Wer denkt das geht nicht, weil es viel zu hart ist der sei eines Besseren belehrt. Mir ging es genauso. Ich hab es dann doch probiert und es hat funktioniert.


16mm Außenring mit 20mm Innenring


auf 18mm Breite abgedrehter Innenring


Neues verbautes Lager mit exakt 2mm Überstand. So wie es sein soll.
Werbeanzeigen

Der Zusammenbau beginnt

Werbeanzeigen

15.7.2022

Mittlerweile bin ich recht weit vorangekommen.

Da die ECU jetzt viel weiter vorne sitzt, gibt es jetzt ein Problem mit der Länge des Kabelbaumes. Ich habe mich entschlossen diesen zu kürzen.


Das ist der Kabelbaum ohne Hülle und in originaler Länge.

So sieht das Ganze nach dem Kürzen aus. Jetzt nur noch schön umwickeln und dann ist es wieder gut.

10.09.2022

Tachohalter geht in die nächste Runde.


Hier sind die LED mit Zweikomponentenkleber vergossen. Im nächsten Schritt werden die Widerstände verlötet und das Kabel angeschlossen.

Am Motorrad sieht das dann so aus.

Werbeanzeigen

Die Schaltung

Mittlerweile sind die Fußrasten montiert und die Umlenkung für die Schaltung auch. Alles funktioniert wie es soll obwohl mir die Schaltkraft etwas zu hoch erscheint. Da muss ich noch etwas mit der Habelllänge spielen. Das heißt aber auch, dass es ein neues Aluminiumfrästeil gibt.

Werbeanzeigen

23.9.2022 zu 99% fertig!

Hallo liebe Leserschaft, heute ist ein schöner Tag. Letzten Montag hat endlich der Lackierer angerufen. Die Teile sind fertig. Nachdem sie zwischendurch zum Aufbringen der Aufkleber waren ist jetzt der abschließende Klarlack in neun Schichten aufgetragen worden. Was soll ich sagen, es sieht hammermäßig gut aus.

Werbeanzeigen

24.09.2022 erste größere Ausfahrt

Nachdem ich einen Tag vorher eine erste kurze Probefahrt absolviert hatte ging es nun an die „mittlerweile schon legendäre Motorradtour“. Diese jährliche Tour ist Mitte der 2000er entstanden und erfreut sich in meinem Freundes und Bekanntenkreis jährlich wachsender Begeisterung.

Diese Jahr ging die Fahrt zum „PS-Depot Motorrad“ in Einbeck. Nicht zu verwechseln mit dem PS-Speicher. Die gehören zwar zusammen befinden sich aber an völlig unterschiedlichen Orten.

Was steht als nächstes an?

Weiterhin müssen noch einige Sachen eingetragen werden. Das wären die Tarrozzi-Fußrasten, die LSL-Stummellenker, der LeMans 4 Tank, vielleicht der Motogadget Tacho und auf jeden Fall die K&N-Filter. Das mit den Filtern wird sicher schwierig, aber nicht unmöglich.

Eine Fotosession ist auch noch geplant. Leider muss das Motorrad erstmal ordentlich geputzt werden, da es bei der letzten Tour etwas geregnet hat.

Jetzt da ich fast fertig bin möchte ich nicht vergessen mich bei all denen zu bedanken, die es mir ermöglicht haben dieses Motorrad zu bauen.

Vielen Dank an meine Frau und meine Kinder, die es mehr oder weniger ertragen haben, dass ich mal wieder (siehe MZ) Stunden um Stunden über fast ein ganzes Jahr in der Garage verbracht habe.

Vielen Dank an Johnny für die sauberen Schweißarbeiten am Tank. Mittlerweile ist er ein fester Bestandteil meiner Umbauarbeiten geworden.

Wie immer vielen Dank an Radio 21, die mich mit all den coolen Songs beim Schrauben bei Laune gehalten haben.

Vielen Dank an die folgenden Firmen für ihre saubere Arbeit:

Und natürlich alle, die mich mit ihren Ideen inspiriert haben. Eine Centauro ist nicht gerade ein einfaches Umbauprojekt.

15.06.2023 Ein Ende ist nie in Sicht

Nachdem ich den Tachohalter in der ersten Version nun lange genug angeschaut habe, finde ich ihn nicht mehr so schön. Darum habe ich mich hingesetzt und mir was neues ausgedacht. Das gefällt mir viel besser.

Darf ich präsentieren, der Tachohalter Version 2.

Das ist ein gerendertes Bild aus dem CAD.

Dieses Teil habe ich mal wieder bei CNC-Ecke fräsen lassen, hab es poliert und bei Fa. Rohde um die Ecke eloxieren lassen. Nicht wundern, auf den Bildern ist noch ein neuer Schalthebel dabei. Der aktuelle ist etwas zu lang geworden und es lässt sich damit unglaublich schwer schalten.

Fertig!

Fortsetzung folgt!

Erbstück MZ ES 150

Manchmal passieren doch noch ungeahnte Dinge. Mein Schwiegervater hat mir seine ES 150 vermacht, welche er sich vor einigen Jahren aus nostalgischen Gründen auf dem Oldtimermarkt in Erfurt gekauft hat. Jetzt steht sie in der Garage und fiebert dem TÜV Termin entgegen. Bin mal gespannt, ob sich die Zulassungsstelle auf ein kleines Nummernschild einlässt. Das Motorrad ist ja immerhin schon 53 Jahre alt und ein Standardnummernschild, selbst das kleine, ist viel zu groß für die alte Dame.

Hier mal ein paar Bilder.

Im Prinzip ist sie in einem guten Zustand. Der Lack ist noch ok. Leider sind die goldenen Streifen abgewetzt und nur noch schemenhaft zu erkennen. Außerdem bin ich mir sicher, dass die Lampe mit dem runden Tacho oder der Motor nicht stimmt. 1968 wurde der Tacho von rund auf halbrund und auch der Motor umgestellt. In dieser MZ ist der zwar der neuere Motor aber immer noch der alte Tacho verbaut. Ich glaube der Tankdeckel kam auch erst später. Zusammen mit diesem Tankdeckel sollte sie noch den Trophy Schriftzug tragen, was sie aber nicht tut. Der Auspuff ist neu aus dem Zubehör. Den hatte mein Schwiegervater schon gewechselt.

Was nicht so schön ist, sind die verrosteten Speichen. Das zieht etwas mehr Arbeit nach sich. Das muss ich mir noch ein paar mal durch den Kopf gehen lassen. Die linke Schalterabdeckung am Lenker geht so auch nicht. Das muss eine verchromte aus Metall sein.

23.6.2021

Plakette ist erteilt und Motorrad ist zugelassen. Ich habe sogar das kleine Nummernschild (255×130) bekommen. Ich freu mir!

Mein Tonuino

unser Tonuino

Bei der Suche nach einer Alternative zur Tonibox bin ich auf das Open Source Projekt Tonuino gestoßen. Hier werden alle Titel auf einer SD-Karte abgespeichert und mittels vorkonfigurierter NFC Karten abgerufen.

Auf der Homepage https://www.tonuino.de/ findet man alle nötigen Informationen und kann sogar die benötigte Hardware erwerben sofern man diese nicht schon herumliegen hat.

Ich habe die Hardware für meine Zwecke etwas abgeändert, da ich eine Kopfhörerbuchse und eine echtes Potentiometer für die Lautstärkeeinstellung haben wollte. Die elektronische Einstellung der Lautstärke ist im niedrigsten Level noch zu hoch. Einschlafen ist damit schwierig.

Weiterhin wollte ich Stereosound und das bedarf eines zusätzlichen Endverstärkers. Im originalen Tonuino wird der Monoverstärker auf der DF-Player Platine benutzt.

Für das Gehäuse habe ich einen Bluetoothlautsprecher von Bennett & Ross aus dem Schnäppchenangebot für 20€ geschlachtet. Mit der Tonuino Hardware hat der Lautsprecher einen erstaunlich guten Klang.

Die originale Tonuino Software habe ich etwas umgeändert. Normalerweise schickt der Arduino durch den Standby Timer, welchen man frei wählen kann, alle Komponenten und dann sich selbst in den sleep mode. Das Gerät ist dabei nicht richtig aus. Es schläft quasi nur. Um es aufzuwecken, muss man es aus und wieder einschalten. Im Original hat der Tonuino einen richtigen Schalter. Ich verwende einen Taster. Die Akkuladeplatine welche ich hier benutze bietet die Möglichkeit die gesamte Stromzufuhr auszuschalten. Hierfür muss am Eingang KEY der Akkuladeplatine zweimal kurz hintereinander Masse anliegen. Um die Stromzufuhr einzuschalten genügt eine kurze Verbindung nach Masse. Hier kommt der zusätzliche Transistor im Schaltplan ins Spiel. Er wird vom Arduino zweimal kurz auf HIGH und LOW geschaltet und ist invertierend. Somit schaltet sich das Gerät quasi selbst aus.

Der Arduino Code muss hierfür angepasst werden. Der Transistor hängt an Pin D7. Der Pin D7 wird beim Start des Arduino im Setup auf LOW geschaltet und bleibt bis zum Standby so.

Die LEDs an Pin 5 und Pin 6 sind zur allgemeinen Verwendung. Ich wollte eine Funktionsanzeige für An/Aus und gleichzeitig für den Akkustand. Darum ist es auch eine zweifarbige LED mit gemeinsamer Kathode. Bisher habe ich nur die Funktionsanzeige umgesetzt. Die Ermittlung des Akkuladestandes soll irgendwann mal über den analogen Eingang A6 stattfinden. Das steht noch aus. Verdrahtet ist alles schon.

Auf der Arduino Platine habe ich die Diode für die USB Spannungsversorgung entfernt, damit der Arduino nicht mehr über die USB Buchse mit Strom versorgt wird. Die Versorgung des Arduino erfolgt nun ausschließlich über das Akku-Lademodul und Arduino Vin. Dafür befindet sich auf meiner Platine ein Lötpad. Hier wird mit einem Kabel eine Verbindung vom Lötpad auf der Arduinoplatine wo vorher die Diode angelötet war (richtiges Pad benutzen, das mit 5V bei eingestecktem USB Anschluss!) und dem 5V-Vin des Akkulademoduls hergestellt.

Die Platine

Die Platine habe ich mit EASYEDA erstellt und auch gleich bestellt. Diese Platinen machen einen hochwertigen Eindruck und werden recht schnell aus China geliefert.

Schaltplan

unbestückte Platine

Bestückte Platine

erster Funktionstest noch ohne Tasten

mit Tasten

Bedienfeld noch ohne Tasten

Ein paar Bilder

Infos zum Nachbauen

Bluetoothlautsprecher gibts hier

Schaltplan und Platine gibts hier

Tonuino Hardware gibt es hier

Akku Ladeplatine gibt es hier

original Tonuino Seite

Display für Mario(s) Kart

Dem Kart fehlt noch ein Display. Momentan werden wichtige Informationen über BLYNK Anbindung zum Handy übermittelt. Das hilft aber niemandem, wenn man fährt.

Was soll alles dargestellt werden:

  1. Bildschirm
  • Geschwindigkeit
  • Akkustand
  • Leistungsanzeige
  • Licht an / aus
  • Blinker links/rechts (noch Zukunftsmusik)
  • Tageskilometer
  • Gesamtkilometer

2. Bildschirm

  • Analog in (Gaspedal)
  • DAC out (zur Hauptplatine)
  • Akkutemperatur
  • Boardtemperatur (Hauptplatine)
  • Außentemperatur
  • Geschwindigkeit
  • Akkustand datailliert

Als Display habe ich mich für ein QVGA TFT mit 320×240 Pixel Auflösung entschieden. Das ist groß genug. Ich hoffe, dass es auch draußen gut ablesbar ist. Das Display wird von einem Teensy 3.2 angesteuert. Dan hatte ich noch rumliegen und er hat genug Speicherplatz für die ganzen anzuzeigenden Bitmaps.

Den Schaltplan und die Hauptplatine habe ich mit EASYEDA erstellt.

Schaltplan Display Kart

Der oben gezeigte Schaltplan zeigt schon die optimierte Variante. Einige Komponenten konnten doch entfallen. Unten sieht man die Platine nach alten Schaltplan. Der untere DC-DC Regler ist entfallen und wurde durch eine einfache Diode ersetzt. Der erste Sapnnungsregler sollte die Referenzspannung für den Komparator, der das Signal für den Interrupt gibt welcher die Kilometerstände in den EEprom schreibt, bereitstellen. Das ist aber nicht notwendig, es funktioniert auch mit einer einfachen Diode.

Ursprünglich war geplant, die einzelnen Signale für Blinker, Licht, Power, Batteriespannung und Geschwindigkeit über digitale bzw. analoge Eingänge abzufragen. Mittlerweile bin ich aber soweit, dass ich alle Werte von der Zusatzplatine im Kart (ESP32) per serieller Schnittstelle an das Display sende. Somit werden nur noch drei Kabel statt der geplanten neun Kabel benötigt und man kann noch viel mehr Informationen übertragen.

PCB alter Stand

bestückte PCB nach altem Stand

fertig aufgebautes Display nach altem Stand


PCB neuer Stand

3D Ansicht PCB neuer Stand

3D Ansicht nach neuem Stand mit TFT


Display

Hier mal ein paar Displayzustände fürs Auge


Das Gehäuse

Das Gehäuse ist im CAD konstruiert und mittels SLS-Druck hergestellt worden. Oben sieht man ein gerendertes Bild aus PTC Creo 7. Da ist mittlerweile eine abgespeckte Version von Keyshot enthalten. Ich finde das kann sich schon sehen lassen.

Die beiden Knöpfe dienen einmal der Rückstellung der Tageskilometer und zur Aktivierung eines zweiten Bildschirmes mit verschiedenen Parametern zur Überwachung des Systems.

Der zweite Bildschirm

Über den 2. Bildschirm bekommt man Zugriff auf einige Systemparameter wie ADC-Eingang für das Gaspedal sowie den umgewandelten Ausgang des Gaspedalsignals über DAC. Weiterhin werden Temperaturen, die Geschwindihkeit und der Akkustand in Echtzeit angezeigt. Der Akkustand wird auf dem Hauptschirm nur im 30s Takt aktualisiert und in 20% Schritten angezeigt.

Video

Erster Displaytest mit serieller Schnittstelle über Arduino Uno

Weil es so schön ist, habe ich ein kleines Testprogramm mit Blynk erstellt. Blynk arbeitet hier mit einem ESP32 zusammen, welcher die vom Handy über BLE empfangenen Werte per serieller Schnittstelle an das Display sendet.


Das Gehäuse

Das Gehäuse habe ich mit CAD designed und drucken lassen.

Tacho am Kart montiert

Falls jemand Lust hat das nachzubauen, hier die Downloadlinks:

Projekt_Display_Kart

Teensy AddOn für Arduino IDE

Teensy 3.2 kaufen bei Eckstein Komponente (Teensy 3.1 geht auch, sind pinkompatibel)

2,2″ TFT Display bei Amazon

2,2″ TFT Display bei Ebay


1. Download Blynk app here
2. Scan this QR code
3. Enjoy my app!

Mario(s) Kart

25.9.2020

Mario(s) Kart

Nach der Seifenkiste mit Akkuschrauber als Antrieb gehe ich nun einen Schritt weiter und baue mal was richtiges. Ein Kart mit zwei BLDC-Motoren aus einem Hoverboard als Antrieb und gehackter Hoverboard Firmware auf der originalen Steuerplatine. 

Vorgaben:

  • Größe passend für meine Kinder und für Erwachsene ebenso, also ein verstellbarer Sitz,
  • Orientierung an der eFKV (Elektrokleinstfahrzeuge Verordnung),
  • d.h. zwei unabhängige Bremsen,
  • maximale Breite 700mm,
  • Beleuchtung vorn und hinten,
  • zulässige maximale Geschwindigkeit 20km/h,
Werbeanzeigen

Die Motoren

Als Antrieb habe ich mich für zwei Hoverboard Räder entschieden. Die Räder haben 8,5″ Durchmesser und je 350W. Die Räder haben je drei Phasenwicklungen und integrierte Hall Sensoren zur Positionserkennung.

Auf dem Bild sieht man im Vordergrund die beiden Antriebsräder und im Hintergrund die beiden Vorderräder mit Bremsscheiben.

Die Antriebsräder im Vordergrund
Hoverboard Wheel
geöffnetes Rad mit integriertem BLDC-Motor

Die Befestigung der Räder habe ich prinzipiell übernommen und mir die Kontur zur Aufnahme der Achsen in je zwei Halbschalen fräsen lassen. Diese werden dann jeweils in das Kastenprofil der Hinterachse gesteckt und mit je vier Schrauben M8 verschraubt.

Hinterachse mit Bohrungen für Radbefestigung
Werbeanzeigen

Der Akku

Das Akkupack habe ich auf E-Bay bestellt. Das war das reine Akkupack ohne BMS. Ein passendes BMS konnte ich auch gut gebraucht auf E-Bay erwerben.

Akkupack (Quelle: Ebay)

Der Akkupack besteht aus 30 Stück Panasonic NCR18650PF Zellen, zehn in Reihe und drei parallel. Die Kapazität beträgt 8,7Ah, der maximale Entladestrom beträgt 32 Ampere und die Spannung 36V.

Das BMS sowie die Anschlusskabel musste ich nachträglich selber anlöten.

BMS
BMS Platine
Akkupack
Mit BMS und Kunststoffhülle sowie etwas Klebeband sieht das dann so aus.
Werbeanzeigen

Die Hauptplatine

Die Hauptplatine ist eine Ersatzplatine für ein Hoverboard. Diese kann man recht günstig bei Ebay oder bei AliExpress erwerben. Wenn man kein Hoverboard zum Schlachten hat.

Hoverboard Platine Mainboard
Hauptplatine aus Hoverboard

Die Platine lässt sich nicht 1 zu 1 verwenden. Hier haben sich einige schlaue Leute viele Gedanken gemacht und eine neue Firmware für die Platine geschrieben. Somit lässt sich die Platine für verschieden Anwendungsfälle verwenden:

  • Hovercar
  • Transpotter
  • Bobbycar
  • uvm.

Die verschiedenen Softwarepakete kann man sich hier herunterladen:

https://github.com/NiklasFauth/hoverboard-firmware-hack

https://github.com/EmanuelFeru/hoverboard-firmware-hack-FOC

https://github.com/larsmm/hoverboard-firmware-hack-bbcar

Meine Entscheidung fiel auf die FOC-Variante von Emanuel Feru. Die Laufkultur der Motoren ist einfach besser. Hier mal zwei Videos zum Vergleich:

Video-1

Video-2

Was die PC-Software zur Programmierung angeht, habe ich mich einmal für ST-Link direkt von ST und parallel für Microsoft Visual Studio Code mit der Erweiterung Platform IO entschieden. Die Firmwareversionen stellen eine Datei für Platform IO bereit. Das macht die Auswahl der zu flashenden Version (Hovercar, Bobbycar …) sehr komfortabel.

Normalerweise klappt die Programmierung mit Visual Studio Code sehr gut. ST-Link wird benötigt, um den Chip zu entsperren, welcher im Lieferzustand der Platine gelockt ist, und eventuell um den Flash der Hauptplatine komplett zu löschen. Das kann notwendig sein, wenn man Daten der Auto-Kalibrierung der ADC-Eingänge wieder löschen will, aber dazu später mehr.

Zum Programmieren des ST32 Chips auf der Hauptplatine benötigt man einen Programmieradapter. Der kostet ca 8€ auf Ebay oder Amazon.

Quelle: Ebay

Ich möchte Niklas Faut und Emanuel Feru für die geleistete Arbeit danken. Wenn man sich vorstellt, dass hier ohne jegliche Informationen mittels Reverse Engineering das komplette Platinenlayout erarbeitet wurde, ziehe ich einfach nur den Hut. Von der neuen Firmware ganz zu schweigen.

Werbeanzeigen

Hauptplatine vorbereiten

Programmierschnittstelle

Auf der Hauptplatine befindet sich neben dem Hauptprozessor die Programmierschnittstelle. Hier ist es ratsam sich eine vierer Stiftleiste einzulöten damit man einfacheren Zugang zum Programmieren hat. Das sieht dann so aus wie auf dem unteren Bild.

eingelötete Stiftleiste

Manche Boards haben auf der Unterseite einen geschlossenen Kühlkörper. Da kommt man von unten nicht an die Kontakte. Hier muss man etwas improvisieren und die Stiftleiste von oben anlöten. Das geht wenn man den Plastikhalter auf der Stiftleiste etwas nach oben schiebt.

Die Programmierschnittstelle ist folgendermaßen beschaltet (klick ins Bild):

Pinout der Hauptplatine

Zum Programmieren habe ich mich für Visual Studio Code mit Platform IO entschieden. Die Software kann man kostenlos bei Microsoft herunterladen.

Hat man die Software installiert, muss man noch die Platform IO Erweiterung hinzufügen. Hierzu klickt man in der linken Leiste auf das Symbol mit den vier Kästchen und gibt im Suchfeld Platform IO ein. Danach kann man die Erweiterung auswählen und hinzufügen.

Hat man das erledigt, fügt man über Datei / Ordner öffnen den Ordner mit der gewünschten Firmware hinzu.

Darin befindet sich eine Datei für Platform IO welche in der linken Übersicht auswählbar ist. Wählt man diese aus, dann sieht das so aus.

Im rechten Fenster kann man dann die Firmwarekonfiguration wählen. Dann klickt man unten links auf Build (das Häkchen) und die Firmware wir kompiliert.

Nun kann man den Programmieradapter an das Mainboard anschließen und die Firmware flashen.

Programmieradapter mit Kabel
Kabel vom Programmieradapter mit Mainboard verbunden

Hat man alles verbunden, kann man auf Upload (Pfeil nach rechts) drücken und die Firmware in den Prozessor schreiben. Folgendes ist dabei noch sehr wichtig:

  1. Die 3,3V Verbindung vom Programmieradapter nur benutzen, wenn das Mainboard nicht mit dem Akku verbunden ist!
  2. Ist das Mainboard mit dem Akku verbunden, würde es sich u.U. einschalten und die 3,3V selbst zur Verfügung stellen. Gleichzeitig 3,3V vom Programmieradapter und vom mainboard selbst kann zur Zerstörung des Prozessors führen. Weiterhin muss man den Einschalter des Mainboards gedrückt halten solange der Upload stattfindet. Besser man nutz statt dem Taster einen Jumper. Damit bleibt das Mainboard immer an. Der Hintergrund ist folgender. Das Mainboard wird nach dem Einschalten vom Prozessor am Leben erhalten. Beim Programmieren wird die Software auf dem Prozessor gelöscht und dadurch würde das Mainboard ausgehen. Der Upload würde fehlschlagen und wenn es ganz dumm läuft der Prozessor sterben.

Sollte die Programmierung fehlschlagen, kann es daran liegen, dass der Speicher schreibgeschützt ist. Hierzu muss erst der Schreibschutz aufgehoben werden. Wie das geht findet man hier:

https://github.com/EmanuelFeru/hoverboard-firmware-hack-FOC/wiki/How-to-Unlock-MCU-flash

Rahmen und Räder

Werbeanzeigen

E-Kart Rahmen / e-kart frame
Rahmen im CAD

Für den Rahmen habe ich mich aus einer Konstruktion aus Aluminiumprofilen entschieden. Diese sollten die nötige Stabilität haben, damit auch ich damit unbeschadet fahren kann.

Die einzelnen Profile hat mir mein Sandkastenfreund geschweißt. Er kann das und zwar gut.

Die Vorderachse sollte auf alle Fälle schwenkbar sein, damit nicht immer ein Rad in der Luft hängt wenn der Untergrund uneben ist. Hierfür verwende ich zwei 15 mm Flanschlager K002. Der Rahmen hat eine 8mm dicke Frontplatte, an welcher die Achse für die beiden Flanschlager befestigt wird.

Hier mit den Vorderrädern

Vorderrad mit Bremssattel und Lenkachse

Die Vorderradaufhängung besteht aus einem Aluminiumprofil 20x20mm welches die Radachse, den Lenkhebel und das Halteblech für den Bremssattel trägt. Die Lenkachse wir durch je zwei 10 mm Stehlager realisiert. Die Vorderräder sind für einen Elektroroller gedacht und mussten leicht modifiziert werden, da sie ursprünglich eine durchgehende Achse hatten und beidseitig befestigt wurden. Hierfür habe ich die originale Achse entfernt und jeweils eine neue Distanzhülse, welche zwischen die beiden Radlager kommt, gedreht.

die originale Achse hier wurde durch besagte Hülse ersetzt

Gas- und Bremspedal

Die Firmwareversion „Hoverkart“ erlaubt die Steuerung über zwei Analogeingänge. Ein Eingang für Gas und der andere für Bremse. Ich habe mir über Ebay zwei Pedale mit analog Hallsensoren bestellt. Diese funktionieren kontaktlos und scheinen recht robust zu sein. Die Pedale können mit 3,3V betrieben werden.

Ein Datenblatt des Hallsensors findet man hier.

Die Pedale gibt es z.B. hier.

Die ausgegebene Spannung geht nicht ganz von 0V bis 3,3V aber das lässt sich in der Firmware sehr gut einstellen, damit min./ max. oder besser kein Gas und Vollgas richtig ausgewertet werden.

Die Einstellungen für die Analogeingänge befinden sich in der config.h Datei. Die Änderungen lassen sich schnell in Visual Studio erledigen.

Werbeanzeigen

Das Bremspedal dient einmal natürlich zum Bremsen und zweitens mittels „Doppelklick“ zur Aktivierung der Rückwärtsfahrt. Das Mainboard piept sogar beim Rückwärtsfahren. Das finden die Kinder ziemlich cool.

Ansicht von unten, Hallsensor und gewölbter Magnet

Werbeanzeigen

Fahrwerksgeometrie

Für die Auslegung der Fahrwerksgeometrie habe ich mich an allgemein gültigen Prinzipien orientiert. Das äußere Rad beschreibt dabei einen größeren Radius als das innere. Hierfür gibt es ein geometrisches Modell. Das muss bei der Auslegung der Lenkung berücksichtigt werden. Normalerweise wird dies über das sogenannte Lenktrapez gewährleistet. Leider hatte ich nicht den nötigen Platz für eine zusätzliche Verbindungsstange zwischen den beiden Vorderrädern. Ich konnte mir aber mit CAD helfen und bin somit bis auf 1° Abweichung an der idealen Auslegung. Auf Sturz habe ich bei der Konstruktion verzichtet um es einfach zu halten. Das Kart geht trotzdem um die Kurve als wäre der Teufel hinter ihm her. Ebenso wenig hat das Kart einen Nachlauf. Das merkt man sehr, da die Lenkung sehr direkt fast schon nervös reagiert.

Neuer Akku

Der derzeitige Akku funktioniert zwar, aber die Kapazität lässt doch sehr zu wünschen übrig und ein weiterer Punkt wirkt sich eher negativ aus. Momentan sind Panasonic NCR18650PF Zellen verbaut. Für den neuen Akku habe ich Samsung INR18650-25R Zellen verwendet. Die Samsung Zellen habe einen maximalen Entladestrom von 20A gegenüber den Zellen von Panasonic mit 10A. Das bringt den entscheidenden Vorteil, dass die Spannung der Samsung Zellen beim Entladen nicht so schnell einbricht und das Kart somit erstens mehr Leistung hat und zweitens das Board nicht so schnell abschaltet weil es der Meinung ist, der Akku wäre leer. Dabei hat man einfach nur mal kurz beschleunigt.

Wie auf dem Bild zu sehen ist, habe ich mich für 10S5P entschieden. Das entspricht einer Gesamtspannung von 42V und einer Kapazität von 12,75Ah. Theoretisch kann der Akku 100A liefern sofern die Verbinder und das BMS dies zulassen. Zur Zellenverbindung habe ich mich für Löten entschieden. Die Akkucommunity ist hier sehr Zwiespalten. Viele halten Löten für zu gefährlich, weil die Akkus explodieren können. Wenn man aber nur sehr kurz (2s – 3s) mit einem mind. 100W Lötkolben lötet geht das ziemlich gut. Der Akkupack ist hier noch nicht ganz fertig, da zwei Zellen getauscht werden müssen weil sie defekt sind. Ebenso müssen noch alle Brücken isoliert werden, damit es keinen Kurzschluss zwischen dem Becher (Minuspol) jeder Zelle und dem Pluspol gibt falls mechanische Beanspruchungen die Brücken eindrücken. Ich schiebe einfach ein Stück Pappe unter die Brücke und fixiere diese dann mit Klebeband.

Die Brücken sind aus 1mm versilbertem Kupferdraht. Laut VDE 0298 T4 06/13 kann ein Draht mit einem Querschnitt von 0,75mm² mit einen Strom von max. 15A belastet werden. Mit 1mm Durchmesser liegt man bei 0,785mm² und somit etwas höher. Das entspricht bei drei Bücken ca. 45A. Das reicht dicke, da die Software in der Grundeinstellung bei 17A pro Rad abschaltet.

Das BMS muss noch dran und das Pack muss noch eingepackt werden. Witzigs Wortspiel 😉 !

14.12.2020

So, nachdem alles ordentlich zusammengebaut wurde habe ich mich dran gemacht die Kapazität des Akkupacks zu messen. Man will ja schließlich wissen was man da so zusammengekloppt hat. Dafür habe ich mir für 20€ einen Leistungsmesser für Modellbauanwendungen gekauft.

https://www.banggood.com/ToolkitRC-WM150-150A-50V-Watt-Meter-Power-Analyzer-LCD-Display-Power-Voltage-Current-Tester-PWM-Output-p-1593171.html?cur_warehouse=CN

Quelle: Banggod

Das Display zeigt die Daten nach einer Testfahrt mit dem Kart. Die Elektronik hat 33,7A gezogen. Das Entspricht einer Leistung von 1130W. Bei einem eher pessimistisch angesetzten Wirkungsgrad von 90% wären das ca. 1,5PS. Was will man mehr.

Den Kapazitätstest habe ich mit 3 PKW Glühlampen a 12V in Reihe durchgeführt.

Hier kann man sehr schön sehen, dass nach knapp 13min 1Ah verbraucht wurde bei einem konstanten Strom von 4,7A. Das Maximum von 7,4A war der Einschaltstrom der Glühlampen. Das ist übrigens der Grund warum die Dinger immer nur beim Einschalten kaputt gehen.

Am Ende ist übrigens herausgekommen, dass der Akkupack knapp über 12Ah Kapazität hat. Das ist etwas weniger als die errechneten 12,75Ah könnte aber daran liegen, dass noch nicht alle Akkus 100%ig ausbalanciert sind und das BMS abschaltet wenn eine Reihe parallel geschalteter Akkus unter 2,8V fällt während andere Akkus noch 3V haben. Ich hoffe, dass das BMS das irgendwann geregelt kriegt.

Die Zusatzplatine

Im Kart habe ich eine Platine zusätzlich zur Hoverboardplatine verbaut. Diese wird verwendet um das Signal des Gaspedals beeinflussen zu können. Weiterhin können die verschiedenen Sounds per Handy abgespielt werden, das Licht über Handy an und ausgeschaltet, sowie verschieden Statusinfos auf das Handy übertragen werden. Die Verbindung zum Handy läuft über Bluetooth 4.0.

Die besagte Platine habe ich ursprünglich auf einer Lochrasterplatine aus Hartpapier aufgebaut. das ist nicht gut, da das Hartpapier Feuchtigkeit aufnimmt und sich stark wölbt. Jetzt habe ich die Reißleine gezogen und eine neue Platine entworfen und diese aus Epoxy fertigen lassen.

Schaltplan der neuen Zusatzplatine
Zusatzplatine Marios Kart
3D-Modell der Zusatzplatine

Es fehlen noch ein paar Bauelemente dann kann es ans Bestücken gehen. Links und rechts befinden sich Klemmleisten für die ganzen Anschlüsse. Dann kommt auf der linken Seite das MP3 Modul für die Sounds. In der Mitte oben ein Bluetoothmodul für Statusmeldungen von der Hoverboardplatine. Darunter ein Spannungsregler. Dann kommt der 4fach Optokoppler für die Ansteuerung des MP3-Moduls vom ESP32 welcher rechts angeordnet ist. Ganz unten in der Mitte die Schaltung für das Licht und unten rechts der Spannungsregler für die ankommenden 42V. Dieser stellt 6V zur Verfügung. Damit werden alle anderen Baugruppen und Spannungsregler betrieben. Leider läuft der Hallsensor für die Geschwindigkeitsmessung am Hinterrad nur mit min. 6V. Sonst könnte ich mir den Spannungswandler für das MP3-Modul sparen und alles mit 3,3V betreiben.

fertig bestückte Zusatzplatine für das Kart

Das ist die Oberfläche fürs Handy. Mit dem linken Regler lässt sich die maximale Geschwindigkeit einstellen, mit dem rechten Regler das maximale Drehmoment. Unten ist der Batteriestatus und darüber der Wert für die max. Geschwindigkeit. Darüber die Schnecke zeigt an, dass das Kart momentan nur langsam fahren kann. Stellt man die max. Geschwindigkeit höher kommt der Roadrunner. Ganz oben sind die Tasten für die Sounds, das Licht und die Bluetoothverbindung.

Handyoberfläche in BLYNK

Die neuste Softwareversion für die Hoverboard Platine von Emanuel Feru bietet die Möglichkeit viele Werte während des Betriebes einzustellen. Diese können über die Serielle Schnittstelle gesendet werden. Für die Maximale Drehzahl der Antriebsräder heißt der Befehl SET N_MOT_MAX (Value). Dieser Befehl wird jedes Mal gesendet, wenn der Regler für die maximale Geschwindigkeit verändert wird. Somit kann die maximale Geschwindigkeit immer und während des Betriebes geändert werden. Das ist ein Feature, welches ich mir schon lange gewünscht habe, danke Emanuel.

Es gab schon von Anfang an die Möglichkeit das maximale Drehmoment über die Pedale einzustellen. Das war aber etwas umständlich und kann vom Fahrer jederzeit geändert werden. Das war also keine Option.

So, die neue Platine ist erfolgreich eingebaut worden. Es funktioniert alles zu meiner Zufriedenheit.

eingebaute Zusatzlatine

Ein Video zum Schluss

Fortsetzung folgt!

Die e-Seifenkiste

Vor längerer Zeit hatte mein Sohn Interesse an einer Seifenkiste angemeldet. Ich habe eine sehr schöne Bauanleitung für eine Seifenkiste bei OBI gefunden.

Quelle: OBI.de

Wer sie nachbauen möchte findet die Bauanleitung hier: OBI Seifenkiste

So, kurzerhand nachgebaut sieht das ganze dann so aus.

Werbeanzeigen

Leider hat mein Sohn dann irgendwie das Interesse daran verloren und die Seifenkiste stand sehr lange ungenutzt in der Garage. Ein Versuch sie bei Ebay-Kleinanzeigen zu verkaufen war nicht erfolgreich. Zum Glück, denn irgendwann ist ihm die Idee gekommen ob man nicht einen Motor anbauen könnte. Da hat er bei mir offene Türen eingerannt.

Die einfachste und billigste Methode schien mir ein Akkuschrauber zu sein. Da ist ein zweistufige Getriebe dran, ein Drehzahlregler, Akkus und ein Ladegerät und das ganze für 30€ bei Real im Angebot.

Quelle: Real.de

Als Übertagungselement dient ein Kettenantrieb für ein Pocketbike mit einer T8F-Kette, einem 11er Ritzel am Antrieb und einem 54er Ritzel am Abtrieb. Hier wird man bei Ebay fündig,

Werbeanzeigen

Zwei Lagerböcke sollen die Querbelastung vom Akkuschrauber abhalten was sehr gut funktioniert.

Der Akkuschrauber wurde vom Akkuhalter und vom Bedienknopf befreit um diese Bauteile an anderer Stelle an der Seifenkiste zu verbauen.

Akkuhalter
Bedienknopf zum Gasgeben, Vor- und Rückwärtsfahren

Das große Ritzel habe ich direkt am Hinterrad verschraubt.

Der Rest vom Akkuschrauber wurde mit Blechwinkeln mehr oder weniger professionell an der Unterseite befestigt, aber es funktioniert

Ansicht von unten

Und fertig ist das ganze. Die Kinder lieben es und jeder hat einen Akku zum Leerfahren. Dann gibt es weniger Streit.