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

motoscop.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

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.

Staatssicherheit der DDR

Stasi in a Box

Dem ehemaligen DDR Bürger ist der Name „Stasi in a Box“ sicher recht. Alle anderen dürfen auch gern mit dem Namen „Big Brother“ Vorlieb nehmen.

Mir persönlich ist das Erstere lieber, weil es mit meiner Vergangenheit mehr gemein hat obwohl ich tatsächlich nur einmal in meinem Leben Berührung mit der Stastassicherheit hatte. Während meiner Lehrausbildung zum Werkzeugmacher hatte man tatsächlich versucht uns für die Arbeit bei der Staatssicherheit der DDR zu werben. Jeder musste einzeln zum Gespräch ins kleine Kämmerlein und wurde dort mehr oder weniger unter Druck gesetzt. Glücklicherweise habe ich stand gehalten und abgelehnt.

Irgendwann, viele jahre später, die DDR war Geschichte, hatte ich die Idee für ein kleines Arduino Projekt. Es gab im Netz schon ein paar Basteleien mit sich bewegenden Augen aber eben nicht mit diesem geschichtlichen Hintergrund.

„Das ist sie, die „Stasi in a Box“ Box

geöffnete Box

Du hast keine Chance, Du kannst nicht entkommen…

Nimmt man den Deckel im Inneren der Box ab, ergibt sich folgendes Bild.

Big Brother Stasi in a Box

Blick auf die inneren Werte

Ein Arduino Nano, ein Batteriehalter mit vier AA-Batterien und das Herzstück, die Machanik. An einem 3D gedruckten Grundkörper sind sowohl das bewegliche Auge als auch die beiden Miniaturservos befestigt, welche das Auge über zufällig ermittelte Werte bewegen. Die Zufallswerte für x und y sowie die Pausenzeiten werden mittels Zufallszahlen ermittelt.

Die Mechanik von oben

Mechanik von unten

Mechanik in Bewegung

Hier ist der Code. Ich glube da gibt es nicht viel zu sagen.

#include <Servo.h>

Servo myservo1; //links und rechts
Servo myservo2; //auf und ab

void setup() 
{
  myservo1.attach(9);  
  myservo2.attach(11);
 }

void loop()

{
  myservo1.write(random(60, 120));
  delay(random(400, 2000));
    
  myservo2.write(random(60, 120));
  delay(random(400, 2000));
}

Smart Kindle Picture Frame

Bilderrahmen mit Kindle Paperwhite


Smart Kindle Picture Frame

Der Kindle von Amazon hat, wie viele ähnliche E-Book Reader, ein sogenanntes E-Ink Display. Diese Displayart hat die nette Eigenschaft, dass nur zur Aktualisierung Strom benötigt wird und der angezeigte Inhalt dann stromlos für einen sehr langen Zeitraum erhalten bleibt. Wer mehr wissen will kann sich hier (Wikipedia) schlau machen.

Das Display kann Bilder im JPG oder PNG Format anzeigen. Dabei müssen einige Vorraussetzungen erfüllt sein. Das Bild muss je nach Readerversion eine entsprechende Auflösung aufweisen und es muss in Graustufen konvertiert sein. Ich habe die Erfahrung gemacht, dass es entgegen anderslautender Aussagen nicht auf 16 Farben beschränkt sein muss abhängig von der benutzten Programmbibliothek.

Ein Bilderrahmen für die Großeltern

Die Idee ist es, den Großeltern einen digitalen Bilderrahmen zu schenken dessen Inhalt sich in regelmäßigen Abständen aktualisiert. Hierzu weckt die Software des Bilderrahmens diesen auf, greift auf einen FTPS-Server zu, holt sich ein gespeichertes Bild, konvertiert dieses ins richtige Format, stellt es auf dem Bildschirm dar und schaltet den den Bilderrahmen wieder in den Stand-By Modus um Strom zu sparen.

Dadurch bekommen die Großeltern regelmäßig ein schönes Bild ihrer Kinder und Enkel jenseits von Whatsapp & Co und das auch noch in einem schönen Rahmen.

Das Erscheinungsbild des Bilderrahmens steht dem eines mit echtem Foto in fast nichts nach. Manchmal wünscht man sich ein etwas besseres Reflektionsverhalten also die Fähigkeit einfallendes Licht zurückzuwerfen. Ein weißes Blatt Papier liegt hier bei ca 75%-80%. Der Kindle Paperwhite liegt mit seinem E-Ink Bildschirm nur bei ca. 40%, aber das ist ok.

Der JailBreake

Was ist das?

Um den Kindle in einen digitalen Bilderrahmen zu verwandeln, bietet es sich an den vorhandenen Bildschirmschoner zu nutzen. Leider kann dieser im Originalzustand nur die von Amazon hinterlegten Bilder darstellen. Möchte man hier etwas eigenes, dann muss der Kindle gehackt werden. In Fachkreisen nennt man das dann JailBreake.

Um den Kindle hat sich in den Jahren seit seiner Markteinführung eine große Gemeinschaft gebildet.

Link zum Mobileread Forum

Ziel war es den Kindle zu personalisieren und eigene Software laufen zu lassen, handelt es sich doch um ein Linux Gerät. Anfangs war der JailBreake noch über Softwarelösungen durchführbar. Leider schläft Amazon nicht auf dem Baum und hat deshalb fiese Sperren in seine Firmware eingebaut.

Mein Kindle hatte schon beim Gebrauchtkauf die aktuellste Firmwareversion 12.1.2. An einen JailBreake per Software war nicht im Traum zu denken. Nun haben findige Leute einen Weg gefunden über die serielle Schnittstelle auf dem Mainboard den Kindle zu hacken.

Anleitung zum Serial JailBreake gibt es hier!

Ich habe es getan und es ist beiweitem nicht so schlimm wie es sich aufs Erste anhört. Die folgenden Bilder sind von einem Paperwhite 2 (anderes Projekt) der sich aber nur geringfügig von einem Paperwhite unterscheided. Die Vorgehensweise ist die gleiche.

Zuersteinmal muss der Kindle geöffnet werden. Das lässt sich mit einem nicht allzu scharfem Küchenmesser bewerkstelligen. Der Frontrahmen ist nur geklebt und lässt sich leicht entfernen. Im unteren Bereich wo der Schriftzug ist bitte etwas vorsichtig sein, da sind die LEDs für den Bildschirm der Hall Sensor für das Cover. Weiterhin kann man die Bildschirmschutzfolie ablösen wenn man mit dem Messer zu weit hineintaucht.

open a kindle

Danach liegen das Gehäuse und das Mainboard vor uns.

IMG_5475
entfernter Abdeckrahmen

Jetzt werden alle Schrauben gelöst. Beim Paperwhite 2 3G sind es 10 Stück, vermutlich wegen der 3G Antenne. Beim Paperwhite sind es 11 Stück

IMG_5476
Lösen der Befestigungsschrauben
IMG_5475
Position der Befestigungsschrauben
IMG_5477
Kindle ohne Gehäuse, Ansicht von oben
IMG_5478
Kindle ohne Gehäuse, Ansicht von unten

Das Modem und die Sim Karte habe ich ausgebaut, weil ich mir dadurch einen geringeren Stromverbrauch verspreche. Kann auch nur Einbildung sein. Den Antennenaschluss lässt man einfach baumeln oder fixiert ihn mit Klebeband.

IMG_5483
3G Modem und SIM Karte ausgebaut

So, Akku raus und los gehts. Der Akku ist nur mit drei Schrauben befestigt.

IMG_5480
Akku ausgebaut

Die serielle Schnittstelle ist schnell gefunden.

Kindle serial jailebrake

Jetzt gehts ans Löten. Wer sich das nicht zutraut, es gibt ganz gute Methoden zum lötfreien Kontaktieren. (lötfreies Kontaktieren) Man sollte bevor man anfängt zu Löten auf alle Fälle den Akku und ausbauen. Sicher ist sicher.

IMG_5504
serielle Schnittstelle mit angelöteten Kabeln

Der gelbe Draht geht zu TX am Adapter, der orange Draht zu RX und der grüne zu Masse (siehe unten). Den USB-RS232 Adapter habe ich bei Amazon gekauft. Hier muss man unbedingt darauf achten, dass er sich auf 1,8V stellen lässt oder von haus aus ein 1,8V Typ ist. Sonst kann man sich von seinem Kindle verabschieden!!!

Hier der Link zum USB-RS232 Adapter!

