OBONO’s Diary

へっぽこプログラマの戯言

CardKB

IchigoJam に繋ぐキーボードとして HHKB Lite 2 を使っているのだが、コンパクトなキーボードとはいえ、机の上のスペースをそれなりに取ってしまうので、使い終わったら基本的に引き出しに戻す――ということをしていた。出し入れする度に面倒だなぁ…と思っていのだが、以下の記事に巡り会う。
クレジットカードサイズの CardKB。これなら場所を取らないかなと思い、とりあえず、7月末に AliExpress で注文。これだけの為に送料を出すのも勿体ないので、CardKB は2枚購入するとともに、M5Stack Basic キットも購入してみる。気長に待って、届いたのは8月末の話。

届いてからも一か月ほど放置していたのだが、10月頭にようやく手を出してみる。

まずは、記事内で紹介されているファームウェアを CardKB 焼いてみたところ、キーリリースのタイミングで文字が入力されたり、キーリピートしなかったり、入力を取りこぼしたり、違う文字が入力されたりと、なんか散々な感じだった。
いろいろ調べたところ、取りこぼしや誤入力はどうやら物理的な接触不良が原因のようだ。その一方で、文字入力のタイミングやリピートしない件は、CardKB のサンプルコードがもともとそういう実装になっていた。本来は I2C で使う前提であるという事情があるにせよ、結構ひどいコードだったので、大々的にコードを改変してみた。せっかくなので、GitHub で公開。
基本的に実際のキープレス/リリースのタイミングでスキャンコードを送信するようにしたので、キープレスのタイミングで文字が入力されるようになり、キーリピートにも対応。BTN() 関数でちゃんとキープレス状態を検出できる。加えて、Alt キー押しながらによるグラフィックキャラクターの入力もサポートした。複数キーの同時押しはちょっと面倒そうなので非対応。

CardKB と IchigoJam を繋ぐには…と、ここで、いつか役に立つだろうと大事に取っておいた PS/2 コネクタの出番。
f:id:OBONO:20201003142527j:plain
半分にぶった切った Grove ケーブルとはんだで繋ぎ、熱収縮チューブで覆って、専用ケーブルが完成。
f:id:OBONO:20201003152950j:plain
しかし、取りこぼしや誤入力は相変わらず改善せず。いっその事、CardKB に直接はんだ付けしてしまって、IchigoJam 専用にしてしまった方が得策か? そのために2枚買ったんだし??

というわけで、最終的な成果はこんな感じ。
f:id:OBONO:20201012231214j:plain
ただ、予想通りというか、記事内でも言及があるように、このキーボードはボタンが押しづらくて、このまま使うのはなかなか厳しいものがある。なんとかしてキーボードケースを確保したいところだ。