- Eski bir 4. nesil Kindle Touch, NJ Transit otobüs varış saatlerini her dakika yenileyen bir e-mürekkep panosuna dönüştürüldü
- Jailbreak, KUAL, MRPI ve SSH yapılandırması ile özel uygulama çalıştırma ortamı kuruldu; Node tabanlı bir sunucu görseller üretip bunları Kindle'da gösteriyor
- Sunucu, GraphQL API ile otobüs verilerini alıp HTML olarak biçimlendiriyor, ardından wkhtmltoimage ile PNG üretiyor; Kindle da bunu düzenli olarak çekiyor
- KUAL uygulaması doğrudan yapılarak menü düğmesiyle panonun kapatılması sağlandı; bash trap ve rtcwake ile güç yönetimi ve otomatik yenileme kontrol ediliyor
- Yaklaşık 5 günlük pil ömrü sunuyor ve ekran gölgelenmesi sorununu iyileştirme payı var; ayrıca e-mürekkep ekranların gerçek zamanlı bilgi gösteriminde kullanılma potansiyelini ortaya koyuyor
Kindle'ı bir otobüs varış bilgisi ekranına dönüştürmek
-
- nesil Kindle Touch, gerçek zamanlı otobüs varış bilgi ekranına dönüştürüldü
- Ekran her 1 dakikada bir yenileniyor ve menü düğmesiyle pano modundan çıkılabiliyor
- Ticari ürün TRMNL'ye benzer işlevler ücretsiz olarak hayata geçirildi
1. Kindle Jailbreak
- Kindle'ın firmware sürümü kontrol edilip, bu sürüme uygun tar dosyası indirilerek Jailbreak işlemi yapılıyor
- Başarılı olduktan sonra KUAL ve MRPI kurulum aşamasına geçiliyor
2. KUAL ve MRPI kurulumu
- KUAL, özel uygulama başlatıcısı; MRPI ise uygulama kurulum aracı olarak kullanılıyor
- Kurulumdan önce Hotfix ayarı mutlaka yapılmalı
- Kurulumdan sonra OTA güncellemeleri devre dışı bırakılarak otomatik güncellemeler engelleniyor
3. SSH yapılandırması
- USBNetwork eklentisi üzerinden Kindle'a SSH bağlantısı kurulabiliyor
- Harici bir blog rehberine bakılarak USB tabanlı SSH bağlantısı ayarlanıyor
- Bağlantı başarılı olduğunda Kindle, bilgisayarın ağ sekmesinde yeni bir cihaz olarak görünüyor
4. Sunucu kurulumu ve görsel üretimi
- NJ Transit GraphQL API kullanılarak otobüs varış bilgileri alınıyor
getBusArrivalsByStopID sorgusuyla hat, varış zamanı, yoğunluk gibi veriler toplanıyor
- HTML'yi PNG'ye çevirmek için puppeteer yerine wkhtmltoimage kullanılıyor
- Sunucu her 3 dakikada bir yeni görsel üretiyor ve Kindle bunu istiyor
- İlgili kod GitHub deposu
kindle-hax/server içinde açıklandı
- Görsel döndürme ve hizalama, Kindle ekran çözünürlüğüne (ör. 600x800) göre ayarlanıyor
transform: rotate(90deg) translateX(-100px) translateY(-100px); ile dikey gösterim uygulanıyor
5. KUAL uygulaması geliştirme
- Panoyu başlatma/durdurma kontrolü için özel bir KUAL eklentisi oluşturuldu
- Klasör
/mnt/us/extensions/ altına yerleştiriliyor ve KUAL içinde 'Start dashboard' menüsü gösteriliyor
- start.sh betiği, sinyalleri yok sayarak (
trap '' HUP, trap '' TERM) kararlı çalışmayı sürdürüyor
refresh_screen() fonksiyonu sunucu görselini indirip ardından eips komutuyla ekranda gösteriyor
- Üstte tarih, Wi‑Fi durumu ve pil seviyesi gösteriliyor
- evtest ile menü düğmesi girişi (
code 102 (Home), value 1) algılandığında stop.sh çalıştırılıyor
- Pano kapatılıyor ve Kindle arayüzü yeniden başlatılıyor
6. Çalışma sonucu ve iyileştirme noktaları
- Yaklaşık 5 gün pil ömrü sağlanıyor; gece gücü kapatarak 2 gün daha uzatılabiliyor
- Ekran gölgelenmesi (color bleeding) sorunu, tam siyah-beyaz flaş ile iyileştirilebilir
- Her gün kullanılıyor ve takvim, hava durumu, yapılacaklar gibi farklı bilgileri gösterme yönünde genişleme potansiyeli olduğu görülüyor
2 yorum
Ben de yakın zamanda benzer bir şey yaptım; yukarıdaki URL çubuğunu görmek sizi rahatsız etmiyorsa, web sayfasını doğrudan yükleyebilirsiniz.
Kindle, temel olarak web tarayıcısında URL'lere erişebildiği için, oradan dashboard'u açmanız yeterli.
İş yerinde Kindle'da, evde ise eski nesil Paperwhite'ta aynı sayfayı yüklüyorum; yani kendi çapında cross-platform sayılır :)
Tabii Kindle'ın sürekli açık kalma modu için root veya benzeri bir işlem yapmanız gerekiyor.
Paperwhite'ta root'a kadar gitmeye gerek yok; sadece adb bağlantısını açıp oradan screensaver'ı kapatma işlemini yapmak yeterli.
Hacker News yorumları
Geçmişte Kindle güç tüketimi üzerine çalışmış biri olarak, en büyük güç tüketim kaynağının WiFi bağlantısı olduğunu söyleyebilirim
Bunun nedeni, bağlantının kopmaması için WiFi'nin AP'ye düzenli olarak yanıt vermek zorunda olmasıydı
WiFi kapalıyken yaklaşık 700uA, açıkken ise yaklaşık 1.5mA tükettiğini hatırlıyorum
Sayfa değişimlerinde güç anlık olarak yüzlerce mA seviyesine çıkıyordu ve ghosting etkisini azaltmak için belirli sayıda sayfa değişiminden sonra tam ekran yenilemesi yapılıyordu
Anlık olarak yaklaşık 1.5A sağlayabilen bir güç kaynağı gerekiyordu; eski bir harici beslemeli USB hub'ı Raspberry Pi'ye bağlayıp SSH ile kontrol edince WiFi olmadan da aylarca stabil çalıştı
Ayda 30 kereden az kullanıyorum ama WiFi kapalıyken pil verimliliği şaşırtıcı derecede iyi
Paperwhite Kindle'ı henüz modifiye etmedim ama en azından kilit ekranı reklamlarını kaldıracağım
Ancak şimdi uçak modunda pilin neden daha uzun dayandığını gerçekten anlamış oldum
Ben daha basit bir yöntem kullandım
Jailbreak sonrası SSH ile bağlanıp 1 dakikada bir ve 30 dakikada bir çalışan iki betik yazdım
İki betik de aynı görseli gösteriyor ama 30 dakikada bir tam yenileme de ekleniyor
Raspberry Pi üzerinden rsync ile görsel aktarılıyor, Python betiği ise hava kalitesi verilerini MySQL'den alıp görseli oluşturuyor
Kindle sadece görseli gösterdiği için oldukça stabil çalışıyor
Yalnızca TLS gibi güvenli bağlantıları desteklemesi yeterli
Kindle hacklemek gerçekten çok eğlenceli bir iş
eBay'de 15-20 avroya eski Kindle bulunabiliyor; ben de geçen yıl benzer bir deney yaparken çok keyif almıştım
Ayrıntılı süreci blog yazımda anlattım
Küçük boyutlu ama üzerine Crosspoint firmware'i yüklenirse taşınabilir bir e-ink okuyucu olarak kullanılabiliyor
YouTube videosu, Crosspoint GitHub
Biraz daha pahalılar ama Kindle ekranının yeniden kullanıldığı ürünler olabilirler
Bu yazı bana Cloudflare Workers gibi platformlarla daha fazla deneme yapma isteği verdi
Eski bir Kindle'ı AI ile üretilen görseller için bir çerçeveye dönüştürdüm
Birkaç saatte bir yeni bir görsel üretiliyor; prompt içinde hava durumu, hayvanlar, ülkeler ve haber başlıkları yer alabiliyor
Tüm işlem evdeki ollama + stable-diffusion-webui sunucusunda yerel olarak yapılıyor
Ancak haber tabanlı görseller fazla kasvetli olmaya başlayınca, AI'a bunu daha pozitif bir tona çevirmesini söyledim
Yağmurlu günlerde görselde de yağmur yağıyor, kışın ise kar görünüyor
Pil de haftalarca dayanıyor; ayrıca Online Screensaver extension üzerinde değişiklik yaparak otomatik olarak uçak moduna geçmesini sağladım
Yaptığım Kindle dashboard sürümü GitHub'da açık
Yerel hava durumunu ve medya sunucusundaki müzik bilgilerini gösteriyor
Ekrandaki ghosting sorunu,
eips -fkomutuyla periyodik tam yenileme yapılarak çözülebiliyorİlk kez Rust öğrenmek istediğimi düşündüm
Avustralya'nın Queensland eyaletinde güneş enerjili e-paper otobüs durağı tabelaları kullanılıyor
Kindle'dan çok daha büyükler ama mantık benzer
Proje tanıtımı, tanıtım videosu
Bu proje bana SystemSix projesini hatırlattı
Son zamanlarda herkes böyle Kindle modifikasyon projeleri yapıyor gibi görünüyor
Ben de K4NT'yi modifiye edip aile takvimini gösteren bir sunucu yaptım
Biraz AI yardımı aldım; Ikea çerçeveye 3D baskı bir insert yerleştirip MagSafe power bank ekledim
Her 5 günde bir yalnızca güç düğmesine basmak yetiyor ve iç pili de değiştirmeyi planlıyorum
Kablolu bağlantı benim kurulumumda mümkün değildi
Ağı yenilemeler arasında kapatırsanız pil ömrü kesinlikle artıyor
Ben gece 10'dan sabah 6'ya kadar güncellemeleri engelledim
GitHub'da pil tasarrufu için çok sayıda betik var
Daha önce Raspberry Pi Zero + 2 inç e-ink ile GTFS tabanlı bir toplu taşıma göstergesi de yapmıştım
Kindle dashboard yazısı, Transit Pi projesi
Bu tarz akıllı ev cihazı görselleştirmeleri gerçekten çok çekici
Ben Kindle'ı tek amaçlı bir ekran olarak kullanmayı seviyorum
Hatta eInk yerine LCD Kindle Fire tercih ediyorum
Geliştirici moduna alındığında bir web sayfasını sürekli açık tutup reklamsız kullanabiliyorsunuz
Kindle Fire HD10 yaklaşık 40 dolara bulunabiliyor
Ghosting olmayan ve karanlıkta da okunabilen bir LCD, dashboard için harika bir yükseltme