USB-RS232_Adapter
Serieller Adapter (Quelle: Amazon)
Adapterbeschaltung
Verbindung zum seriellen USB Adapter

Wenn man die Kabel noch etwas mit Klebeband fixiert, kann das nicht schaden.

Ich werde jetzt hier nicht den ganzen Vorgang des Jailbreakes beschreiben. Das habe andere schon sehr detailliert getan. Siehe hier!

Das Kindle root Passwort bekommt man übrigens sehr komfortabel mit dem Kindle Password Tool heraus.

Was muss auf dem Kindle installiert werden:

  • Jailbreake
  • Jailbreake Hotfix
  • KUAL
  • KUAL helper um ab Firmware 5.6.x Softwarepakete installieren zu können,
  • Usbnet für den Zugriff auf den Kindle über WLAN
  • Python 
  • Screen Saver Hack für den Bildschirmschoner und etwas mehr, dazu später

Alle benötigen Softwarepakete bekommt man hier.

Die Installationsanweisungen findet man in den jewiligen Readme Dateien der Softwarepakete. Bei USBnet bitte unbedingt die Readme Datei lesen, hier kann viel schief gehen. Um genau zu sein, kann man sich, wenn´s dumm läuft, den Zugriff auf den Kindle komplett verbauen.

Eine sehr gute Anleitung für USBnet findet man hier.

Was muss auf dem PC installiert werden:

  • PuTTy (Link) um mit dem Kindle in Kontakt zu treten
  • Notepad++ (Link) um Dateianpassungen vornehmen zu können, Windows Editor funktioniert nich mit Linux Dateien, da er die Linux Line Endings entfernt,
  • FTP Programm z.B. WinSCP (Link) um Dateien auf den Kindle zu transferieren. Das geht auch über USB ist aber mit WinSCP über WLAN viel komfortabler.
  • RNDIS Treiber um den Kindle als Netzwerkkarte zu benutzen (Link)

Da ich auch zu der Gruppe Menschen gehöre, die ungern Anleitungen liest, habe ich sehr viel Zeit mit dem Versuch verbracht, mich über WLAN am Kindle anzumelden. Leider wurde mir der Zugang verwehrt da ich angeblich nicht über das richtige Passwort verfügte. In der README.txt von USBnet steht eindeutig drin, dass man sich zuerst über Telnet anmelden soll.

Einstellungen für Telnet in PuTTY
Einstellungen in PuTTY für Telnet

WLAN muss am Kindle ausgeschaltet sein und der Kindle über USB im Modus USBNet enabled (kein MassStorage) sein. Die IP-Adresse ist die, welche in der config Datei im Ordner usbnet/ect, festgelegt ist.

USBnet_Config

Telnet verlangt kein Passwort aber der Zugang über WLAN mit PuTTY. Also auf alle Fälle das Passwort als root mit

  • mntroot rw    (Lese- und Schreibrechte auf Root System vergeben)
  • passwd

ändern. Hat man das erledigt setzt man das Root system wieder auf read only.

  • mntroot ro

Danach sollte die Anmeldung über WLAN funktionieren. Die Einstellungen für PuTTy findet man in der Serial Jailbreake Beschreibung unter Punkt 3. Set up PuTTy)

Der Rahmen

Der Rahmen ist für ein Foto der Größe 13×18. Der Ausschnitt im Passepartout hat die Maße 118mm x 88mm. Damit hat man eine ungefähre Randabdeckung des Kindle Bildschirmes von umlaufend 1mm.

Den Kindle selbst habe ich mit doppelseitigem Klebeband auf die Rückseite des Passepartouts geklebt. Im Rahmen wurde ein Loch eingearbeitet um an die USB Buchse des Kindles zu kommen. Somit lässt sich der Bilderrahmen auch einigermaßen komfortabel aufladen.

Die Aufbereitung der Bilder für den Screen Saver Hack funktioniert am Besten mit Gimp. Das ist kostenlos und ein sehr guter Photoshop Ersatz. Die Anforderungen an ein Screen Saver Bild sind folgende:

  • Auflösung muss der des Bildschirmes entsprechen sonst sieht das nachher sehr wild aus. Der Paperwhite und der Paperwhite 2 haben 758 x 1024.
  • Das Bild sollte in Graustufen mit 8bit Auflösung konvertiert werden und als .png gespeichert werden
  • Manch Leute fordern noch eine Reduzierung auf 16 Graustufen (Indiziert) was ich aber nicht bestätigen kann. Es funktioniert auch mit mehr Graustufen.
  • Das Bild muss 90° gegen den Uhrzeigersin gedreht werden, damit es auf dem Bilderrahmen im Querformat richtig dargestellt wird es sei denn man will einen Bilderrahmen im Hochkantformat haben.

Die Bilder müssen eine fortlaufende Nummerierung haben. Die Bilder einfach im Ordner:

/mnt/us/linkss/screensavers/

abspeichern und den Kindle neu starten. Der Screen Savers Hack benennt angeblich alle Bilder nach seinen Vorstellungen um. Ich habe das nie probiert. Ich habe alle Bilde im Vornherein schon in fortlaufender Nomenklatur benannt.

  • bg00_medium_001
  • bg00_medium_002
  •  
  •  

Wozu dient der Kühlschrankmagnet

Kindle_001
Bilderrahmen Version 1

Da ich den Kindle als Bilderrahmen benutzen möchte und nicht nur als Bildschirmschoner auf einem normal genutzten Kindle muss eine Möglichkeit her, die Bilder auf einfache Weise zu wechseln ohne auf einen Knopf zu drücken ect.

Für den Kindle gibt es eine Hülle, welche ihn beim Zuklappen in den Ruhezustand versetzt. Dafür hat der Kindle am unteren Rand in der Leiste wo sich auch die LEDs für die Bildschirmbeleuchtung befinden einen Hall-Sensor und die Hülle hat einen engesetzten Magneten. Schließt man nun die Hülle wird der Hall Sensor aktiviert und der Kindle geht in den Standby.

Hall_Sensor
Position des Hall-Sensors

Diese Funktion habe ich mir zunutze gemacht und schalte nun die einzelnen Bilder mit dem Kühlschrankmagnet, der links unten in der Ecke vom Bilderrahmen liegt, durch. Schiebt man ihn kurz zur Seite startet der Kindle und schiebt man den Magnet zurück, dan wird das nächste Bild als Bildschirmschoner geladen.

Der Akku hält übrigens beim einmaligen Wechsel pro Tag ziemlich lange. Ich will nicht übertreiben, aber es sollten mindestens 200 Tage wenn nicht mehr sein, da man auch nicht jeden Tag wechselt.

Einen automatischen Wechsel kann man auch realiseren und genau darum geht es im Folgenden.


 

Der Bilderrahmen der alles alleine macht und fast ein Jahr lang durchhält!

Smart Kindle Picture Frame
fertiger Bilderrahmen mit geladenem Bild

Das Ziel war es von Anfang an einen digitalen Bilderrahmen zu bauen, der nicht permanent am Netzteil hängen muss und wenn möglich mindestens ein halbes Jahr oder mehr ohne aufladen auskommt. Aus diesem Grund ist die Entscheidung ja auch auf ein E-Ink Display gefallen.

Im Mobilereader Forum gibt es ein Script mit dem Namen Onlinescreensaver. Dieses Script wird einfach auf den Kindle kopiert und läd dann automatisch nach einem selbstdefiniertem Zeitraum ein PNG-Bild von einer Web-Adresse.

Leider war es mir nicht möglich dieses Script zum Laufen zu bekommen.

Ich bin dann nach einigen Recherchen auf die Seite von Nico Hartung gestoßen. Er benutzt den Kindle um ein mit Python erstelltes Bild mit Daten von einer Wetterstation als Wetterdisplay anzuzeigen. Das Bild holt sich der Kindle von einem eigens eingerichteten Server wo die Daten der Wetterstation gesammelt und in ein Bild gepackt werden.

Auf Basis von Nicos Script habe ich ein eigenes Script geschrieben, welches den Kindle  einmal am Tag aufweckt, auf einen FTP-Server zugreift, ein dort hinterlegtes Bild herunterläd, es mit Imagemagick (später mehr) auf dem Kindle bearbeitet um den Kindle Konventionen zu entsprechen, dieses dann auf dem Bildschirm darstellt, einen Logfile an den FTPS Srever sendet und den Kindle dann wieder schlafen schickt. Als Aufwachzeit habe ich mich für Mitternacht entschieden. Da schlafen die meisten Leute und wenn man morgens aufsteht, kann man sich über ein neues Bild freuen.

