そもそも M5Paper で何がしたかったのかというと
* NTP で同期する時計を表示して
* 温度と湿度が表示したい
ということなのですね。
じゃあ張り切ってそれを作ろうか…と思って M5Paper での開発についていろいろ調べていたら、
これでいいじゃない、というのが見つかったのでした。
https://github.com/estshorter/m5paper-dashboard
温度・湿度の測定を外付けのセンサーでやっているのを M5Paper 付属のセンサーでやったり(付属センサーだと M5Paper 自体の熱などで精度が下がるから、ということが書いてあったのをどこかで見た気がする)、CO2 測定のセンサーはないのでその部分を外したり…とやって自分用のバージョンを作成しました。
その過程でいろいろ分かったこと。
- M5Paper の SDK (API?) である M5EPD はライセンスの扱いに不備がある。
- m5paper-dashboard を作った方が報告している: https://github.com/m5stack/M5EPD/issues/21 。今後の改善に期待。
- m5paper-dashboard ではライセンスが怪しい部分を除去したと思われる独自バージョンの M5EPD を使っている(必要ない機能を削ったという側面もあると思うけれど)
- m5paper-dashboard では表示周りには M5EPD の機能ではなく、 LovyanGFX というのを使っている。
- https://github.com/lovyan03/LovyanGFX
- 「℃」などの表示のために IPA フォントのサブセットを作って使用している。M5Paper_FactoryTest のカクカクの文字に比べてきれいな表示ができているのはこのフォントの作成をしているためのよう。
- IFont をカスタマイズすることで文字の表示を制御できる。「:」が数字と並べるとズレて見える問題をこの方法で解決した。(: の位置がズレるのは一般的な問題で、特に今回の環境が問題というわけではないらしい)
- バッテリーは 6 時間位しか持たない。(何をやるかにもよるんだろうけれど)
- 電圧からバッテリー残量を表示するようにしたけれど、この表示がどこまで正しいのかは怪しい。ちゃんとバッテリー残量を表示するのであれば、バッテリー管理を行って情報を渡してくれる専用のチップが必要だが、M5Paper ではそういうチップは使っていない。