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.

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.

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.

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!

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.

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. Eine lasergeschnittene Abdeckung gibt die Form und Aufgabe der jeweiligen Leuchte vor.

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.

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

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

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.

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 hässlichste Luftfilterkasten, neudeutsch Airbox, der Welt durfte nicht am Motorrad bleiben. Dafür gibt es jetzt zwei formschöne ovale K&N Filter. Die Abstimmung auf die geänderten Gemischverhältnisse läuft noch. Das ist eine Geschichte, welche einen eigenen Beitrag verdient und demnächst auch bekommen wird.

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

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 vom Pulverbeschichten zurück.

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?

Momentan fahre ich mit Lambdasonde, da ich keine Ahnung habe wie sich die K&Ns auf das Gemischverhältnis auswirken. Ich arbeite in Moment an einem Datenlogger, der Drosselklappenwinkel, Drehzahl und den Lambdawert aufzeichnet und permanent auf eine SD Karte schreibt. Anhand dieser Daten kann ich dann eine Kennfeldoptimierung durchführen. Dafür wird es einen separaten Blogbeitrag geben.

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.

Werbeanzeigen

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