Das Script läuft permanet durch, weckt den Kindle auf, aktualisiert den Bildschirm und schickt den Kindle wieder schlafen. Möchte man eine Aktualisierung erzwingen, kann man den Kindle duch drücken der Taste aufwecken oder einen Magneten and den HALL-Sensor (siehe oben) halten. Das hat den gleichen Effekt, als würde er um Mitternacht selbstständig aufwachen. Wenn der Kindle schläft, befindet sich das Programm im RAM. Hier wird der Schlafmodus Suspend to RAM (ACPI Modus S3) genutzt. Alle ungenutzen

Hier das Script:

#!/bin/sh

###########################################################
### Programmer: Nico Hartung <nicohartung1@googlemail.com>#
### chnaged for Picture Frame Mario Deuse <mdauso@web.de> #
###########################################################

###########################################################
## Install                                                #
## copy onlinepictureframe folder to mnt/us/extensions/   #
## activate or deaktivate as usual in KUAL                #
###########################################################

#VERSION
# - 20200307_V010
# - due to it´s speed on paperwhite 2 the script ends before midnight
#   120 seconds added to make shure the script sets the wakeup time to next day

# - 20200218_V009
# - status bar deactivated

# - 20200217_V008
# - imagemagick optimized for better dithering and cropping of pictures to fill screen even
#   if the aspect ration doesn`t fit to screen aspect ratio
#   to prevent from bars on upper and lower side of the picture

# - 20200212_V007
# - checking for new script on server, copy to script direction and reboot
# - Hostname added for picture frame location

# - 20200212_V006
# - V005 not used
# - DynDNS from MyFritz used from now on
# - tmp folder removed from script,
#   downloaded pictures will now be stored inside bin folder,

# - 20200207_V004
# - usage of FTPS instead of FTP from now on

# - 20200206_V003
# - V002 not used
# - sleep 4 min after STR when battery level is low, when connecting charger the Kindle wakes up but the battery
# - will not be over minimum level and the script would go into STR again

############################################################
# Variables
NAME=pictureframe
NAMEOLD=pictureframe_old
SCRIPTDIR="/mnt/us/extensions/onlinepictureframe/bin/"
TEMPDIR="/mnt/us/documents/"
LOG="${SCRIPTDIR}/${NAME}.log"
LOGOLD="${SCRIPTDIR}/${NAMEOLD}.log"


#FTPS Server the pictures are located on
USER="xxx"                            # FTPS user
PASSWORT="xxx"                        # FTPS password
PORT="xxx"                            # port of FTPS-Server
FTPADRESSE="xxx"                      # DynDNS adress of FTPS server

#Where will the picture frame be located
#HOSTNAME="xxx"
HOSTNAME="xxx"
#HOSTNAME="xxx"

ROUTERIP="192.168.178.1"              # Standard Gateway AVM Fritz!Box
#ROUTERIP="192.168.2.1"               # Standard Gateway Telekom Speedport

#!!!Be sure to have this folder structure on FTPS-Sever or change the script here!!!
ORT="/Bilderrahmen/Bilder/${HOSTNAME}/abc.JPG"              # location of picture on server
FTPLOG="/Bilderrahmen/Logfiles/${HOSTNAME}/"                # location of Logfile on server
NEWSCRIPT="/Bilderrahmen/Newscript/${HOSTNAME}/${NAME}.sh"  # new script on server

#!!!The picture on FTPS-server must have the right name and ending: "abc.JPG" !!!
TEMPFILEJPG="${SCRIPTDIR}/abc.jpg"
TEMPFILEPNG="${SCRIPTDIR}/abc.png"

LOGCOUNTER=0                                                # number of Log entries
LOGCOUNTERALL=1                                             # number of Log´s

NET="wlan0"

LIMG="${SCRIPTDIR}"
LIMGBATT="${SCRIPTDIR}/pictureframebattery.png"
LIMGERR="${SCRIPTDIR}/pictureframeerror_image.png"
LIMGERRWLAN="${SCRIPTDIR}/pictureframeerror_wlan.png"
LIMGWEISS="${SCRIPTDIR}/weiss.png"
LIMGNEWSCRIPT="${SCRIPTDIR}/newscript.png"


SUSPENDFORS=600                                             # short sleeping time in case of ERROR
BATTERYALERT=10                                             # from this Battery Level on to lower values a info will be displayed
BATTERYLOW=6                                                # from this Battery Level on to lower values the picture frame will go into STR an show a "Please Charge Picture"
BATTERYSLEEP=432000                                         # 5 days sleep time when Battery Level is equal or below "BATTERYLOW"

###################################################################################
### Functions
kill_kindle() {
  initctl stop framework    > /dev/null 2>&1                # "powerd_test -p" doesnt work, other command found
  initctl stop cmd          > /dev/null 2>&1
  initctl stop phd          > /dev/null 2>&1
  initctl stop volumd       > /dev/null 2>&1
  initctl stop tmd          > /dev/null 2>&1
  initctl stop webreader    > /dev/null 2>&1
  killall lipc-wait-event   > /dev/null 2>&1
}

customize_kindle() {
  mkdir /mnt/us/update.bin.tmp.partial                      # prevent from Amazon updates
  touch /mnt/us/WIFI_NO_NET_PROBE                           # do not perform a WLAN test
}

#return true if keyword not found
wait_wlan() {
  return `lipc-get-prop com.lab126.wifid cmState | grep CONNECTED | wc -l`
}

###################################################################################
### Script

### stop Kindle pocesses
kill_kindle

### customize Kindle
customize_kindle

###################################################################################
### Loop

while true; do

 echo "." >> ${LOG} 2>&1
 echo "." >> ${LOG} 2>&1
 echo "========================================================" >> ${LOG} 2>&1
 
 echo "`date '+%Y-%m-%d_%H:%M:%S'` Logbucheintrag Nr. ${LOGCOUNTER} von Logbuch Nr. ${LOGCOUNTERALL}" >> ${LOG} 2>&1
 
 echo "========================================================" >> ${LOG} 2>&1

### activate CPU Powersave
 echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 echo "`date '+%H:%M:%S'` CPU runtergetaktet." >> ${LOG} 2>&1

### switch off screen saver
 lipc-set-prop com.lab126.powerd preventScreenSaver 1 >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Bildschirmschoner ausgeschaltet." >> ${LOG} 2>&1
 
### switch off the top status bar
 lipc-set-prop com.lab126.pillow disableEnablePillow disable
 
 #lipc-set-prop com.lab126.pillow interrogatePillow '{"pillowId": "default_status_bar", "function": "nativeBridge.hideMe();"}'
 #PILLOW_SOFT_DISABLED="yes"
 echo "`date '+%H:%M:%S'` Statusleiste deaktiviert." >> ${LOG} 2>&1

### check battery level and maybe start STR
  CHECKBATTERY=`gasgauge-info -s`
if [ ${CHECKBATTERY} -le ${BATTERYLOW} ]; then
 echo "`date '+%H:%M:%S'`  Akkuladung bei 5%, statisches Batteriezustandsbild gesetzt!" >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'`  Logfile an Sever gesendet." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'`  STR, bitte Akku aufladen!" >> ${LOG} 2>&1
 eips -f -g "${LIMGBATT}"
 /mnt/us/usbnet/bin/curl -T ${LOG} -k --ftp-ssl --tlsv1 --ftp-ssl-reqd --ftp-pasv ftp://${USER}:${PASSWORT}@${FTPADRESSE}:${PORT}/${FTPLOG}           # send Logfile to server
 rtcwake -d /dev/rtc1 -m no -s ${BATTERYSLEEP}                                                                                                        # picture frame will sleep for X days or wakes up in case of charging.
 echo "mem" > /sys/power/state
 sleep 300                                                                                                                                            # waiting time when charging until battery level is higher than "BATTERYLOW" otherwise it will fall into sleep again
else
 echo "`date '+%H:%M:%S'` Verbleibende Akkuladung: `gasgauge-info -c` "  >> ${LOG} 2>&1
fi

### activate WLAN
 lipc-set-prop com.lab126.wifid enable 1 >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` WLAN aktivieren. " >> ${LOG} 2>&1

 WLANNOTCONNECTED=0
 WLANCOUNTER=0
 SHORTSUSPEND=0

