7 คะแนน โดย GN⁺ 2026-02-26 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • ดัดแปลง Kindle Touch รุ่นที่ 4 รุ่นเก่าให้กลายเป็นแดชบอร์ดจอ e-ink สำหรับแสดง เวลารถบัส NJ Transit มาถึง ที่อัปเดตทุก 1 นาที
  • สร้างสภาพแวดล้อมสำหรับรันแอปแบบกำหนดเองผ่าน Jailbreak, KUAL, MRPI และการตั้งค่า SSH แล้วใช้ เซิร์ฟเวอร์ที่ใช้ Node สร้างภาพเพื่อแสดงบน Kindle
  • เซิร์ฟเวอร์ดึงข้อมูลรถบัสผ่าน GraphQL API จัดรูปแบบเป็น HTML แล้วสร้าง PNG ด้วย wkhtmltoimage เพื่อให้ Kindle ดึงไปแสดงเป็นระยะ
  • สร้าง แอป KUAL ขึ้นมาเองเพื่อให้สามารถออกจากแดชบอร์ดได้ด้วยปุ่มเมนู และใช้ bash trap กับ rtcwake เพื่อจัดการพลังงานและควบคุมการรีเฟรชอัตโนมัติ
  • แบตเตอรี่อยู่ได้ราว 5 วัน และยังมีพื้นที่ให้ปรับปรุงปัญหาเงาภาพบนหน้าจอ พร้อมแสดงให้เห็นถึง ศักยภาพของการใช้จอ e-ink กับข้อมูลเรียลไทม์

เปลี่ยน Kindle ให้เป็นจอแสดงข้อมูลเวลารถบัสมาถึง

  • ดัดแปลง Kindle Touch รุ่นที่ 4 ให้เป็น ป้ายข้อมูลเวลารถบัสมาถึงแบบเรียลไทม์
    • รีเฟรชหน้าจอทุก 1 นาที และสามารถออกจากโหมดแดชบอร์ดได้ด้วยปุ่มเมนู
    • ทำฟังก์ชันคล้ายผลิตภัณฑ์เชิงพาณิชย์อย่าง TRMNL ได้ฟรี

1. Kindle Jailbreak

  • ตรวจสอบ เวอร์ชันเฟิร์มแวร์ ของ Kindle แล้วดาวน์โหลด ไฟล์ tar ที่ตรงกับเวอร์ชันนั้นเพื่อทำ ขั้นตอน Jailbreak
  • เมื่อสำเร็จแล้วจึงไปต่อที่ขั้นตอนติดตั้ง KUAL และ MRPI

2. ติดตั้ง KUAL และ MRPI

  • ใช้ KUAL เป็นตัวเปิดแอปแบบกำหนดเอง และ MRPI เป็นเครื่องมือติดตั้งแอป
  • ก่อนติดตั้งต้องทำ การตั้งค่า Hotfix ให้เรียบร้อยก่อน
  • หลังติดตั้งแล้วให้ ปิดใช้งาน OTA update เพื่อบล็อกการอัปเดตอัตโนมัติ

3. ตั้งค่า SSH

  • สามารถเชื่อมต่อ SSH เข้า Kindle ได้ผ่าน ส่วนขยาย USBNetwork
  • อ้างอิงคู่มือจากบล็อกภายนอกเพื่อตั้งค่า การเชื่อมต่อ SSH ผ่าน USB
  • เมื่อเชื่อมต่อสำเร็จ Kindle จะปรากฏเป็นอุปกรณ์ใหม่ในแท็บเครือข่ายของคอมพิวเตอร์

4. สร้างเซิร์ฟเวอร์และสร้างภาพ

  • ใช้ NJ Transit GraphQL API เพื่อดึงข้อมูลเวลารถบัสมาถึง
    • เก็บข้อมูลเส้นทาง เวลามาถึง ความหนาแน่นผู้โดยสาร ฯลฯ ด้วยคิวรี getBusArrivalsByStopID
  • ใช้ wkhtmltoimage แทน puppeteer เพื่อแปลง HTML เป็น PNG
    • เซิร์ฟเวอร์จะสร้างภาพใหม่ทุก 3 นาที และ Kindle จะร้องขอภาพดังกล่าว
    • โค้ดที่เกี่ยวข้องเปิดเผยไว้ใน GitHub repository kindle-hax/server
  • ปรับการหมุนและการจัดวางภาพให้ตรงกับความละเอียดหน้าจอ Kindle (เช่น 600x800)
    • ใช้ transform: rotate(90deg) translateX(-100px) translateY(-100px); เพื่อแสดงผลในแนวตั้ง

