- पुराने Kindle Touch 4th gen को मॉडिफाई करके NJ Transit बस आगमन समय हर 1 मिनट में अपडेट करने वाले e-ink डैशबोर्ड में बदला गया
- Jailbreak, KUAL, MRPI, SSH सेटअप के जरिए custom app चलाने का वातावरण बनाया गया, और Node-आधारित सर्वर पर image बनाकर उसे Kindle पर दिखाया गया
- सर्वर GraphQL API से बस डेटा लाता है, उसे HTML में फ़ॉर्मैट करता है, फिर wkhtmltoimage से PNG बनाता है जिसे Kindle समय-समय पर लोड करता है
- KUAL app भी खुद बनाया गया ताकि menu button से डैशबोर्ड बंद किया जा सके, और bash trap व rtcwake से power management और auto refresh को नियंत्रित किया गया
- लगभग 5 दिन की battery life मिलती है और screen ghosting समस्या को और बेहतर किया जा सकता है; यह e-ink display पर real-time information उपयोग की संभावना दिखाता है
Kindle को बस आगमन सूचना डिस्प्ले में बदलना
- Kindle Touch 4th gen को real-time bus arrival information board में मॉडिफाई किया गया
- स्क्रीन हर 1 मिनट में refresh होती है, और menu button से dashboard mode बंद किया जा सकता है
- commercial product TRMNL जैसी functionality को मुफ़्त में लागू किया गया
1. Kindle Jailbreak
- Kindle का firmware version जांचकर, उसी version के अनुसार tar file डाउनलोड की जाती है और Jailbreak प्रक्रिया पूरी की जाती है
- सफल होने के बाद KUAL और MRPI installation चरण पर आगे बढ़ते हैं
2. KUAL और MRPI इंस्टॉल करना
- KUAL को custom app launcher और MRPI को app installation tool के रूप में इस्तेमाल किया गया
- इंस्टॉल करने से पहले Hotfix setup ज़रूर करना होता है
- इंस्टॉल के बाद OTA updates disable करके automatic updates को रोका जाता है
3. SSH सेटअप
- USBNetwork extension के जरिए Kindle में SSH access संभव है
- बाहरी ब्लॉग गाइड के आधार पर USB-आधारित SSH connection सेट किया गया
- connection सफल होने पर कंप्यूटर के network tab में Kindle एक नए device के रूप में दिखाई देता है
4. सर्वर बनाना और image generate करना
- NJ Transit GraphQL API का उपयोग करके बस आगमन जानकारी लाई जाती है
getBusArrivalsByStopID query से route, arrival time, congestion जैसी जानकारी ली जाती है
- puppeteer की जगह wkhtmltoimage का इस्तेमाल करके HTML को PNG में बदला गया
- सर्वर हर 3 मिनट में नई image बनाता है और Kindle उसे request करता है
- संबंधित code GitHub repository
kindle-hax/server में सार्वजनिक है
- Kindle screen resolution (जैसे 600x800) के अनुसार image rotation और alignment समायोजित किए गए
transform: rotate(90deg) translateX(-100px) translateY(-100px); से portrait display लागू किया गया
5. KUAL app बनाना
- dashboard start/stop control के लिए custom KUAL extension बनाया गया
/mnt/us/extensions/ में folder रखने के बाद KUAL में ‘Start dashboard’ menu दिखता है
- start.sh script signals को ignore करती है (
trap '' HUP, trap '' TERM), जिससे यह स्थिर रूप से चलती रहती है
refresh_screen() function सर्वर image डाउनलोड करने के बाद eips command से उसे दिखाता है
- ऊपर की तरफ तारीख, Wi‑Fi status और battery level दिखाया जाता है
- evtest से menu button input (
code 102 (Home), value 1) पहचानने पर stop.sh चलाया जाता है
- इससे dashboard बंद होता है और Kindle UI फिर से शुरू हो जाती है
6. चलाने का परिणाम और सुधार की गुंजाइश
- लगभग 5 दिन की battery life, और रात में power off करने पर 2 दिन और बढ़ सकती है
- screen ghosting (color bleeding) समस्या को पूरी black-and-white flash से बेहतर किया जा सकता है
- इसे रोज़ इस्तेमाल किया जा रहा है, और calendar, weather, to-do जैसी कई तरह की जानकारी दिखाने की विस्तार-क्षमता भी साबित हुई
2 टिप्पणियां
मैंने भी हाल में कुछ ऐसा ही किया था, और अगर ऊपर URL bar दिखना आपको परेशान नहीं करता, तो बस web page लोड कर लेना भी ठीक है.
Kindle में मूल रूप से web browser से URL access संभव है, तो वहीं से dashboard खोल सकते हैं.
ऑफिस में Kindle पर और घर में पुरानी पीढ़ी के Paperwhite पर वही page लोड कर रहा हूँ, तो अपने आप में यह काफ़ी cross-platform है, हाहा
बेशक, Kindle में हमेशा चालू रहने वाला mode इस्तेमाल करने के लिए rooting या ऐसा ही कुछ करना पड़ता है.
Paperwhite में rooting तक की ज़रूरत नहीं होती, बस adb connection खोलना होता है और वहाँ से screensaver बंद करने की प्रक्रिया करनी होती है.
Hacker News की टिप्पणियाँ
एक ऐसे व्यक्ति के रूप में जिसने पहले Kindle power consumption पर काम किया है, सबसे बड़ा power drain WiFi connection था
क्योंकि connection बनाए रखने के लिए WiFi को समय-समय पर AP को respond करना पड़ता था
मुझे याद है कि WiFi बंद होने पर यह लगभग 700uA था, और चालू होने पर लगभग 1.5mA
page change के समय power क्षणिक रूप से कई सौ mA तक चली जाती थी, और ghosting issue कम करने के लिए कुछ pages के बाद full screen refresh होता था
इसके लिए ऐसी power supply चाहिए थी जो क्षणिक रूप से लगभग 1.5A दे सके; मैंने एक पुराना powered USB hub Raspberry Pi से जोड़कर SSH से control किया, और यह WiFi के बिना भी कई महीनों तक स्थिर रूप से चलता रहा
मैं इसका इस्तेमाल महीने में 30 बार से कम करता हूँ, लेकिन WiFi बंद हो तो battery efficiency हैरान कर देने वाली होती है
मैंने अभी तक Paperwhite Kindle mod नहीं किया है, लेकिन कम से कम lock screen ads तो हटाने वाला हूँ
अब जाकर मुझे airplane mode में battery ज़्यादा चलने की वजह सच में समझ आई है
मैंने इससे भी आसान तरीका इस्तेमाल किया
Jailbreak के बाद SSH से login करके दो scripts बनाई थीं, जो हर 1 मिनट और हर 30 मिनट पर चलती थीं
दोनों scripts एक ही image दिखाती हैं, लेकिन 30 मिनट वाली full refresh भी जोड़ती है
Raspberry Pi से rsync के जरिए image transfer होती है, और Python script MySQL से air quality data लेकर image compose करती है
Kindle सिर्फ image display करने का काम करता है, इसलिए यह बहुत stable तरीके से चलता है
बस TLS जैसी secure connection support होनी चाहिए
Kindle hacking सच में बहुत मज़ेदार काम है
eBay पर 15~20 यूरो में पुराना Kindle मिल जाता है, और मैंने भी पिछले साल ऐसा ही experiment करके खूब मज़ा लिया था
पूरी प्रक्रिया मैंने अपने blog post में लिखी है
यह छोटा है, लेकिन अगर उस पर Crosspoint firmware डालें तो इसे portable e-ink reader की तरह इस्तेमाल किया जा सकता है
YouTube वीडियो, Crosspoint GitHub
वे थोड़े महंगे हैं, लेकिन हो सकता है कि वे Kindle screen को reuse करने वाले products हों
इस पोस्ट को देखकर मेरा मन Cloudflare Workers जैसे platforms के साथ और experiment करने का हुआ
मैंने अपने पुराने Kindle को AI-generated picture frame में बदल दिया
हर कुछ घंटों में नई तस्वीर generate होती है, और prompt में मौसम, जानवर, देश, news headlines वगैरह शामिल किए जा सकते हैं
सारी processing घर के ollama + stable-diffusion-webui server पर local रूप से होती है
लेकिन news-based images बहुत उदास हो जाती थीं, इसलिए मैंने AI को positive tone रखने के लिए कहा
बारिश के दिनों में तस्वीर में भी बारिश होती है, और सर्दियों में बर्फ पड़ती दिखती है
battery भी कई हफ्तों तक चल जाती है, और मैंने Online Screensaver extension को modify करके उसे अपने-आप airplane mode में जाने लायक बना दिया
मेरे बनाए हुए Kindle dashboard का version GitHub पर public है
यह local weather और media server की music info दिखाता है
screen के ghosting issue को
eips -fcommand से periodic full refresh करके हल किया जा सकता हैपहली बार लगा कि मुझे Rust सीखनी है
ऑस्ट्रेलिया के Queensland में solar-powered e-paper bus stop signboards चल रहे हैं
वे Kindle से कहीं बड़े हैं, लेकिन उनका principle मिलता-जुलता है
project introduction, demo video
इस project को देखकर मुझे SystemSix project याद आ गया
लगता है आजकल हर कोई ऐसे Kindle mod projects कर रहा है
मैंने भी K4NT को mod करके family schedule दिखाने वाला server बनाया है
AI की थोड़ी मदद ली, Ikea frame में 3D-printed insert लगाया और MagSafe power bank जोड़ दिया
हर 5 दिन में बस power button दबाना पड़ता है, और अंदर की battery मैं बदलने वाला हूँ
मेरे setup में wired connection संभव नहीं था
अगर network को refreshes के बीच बंद रखा जाए, तो battery life निश्चित रूप से बढ़ती है
मैंने रात 10 बजे से सुबह 6 बजे तक updates बंद कर रखे थे
GitHub पर battery saving के लिए बहुत सी scripts हैं
पहले मैंने Raspberry Pi Zero + 2-inch e-ink से GTFS-based public transit display भी बनाया था
Kindle dashboard post, Transit Pi project
इस तरह की smart appliance visualization सच में बहुत आकर्षक है
मुझे Kindle को single-purpose display की तरह इस्तेमाल करना पसंद है
बल्कि eInk की जगह मैं LCD Kindle Fire को ज़्यादा पसंद करता हूँ
developer mode में बदल दें तो किसी web page को हमेशा खुला रख सकते हैं और बिना ads के इस्तेमाल कर सकते हैं
Kindle Fire HD10 लगभग 40 डॉलर में मिल सकता है
ghosting-रहित और अंधेरे में भी पढ़े जा सकने वाला LCD dashboard के लिए शानदार upgrade है