電子ペーパーディスプレイはリフレッシュレートの遅さが課題だ。ソフトウェアエンジニアのMaté氏は、当初カレンダー表示を計画していたが、リフレッシュレートの制約を逆手に取り天気ダッシュボードへ方向転換した。
Maté氏は余っていたRaspberry Pi Zeroを活用するため、Pimoroniの「Inky Impression 7.3インチ」7色電子ペーパーディスプレイを購入した。2024年版はフルリフレッシュに30秒かかり、部分リフレッシュに非対応だ。リフレッシュの遅さはカレンダー表示に不向きだが、天気表示には適している。数か月の停滞期間を経て、両親へのギフトとしてプロジェクトを再始動した。
既存の天気ダッシュボードプロジェクトの多くは白黒表示で、要件を満たすものがなかった。esp32 weather EPDプロジェクトを参考にしたが、C++で書かれていたためRustで再実装した。
SVGグラフはBezier曲線と直線の両方をサポートしている。Y軸の境界は気温で決まるため、曲線が境界を若干オーバーシュートする問題があり、解決策をまだ見つけていないという。
Inky Impressionは、飽和度1.0で7色(黒、白、緑、青、赤、黄、オレンジ)をディザリングなしで表示できる。天気アイコンにはBasのmeteocons パックを採用し、ディスプレイに合わせて形状と色を手動調整した。ネイティブ非対応の色はPythonのpillowライブラリでディザリング処理を行う。
グラフに使う緑と赤は色覚異常者に区別しにくい。Maté氏はFontForgeで数字のみを破線にしたRobotoフォントを自作した。3Dケースは別モデルのフレームをBlenderで調整し、地元図書館のメーカースペースで印刷した。
Maté氏は凡例や文字を加えず、視覚的な手がかりのみで理解できるデザインを目指した。”Human Guessing Design”と呼ぶ独自手法で、高優先度の要素が低優先度の要素を理解する手がかりとなるよう設計している。ビデオゲームが新メカニクスを紹介する方法に似ており、最初は多くの手がかりを与え、徐々に減らしていく。
最終的なダッシュボードはSVGファイルとして生成され、PNGにレンダリングされる。ソースコードとSTLファイルはGitHubで公開されている。
Building a Weather Dashboard on a 7 colour E-paper Display (matada.org)