5. สร้างแอป KUAL

  • สร้างส่วนขยาย KUAL แบบกำหนดเองเพื่อ ควบคุมการเริ่ม/หยุดแดชบอร์ด
    • วางโฟลเดอร์ไว้ที่ /mnt/us/extensions/ แล้วจะแสดงเมนู ‘Start dashboard’ ใน KUAL
  • สคริปต์ start.sh ใช้การเพิกเฉยต่อสัญญาณ (trap '' HUP, trap '' TERM) เพื่อให้รันได้อย่างเสถียร
    • ฟังก์ชัน refresh_screen() จะดาวน์โหลดภาพจากเซิร์ฟเวอร์แล้วแสดงด้วยคำสั่ง eips
    • แสดงวันที่ สถานะ Wi‑Fi และระดับแบตเตอรี่ไว้ด้านบน
  • ใช้ evtest เพื่อตรวจจับอินพุตปุ่มเมนู (code 102 (Home), value 1) แล้วรัน stop.sh
    • ทำการปิดแดชบอร์ดและรีสตาร์ต Kindle UI

6. ผลลัพธ์การใช้งานและจุดที่ควรปรับปรุง

  • แบตเตอรี่อยู่ได้ประมาณ 5 วัน และถ้าปิดเครื่องตอนกลางคืนอาจยืดเพิ่มได้อีก 2 วัน
  • ปัญหา เงาภาพบนหน้าจอ (color bleeding) อาจปรับปรุงได้ด้วยการแฟลชขาวดำแบบเต็มหน้าจอ
  • ใช้งานอยู่ทุกวัน และยืนยันได้ว่าสามารถขยายไปแสดง ปฏิทิน สภาพอากาศ งานที่ต้องทำ และข้อมูลอื่น ๆ ได้อีก

2 ความคิดเห็น

 
xguru 2026-02-26

ผมก็เพิ่งทำอะไรคล้าย ๆ กันเมื่อไม่นานนี้เหมือนกัน ถ้าไม่ได้รำคาญที่ต้องเห็นแถบ URL ด้านบน ก็สามารถโหลดหน้าเว็บตรง ๆ ได้เลย
Kindle โดยพื้นฐานแล้วสามารถเข้า URL ผ่านเว็บเบราว์เซอร์ได้อยู่แล้ว ดังนั้นก็แค่เปิดแดชบอร์ดจากตรงนั้น
ที่บริษัทผมใช้ Kindle ส่วนที่บ้านใช้ Paperwhite รุ่นเก่า โหลดหน้าเดียวกันอยู่ ก็ถือว่าเป็นแบบครอสแพลตฟอร์มเหมือนกันครับ 555

