
ボタンを1個だけ備えた「キーボード」がある。短く押すと「・」、長く押すと「-」と、モールス信号の要領で打つと、文字に変換してパソコンやスマホに送る。GitHubで「0015」として活動する開発者が、ESP32-C5を使ったこの自作キーボードを、オープンソース(MITライセンス)で公開した。
ふつうのキーボードは多くのキーと複雑なソフトが要る。この装置は、それを1個の物理ボタンまで削ぎ落とした。短押し(300ミリ秒未満)が「・」、長押し(300ミリ秒以上)が「-」で、最後の入力から1秒の間があくと、その並びを1文字(A〜Zと0〜9)に変換する。文字は、Bluetooth Low Energy(BLE)の標準的なキーボード信号として送るため、受け取る側に専用のソフトはいらない。macOSやiOS、Androidで動くという。
心臓部には、新しいマイコン「ESP32-C5」を使う。RISC-Vのコアを積み、Wi-Fi 6やBLE 5に対応する。画面とボタンには、Waveshareの「ScreenKey」という部品が効いている。これは、小さなIPS液晶(0.85インチ、128×128ドット)と、キーボード用のメカニカルスイッチを、1つのキーキャップにまとめた部品だ。これ1個で、表示とボタンの両方をまかなう。電源は、3.7Vの小さなリチウム電池をUSB-Cで充電して使える。
液晶には、入力中のモールス符号(アンバー)、直前に確定した文字(白、大きめ)、これまでの文章(青)、Bluetoothの接続状態を示す点が出る。細かな配慮もある。3秒以上の長押しで、入力中の符号や文章の履歴、保存した接続情報をまとめて消せる。接続が3回続けて失敗すると、いったん電波の発信を30秒止めてから「MC_Pair」という名前で再び現れ、つなぎ直しやすくする。
ソフトは、ESP-IDFの上でFreeRTOSとNimBLE(BLEの実装)を使い、画面はLVGLで描く。開発者は、ESP32-C5のBLE 5やLVGLを試し、専用ドライバーなしで動くBLEキーボードをゼロから作る参考例として公開したとしている。設計データとコードはGitHubにある。

