2 पॉइंट द्वारा GN⁺ 2024-08-05 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 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 टिप्पणियां

 
GN⁺ 2024-08-05
Hacker News की राय
  • अगर यह साझा किया होता कि यह कैसे किया, और इसे छोटे पोस्ट वाले platform के बजाय कहीं और डाला होता, तो यह कहीं ज़्यादा दिलचस्प होता

    • अभी जल्दी से GitHub gist बना रहा/रही हूँ, कुछ मिनटों में यहाँ link डाल दूँगा/दूँगी
      अपडेट: https://gist.github.com/adtac/eb639d3c707b55a28f0ee9a420aa7e...
    • मैं होता/होती तो इसे और कड़े शब्दों में कहता/कहती, लेकिन यह काफ़ी constructive ढंग से कहा गया है। मुझे X/Twitter पर लंबे पोस्ट डालना सच में पसंद नहीं है
      जिन्हें पता नहीं है, उनके लिए: किसी tweet पर @threadreaderapp unroll reply करने से आपको फिर से जोड़ा हुआ document मिल सकता है। bot unroll पूरा होने के बाद सिर्फ आपको direct reply देता है
    • HN को छोटे पोस्ट वाले platform के रूप में देखना दिलचस्प है
  • ऐसे ही एक project में HDMI input आज़माया था
    https://hackaday.com/2021/01/08/old-kindle-shows-hdmi-video-...
    इसी से OK Monitor बनाया: https://barwap.com/projects/okmonitor/

    • वैसे, अगर कोई ready-made version हो जो बस plug-and-play की तरह काम करे, तो मैं उसके लिए पैसे देकर खरीदना चाहूँगा/चाहूँगी
      मुझे नहीं लगता कि यह 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 करना चाहता है, तो mobileread forum से शुरुआत करना अच्छा रहेगा

  • क्या e-ink display कभी सस्ता हो पाएगा? लगता है अब basic patents expire होने का समय आ गया होगा

    • competing products भी अब भी काफ़ी महंगे हैं। मेरे digital calendar में इस्तेमाल होने वाला e-paper display, जहाँ तक मुझे पता है, E Ink product नहीं है, लेकिन single unit में करीब 50 euro पड़ता है: https://www.waveshare.com/7.5inch-e-paper-hat.htm
      मेरे calendar में सबसे बड़ा cost driver वही है, और practically price range उसी से तय हो जाती है: https://shop.invisible-computers.com/products/invisible-cale...
    • https://news.ycombinator.com/item?id=26143779
    • patents का ज़्यादा लेना-देना नहीं है। E Ink महंगा इसलिए है क्योंकि यह छोटे scale वाला niche product है। LCD screens हर quarter अरबों की संख्या में बनती हैं, और बहुत संभव है कि हर किसी के पास LCD वाले कई devices हों
      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 कर सकते हैं न

    • वह काफ़ी ज़्यादा simple है। लेकिन हर frame को network → DOM → browser app memory → framebuffer से होकर गुजरना पड़ेगा, इसलिए शक है कि browser usable frame rate संभालने जितना powerful होगा
      Kindle browser तो Kindle store या Goodreads को भी मुश्किल से संभालता है, लेकिन अगर इसका उल्टा साबित हो जाए तो अच्छा होगा। तब नए Kindle पर भी stock state में इसे कहीं आसानी से implement किया जा सकेगा
  • GitHub पर लिखा है: “दुर्भाग्य से Go source code खो गया”

    • आगे लिखा था, “फिर भी यह काफ़ी simple था, 30 lines से कम था”
      अगर वह इतना simple था, तो उसे तुरंत दोबारा लिखकर GitHub में add न कर पाना उल्टा अजीब लगता है
  • इसे आसान तरीके से करना हो तो Boox reader पर Superdisplay app इस्तेमाल कर सकते हैं

  • सबसे ज़रूरी सवाल का जवाब नहीं दिया: क्या इसे करना worth it था?

    • अभी फैसला करना जल्दबाज़ी होगी। main monitor के तौर पर useful नहीं है, लेकिन secondary monitor के तौर पर शानदार है
      मौजूदा रूप में frame rate अच्छा है, लेकिन latency बहुत खराब है। इसलिए typing experience खराब है, लेकिन ऐसे कई use cases हैं जहाँ typing की ज़रूरत नहीं होती
      chat window जैसी जगहों पर, जहाँ low-latency typing feedback ज़रूरी है, input text box LCD monitor पर रख सकते हैं और ज़्यादातर static chat history Kindle पर दिखा सकते हैं। वहाँ तक पहुँचने के लिए और काम चाहिए, लेकिन अभी के लिए यह अच्छी शुरुआत है