แน่นอนว่า ถ้าจะให้ Kindle อยู่ในโหมดเปิดค้างตลอด ก็ต้องรูตหรือทำอะไรทำนองนั้น
แต่ Paperwhite ไม่ถึงกับต้องรูต แค่เปิดให้เชื่อมต่อ adb ได้ แล้วสั่งปิดสกรีนเซฟเวอร์จากตรงนั้นก็พอครับ

 
GN⁺ 2026-02-26
ความคิดเห็นบน Hacker News
  • ในฐานะคนที่เคยทำงานเกี่ยวกับ การใช้พลังงานของ Kindle มาก่อน แหล่งที่กินไฟมากที่สุดคือการเชื่อมต่อ WiFi
    เพราะ WiFi ต้องตอบสนองกับ AP เป็นระยะเพื่อไม่ให้การเชื่อมต่อหลุด
    เท่าที่จำได้ ตอนปิด WiFi จะกินไฟราว 700uA และตอนเปิดจะอยู่ที่ประมาณ 1.5mA
    ตอนเปลี่ยนหน้า การใช้ไฟจะพุ่งขึ้นชั่วขณะถึงระดับหลายร้อย mA และจะมีการรีเฟรชทั้งหน้าจอเป็นระยะเพื่อลด อาการ ghosting

    • ฉันถอดแบตเตอรี่ออกแล้วจ่ายไฟ 5V ผ่านไดโอดเข้าทางพอร์ต USB ของ Kindle
      ต้องใช้แหล่งจ่ายไฟที่จ่ายกระแสชั่วขณะได้ราว 1.5A และเมื่อเอา USB hub แบบมีไฟเลี้ยง รุ่นเก่ามาต่อกับ Raspberry Pi แล้วควบคุมผ่าน SSH ก็ทำงานได้เสถียรหลายเดือนโดยไม่ต้องใช้ WiFi
    • RM2 ของฉันไม่เคยต่อ WiFi เลย และไม่ต้องชาร์จนานหลายเดือน
      แม้จะใช้งานน้อยกว่า 30 ครั้งต่อเดือน แต่พอปิด WiFi แล้วประสิทธิภาพแบตเตอรี่ก็น่าทึ่งมาก
      ยังไม่ได้ดัดแปลง Paperwhite Kindle แต่ตั้งใจว่าจะเอา โฆษณาหน้าจอล็อก ออกอย่างน้อย
    • ฉันกำลังคิดจะทดสอบอายุแบตเตอรี่โดยปิด WiFi ไว้และเพิ่มรอบรีเฟรชเป็นทุก 2 นาที
      ตอนนี้ถึงเข้าใจอย่างชัดเจนแล้วว่าทำไม โหมดเครื่องบินถึงทำให้แบตเตอรี่อึดขึ้น
    • สงสัยว่าถ้าติด แผงโซลาร์เซลล์ amorphous silicon รอบ Kindle จะทำให้ไม่ต้องชาร์จทุก 5 วันได้ไหม
  • ฉันใช้วิธีที่ง่ายกว่านั้นอีก
    หลัง Jailbreak ก็เข้า SSH แล้วสร้างสคริปต์สองตัวให้รันทุก 1 นาทีและทุก 30 นาที
    ทั้งสองสคริปต์แสดงภาพเดียวกัน แต่ตัวที่รันทุก 30 นาทีจะเพิ่มการรีเฟรชเต็มหน้าจอ
    ฝั่ง Raspberry Pi ใช้ rsync ส่งภาพมา และสคริปต์ Python จะดึง ข้อมูลคุณภาพอากาศ จาก MySQL มาประกอบเป็นภาพ
    Kindle มีหน้าที่แค่แสดงภาพ จึงทำงานได้เสถียรมาก

    • อ่านถึงตรงที่บอกว่า “วิธีที่ง่ายกว่า” แล้วตามด้วย rsync, Python, MySQL ก็อดยิ้มไม่ได้
    • ถ้ามีจอ eInk ที่แค่ รับ bitmap แล้วแสดงผล อย่างเดียว ก็น่าจะเพียงพอกับการใช้งานหลายแบบแล้ว
      ขอแค่รองรับการเชื่อมต่อที่ปลอดภัยอย่าง TLS ก็พอ
    • ฉันก็ใช้ Kindle แบบคล้ายกัน คือ Jailbreak แล้วใช้มันอ่าน ePub บนรถบัส จากนั้นถาม Siri เรื่องรถบัสคันถัดไป
    • มันน่าพอใจจริง ๆ ที่ แก้ปัญหาด้วยสคริปต์ง่าย ๆ แค่สองตัว แทนที่จะใช้เฟรมเวิร์กซับซ้อน
  • การแฮ็ก Kindle เป็นงานที่สนุกมากจริง ๆ
    ใน eBay หา Kindle รุ่นเก่าได้ในราคา 15~20 ยูโร และฉันก็สนุกกับการทดลองแบบเดียวกันนี้เมื่อปีที่แล้ว
    รายละเอียดขั้นตอนเขียนไว้ในบล็อกโพสต์ของฉัน

    • บน AliExpress มีบอร์ด e-ink ใช้ ESP32 ชื่อ Xteink4 ขายอยู่
      ถึงจะเล็ก แต่ถ้าลงเฟิร์มแวร์ Crosspoint ก็ใช้เป็นเครื่องอ่าน e-ink แบบพกพาได้
      วิดีโอ YouTube, Crosspoint GitHub
    • ถ้ารู้สึกว่าการทำ reverse engineering หนักเกินไป ก็ยังมีจอ e-ink ที่เสียบกับ พอร์ต DSI ของ Raspberry Pi ได้
      ราคาอาจแพงกว่านิดหน่อย แต่ก็อาจเป็นผลิตภัณฑ์ที่รีไซเคิลหน้าจอ Kindle มาใช้
    • การได้เห็นคนอื่นบรรลุเป้าหมายเดียวกันด้วยวิธีต่างออกไปเป็นเรื่องสนุก
      อ่านโพสต์นี้แล้วทำให้อยากลองแพลตฟอร์มอย่าง Cloudflare Workers เพิ่มอีก
    • สงสัยว่าสามารถเริ่ม Jailbreak ได้ทันทีเลยไหม หรือว่าต้องผูกกับบัญชี Amazon ตอนตั้งค่าเริ่มต้นก่อน
  • ฉันเปลี่ยน Kindle เก่าให้เป็น กรอบภาพที่สร้างด้วย AI
    ทุก ๆ ไม่กี่ชั่วโมงจะมีการสร้างภาพใหม่ และในพรอมป์ต์สามารถใส่สภาพอากาศ สัตว์ ประเทศ หรือพาดหัวข่าวได้
    ทุกอย่างประมวลผลแบบโลคัลบนเซิร์ฟเวอร์ที่บ้านด้วย ollama + stable-diffusion-webui
    แต่ภาพที่อิงจากข่าวจะหม่นเกินไป เลยสั่ง AI ให้ปรับเป็น โทนเชิงบวก
    วันฝนตกในภาพก็จะมีฝนตกด้วย หน้าหนาวก็มีหิมะตกประมาณนั้น
    แบตเตอรี่อยู่ได้หลายสัปดาห์ และฉันยังแก้ Online Screensaver extension ให้สลับเข้าโหมดเครื่องบินอัตโนมัติด้วย

    • ถ้าใช้การรู้จำเสียงเพื่อ แปลงบทสนทนาให้เป็นภาพ ก็น่าจะสนุกดี
    • e-ink เป็นสื่อที่ เข้ากับงานศิลปะแนว generative ได้อย่างน่าแปลกใจ
  • เวอร์ชัน Kindle dashboard ที่ฉันทำ เปิดโค้ดไว้บน GitHub
    มันแสดงข้อมูลอากาศท้องถิ่นและข้อมูลเพลงจาก media server
    ปัญหา ghosting ของหน้าจอแก้ได้ด้วยการสั่งรีเฟรชทั้งหน้าจอเป็นระยะผ่านคำสั่ง eips -f

    • เห็นว่าเขียนด้วย Rust แล้วทึ่งมาก
      เป็นครั้งแรกที่ทำให้ฉัน อยากเรียน Rust ขึ้นมาจริง ๆ
  • ที่รัฐควีนส์แลนด์ ออสเตรเลีย มีการใช้งาน ป้ายแนะนำป้ายรถเมล์ e-paper พลังงานแสงอาทิตย์ อยู่
    มันใหญ่กว่า Kindle มาก แต่หลักการคล้ายกัน
    แนะนำโครงการ, วิดีโอสาธิต

  • โปรเจกต์นี้ทำให้นึกถึง โปรเจกต์ SystemSix

    • เท่มาก ฉันเองก็อยากลองทำ เมาท์แบบคัสตอม ดูบ้าง
  • ช่วงนี้ดูเหมือนทุกคนจะทำ โปรเจกต์ดัดแปลง Kindle กันแบบนี้
    ฉันเองก็โม K4NT ให้เป็นเซิร์ฟเวอร์แสดงตารางนัดหมายของครอบครัว
    ได้ AI ช่วยนิดหน่อย และใส่ อินเสิร์ตพิมพ์ 3D ลงในกรอบรูป Ikea พร้อมติด MagSafe power bank
    แค่กดปุ่มเปิดเครื่องทุก 5 วันก็พอ และตั้งใจจะเปลี่ยนแบตเตอรี่ภายในภายหลัง
    การต่อสายใช้งานจริงในสภาพแวดล้อมของฉันทำไม่ได้

  • ถ้า ปิดเครือข่ายไว้ระหว่างรอบรีเฟรช อายุแบตเตอรี่จะเพิ่มขึ้นชัดเจน
    ฉันบล็อกไม่ให้อัปเดตตั้งแต่ 4 ทุ่มถึง 6 โมงเช้า
    บน GitHub มีสคริปต์ประหยัดแบตเยอะมาก
    ก่อนหน้านี้ฉันก็เคยทำตัวแสดงข้อมูลขนส่งสาธารณะจาก GTFS ด้วย Raspberry Pi Zero + e-ink 2 นิ้ว
    บทความ Kindle dashboard, โปรเจกต์ Transit Pi

    • ไอเดีย dashboard ที่แสดงเวลาซักผ้าที่เหลือพร้อม ไอคอนโปเกมอน น่ารักมาก
      การ ทำภาพข้อมูลของเครื่องใช้ไฟฟ้าอัจฉริยะแบบนี้ มีเสน่ห์จริง ๆ
  • ฉันชอบใช้ Kindle เป็นจอแสดงผลเฉพาะทาง
    ที่จริงฉันกลับชอบ Kindle Fire แบบ LCD มากกว่า eInk
    ถ้าเปิดโหมดนักพัฒนา ก็สามารถเปิดเว็บเพจทิ้งไว้ตลอดและใช้งานแบบไม่มีโฆษณาได้
    Kindle Fire HD10 หาได้ในราคาราว 40 ดอลลาร์

    • ขอบคุณสำหรับข้อมูล Kindle Fire
      LCD ที่ไม่มี ghosting และอ่านได้ในที่มืด ถือเป็นอัปเกรดที่ยอดเยี่ยมสำหรับทำ dashboard