### wait for WLAN
while wait_wlan; do
  if [ ${WLANCOUNTER} -gt 30 ]; then
 echo "`date '+%H:%M:%S'` Kein bekanntes WLAN verfügbar." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` DEBUG ifconfig > `ifconfig ${NET}`" >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` DEBUG cmState > `lipc-get-prop com.lab126.wifid cmState`" >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` DEBUG signalStrength > `lipc-get-prop com.lab126.wifid signalStrength`" >> ${LOG} 2>&1
 eips -f -g "${LIMGERRWLAN}"
 WLANNOTCONNECTED=1
 SHORTSUSPEND=1                                                                                                                                       #short sleeptime will be activated 
 break
  fi
 let WLANCOUNTER=WLANCOUNTER+1
 echo "`date '+%H:%M:%S'` | ${HOSTNAME} | Warte auf WLAN (Versuch ${WLANCOUNTER})." >> ${LOG} 2>&1
 sleep 1
done


### connected to WLAN?
if [ ${WLANNOTCONNECTED} -eq 0 ]; then
 echo "`date '+%H:%M:%S'` Mit WLAN verbunden." >> ${LOG} 2>&1

### lost Standard Gateway if WLAN`s not available
 GATEWAY=`ip route | grep default | grep ${NET} | awk '{print $3}'`
 echo "`date '+%H:%M:%S'` ausgelesener Standard-Gateway:  ${GATEWAY}." >> ${LOG} 2>&1
  if [ -z "${GATEWAY}" ]; then
 route add default gw ${ROUTERIP} >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Standard-Gateway nach Sleep nicht mehr vorhanden." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Standard-Gateway wird neu auf ${ROUTERIP} gesetzt." >> ${LOG} 2>&1
  fi

### Check new Script
    /mnt/us/usbnet/bin/curl --silent --time-cond ${SCRIPTDIR}/${NAME}.sh --output ${TEMPDIR}/${NAME}.sh -k --ftp-ssl --tlsv1 --ftp-ssl-reqd --ftp-pasv ftp://${USER}:${PASSWORT}@${FTPADRESSE}:${PORT}/${NEWSCRIPT}
 #-r File Name  (File exists and is readable) 
  if [ -r ${TEMPDIR}/${NAME}.sh ]; then
  cp ${TEMPDIR}/${NAME}.sh ${SCRIPTDIR}/${NAME}.sh
  rm ${TEMPDIR}/${NAME}.sh
  echo "`date '+%H:%M:%S'` Skript aktualisiert, Neustart durchführen." >> ${LOG} 2>&1
  chmod 777 ${SCRIPTDIR}/${NAME}.sh
  eips -f -g ${LIMGNEWSCRIPT}
  sleep 5
  reboot
  exit
 else
 echo "`date '+%H:%M:%S'` Kein neues Skript auf dem Server gefunden." >> ${LOG} 2>&1
  fi
 

### download picture and send to screen

### download using cURL
 /mnt/us/usbnet/bin/curl -k --ftp-ssl --tlsv1 --ftp-ssl-reqd --ftp-pasv ftp://${USER}:${PASSWORT}@${FTPADRESSE}:${PORT}/${ORT} -o ${TEMPFILEJPG}

### Is there any picture?
 #-r File Name  (File exists and is readable) 
  if [ -r ${TEMPFILEJPG} ]; then
 echo "`date '+%H:%M:%S'` Bild auf Server gefunden und heruntergeladen." >> ${LOG} 2>&1

### edit picture with Imagemagick to fulfill eips demands
 /mnt/us/linkss/bin/convert ${TEMPFILEJPG} -auto-orient -filter LanczosSharp -brightness-contrast 3x15 -resize x758 -gravity center -crop 1024x758+0+0 +repage -rotate 270 -colorspace Gray -dither FloydSteinberg -remap /mnt/us/linkss/etc/kindle_colors.gif -quality 75 -define png:color-type=0 -define png:bit-depth=8 ${TEMPFILEPNG}

 echo "`date '+%H:%M:%S'` Bild mit Imagemagick bearbeitet." >> ${LOG} 2>&1

### send picture to screen
 eips -f -g ${LIMGWEISS}           #cover the screen in white to prevent from shadows
 sleep 1                           #let´s sleep a second, e-ink´s are not the fastest
 eips -f -g ${TEMPFILEPNG}         #load picture to screen
 echo "`date '+%H:%M:%S'` Bildschirm aktualisiert." >> ${LOG} 2>&1
  else 
 eips -f -g ${LIMGWEISS}           #cover the screen in white to prevent from shadows
 sleep 1                           #let´s sleep a second, e-ink´s are not the fastest
 eips -f -g ${LIMGERR}             #show error picture
 echo "`date '+%H:%M:%S'` Kein Bild gefunden, Error-Bild gesetzt." >> ${LOG} 2>&1
 SHORTSUSPEND=1                    #short sleep time will be activated
  fi

### delete temp. files
 rm ${TEMPFILEJPG}
 rm ${TEMPFILEPNG}
 echo "`date '+%H:%M:%S'` Temporaere Dateien entfernt." >> ${LOG} 2>&1
 
if [ ${CHECKBATTERY} -le ${BATTERYALERT} ]; then
 eips 2 2 -h " Akku bei 10 Prozent, bitte aufladen "
fi

fi

### calculate and set WAKEUPTIMER
if [ ${SHORTSUSPEND} -eq 1 ]; then
 TODAY=$(date +%s)
 WAKEUPTIME=$(( ${TODAY} + ${SUSPENDFORS} ))
 echo "." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Ein Fehler ist aufgetreten, neuer Versuch am: `date -d @${WAKEUPTIME} '+%Y-%m-%d_%H:%M:%S'`" >> ${LOG} 2>&1
 echo "." >> ${LOG} 2>&1
 rtcwake -d /dev/rtc1 -m no -s ${SUSPENDFORS}
else
 TOMORROW=$(date +%s -d 23:59)
 TODAY=$(date +%s)
 SUSPENDFORL=$((${TOMORROW} - ${TODAY} + 120)) #120 seconds added to make shure it´s past midnight
 WAKEUPTIME=$((${TODAY} + ${SUSPENDFORL}))
 echo "." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Alles OK, Bilderrahmen wird am: `date -d @${WAKEUPTIME} '+%Y-%m-%d_%H:%M:%S'` neu gestartet" >> ${LOG} 2>&1
 echo "." >> ${LOG} 2>&1
 rtcwake -d /dev/rtc1 -m no -s ${SUSPENDFORL}

fi

### at 365 Log entries the Log will be saved as "pictureframe_old.log" on FTP server, the Log on Kindle will be deleted and a new Log will be created with number +1
 let LOGCOUNTER=LOGCOUNTER+1
if [ ${LOGCOUNTER} -gt 365 ]; then
 cp ${LOG} ${LOGOLD}
 echo "`date '+%H:%M:%S'` Alter Logfile wird auf dem Sever gesichert und vom Bilderrahmen geloescht." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Ruhezustand wird gestartet." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Bye Bye!" >> ${LOG} 2>&1
 /mnt/us/usbnet/bin/curl -T ${LOGOLD} -k --ftp-ssl --tlsv1 --ftp-ssl-reqd --ftp-pasv ftp://${USER}:${PASSWORT}@${FTPADRESSE}:${PORT}/${FTPLOG}
 rm ${LOGOLD} && rm ${LOG}
 LOGCOUNTER=0
 let LOGCOUNTERALL=LOGCOUNTERALL+1
else
### send Logfile to FTP Server
 echo "`date '+%H:%M:%S'` Aktueller Logfile wird an den Sever gesendet." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Ruhezustand wird gestartet." >> ${LOG} 2>&1
 echo "`date '+%H:%M:%S'` Bye Bye!" >> ${LOG} 2>&1
 /mnt/us/usbnet/bin/curl -T ${LOG} -k --ftp-ssl --tlsv1 --ftp-ssl-reqd --ftp-pasv ftp://${USER}:${PASSWORT}@${FTPADRESSE}:${PORT}/${FTPLOG}
fi

### Go into STR
 echo "mem" > /sys/power/state

done

Erklärungen zum Script:

# Variables
NAME=pictureframe
NAMEOLD=pictureframe_old
SCRIPTDIR="/mnt/us/extensions/onlinepictureframe/bin/"
TEMPDIR="/mnt/us/documents/"
LOG="${SCRIPTDIR}/${NAME}.log"
LOGOLD="${SCRIPTDIR}/${NAMEOLD}.log"

SCRIPTDIR und TEMPDIR:

