サイクルコンピューターが出す獲得標高は、たいてい気圧センサーで測っている。GPSの高度は誤差が大きく、止まっているだけで数十mも上下するからだ。RaemondBW氏が作った電子ペーパーのサイクルコンピューター「OpenTrailPaper」には、その気圧センサーがない。代わりに標高を地図の側へ埋め込んだ。ファームウェアはApache License 2.0で公開している。
地図はUber H3の解像度6の六角形1つを1ファイルとして、SDカードに置く。1つは約36平方kmで、差し渡しは3〜4kmになる。タイルを作るときに、道路の形と一緒に気象データサービスのOpen-Meteoから粗い標高の格子を取り、同じファイルに書き足す。格子は20×20点ほどで、間隔はおよそ350mだ。走行中は現在地でその格子を補間して高度を読み、登坂を積み上げていく。水平方向の測位さえ取れれば滑らかな標高が出るが、タイルを落とした場所にしか標高はない。
六角形を選んだのは、緯度経度の四角い格子と違って継ぎ目も重なりも出ず、IDが世界で一意だからだ。一度落としたタイルはそのまま使い回せる。元データはOpenStreetMapで、スマホのアプリで範囲を囲むほか、デスクトップのPythonスクリプトからもブラウザーからも作れる。
画面の確認はmacOS上で済ませる。実機の描画コードとフォントのライブラリをそのままホストでコンパイルし、ディスプレイやGPIOの層だけ差し替えて、パネルと同じ画素のPNGを書き出す。文字のはみ出しや重なりは、基板に書き込む前に見つかる。プロジェクトサイトに並ぶ画面写真も、この仕組みで作ったものだ。
土台はLilyGOの開発ボード「T5S3 4.7″ E-Paper PRO」で、ESP32-S3にフラッシュ16MB、PSRAM 8MB、960×540の電子ペーパー、タッチ、GPS、SDカードスロット、充電ICが最初から載る。配線は要らない。RaemondBW氏は弱点も並べている。気圧センサーと磁気センサーがないため総獲得標高は推定値にとどまり、止まっているあいだは地図の向きを合わせられない。電池は1500mAhの構成でフロントライトを消して約7.4時間しかもたない。防水はなく、開発中のプロジェクトであって完成した市販品ではないと断っている。