2022年7月、数年前からブームになっていた自作キーボードをやってみた。 自作キーボードといってもいくつかやり方があって、コアなファンは基板を自分で起こしているようだが、とりあえず初心者の私は既成品の基板、スイッチとケースを組み合わせて簡単に動くものを作ることができた。 既成品の基板を使っても、ファームウェアでキーマップやマクロの設定はできるほか、基板によってスイッチの配置の組み合わせがある程度自由に選べ、またキースイッチとケースの色を自由に組み合わせることができ、自作PCと同じような組み合わせる楽しさを味わうことができる。
コンセプト
- 60%のコンパクトなレイアウトをベースに。 必要なキーが全部あって、必要なキーだけがあるように。
- `~, BackspaceはHappy Hacking Keyboard (HHKB)レイアウトで、それぞれ右上とEnterの上に。
- 以前PS/2接続のHHKBを使用していて、慣れているため。 逆に最近の60% キーボードのEscと`~が同じキーでFn同時押しが必要なのは、シェルとviの両方を使う都合で不便そうに見える。
- Caps LockはAの隣で。
- 以前はemacsを使っていたのでAの横はCtrlにしていたのだが、Goslingの講演で
まだemacsつかってるの?NetbeansみたいなIDE使うといい。
といった発言があったのと、RMSのMIT CSAILメーリングリストでの不祥事などが重なりemacsから心が離れてしまった。 - Caps Lockで日本語入力の切り替えをすると便利なので。
- 以前はemacsを使っていたのでAの横はCtrlにしていたのだが、Goslingの講演で
- 矢印キー欲しい。
- Panda系キースイッチを使ってみたい。
- GMMK Proなどで評判の良い
Early Bump
のタクタイルスイッチ。 そんな評判良いなら一度使ってみたい。
- GMMK Proなどで評判の良い
部品選定
基板
基板とケース、プレートとスタビライザーがセットになったお得セットがAliexpressで売っていたので、それを使うことにした。 初心者なので、ケースと基板が合わなくてつらい思いをしたりすることが回避できるかなと思ったのだが、Aliexpressはそう甘くなかった。 セットになっている基板とケースは干渉してそのままでは使えなかったのだ。 幸い、ケースが加工しやすいプラスチックだったので、干渉している部分すべてをニッパーで切り取ることでケースに入るようにできた。
プレートは、キースイッチを安定させるために固定する盤で、実現したいレイアウトに応じたものを選ぶ必要があるようだった。 今回私が使いたかったレイアウトはそこまで一般的なものではないようで、最下段に大きめの穴が空いていてある程度自由にスイッチを配置できるものを選ぶことになった。 ホコリが入りやすそう。 本当は光らない基板で良かったのだが、希望のレイアウトに対応するプレートが光る基板とのセットしかなく、単体で買うと多少割高になったので、とりあえず最初の自作キーボードということで光ってもよいことにした。 もちろんキーコンビネーションでLEDはON/OFFのほか、光り方も変更できる。
スタビライザーは、長めのキーの下に入っている棒の部分の部品で、今回セットになっているのを買ったので別途調達する必要はなかった。
Gift Keyboard 60% Full Kit 61 64 ANSI ISO GH60 Clear Plastic Case QMK Underglow RGB Non Hotswap PCB — $40.95
キーキャップ
キーボードの見た目を大きく左右することになるキーキャップ。 かわいい感じで、かつ今回の基板とレイアウトの組み合わせで使用する長さのキーがすべて揃っているものを探すことになる。 今回はMAプロファイルで、丸っこい感じでかわいい形で、色もきれいなキーキャップを見つけた。 耐久性の高いPBTではあるものの、二色成形ではなくてレーザー刻印のものだ。
MA Night Sunset PBT Keycaps — $39.44
スイッチ
キータッチに影響があるキースイッチは、Tecsee Purple Pandaというものを選んだ。 PandaとついているのでおそらくPanda系スイッチを意識したものだろう。 PMEと書いてあり、pre-lubed/グリス塗布済みのものなのだと思う。 今回のレイアウトでは65個必要なので、70個入りを購入。
Tecsee Purple Panda PME Tactile Linear Switches POM Stem 68g Spring Swithes For Mechanical Gaming With 5Pins — $30.90
以上で合計 $111.29
組み立て
組み立ては簡単だが、後戻りが大変な箇所がいくつかあるので注意が必要。 スタビライザーを取り付けて、スイッチをプレートに取り付けて、基板にスイッチをはんだ付けする。 ケースに入れるとリセットを押しにくいので、ケースに入れる前にファームウェアの書き込みをしておくと良さそう。 今回、実際にファームウェア書き込み前にケースにネジ止めしてしまったのだが、初期導入されているファームウェアが親切だったので、スペースバー右の、今回スイッチ未実装のパタンと左上Escの同時押しでリセットでき、手戻りにはならなかった。
利用した基板が複数のレイアウトに対応していて、微妙に位置がずれたパタンが多数あるので、実際にキーキャップを載せた状態のスイッチを使ってスイッチの位置決めを行った。 ここがずれてしまうと、キーキャップが乗らなくてどうにもならなくなってしまいそう。
上方向キーのみ、キーのプラスチック足の片方が基板にはまる場所がなかったため、切断する必要があった。 MXキースイッチには5ピンと3ピンがあるとのことで、物理的な固定のためのプラスチックの足の有無が違うらしい。 今回のスイッチは5ピンで、概ねこれで問題ないのだが、この部分だけは3ピンが必要なのであった。
ファームウェア書き込み
キーボードのレイアウトを好みに調整する方法として、ファームウェアを完全に自分好みに調節できるQMKを用いる方法と、そのうえのキーマップだけをグラフィカルなツールで置き換えるVIAの2種類方法が存在するようだ。 今回はQMKのファームウェアのキーマップを変更して書き込むことにした。 キーボード定義がすでにレポジトリにあれば、QMK Configuratorというウェブサイトをつかうことで、完全ノーコードで好きなレイアウトを作ることができる。
Aliexpressの商品ページに貼られていたリンクでは、ファームウェアの生成にはベンダーが用意したURLのQMK ConfiguratorでYD64MQを選べ、と書いてあった。
オープンソース版のQMK Configuratorでは、YD60MQが8-led/16-ledの2種類選べるものの、YD64MQはリストになく、このちょっと古そうなQMK Configuratorを使わざるを得ないかと考えていた。
ところが、実際届いた基板は594d:604d YMDK YD60MQ
で認識されたので、オープンソースのQMK Configuratorが利用できた。
YD64MQとYD60MQは同じものの違う呼び方なのかもしれない。
レイアウトで工夫した点としては、念のためSunに接続したときにOBPに行けるようにFn+Caps LockでL1/Stopが押せるようにしておいたところと、ボリューム調整 (Mute, VolDown, VolUp)をFn+P[]にしたところ。 あとはおおむねQMK Configurator提案のデフォルトのレイアウトで、RGB発光の調節やリセットも行えるようになっていた。
QMKは、私が普段使っているLinux環境でもDockerまたはpodmanさえあれば簡単にビルドできて、このYD60MQの16 LED版、キーマップdefaultをビルドするなら、
./util/docker_build.sh ymdk/yd60mq/16led:default
を実行することでymdk_yd60mq_16led_default.hexがビルドされる。
書き込みはキーボードが採用しているマイクロコントローラの種別により手順が異なるようだが、YD60MQの場合、USBでキーボードを接続し、QK_BOOT
キーを押す、または基板のリセットのパタンを一瞬ショートさせたあとで、
dfu-programmer atmega32u4 erase --force dfu-programmer atmega32u4 flash ymdk_yd60mq_16led_default.hex dfu-programmer atmega32u4 reset
でそれぞれ消去、プログラム、リセットが行えた。
dfu-programmer
はOpenSuSE Tumbleweedだとzypper
で利用可能。
その後
その後、上記レイアウトでしばらく使ってみて、全く問題なく便利に使えていたものの、さらなる便利さを求めて以下の変更をQMKに入れて使ってみている。
- USBのポーリングレートを1,000 Hzに。
- ErgoDashを工作中に気づいた、クロスプラットフォーム対応の日本語入力・英語入力切替のキーを追加
- Caps Lockを
KC_LNG2
で英数キーに - 右Altを
KC_LNG1
のかなキーに。 - 本物のCaps Lock, 右Altはfnキーとの同時押しで対応。
- Caps Lockを
- Lighting Layerという機能を利用してCaps Lockが入っているときは最左列のLEDを赤色に。
こんな感じで、組み立てたあとでも、ファームウェアで各種工夫を入れることでどんどん便利にできるのが良いところ。
おわりに
実際使ってみると、Purple PandaスイッチとMAプロファイルキーキャップの組み合わせは、打鍵時のカチカチ音がないIBM 5110と表現したくなる重さと打鍵感であった。 思っていたより音は大きくて、このまま出社勤務になったときに作業場所に持っていって文句言われないかはあまり自信がない。