7 ポイント 投稿者 GN⁺ 2026-02-26 | 2件のコメント | WhatsAppで共有
  • 旧型のKindle Touch 第4世代を改造し、NJ Transitのバス到着時刻を1分ごとに更新する電子ペーパーダッシュボードへ転用
  • Jailbreak、KUAL、MRPI、SSH設定によりカスタムアプリ実行環境を構築し、Nodeベースのサーバーで画像を生成してKindleに表示
  • サーバーはGraphQL APIでバスデータを取得してHTMLに整形した後、wkhtmltoimageでPNGを生成し、Kindleが定期的に読み込む
  • KUALアプリも自作し、メニューボタンでダッシュボードを終了できるようにし、bash traprtcwakeで電源管理と自動更新を制御
  • 約5日間のバッテリー駆動と画面の残像問題には改善の余地があるものの、電子ペーパーディスプレイでリアルタイム情報を活用する可能性を示している

Kindleをバス到着情報ディスプレイに変える

  • Kindle Touch 第4世代をリアルタイムのバス到着情報表示板に改造
    • 1分ごとに画面を更新し、メニューボタンでダッシュボードモードを終了可能
    • 市販製品TRMNLに似た機能を無料で実現

1. KindleのJailbreak

  • Kindleのファームウェアバージョンを確認し、そのバージョンに合ったtarファイルをダウンロードしてJailbreak手順を実施
  • 成功後、KUALMRPIのインストール工程へ進む

2. KUALとMRPIのインストール

  • KUALはカスタムアプリランチャー、MRPIはアプリ導入ツールとして使用
  • インストール前にHotfix設定を必ず行う必要がある
  • インストール後はOTAアップデートの無効化で自動更新を防止

3. SSH設定

  • USBNetwork拡張を通じてKindleへSSH接続可能
  • 外部ブログのガイドを参考に、USBベースのSSH接続を設定
  • 接続に成功すると、PCのネットワークタブにKindleが新しいデバイスとして表示される

4. サーバー構築と画像生成

  • NJ Transit GraphQL APIを利用してバス到着情報を取得
    • getBusArrivalsByStopIDクエリで路線、到着時刻、混雑度などのデータを収集
  • puppeteerの代わりにwkhtmltoimageを使ってHTMLをPNGへ変換
    • サーバーは3分ごとに新しい画像を生成し、Kindleがそれを取得
    • 関連コードはGitHubリポジトリkindle-hax/serverで公開
  • Kindleの画面解像度(例: 600x800)に合わせて画像の回転と配置を調整
    • transform: rotate(90deg) translateX(-100px) translateY(-100px);で縦向き表示を実装

5. KUALアプリの作成

  • ダッシュボードの開始・終了制御のためのカスタムKUAL拡張を作成
    • /mnt/us/extensions/にフォルダを配置すると、KUALに「Start dashboard」メニューが表示される
  • 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)**の問題は、完全な白黒フラッシュで改善できる可能性がある
  • 毎日使っており、カレンダー・天気・ToDoなどさまざまな情報表示への拡張可能性も確認

2件のコメント

 
xguru 2026-02-26

私も最近似たようなことをしましたが、上にあるURLバーを見るのが気にならないなら、普通にWebページを読み込むだけでも大丈夫です。
Kindleは標準でWebブラウザからURLにアクセスできるので、そこでダッシュボードを読み込めばOKです。
会社ではKindleで、自宅では旧世代のPaperwhiteで同じページを読み込んでいるので、なかなかクロスプラットフォームですね(笑)