Der Teil  /mnt/us/extensions des Ordners SCRIPTDIR ist vorhanden wenn nach dem Jailbreake KUAL installiert wurde. Die Erweiterung onlinepictureframe/bin/ ist Bestandteil des Scripts und wird beim Kopieren des Scriptes in den „extensions“ Ordner von KUAL erzeugt. Der Ordner TEMPDIR ist bereits auf dem Kindle vorhanden.

FTPS-Server

#FTPS Server the pictures are located on
USER="xxx" 						# FTPS user
PASSWORT="xxx" 						# FTPS password
PORT="xx" 						# port of FTPS-Server
FTPADRESSE="xxx" 					# DynDNS adress of FTPS server

#Where will the picture frame be located
#HOSTNAME="xxx"
HOSTNAME="xxx"

ROUTERIP="192.168.178.1" 	 	# Standard Gateway AVM Fritz!Box
#ROUTERIP="192.168.2.1" 		# Standard Gateway Telekom Speedport

USER, PASSWORT, PORT und FTPADRESSE

Hier werden die Zugangsdaten, die Serveradresse und der Port für den FTPS Server eingetragen. In meinem Falle ist es die heimische Fritz!Box mit freigegebem Datenspeicher. Hierbei ist es wichtig, dass eine dynamische DNS Adresse verwendet wird. Da der Internetprovider die Verbindung einmal am Tag kappt und neu aufbaut, ändert sich die IP-Adresse des Routers ständig und er ist im Netz nicht mehr zu finden. AVM bietet mit der Fritz!Box und dem Dienst MyFritz bereits eine DynDNS an. Man kann sich aber auch bei vielen Anbietern einen DynDNS Dienst einrichten. Google ist auch hier Dein Freund.

HOSTNAME

Den Hostnamen brauche ich, da ich zwei Bilderrahmen an unterschiedlichen Orten in Betrieb habe. Die beiden Rahmen werden mit unterschiedlichen Bildern gefüttert und müssen somit auch auf verschiedene Ordner auf dem FTPS Server zugreifen.

ROUTERIP

Der Standardgateway (ROUTERIP) wird angegeben, weil der Kindle diesen manchmal aus ungeklärtem Grund vergisst und dann nicht mehr ins Internet kommt. Sollte das der Fall sein, dann wird der hier angegebene Standardgateway je nach Router neu gesetzt.

Ordnerstruktur auf dem FTPS- Server

#!!!Be shure to have this folder structure on FTPS-Sever or change the script here!!!

ORT="/Bilderrahmen/Bilder/${HOSTNAME}/abc.JPG"              # location of picture on server
FTPLOG="/Bilderrahmen/Logfiles/${HOSTNAME}/"                # location of Logfile on server
NEWSCRIPT="/Bilderrahmen/Newscript/${HOSTNAME}/${NAME}.sh"  # new script on server

#!!!The picture on FTPS-server must have the right name and ending: "abc.JPG" !!!

TEMPFILEJPG="${SCRIPTDIR}/abc.jpg"
TEMPFILEPNG="${SCRIPTDIR}/abc.png"

Das Script verlangt eine bestimmte Ordnerstruktur auf dem Server. Entweder man hält sich daran oder man schreibt das Script um. Das kann jeder machen wie er will. Bei mir gibt es zwei Bilderrahmen an unterschiedlichen Orten in der Republik. Dies wird mit dem Hostnamen gesteuert.

  • ORT: Wo liegt das Bild auf dem FTPS-Server
  • FTPLOG: Wo soll der Logfile abgespeichert werden.
  • NEWSCRIPT: Hier wird nach einem aktuellerem als dem, auf dem Kindle laufenden, Script geschaut. Sofern vorhanden und neueren Datums, wird dieses heruntergeladen und im Scriptordner unter dem Scriptnamen abgespeichert, danach wird ein Neustart durchgeführt und das neue Script geladen.

Bisher ist es mir nicht gelungen mittels Wildcards (*.JPG , abc.* oder *.*) einfach irgendeine Datei herunterzuladen. Kann sein, dass das Linux auf dem Kindle keine Wildcards unterstützt. Aus diesem Grund muss das herunterzuladende Bild abc.JPG heißen. Warum? Das hab ich mir so ausgedacht.

Tempfile

  • TEMPFILEJPG: Diese Angabe dient dazu, damit cURL weiß, wo es die heruntergeladene Dateie hinspeichern soll.
  • TEMPFILEPNG: Diese Angabe dient dazu, damit Imagemagick (später mehr zu cURL und Imagemagick) weiß, wo es das bearbeitete Bild hinspeichern soll.
  • Beide Dateien sowohl TEMPFILEJPG als auch TEMPFILEPNG werden nach erfolgreicher Aktualisierung des Bildschirmes gelöscht.

Zeiten

SUSPENDFORS=600                                    # short sleeping time in case of ERROR
BATTERYALERT=10                                    # from this Battery Level on to lower values a info will be displayed
BATTERYLOW=6                                       # from this Battery Level on to lower values the picture frame will go into STR an show a "Please Charge Picture"
BATTERYSLEEP=432000                                # 5 days sleep time when Battery Level is equal or below "BATTERYLOW"
  • SUSPENDFORS: Kürzere Schlafzeit im Falle eines Fehlers. Falls das Script kein Bild auf dem Server findet oder kein WLAN erreichbar ist geht der Kindle nur für 10 Minuten schlafen, statt bis Mitternacht zu warten, und versucht es dann nochmal.
  • BATTERYALERT: Gibt an, ab welchem Akkuladezustand ein Schriftzug auf dem Bildschirm erscheint, mit der Aufforderung den Bilderrahmen aufzladen, da der Akku nur noch 10% hat.
  • BATTERYLOW: Ab 6% Akkuladung geht der Bilderrahmen in den Ruhezustand und wacht erst nach BATTERYSLEEP ( in diesem Falle 5 Tagen ) oder beim Anstöpseln des Ladegerätes wieder auf. Wird nicht aufgeladen geht der Bilderrahmen nach 5 Tagen wieder in den Ruhezustand.

Weitere Programmschritte

Wenn das Script startet werden zuerst einige nicht benötigte Prozesse auf dem Kindle gestoppt um Energie zu sparen.

Es wird ein Ordner angelegt, der Amazon vorgaugelt, es wird gerade ein update geladen. Damit soll verhindert werden, dass Amazon über automatische Updates eine neue Firmware aufspielt und der Jailbreake dadurch zerstört wird.

### Functions

kill_kindle() {
  initctl stop framework    > /dev/null 2>&1                # "powerd_test -p" doesnt work, other command found
  initctl stop cmd          > /dev/null 2>&1
  initctl stop phd          > /dev/null 2>&1
  initctl stop volumd       > /dev/null 2>&1
  initctl stop tmd          > /dev/null 2>&1
  initctl stop webreader    > /dev/null 2>&1
  killall lipc-wait-event   > /dev/null 2>&1
}

