- Ein älterer Kindle Touch der 4. Generation wurde modifiziert und in ein E-Ink-Dashboard verwandelt, das die Ankunftszeiten von NJ-Transit-Bussen jede Minute aktualisiert
- Über Jailbreak, KUAL, MRPI und die SSH-Konfiguration wurde eine Umgebung zum Ausführen benutzerdefinierter Apps aufgebaut; ein Node-basierter Server erzeugt Bilder und zeigt sie auf dem Kindle an
- Der Server holt Busdaten per GraphQL API, formatiert sie als HTML und erzeugt anschließend mit wkhtmltoimage PNG-Dateien, die der Kindle regelmäßig abruft
- Es wurde eigens eine KUAL-App erstellt, damit sich das Dashboard über einen Menü-Button beenden lässt; mit bash trap und rtcwake werden Energieverwaltung und automatische Aktualisierung gesteuert
- Die Akkulaufzeit beträgt etwa 5 Tage, und beim Screen-Ghosting gibt es noch Verbesserungspotenzial; zugleich zeigt das Projekt die Möglichkeiten von E-Ink-Displays für Echtzeitinformationen
Einen Kindle in ein Display für Bus-Ankunftsinformationen verwandeln
- Ein Kindle Touch der 4. Generation wurde zu einer Anzeige für Bus-Ankunftsinformationen in Echtzeit umgebaut
- Der Bildschirm wird jede Minute aktualisiert, und per Menü-Button lässt sich der Dashboard-Modus beenden
- Eine Funktion ähnlich dem kommerziellen Produkt TRMNL wurde kostenlos umgesetzt
1. Kindle-Jailbreak
- Die Firmware-Version des Kindle prüfen, die zum Gerät passende tar-Datei herunterladen und den Jailbreak-Vorgang durchführen
- Nach erfolgreichem Abschluss mit der Installation von KUAL und MRPI fortfahren
2. KUAL und MRPI installieren
- KUAL dient als Launcher für benutzerdefinierte Apps, MRPI als Installationswerkzeug für Apps
- Vor der Installation muss unbedingt die Hotfix-Konfiguration durchgeführt werden
- Nach der Installation OTA-Updates deaktivieren, um automatische Updates zu blockieren
3. SSH einrichten
- Über die USBNetwork-Erweiterung ist ein SSH-Zugriff auf den Kindle möglich
- Mithilfe eines externen Blog-Guides eine USB-basierte SSH-Verbindung einrichten
- Bei erfolgreicher Verbindung erscheint der Kindle im Netzwerk-Tab des Computers als neues Gerät
4. Server aufsetzen und Bilder erzeugen
- Über die NJ Transit GraphQL API werden Informationen zu Bus-Ankünften abgerufen
- Mit der Query
getBusArrivalsByStopID werden Daten wie Linien, Ankunftszeiten und Auslastung gesammelt
- Statt puppeteer wird wkhtmltoimage verwendet, um HTML in PNG zu konvertieren
- Der Server erzeugt alle 3 Minuten ein neues Bild, das der Kindle anschließend abruft
- Der zugehörige Code ist im GitHub-Repository
kindle-hax/server veröffentlicht
- Bilddrehung und Ausrichtung werden an die Bildschirmauflösung des Kindle (z. B. 600x800) angepasst
- Mit
transform: rotate(90deg) translateX(-100px) translateY(-100px); wird eine vertikale Darstellung umgesetzt
5. Eine KUAL-App erstellen
- Eine benutzerdefinierte KUAL-Erweiterung zur Steuerung von Start und Stopp des Dashboards erstellen
- Nach dem Platzieren des Ordners unter
/mnt/us/extensions/ erscheint in KUAL der Menüpunkt „Start dashboard“
- Das Skript start.sh bleibt durch das Ignorieren von Signalen (
trap '' HUP, trap '' TERM) stabil aktiv
- Die Funktion
refresh_screen() lädt das Server-Bild herunter und zeigt es anschließend mit dem Befehl eips an
- Oben werden Datum, WLAN-Status und Akkustand angezeigt
- Mit evtest wird bei Erkennung der Menü-Button-Eingabe (
code 102 (Home), value 1) stop.sh ausgeführt
- Dadurch wird das Dashboard beendet und die Kindle-Oberfläche neu gestartet
6. Ergebnis und Verbesserungsmöglichkeiten
- Etwa 5 Tage Akkulaufzeit; bei nächtlichem Abschalten lässt sich dies um 2 Tage verlängern
- Das Problem mit Screen-Ghosting (color bleeding) könnte durch vollständige Schwarz-Weiß-Refreshs verbessert werden
- Das System wird täglich genutzt, und es hat sich gezeigt, dass sich die Anzeige auch auf Kalender, Wetter, Aufgaben und andere Informationen erweitern lässt
2 Kommentare
Ich habe vor Kurzem etwas Ähnliches gemacht. Wenn es dich nicht stört, oben die URL-Leiste zu sehen, kannst du einfach eine Webseite laden.
Der Kindle kann standardmäßig im Webbrowser URLs aufrufen, also kannst du dort einfach das Dashboard laden.
Ich lade bei der Arbeit dieselbe Seite auf einem Kindle und zu Hause auf einem älteren Paperwhite-Modell, insofern ist das gewissermaßen Cross-Platform, haha.
Natürlich braucht auch der Kindle für einen Modus, in dem er dauerhaft eingeschaltet bleibt, Rooting oder einen ähnlichen Eingriff.
Beim Paperwhite ist Rooting nicht unbedingt nötig; es reicht, den ADB-Zugang zu öffnen und dort den Bildschirmschoner zu deaktivieren.
Hacker-News-Kommentare
Als jemand, der früher an Kindle-Stromverbrauch gearbeitet hat, war die größte Stromquelle die WiFi-Verbindung
Das lag daran, dass WiFi dem AP regelmäßig antworten musste, damit die Verbindung nicht abbricht
Soweit ich mich erinnere, waren es bei ausgeschaltetem WiFi etwa 700 uA und bei eingeschaltetem etwa 1,5 mA
Beim Seitenwechsel stieg der Strom kurzzeitig auf mehrere hundert mA an, und um den Ghosting-Effekt zu verringern, wurde alle paar Seiten eine vollständige Bildschirmaktualisierung durchgeführt
Dafür brauchte ich eine Stromversorgung, die kurzzeitig etwa 1,5 A liefern konnte; mit einem alten USB-Hub mit eigener Stromversorgung, der an einen Raspberry Pi angeschlossen war und per SSH gesteuert wurde, lief das monatelang stabil auch ohne WiFi
Ich nutze es weniger als 30-mal im Monat, aber bei ausgeschaltetem WiFi ist die Akkueffizienz erstaunlich gut
Meinen Paperwhite Kindle habe ich noch nicht modifiziert, aber zumindest die Werbung auf dem Sperrbildschirm werde ich entfernen
Jetzt verstehe ich endlich genau, warum der Akku im Flugmodus so lange hält
Ich habe einen einfacheren Ansatz verwendet
Nach dem Jailbreak habe ich mich per SSH verbunden und zwei Skripte erstellt, die jede Minute bzw. alle 30 Minuten laufen
Beide Skripte zeigen dasselbe Bild an, aber alle 30 Minuten kommt zusätzlich eine vollständige Aktualisierung dazu
Vom Raspberry Pi wird das Bild per rsync übertragen, und ein Python-Skript holt die Luftqualitätsdaten aus MySQL und setzt das Bild zusammen
Der Kindle dient nur dazu, das Bild anzuzeigen, und läuft deshalb sehr stabil
Es müsste nur sichere Verbindungen wie TLS unterstützen
Kindle-Hacking macht wirklich Spaß
Auf eBay bekommt man alte Kindle für 15 bis 20 Euro, und ich hatte letztes Jahr viel Freude an einem ähnlichen Experiment
Den genauen Ablauf habe ich in meinem Blogbeitrag dokumentiert
Es ist klein, aber mit der Crosspoint-Firmware lässt es sich als tragbarer E-Ink-Reader verwenden
YouTube-Video, Crosspoint GitHub
Sie sind etwas teurer, könnten aber ebenfalls recycelte Kindle-Displays sein
Dieser Beitrag hat mich dazu gebracht, Plattformen wie Cloudflare Workers weiter auszuprobieren
Ich habe einen alten Kindle in einen Bilderrahmen für KI-generierte Bilder verwandelt
Alle paar Stunden wird ein neues Bild erzeugt, und der Prompt kann Wetter, Tiere, Länder und Schlagzeilen enthalten
Die gesamte Verarbeitung läuft lokal auf meinem Heimserver mit ollama + stable-diffusion-webui
Bilder auf Basis von Nachrichten wurden allerdings zu deprimierend, also habe ich der KI gesagt, sie solle sie in einen positiven Ton umwandeln
An Regentagen regnet es auch im Bild, im Winter schneit es entsprechend
Der Akku hält ebenfalls mehrere Wochen, und ich habe die Online Screensaver extension so angepasst, dass automatisch in den Flugmodus gewechselt wird
Meine Version eines Kindle-Dashboards ist auf GitHub veröffentlicht
Sie zeigt lokale Wetterdaten und Musikinformationen vom Medienserver an
Das Ghosting auf dem Display lässt sich durch regelmäßige vollständige Aktualisierungen mit dem Befehl
eips -fbehebenDas war das erste Mal, dass ich Rust wirklich lernen wollte
In Queensland in Australien gibt es solarbetriebene E-Paper-Anzeigetafeln an Bushaltestellen
Sie sind viel größer als ein Kindle, aber das Prinzip ist ähnlich
Projektvorstellung, Demovideo
Dieses Projekt erinnerte mich an das SystemSix-Projekt
Im Moment scheint jeder solche Kindle-Modding-Projekte zu machen
Ich habe auch einen K4NT modifiziert und einen Server gebaut, der den Familienkalender anzeigt
Ich habe mir dabei etwas von KI helfen lassen, einen 3D-gedruckten Einsatz für einen Ikea-Rahmen eingebaut und einen MagSafe-Akku befestigt
Ich muss nur alle 5 Tage den Power-Button drücken, und den internen Akku werde ich noch ersetzen
Eine kabelgebundene Verbindung war in meiner Umgebung nicht möglich
Wenn man das Netzwerk zwischen den Aktualisierungen abschaltet, verlängert das die Akkulaufzeit deutlich
Ich habe Updates zwischen 22 Uhr und 6 Uhr morgens blockiert
Auf GitHub gibt es viele Skripte zum Akkusparen
Früher habe ich auch schon mit Raspberry Pi Zero + 2-Zoll-E-Ink eine GTFS-basierte ÖPNV-Anzeige gebaut
Beitrag zum Kindle-Dashboard, Transit-Pi-Projekt
Solche Visualisierungen für smarte Haushaltsgeräte sind wirklich reizvoll
Ich nutze den Kindle gern als Display für einen einzigen Zweck
Tatsächlich bevorzuge ich den LCD-Kindle Fire gegenüber eInk
Wenn man den Entwicklermodus aktiviert, kann man dauerhaft Webseiten anzeigen lassen und das Gerät ohne Werbung nutzen
Einen Kindle Fire HD10 bekommt man schon für etwa 40 Dollar
Ein LCD ohne Ghosting, das sich auch im Dunkeln lesen lässt, ist ein großartiges Upgrade für ein Dashboard