もちろん、Kindleでも常時点灯モードのためにはroot化、またはそれに近い作業が必要です。
Paperwhiteはroot化までは不要で、adb接続だけ有効にして、そこからスクリーンセーバーを無効化する操作をすれば大丈夫です。

 
GN⁺ 2026-02-26
Hacker News のコメント
  • 以前 Kindle の消費電力に関する作業をしていた者として言うと、最大の電力消費源は WiFi 接続だった
    WiFi は接続を維持するために AP に定期的に応答し続ける必要があるからだ
    WiFi をオフにした状態では約 700uA、オンにした状態では約 1.5mA だったと記憶している
    ページ切り替え時には瞬間的に数百 mA まで電力が跳ね上がり、ゴースティング現象を減らすために一定ページごとに全面リフレッシュが行われていた

    • 私はバッテリーを取り外し、Kindle の USB 端子からダイオード経由で 5V を供給していた
      瞬間的に 1.5A ほど供給できる電源が必要だったが、古いセルフパワー USB ハブを Raspberry Pi につないで SSH で制御すると、WiFi なしでも数か月間安定して動作した
    • 私の RM2 は WiFi にまったく接続しておらず、数か月充電しなくても平気だ
      使用頻度は月 30 回未満だが、WiFi を切っておくとバッテリー効率は驚くほど良い
      Paperwhite Kindle はまだ改造していないが、少なくとも ロック画面広告は削除するつもりだ
    • WiFi を切り、リフレッシュ間隔を 2 分に延ばしてバッテリー寿命を試してみるつもりだ
      これでようやく 機内モードでバッテリーが長持ちする理由をしっかり理解できた
    • Kindle の周囲に アモルファスシリコン太陽電池を貼れば、5 日ごとの充電が不要になるのだろうか
  • 私はもっと単純な方法を使った
    Jailbreak 後に SSH で接続し、1 分ごとと 30 分ごとに実行される 2 つのスクリプトを作った
    どちらのスクリプトも同じ画像を表示するが、30 分ごとのほうには全面リフレッシュを追加している
    Raspberry Pi から rsync で画像を転送し、Python スクリプトが 空気質データを MySQL から取得して画像を合成する
    Kindle は単に画像を表示するだけなので、非常に安定して動作する

    • 「もっと単純な方法」と言いながら rsync, Python, MySQL が出てくるところで思わず笑った
    • 単に ビットマップを受信して表示するだけの eInk ディスプレイがあれば、多くの用途にはそれで十分そうだ
      TLS のような安全な接続だけ対応していればいい
    • 私も似たように Kindle を Jailbreak して、バスで ePub を読み、Siri に次のバスを尋ねるような使い方をしている
    • 複雑なフレームワークではなく、簡単な 2 本のスクリプトで問題を解決するのは本当に満足感がある
  • Kindle ハックは本当に楽しい作業だ
    eBay なら 15〜20 ユーロで旧型 Kindle が手に入り、私も昨年同じような実験をして楽しんだ
    詳しい手順は 私のブログ記事 にまとめてある

    • AliExpress では Xteink4 という ESP32 ベースの e-ink ボードが買える
      サイズは小さいが、Crosspoint ファームウェアを入れれば携帯型 e-ink リーダーとして使える
      YouTube 動画, Crosspoint GitHub
    • リバースエンジニアリングが負担なら、Raspberry Pi DSI ポートに挿す e-ink ディスプレイもある
      価格は少し高いが、Kindle の画面を再利用した製品かもしれない
    • 同じ目標を別の方法で達成した人の過程を見るのは楽しい
      この記事を見て、Cloudflare Workers のようなプラットフォームをもっと試してみたくなった
    • Jailbreak をすぐ始められるのか、それとも初期設定時に Amazon アカウントの接続が必要なのか気になる
  • 私は古い Kindle を AI 生成アートフレームに変えた
    数時間ごとに新しい絵が生成され、プロンプトには天気・動物・国・ニュース見出しなどを含められる
    すべての処理は自宅の ollama + stable-diffusion-webui サーバーでローカル実行している
    ただ、ニュースベースの絵は暗くなりすぎるので、AI には 前向きなトーンに変えるよう指示している
    雨の日には絵の中でも雨が降り、冬には雪が降るといった動作をする
    バッテリーも数週間持ち、Online Screensaver extension を修正して機内モードへ自動で切り替わるようにした

    • 音声認識を使って 会話内容を絵として可視化するのも面白そうだ
    • e-ink は 生成アートと不思議なくらい相性の良い媒体だ
  • 私が作った Kindle ダッシュボード版は GitHub で公開 している
    ローカルの天気とメディアサーバーの音楽情報を表示する
    画面の ghosting 問題は eips -f コマンドで定期的に全面リフレッシュすれば解決する

    • Rust で書かれているのを見て感心した
      初めて Rust を学びたいと思った
  • オーストラリアのクイーンズランド州では 太陽光 e-paper バス停案内板が運用されている
    Kindle よりはるかに大きいが、原理は似ている
    プロジェクト紹介, デモ動画

  • このプロジェクトを見て SystemSix プロジェクト を思い出した

    • 本当にすごい。私も カスタムマウントを作ってみたくなった
  • 最近はみんなこういう Kindle 改造プロジェクトをやっている気がする
    私も K4NT を改造して家族の予定表を表示するサーバーを作った
    AI の助けを少し借りて、Ikea の額縁に 3D プリントしたインサートを入れ、MagSafe モバイルバッテリーを取り付けた
    5 日ごとに電源ボタンを押すだけでよく、内蔵バッテリーは交換予定だ
    私の環境では有線接続は不可能だった

  • ネットワークを リフレッシュの合間に切っておくと、バッテリー寿命は確実に伸びる
    私は夜 10 時から朝 6 時までは更新を止めていた
    GitHub にはバッテリー節約用のスクリプトがたくさんある
    以前 Raspberry Pi Zero + 2 インチ e-ink で GTFS ベースの公共交通表示機を作ったこともある
    Kindle ダッシュボード記事, Transit Pi プロジェクト

    • 洗濯機の残り時間と ポケモンアイコンを一緒に表示するダッシュボードのアイデアがとてもかわいい
      こういう スマート家電の可視化は本当に魅力的だ
  • 私は Kindle を単一目的ディスプレイとして使うのが好きだ
    むしろ eInk より LCD Kindle Fire を好んでいる
    開発者モードに切り替えれば、Web ページを表示しっぱなしにして広告なしで使える
    Kindle Fire HD10 は約 40 ドルで手に入る

    • Kindle Fire の情報ありがとう
      ゴースティングがなく、暗い場所でも読める LCD はダッシュボード用として素晴らしいアップグレードだ