customize_kindle() {
  mkdir /mnt/us/update.bin.tmp.partial                      # prevent from Amazon updates
  touch /mnt/us/WIFI_NO_NET_PROBE                           # do not perform a WLAN test

Im weiteren Verlauf wird die CPU Frequenz reduziert, der Bildschirmschoner deaktiviert und die obere Menueleiste incl. Statusleiste (Akku, WLAN, Uhrzeit…) ausgeschaltet. Manchmal hatte ich den Effekt, dass nach erfolgreicher Aktualisierung des Bildschirmes plötzlich noch die obere Statusleiste geladen wird und im Bild verbleibt. Das wird damit verhindert.

### activate CPU Powersave
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo "`date '+%H:%M:%S'` CPU runtergetaktet." >> ${LOG} 2>&1

### switch off screen saver
lipc-set-prop com.lab126.powerd preventScreenSaver 1 >> ${LOG} 2>&1
echo "`date '+%H:%M:%S'` Bildschirmschoner ausgeschaltet." >> ${LOG} 2>&1

### switch off the top status bar
lipc-set-prop com.lab126.pillow disableEnablePillow disable
echo "`date '+%H:%M:%S'` Statusleiste deaktiviert." >> ${LOG} 2>&1

Download der Bilder über FTPS

Anfangs habe ich die Bilder über FTP mit wget vom Server geladen. Das war mir aber zu unsicher, wobei unsicher relativ ist, und ich habe mich für FTPS entschieden. Mehr gibt die Fritzbox leider nicht her. Nun kann wget aber kein FTPS. Da kommt cURL ins Spiel. cURL kann ziemlich viel, auch FTPS. Die Version von cURL, welche in der Kindle Linux Version mitgeliefert wird ist aber so alt, dass diese kein FTPS unterstützt.

Nach langem Suchen konnten mir die Leute aus dem Mobilereader Forum helfen. Im UsbNet Hack (welches im Rahmen des Jailbreake Prozedere installiert wurde!!!) ist eine neuere version von cURL enthalten. Wenn man im Script auf diesen Ordner referenziert wird diese Version benutzt und dann funktioniert es auch mit FTPS.

Man kann die Funktionalität von cURL recht einfach über den Befehl curl –version (2 Bindestriche!) in der Konsole herausfinden. Im Beispiel unten hab ich das mal schnell im Windows getan. Ja, cURL gibts auch unter Windows.

curl options
### download using cURL
 /mnt/us/usbnet/bin/curl -k --ftp-ssl --tlsv1 --ftp-ssl-reqd --ftp-pasv ftp://${USER}:${PASSWORT}@${FTPADRESSE}:${PORT}/${ORT} -o ${TEMPFILEJPG}

Bearbeitung der Bilder mit Imagemagick

Imagemagick ist ein Befehlszeilen Bildbearbeitungsprogramm und ist im Screen Saver Hack enthalten. Diese Befehlszeile öffnet das heruntergeldene Bild bearbeitet es und speichert es im passenden Format wieder ab.

Vielen Dank an NiLuJe für die hilfreichen Hinweise.

### edit picture with Imagemagick to fulfill eips demands
 /mnt/us/linkss/bin/convert ${TEMPFILEJPG} -auto-orient -filter LanczosSharp -brightness-contrast 0x20 -resize x758 -gravity center -crop 1024x758+0+0 +repage -rotate 270 -colorspace Gray -dither FloydSteinberg -remap /mnt/us/linkss/etc/kindle_colors.gif -quality 75 -define png:color-type=0 -define png:bit-depth=8 ${TEMPFILEPNG}

Ich werde hier nicht auf alle aufgerufenen Funktionen eingehen aber auf die wichtigsten.

  • auto-orient: hier wird geprüft, wie die Orientierung des Bildes bei der Aufnahme war und das Bild dementsprechend ausgerichtet, auch wenn es auf dem Kopf steht.
  • resize x758 -gravity center -crop 1024×758+0+0 +repage: Das Bild wird auf eine Höhe von 758 Pixel geändert ohne Rücksicht auf die Breite. Dann wird das Bild zentriert und auf eine Breite von 1024 Pixel beschnitten. Danach werden mit repage die Offset und Canvas Werte aus dem Header des Bildes entfernt, da diese sonst falsch stehen bleiben würden.
  • Mit -rotate 270 wird das Bild gedreht, da ja der Kindle im Landscape Modus benutzt und sozusagen auf die Seite gelegt wird.
  • colorspace Gray -dither FloydSteinberg: Diese beiden Befehle sorgen dafür, dass das Bild erstens in Graustufen umgewandelt wird und zweitens die Übergänge im Bild mit den verfügbaren 16 Graustufen so bearbeitet werden, dass keine Farbränder entstehen. Extrem würde das ausfallen bei gleichmäßigen Farbübergängen wie zum Beispiel bei Bildern mit bewölktem Himmel oder Nebel. (Beschreibung hier)
Kindle_002
Bild ohne dithering

 

IMG_6449
Bild mit dithering

 

Der Rahmen

Den Bilderrahmen habe ich bei IDEAL-Trend GmbH in Berlin gekauft.

Dieser Rahmen ist perfekt, da er die nötige Tiefe bereitstellt. Somit ist genügend Platz für den Kindle, den USB Anschluss und die Verlängerung für den Taster. Das Passepartout (aussen 18cm x 24cm, innen 8,8cm x 11,8 cm) kann man sich im Netz bei unzähligen Shops anfertigen lassen oder man geht zum örtlichen Rahmenbauer. Der Kindle ist mit doppelseitigem Klebeband von hinten am Passepartout befestigt.

Hier ein Profilschnitt des Rahmens und die Darstellung der verschiedenen Möglichkeiten des Zusammenbaus.  (Quelle: IDEAL Trend GmbH Berlin)

Bilderrahmen_Schnitt

Die Variante welche ich benutze ist hier aber nicht dargestellt. Der Rahmen ist also wirklich sehr flexibel.

IMG_6394
Online-Bilderrahmen Innenansicht
IMG_6395
USB-Verlängerung und Tasterbetätigung
IMG_6397
USB Anschluss und Tasterbetätigung von aussen

Der Holzstab zur Betätigung des Tasters ist hier noch nicht gekürzt und auch noch nicht schwarz eingefärbt. Links davon der in den Rahmen eingelassene USB Anschluss.

IMG_6453
Tasterbetätigung gekürzt und eingefärbt
IMG_6160
USB Verlängerung von DeLOCK

Das USB Kabel oder besser, die USB Verlängerung gibts bei Ebay. Der Knickschutz auf der Steckerseite muss entfernt werden, sondt passt es nicht. (siehe Bild weiter oben)

IMG_6159
so sieht die Tüte aus

 

Wie kommen die Bilder auf den Bilderrahmen

Der einfachste Weg ist es ein Bild per FTPS auf den Server zu übertragen und es hinterher in abc.JPG umzubenennen. Leider hat diese Methode zwei Nachteile. Erstens wird die Bilddatei nicht verkleinert. Das führt zu längerer Laufzeit des Scripts einmal beim Herunterladen des Bildes vom Server und weiterhin beim Umwandeln mit Imagemagick. Zweitens muss man sich nochmals per FTPS auf dem Server anmelden um das Bild umzubenennen. Dieses auf dem Smartphone vorher zu tun führt nur zu noch mehr Arbeitsschritten.

Nach langem Suchen habe ich tatsächlich eine App gefunden, die meine Anforderungen voll erfüllt.

  • FTPS Support,
  • mehrere FTP-Server,
  • Bilder komprimieren,
  • Bilder umbenennen,
  • überschreiben auf Server ohne nachfragen,

Die App PhotoSync gibt es für iOS und Android. (klick ins Bild)

Picturesync

Nachdem man die App installiert hat, kann man aus der Bildergallerie auf Teilen klicken und PhotoSync auswählen, aber zuerst sollte man die App einrichten.

PhotoSync einrichten

Nach dem Start der App klickt man unten rechts auf das kleine Zahnrad und landet im Einstellungsmenue. Hier klickt man auf Konfigurieren und landet im nächsten Menue.

Photosync_005
 

Da es sich beim Server, auf dem die Bilder gesendet werden sollen (Fritz!Box) um einen FTP-Server handelt wählt man hier FTP aus.

Photosync_006

 

Hier sind bereits die beiden Hosts eingerichtet, da es ja auch zwei verschieden Bilderrahmen gibt. In einem jungfräulichen PhotoSync wählt man „Konfiguration hinzufügen…“

 

Photosync_007

 

Photosync_008

Im Reiter „FTP/SFTP Account einrichten“ trägt man die Dyns-Adresse des Servers, den Benutzernamen, das Passwort und den Port ein. Oben wählt man FTPS aus sofern man dieses Protokoll nutzen möchte. Sonst gibt es noch FTP und SFTP.

010

Als Titel gibt man am Besten den Standort des Bilderrahmens ein. Der Zielordner eintspricht dem entsprechenden Ordner auf dem Server.
Unterverzeichnisse sollen nicht erstellt werden.
Vor Übertr. wählen muss aus sein, sonst fragt PhotoSync jedes mal nach, wo das Bild hin soll. Das nervt.
Dateinahmen hat ein extra Menue. Das kommt als nächstes.
Dann kann man noch die Qualität des Uploads einstellen. Damit reduziert PhotoSync sowohl die Bildgröße als auch die Dateigröße. Hier habe ich „Hohe Qualität“ gewählt. Dadurch dauert der Download auf dem Bildschirm nicht solange und Qualitätsprobleme konnte ich nicht feststellen.

Scrollt man weiter nach unten, kann man noch die Qualitätsstufe für den mobilen Upload einstellen.

Photosync_009

Aber der Clou ist der Reiter Dateinamen.

Hier kann man einen eigenen Dateinamen vergeben. PhotoSync benennt die Datei dann selbstständig um und überschreibt die auf dem Server vorhandene Datei ohne nachzufragen wenn man im vorherigen Menue „Überschreiben zulassen“ aktiviert hat.

Der eigen Dateiname muss „abc.JPG“ sein wenn man das Script für den Kindle nicht ändern möchte.

Photosync_011

Der Bilderupload

Der Upload eines Bildes sollte nun denkbar einfach vonstatten gehen. In der Galerie wählt man ein Bild aus und klickt auf Teilen. Danach erscheint folgender Bildschirm.

Photosync_001

Nun wählt man PhotoSync als Übertragungsmedium aus. Dann gehts weiter zu folgendem Menue.

Photosync_002

Hier wählt man FTP aus. Ich habe alle anderen Möglichkeiten ausgeblendet, dann sieht es übersichtlicher aus. Im folgenden Menue muss man noch die FTP-Konfiguration wählen, die man zuvor eingerichtet hat und gelangt im Anschluss ins Sendemenue.

Photosync_007
Photosync_004

Hier muss man nichts weiter tun als zu warten bis der Upload abgeschlossen ist.

Das war´s.

Jetzt kann man am Bilderrahmen den Knopf betätigen und hat in ca. zwei Minuten ein neues Bild, oder man geht schlafen und freut sich auf ein neues Bild welches einem den Morgen versüßt.

IMG_6452
fertiger Bilderrahmen mit geladenem Bild
IMG_6454
Rückseite

Casablanca

Eine Sache noch. Ihr hab Euch sicher gefragt, was das ganze gekostet hat. Hier noch eine kurze Auflistung.

  • gebrauchter Kindle 25€ -50€ + Versand bei Ebay
  • RS232-USB Adapter 10€ + Versand bei Amazon
  • Bilderrahmen 9€ + Versand bei Ideal Trend GmbH Berlin
  • Passepartout 16€ incl. Versand bei AllesRahmen.de
  • USB Verlängerung 3€ + Versand bei Ebay
  • PhotoSync Pro App 5,49€ im App-Store

Viel Spaß beim Nachbauen!

Mario

 

Download „Online Picture Frame“

4.3.2020 Nachtrag

Mittlerweile konnte ich das ursprünglich auf dem Paperwhite entwickelte Script auch auf einem Paperwhite 2 erfolgreich testen. Was mich total überrascht hat, ist die Verarbeitungsgeschwindigkeit auf dem Paperwhite 2.

Ich habe mal die Zeiten aus den Logfiles verglichen. Beide Bilderrahmen haben das gleiche Bild geladen.

Paperwhite

komplettes Script verarbeiten: 1:13 Minuten

Bild mit Imagemagick bearbeiten: 53 Sekunden

Paperwhite 2

komplettes Script verarbeiten: 21 Sekunden

Bild mit Imagemagick bearbeiten: 9 Sekunden

Fals Ihr euch also entscheided den Bilderrahmen nachzubauen, empfehle ich einen Paperwhite 2 zu nehmen. Das sollte die Akkulebensdauer midestens verdoppeln.

Viel Spaß!

Mario

Die Stunde der Wahrheit

img_2321


Heute war Termin auf dem Leistungsprüfstand, jetzt bin ich ein wenig traurig. Die Messwerte bewegen sich im Bereich der Serienangabe. Trotz Stufe-1 Nockenwelle, TM42-6 Vergaser, längerem Ansaugstutzen und K&N Luftfilter keine Leistungs-, bzw. Drehmomenterhöhung. Es ist zwar der originale Auspuff verbaut, aber der sei laut MZ-Forum sogar für ein Stufe-2 Tuningpaket gut genug. Ein bisschen Hoffnung macht mir, die zum momentanen Zeitpunkt, noch ausgeschaltete Beschleunigerpumpe. Die könnte in Bezug auf das Drehmoment noch etwas rausreißen. Bei der Leistungsmessung muss der Gashahn im vierten Gang aus niedriger Drehzahl heraus schlagartig aufgerissen werden. Dabei hat sich der Motor ziemlich heftig verschluckt. Vielleicht (hoffentlich) hat das einen negativen Einfluss auf die Leistungsmessung. Wenn dem so ist, sollte das Ergebnis mit aktivierter Beschleunigerpumpe, zumindest im unteren Drehzahlbereich, bezogen auf das Drehmoment besser aussehen. Mit der Leistung kann ich leben aber das Drehmoment ist enttäuschend.

Hier ist das Messprotokoll vom Leistungsprüfstand:

Mesprotokoll_geschwaerzt

 

Vergasereinstellung mit Breitbandsonde

Um den TM42-6 Vergaser in der MZ richtig abstimmen zu können, habe ich mich entschieden, eine Breitbandsonde inclusive AFR Anzeige zu kaufen. Ich habe mich für das MTX-L System von Innovate für 220,00€ entschieden. Das System arbeitet mit einer Bosch LSU 4.9 Sonde.

img_1636.jpg

Für die Lambdasonde hatte ich im Voraus schon eine Anschweißmutter bestellt, es liegt dem System aber eine bei. Das Loch im Auspuffkrümmer war schnell gemacht und die Mutter habe ich beim Metallbauer meines Vertrauens anschweißen lassen.

IMG_1605

IMG_1606

Die AFR Anzeige habe ich mit einer Provisorischen Halterung neben dem Tacho platziert.

img_1936.jpg

Hier kann man sehr schön sehen, dass der Motor im Standgas mit einem AFR von 12,5 läuft. Das entspricht Lambda 0,85.

Die folgende Tabelle zeigt den Werdegang meines Unterfangens inclusive aller durchgeführten Änderungen.

Vergasereinstellung_1

Es hat sich gezeigt, dass es immer gut ist sich an einen Experten zu wenden. Bezüglich der Düsennadel habe ich beim Mikuni Gott Stephen Topham nachgefragt. Es ging um den Bereich 1/3 – 2/3 Gas. Die Nadel hing schon fast ganz unten und eine Besserung war mit der letzten möglichen Nadelstellung nicht zu erwarten. Stephen Topham schlug vor eine 0,01mm dickere Nadel zu verwenden, was dann auch zu den erwarteten Ergebnis geführt hat. Das Gemisch ist im mittleren Bereich merklich abgemagert. Weiterhin habe ich auf Ebay Hauptdüsen fraglicher Herkunft gekauft. Hier hatte ich den Eindruck, dass eine kleinere Hauptdüse keine Gemischabmagerung im Vergleich zur größeren bewirkt. Letztendlich habe ich doch bei Topham gekauft.

Man muss auch sagen, dass es teilweise sehr schwer ist, die AFR Werte abzulesen, da man einerseits auf die Straße achten muss, die Sonne unter Umständen auf das Display scheint und andererseits die Anzeige doch etwas springt.

Die Beschleunigerpumpe habe ich irgendwann deaktiviert um erstmal die Grundeinstellung des Vergasers durchführen zu können. Ich werde sie wieder aktivieren, da man beim Aufreißen des Gases deutlich ein Loch merkt und die AFR Anzeige sofort in den mageren Bereich springt.

Bezüglich des Springens bzw. der „nervösen“ Anzeige bei hohen Drehzahlen bzw. Volllast könnte die Ursache in der Stromversorgung des Systems liegen. Ich habe hierzu einen sehr interessanten Artikel auf der Homepage von Innovate gefunden:

„You’re Grounded Young Man“

 

Es gibt noch etwas sehr wichtiges beim Betrieb von Lambdasonden zu beachten. Die Sonde darf nicht betrieben werden bevor der kalte Motor startet, es sei denn, man hat nicht vor den Motor zu starten. Wird die Lambdasonde eingeschaltet beginnt das Steuergerät umgehend damit die Sonde aufzuheizen. Wird der kalte Motor erst danach gestartet kann es passieren, dass kaltes Kondenswasser in die aufgeheizte Sonde eindringt und der keramische Messfühler bei Kontakt mit kaltem Wasser durch thermischen Schock reißt, was zur sofortigen Zerstörung der Sonde führt.

Ich habe das Sondensteuergerät an den Hauptscheinwerfer geklemmt, da dieser erst beim Start des Motors über die m-unit eingeschaltet wird. So wird zumindest sicher gestellt, dass die Sonde nicht vor dem Motor läuft. Besser ist es noch ein paar Sekunden zu warten nachdem der Motor gestartet wurde bevor die Sonde gestartet wird.

Zu dieser Problematik gibt es einen sehr guten Artikel, bitte unbedingt lesen:

„Why Bosch LSU wide-band air/fuel ratio (or Lambda) sensors fail so often in aftermarket performance applications“

 

 


Update 3.5.2019

 

Testfahrt 31.5.2019:

  1. Leerlauf: AFR 12,5/Lambda 0,80
  2. 1/8 Gas: AFR 18/Lambda 1,25 (Sprotzen und Spucken, nur mit Choke fahrbar)
  3. 1/3 Gas: AFR 13,2/Lambda 0,9
  4. 2/3 Gas: AFR 13,9/Lambda 0,78
  5. Vollgas: AFR 12,5/Lambda 0,85

Der Leerlauf ist noch zu fett, das wird auf Lambda 0,85 korrigiert.

Es hat sich herausgestellt, dass der Übergang zwischen Leerlauf und 1/4 Gas bis auf Lambda 1,25 abmagert. Es ist wirklich nur ein kleiner Bereich aber genau dieser fällt in den Bereich der Konstantfahrt bei ca. 50km/h und ca. 100km/h. Das ist sehr unangenehm. Dafür habe ich eine im zylindrischen Teil 0,01mm dünnere Nadel bestellt. Die kegeligen Bereiche der Nadel bleiben davon unberührt. Somit sollte sich nur der besagte Bereich ändern und das Patschen und Sprotzen beim Dahinrollen mit wenig Gas verschwinden.

Leider hat eine 96er Nadel nicht den gewünschten Erfolg gebracht. Das heißt, eine 95er Nadel einbauen. Wenn einmal der Tank abgebaut wird kommt gleich eine  kleinere Nadeldüse (Y-2) mit rein.

Hier habe ich mal einige Kombinationen von Düsennadeln und Nadeldüsen gegenübergestellt:

Nadel_Düse_Kombi

Die letzte Kombination (Überlegung) könnte mir sehr zugute kommen was die Nadelposition angeht. Momentan befindet sich die Nadel in der obersten Kerbe. Das heißt, es ist kein Spielraum mehr den Vergaser noch magerer abzustimmen, da die Nadel nicht mehr niedriger gehängt werden kann. Mit einer kleineren Nadeldüse und einer kleinere Nadel bleiben die Verhältnisse bis 1/4 Gas gleich, aber in den höheren Schieberpositionen würde der Vergaser sehr viel magerer laufen und man könnte durch Höherhängen der Nadel ausgleichen und hat dadurch die Möglichkeit auf den mittleren Bereich Einfluss zu nehmen.

Update 5.7.2019

Heute bin ich endlich am Ziel angekommen. Mit der aktuellen Vergasereinstellung bin ich super zufrieden. Das Motorrad lässt sich sehr gut im unteren Drehzahlband (2500U/min) fahren. Sie  nimmt hervorragend Gas an ohne zu spucken und zu sprotzen und dreht sehr willig bis 160km/h hoch.

Vergasereinstellung_3

Jetzt, wo die Vergasereinstellung abgeschlossen ist, habe ich die Beschleunigerpumpe wieder aktiviert. Sie ist so eingestellt, dass sie ab 1/3 Gas aktiviert und bei 2/3 Gas wieder deaktiviert wird. Das Motorrad geht im 1.Gang nur durch Gas geben aufs Hinterrad. Mehr brauche ich dazu wohl nicht zu sagen.

Was als nächstes noch ansteht ist die Änderung der Endübersetzung von 15/39 auf 15/43 und der Wechsel auf eine D.I.D 520 ERT3 Kette ohne O-Ringe. Das wird im Durchzug nochmal richtig was bringen und die Kette bringt bis zu zwei PS mehr am Hinterrad. Die Endgeschwindigkeit sollte sich nur etwas reduzieren, da das Motorrad mit 15/39 bei 6800U/min 175km/h läuft ohne in den Begrenzer zu gehen. Mit einer Übersetzung von 15/43 würde das Motorrad mit hoher Sicherheit in den Begrenzer drehen und dann  165km/h bei 7200U/min laufen, aber das wahrscheinlich fast überall. Hier hätte man noch die Möglichkeit den Begrenzer rauszunehmen oder zu erhöhen. Eine Erhöhung auf 7700U/min ergibt dann wieder eine Geschwindigkeit von 175km/h.

Update 16.07.2019

Zu früh gefreut!

Was mich schon länger etwas misstrauisch machte war die Tatsache, dass das Motorrad manchmal etwas schneller fährt. Mittlerweile habe ich auch herausgefunden woran es liegt. Es liegt nicht etwa am Wetter oder der Lufttemperatur, welche zwar einen Einfluss haben aber keinen so großen, es ist der Füllstand des Tanks.

Die Benzinleitung zum Benzinhahn ist, wie ich zugeben muss, etwas unglücklich verlegt. Offensichtlich ist der innere Widerstand so groß, dass bei kleiner Tankfüllung weniger Benzin pro Zeiteinheit fließt als bei vollem Tank. Ich werde als nächstes die Ringnippel und die Hohlschrauben am Tankanschluss durch 90° Schlauchnippel ersetzen. Dann führt auch die Hauptbenzinleitung nicht mehr über Umwege zum Benzinhahn.

Natürlich gibt es jetzt eine gewisse Unsicherheit was die Gemischzusammensetzung bei Volllast angeht, also wollte ich die Lambdasonde nochmal bemühen.

Sie geht nicht mehr!

Ich habe alles wie vorher angeschlossen aber bekomme nur Error 8 vom Innovate Steuergerät. Ich hatte das vor Längerem schon mal es hat dann aber trotzdem funktioniert und ich habe das nicht weiter beachtet. Offensichtlich scheint etwas mit der Heizung der Lambdasonde nicht zu funktionieren. Wenn ich die Sonde mit dem Gasbrenner aufwärme geht sie plötzlich wieder. Leider hilft mir das nicht weiter, da ich sie so nicht kalibrieren kann.

Das war der Grund, warum der Fehler vorher nicht aufgetreten ist. Im eingebauten Zustand wird die Sonde zusätzlich vom Abgas erwärmt und so tritt der Fehler nicht auf.

Ich habe eine neue Bosch LSU 4.9 Sonde bestellt. Die originale Bosch Nummer der Sonde ist 0 258 017 025. Die Kosten belaufen sich auf 70€.

Jetzt kommt`s. Nach intensiveren Recherche habe ich einige Informationen darüber gefunden, warum Lambdasonden kaputt gehen (siehe auch Link zum Artikel weiter oben) und es scheint so, dass diese Dinger echt empfindlich sind wenn man sie leichtfertig betreibt. Das mit dem Kondenswasser wusste ich ja schon, aber es ist viel mehr.

Was führt nun zur vorzeitigen Zerstörung der Sonde:

  1. Die Sonde wird vor dem kalten Motor beheizt (gestartet) und bekommt evtl. vorhandenes Kondenswasser ab wenn der Motor gestartet wird. Das gilt auch für undichte Kopfdichtungen und dadurch austretendes Kühlwasser. Daher gilt auch die Einbauposition zwischen 12 und 3 Uhr. Dadurch kann angesammeltes Kondenswasser aus der Sonde ablaufen.
  2. Die Sonde bekommt übermäßig viel Öl ab. Viel Spaß bei defekten Ventilschaftdichtungen oder Kolbenringen.
  3. Die Sonde wird mit Silikonöl oder anderen Ölen (z.B. WD40) benetzt.
  4. Die Sonde wird über einen längeren Zeitraum bei über 900°C betrieben.
  5. Die Sonde wird harten Stößen ausgesetzt (Sturz auf Beton).
  6. Die Sonde erfährt zu starke Vibrationen.
  7. Jetzt kommt der Hammer: Die Sonde (vorrangig wohl LSU 4.9) wird über längeren Zeitraum bei weniger als AFR 12,5 (zu fett) betrieben! Man spricht hier vom Sweetspot zwischen AFR 12,5 und 13,5 welcher wohl perfekt wäre. Das macht eine Vergaserabstimmung nicht gerade leicht, vor allem wenn man keinen Prüfstand hat und immer wieder auf der Straße fahren muss.

Tolle Wurst!

 

4.9.2019

Die Sache mit der halben Nadelstellung (U-Scheibe unter Clip) und dem Kunststoffplättchen über dem Clip (sollte eigentlich drunter sein) hat mir einige schlaflose Nächte bereitet. Abhilfe würde eine im zylindrischen Bereich längere Nadel bringen, die es aber nicht gibt.

Also habe ich mich entschlossen aus zwei Nadeln eine 3mm längere Vergasernadel zu bauen.

IMG_3719 abgedrehte Nadeln und Verbindungsröhrchen aus Messing

img_3729.jpg

links die originale Nadel, rechts die verlängerte geklebte Nadel

 

Abstimmung_Nadel_3mmLambdawerte der einzelnen Vergaserstellungen