- Kindle Paperwhite 3 पर macOS स्क्रीन को कैप्चर करके भेजने और दिखाने के तरीके से 3.5fps e-ink मॉनिटर डेमो बनाया गया
- Kindle पर पोर्ट 8000 पर इमेज पाने के लिए Go listener server रखा गया, और मिली हुई JPG को बिल्ट-इन utility
eips से स्क्रीन पर रेंडर किया गया
- macOS पर
screencapture, ImageMagick, और netcat को मिलाकर स्क्रीन कैप्चर, कन्वर्ज़न, और usbnet ट्रांसफर किया गया
- हर फ्रेम में पूरा JPG भेजने वाली संरचना होने से text editor जैसे कम बदलाव वाले स्क्रीन में ट्रांसफर की बर्बादी बहुत अधिक है और सुधार की काफी गुंजाइश है
- यह दिखाता है कि अलग codec या VNC implementation के बिना भी सिर्फ मौजूदा टूल्स के संयोजन से e-ink secondary monitor का प्रयोग जल्दी बनाया जा सकता है
jailbreak और root shell हासिल करना
- पहला चरण Kindle को jailbreak करके किसी भी तरीके से root shell तक पहुंच पाना है
- संबंधित सामग्री mobileread.com पर मिल सकती है, और LanguageBreak thread के निर्देश देखे जा सकते हैं
- इम्प्लीमेंटर ने LanguageBreak के निर्देशों का ठीक-ठीक पालन नहीं किया, लेकिन LanguageBreak GitHub repository को debugging में उपयोगी पाया
- jailbreak के तरीके से ज़्यादा अहम शर्त यह है कि Kindle पर root shell मिल जाए
Kindle listener server और eips आउटपुट
- Kindle की तरफ पोर्ट 8000 पर फ़ाइल लेने वाला Go प्रोग्राम लिखा गया
- listener मिली हुई JPG को सेव करता है और फिर Kindle की बिल्ट-इन स्क्रीन आउटपुट utility
eips को कॉल करता है
- उदाहरण workflow:
- Go प्रोग्राम JPG फ़ाइल प्राप्त करता है
- उसे
/tmp/img.jpg में सेव करता है
- फिर नीचे दिए गए कमांड से स्क्रीन पर इमेज दिखाता है
eips -g /tmp/img.jpg -w gc16 -x 128 -y 0
- यह कमांड partial update के साथ इमेज दिखाती है
- full update के नतीजे अच्छे नहीं थे, और
eips flags का अर्थ eips wiki में देखा जा सकता है
- पहले फ्रेम से पहले
eips -c से स्क्रीन साफ की जा सकती है
- Go source code खो गया है, लेकिन यह 30 लाइनों से कम का सरल कोड था
macOS स्क्रीन कैप्चर और इमेज कन्वर्ज़न
- macOS पर
screencapture से स्क्रीन को बार-बार कैप्चर करके PNG फ़ाइल में सेव किया गया
- कैप्चर की गई इमेज को ImageMagick से Kindle स्क्रीन के अनुसार rotate, resize, और grayscale में बदला गया
- बदली हुई JPG को
netcat से usbnet के जरिए Kindle listener server तक भेजा गया
/usr/sbin/screencapture -C -x /tmp/orig.png
convert /tmp/orig.png -rotate 270 -resize '810x1448!' -type GrayScale -depth 8 -colors 256 /tmp/gray.jpg
cat /tmp/gray.jpg | nc -w 0 192.168.15.244 8000
screencapture -C -x स्क्रीन को /tmp/orig.png में कैप्चर करता है
convert इमेज को 270 डिग्री घुमाता है, 810x1448 पर resize करता है, और फिर 8-bit grayscale, 256-color JPG में बदलता है
nc बदली हुई /tmp/gray.jpg को 192.168.15.244:8000 पर भेजता है
- resolution इस्तेमाल किए जा रहे Kindle डिवाइस के अनुसार बदलनी होगी, और पोर्ट भी Kindle listener server की सेटिंग से मेल खाना चाहिए
प्रदर्शन और उपयोगिता की सीमाएं
- यह implementation पिछली रात मज़े के लिए जल्दी में बनाया गया hack है, इसलिए प्रदर्शन और उपयोगिता दोनों में सुधार की काफी गुंजाइश है
- हर फ्रेम में पूरी JPG फ़ाइल भेजने का तरीका बहुत बर्बादी वाला है
- लगातार फ्रेमों के बीच बदलाव का परिमाण ज़्यादातर कम होता है और संभव है कि उसे आसानी से compress किया जा सके
- खासकर text editor जैसे उपयोग में, जहां स्क्रीन का सिर्फ एक हिस्सा बदलता है, यह गुण और अधिक स्पष्ट हो सकता है
- h.264 जैसे codec या VNC जैसे protocol को नया बनाए बिना भी, सिर्फ मौजूदा टूल्स से इसे जल्दी बेहतर किया जा सकता है
संदर्भ सामग्री
1 टिप्पणियां
Hacker News की राय
अगर यह साझा किया होता कि यह कैसे किया, और इसे छोटे पोस्ट वाले platform के बजाय कहीं और डाला होता, तो यह कहीं ज़्यादा दिलचस्प होता
अपडेट: https://gist.github.com/adtac/eb639d3c707b55a28f0ee9a420aa7e...
जिन्हें पता नहीं है, उनके लिए: किसी tweet पर
@threadreaderapp unrollreply करने से आपको फिर से जोड़ा हुआ document मिल सकता है। bot unroll पूरा होने के बाद सिर्फ आपको direct reply देता हैऐसे ही एक project में HDMI input आज़माया था
https://hackaday.com/2021/01/08/old-kindle-shows-hdmi-video-...
इसी से OK Monitor बनाया: https://barwap.com/projects/okmonitor/
मुझे नहीं लगता कि यह business-wise viable है। revenue शायद कुछ हज़ार से कुछ दसियों हज़ार डॉलर तक ही होगा, इसलिए margin चाहे जैसे रखें, लगाए गए time या cost से ज़्यादा recover करना मुश्किल लगेगा। फिर भी hobby projects में impact के लिए कभी-कभी लोग ऐसा करते दिखते हैं
computer के लिए wireless e-ink display हो तो अच्छा होगा, और ideally USB-C dongle के ज़रिए video और power दोनों लेने वाला form factor हो। HDMI + USB power भी ठीक रहेगा
पिछले कुछ दिनों में generic device के तौर पर Android + Kaleido3 test किया, और Termux-X11 भी इस्तेमाल किया
Kaleido3 काफ़ी usable है। नए waveforms और सही dithering algorithm की वजह से सीमित compromises के साथ video देखना भी संभव है और frame rate भी ऊँचा है। coding भी आराम से हो गई, और compiler व interpreter Termux ने उपलब्ध कराए
Termux-X11 इस्तेमाल करने पर Android device पर desktop Linux native रूप से चलाया जा सकता है। इसलिए e-ink को monitor device के हिस्से के रूप में इस्तेमाल करने की ज़रूरत नहीं, बल्कि tablet में built-in active computer screen के रूप में सीधे इस्तेमाल किया जा सकता है
अगर कोई Kindle को jailbreak करना चाहता है, तो
mobilereadforum से शुरुआत करना अच्छा रहेगाक्या e-ink display कभी सस्ता हो पाएगा? लगता है अब basic patents expire होने का समय आ गया होगा
मेरे calendar में सबसे बड़ा cost driver वही है, और practically price range उसी से तय हो जाती है: https://shop.invisible-computers.com/products/invisible-cale...
E Ink जो काम करता है, उनमें से ज़्यादातर LCD से replace किए जा सकते हैं, और क्योंकि यह LCD से महंगा है, इसलिए बहुत कम जगहों पर इसे अपनाने की वजह बनती है
“patents” वाली बात बिना ठोस आधार के conspiracy theory जैसी है। E Ink के competitors भी हैं, जैसे DES/Display Electronic Slurry screens। अगर E Ink corp overcharge कर रही होती, तो GoodDisplay ने पहले ही market ले लिया होता
ठीक-ठीक कहें तो E Ink patents का होना conspiracy theory नहीं है। कुछ expire हो चुके हैं, और E Ink corp innovation करते हुए नए patents लगातार file करती रहती है। LCD patents भी बहुत ज़्यादा हैं। conspiracy theory वाला हिस्सा यह दावा है कि patents की वजह से price increase और high prices बने हैं, और इसी से technology adoption रुक रहा है
jailbreak क्यों करें? Kindle के built-in browser से desktop screenshot streaming कर सकते हैं न
Kindle browser तो Kindle store या Goodreads को भी मुश्किल से संभालता है, लेकिन अगर इसका उल्टा साबित हो जाए तो अच्छा होगा। तब नए Kindle पर भी stock state में इसे कहीं आसानी से implement किया जा सकेगा
GitHub पर लिखा है: “दुर्भाग्य से Go source code खो गया”
अगर वह इतना simple था, तो उसे तुरंत दोबारा लिखकर GitHub में add न कर पाना उल्टा अजीब लगता है
इसे आसान तरीके से करना हो तो Boox reader पर Superdisplay app इस्तेमाल कर सकते हैं
सबसे ज़रूरी सवाल का जवाब नहीं दिया: क्या इसे करना worth it था?
मौजूदा रूप में frame rate अच्छा है, लेकिन latency बहुत खराब है। इसलिए typing experience खराब है, लेकिन ऐसे कई use cases हैं जहाँ typing की ज़रूरत नहीं होती
chat window जैसी जगहों पर, जहाँ low-latency typing feedback ज़रूरी है, input text box LCD monitor पर रख सकते हैं और ज़्यादातर static chat history Kindle पर दिखा सकते हैं। वहाँ तक पहुँचने के लिए और काम चाहिए, लेकिन अभी के लिए यह अच्छी शुरुआत है