何を考えて「Lunakey Mini」という自作キーボードキットを作ったのか
今年の8月から「自作キーボード」なるものに手を出し始め、遂に自分設計のキーボードを販売するところまで4ヶ月程度で到達してしまいました。「Lunakey Mini」というキーボードを設計して、自分でも毎日使っていますし、キット化して販売も開始しました。
Lunakey mini rev5 (ベースキット) - Kichi Keyboard
どうして自分で設計してまでキーボードを作ったのか、ちょっと紹介してみたいと思います。
自作キーボードキットをいくつか組み立てる
7年ほど FILCO Majestouch を使ってきたのですが、「ファームウェアを自由に書き換えることができるキーボードが存在する」ことを知った今年の8月に、2台ほど実際に自作キーボードキットを購入して組み立てました。
ErgoDash
Claw44
これらを組み立てた時のビルドログは、以下となります。
ErgoDashを最初に作って使い始めたのですが、しばらくしてキーの多さがすっごく気になってしまい、強引にキーキャップを減らす、という事態に至りました。
で、「数字キーなんて僕には必要なかったんだ、40%キーボードで十分だ」と気がつき、Claw44を組み立てるに至ります。
ErgoDashよりもClaw44の方が部品数も少なくて組み立てに苦労せず、そして40%キーボードということで期待通りのキーボードを手にすることができた実感が大きかったです。
僕の現時点でのキーボードに対する考えは、ErgoDashとClaw44の2つのキーボードキットによって確立されました。素晴らしいキーボードキットを生み出してくれた作者の方々に、心から感謝の気持ちを伝えたいです。
その後しばらくClaw44を使い続けてきたのですが、完全に満足していたか、というとそうではなく、「自分にはどうしても合わない」という箇所が、2点ほど見えてきました。
僕は親指の付け根が硬いのでは問題
Claw44もErgoDashもそうだったのですが、左右それぞれに親指で押すことを前提としたキーがいくつか配置されています。が、最も内側のキーに、僕はどうしても親指が届きませんでした。
内側から2つ目は、自然に親指で押せます。
でも、最も内側のキーを押すには、どうしても人差し指と親指の間の関節を「力を入れて開く」という指示を脳から送らない限り、届かなかったのです。
人差し指と親指の間に力を入れずに最も内側のキーを押そうとすると、今度は親指以外の指がホームポジションから(左手の場合は)右にズレます。
Column Staggeredの場合、この「指がキーの列から左右にズレる」ことは、かなり致命的なんです。それぞれの指を縦方向に移動させるだけで済むColumn Staggeredの利点が完全に崩れてしまいます。
「多くの人は親指と人差し指の間が僕よりも柔らかいのかなぁ」なんて思ってたりしましたが、結果として、内側のキーは全く使うことができず、キー割り当てから外してしまいました。DSAではない背の高いキーキャップを取り付けて壁にして、間違って内側のキーを無意識に押しにいかないようにしていたくらいです。
僕は中指が長いのでは問題
そして、もう一つ、Column Staggeredはキー配列が縦にズレているのですが、その縦のズレ幅が僕にはどうしても足りない、という点が問題でした。
普段ホームポジションで「A, S, D, F」のキーに指を添えているのが基本だとすると、指の長さはそれぞれ違うわけで、もしこの4つのキーが横方向に一直線に並んでいるとするならば、指を曲げる(たたむ、という表現の方が合ってますね)度合いが指によって変わってくるわけです。
僕は、中指が長いせいなのか、自然にキーの上に指を添えようとすると、中指が「D」の上には来なくて、限りなく「E」の上になってしまうのです。中指を「D」の上に置こうとすると、中指の関節を「力を入れて曲げる」と脳から指示しないといけなくなってしまいます。
最も意識して曲げないといけないのが中指であり、薬指や小指に関しても、中指までとはいかないけれど、不自然な力のかけ方をして「A, S」キーに置かないといけない状況でした。特にErgoDashはそれが顕著で、Claw44に関してもErgoDashまでとはいかないですが、自分の指には残念ながらズレが生じている、という事態でした。
他の自作キーボードキットの写真を見ても、Claw44よりも縦にズレているものは見当たらず、きっと同じ違和感を持つだろうなぁ、と思ってしまうものばかりでした。「多くの人たちは中指が僕よりも長くないのかなぁ」なんて思ってみたりもしていましたが、特にキーボードに手を添えて「さあ打つぞ」っていう時に毎回この指の微調整をしないといけないのは、結構なストレスになってしまいました。
これはもう自分で設計するしかない
というわけで、自分に合ったキーボードとして、2択あるわけです。
- FILCO Majestouchに戻る。
- 自分でキーボードを設計する。
せっかく1ヶ月以上かけて毎日苦労しながら習得した「左右分割型Column Staggeredキーボードでのタッチタイピング」を捨ててFILCO Majestouchに戻る選択はないかな、と思い、自分に合ったキーボードを自分で作るしかない、という結論に至りました。
まずは段ボールを使ってキープレートを作り、キースイッチをはめてみたりしました。
「これでキー配列は試せるぞ!」と確証を得られたので、紙の段ボールからプラスチック段ボールに格上げさせて、本格的にキー配列を探し出しました。
穴を作る作業は結構つらく苦しい作業でしたが、これを乗り越えないと自分に合うキー配列は見つからないと自分に言い聞かせて、穴を作り続けました。そして、何度目かは数えていませんでしたが、やっと納得がいくキー配列に行き着くことができました。
上記の感じであれば、親指の関節に変な力を入れなくてもよく、さらに指を変に曲げなくても自然に「A, S, D, F」キーに指先を添えることができるようになりました。問題は解決しそうです。
ちなみに、親指で押す想定の4つのボタンのうち、一番外側(上の写真は右手側の配列で、最も右)のキーは、明らかに親指で押すにはつらい位置です。しかし、特にmacでの「CommandキーとControlキーを押し分ける」必要がある場合に、普段使っているキーマップだとどうしても「親指に3つだけでなくもう1つキー欲しいな」と思ってしまっていて、それで親指キーを4つにしました。
毎日の開発にはLinuxを使っているので親指は3つキーがあれば事足りるのですが、macを使う場面もしばしばあり、そのために「利用頻度は高くはないけど、独立して押せた方が良いキー」向けに、4つ目のキーを配置した、という意図になります。
そして生まれた「Lunakey Mini」
キー配列として自分が納得いくものを見つけることができました。あとは、それを形にすれば良いわけです。基板設計やアクリル板加工などのノウハウを一通り習得できれば、自分に合ったキーボードを手にすることができるわけです。
自作キーボード設計入門2を読みながらいろいろ試してみました で紹介した通り、キーボードの動作原理と必要となる知識を習得し、KiCADの操作方法をチュートリアルで学び、実際に全ての工程を経験すべく、11キーのマクロキーボードを作りました。
この小さな基板でも、配線は最初とても難しく、Twitterにて多くの方々からの助言を得られたことは、本当に僕の宝になっています。今年一番嬉しかったことかもしれません。
こんなにシンプルなキーボードにしたのに、配線激ムズなんですけど!どうしていいかわかりません
— Yoichiro Tanaka (@yoichiro) October 9, 2020
!だれか助けて。。。何が正解なのかさっぱりです。。。 #自作キーボード pic.twitter.com/aPhVwkmUQb
縦は表、横は裏、というポリシーを適用して、配線をやってみました!なるほど、すごい「それっぽい」感じになった気がしますが、どうでしょうか・・・? #自作キーボード pic.twitter.com/qFOW3DPtSI
— Yoichiro Tanaka (@yoichiro) October 10, 2020
マクロキーボードでは、実は以下の実証実験をしていました。
- 将来搭載したい部品(Underglow LEDと圧電スピーカー)を実装し、実際に使えること。
- キー配列として実際に期待した通りの快適さを得られること。
十分に検証できたと思っています。もちろん、このマクロキーボード自体も、毎日活用しています。スクリーンショットを1キーで撮影したり、音量コントロールをしたり、かなり便利です。
回路的にはブレッドボードで全て経験していて、基板設計とプレート設計は上記のマクロキーボードで経験したので、あとは極論を言うと「キーの個数が増えるだけ」です。11個のキーから、左右それぞ22個、合わせて44個のキーを持つキーボードにすべく、設計を始めました。
そして、形となって生み出されたものが、Lunakey Mini となります。
マクロキーボードではLEDの端子を逆にしてしまうなどいくつかの失敗をしているのですが、このLunakey Miniではそういった失敗は幸いなことに避けることができました。組み立てる際のガイドを基板に予め書いておくといった改善を施して、基板設計を完了しています。
指については、以下のように、自然とキーにフィットするようになりました。とても快適、というか、自然になりました。言葉にするのは難しいのですが、「無意識に最適な場所に指とキーがマッチするようになった」という感じです。
「音」という可能性
Lunakey Miniを設計する際には、あまり他のキーボードでは採用されていない部品を取り付けてみたい、という思いがありました。それが「圧電スピーカー」です。
基本的にキーを打鍵している最中は、キーボードは見ません。そのため、キーボードに備わっている視覚的なものは、全く役に立ちません。具体的には、以下のものがあげられます。
- キーキャップの刻印
- LEDから発せられる光
- OLEDモジュールの液晶に映し出された何か
でも、キーボードを見なくとも認識できるキーボードからのフィードバックがあれば、よりキーボードを便利に使えるようになるのではないか、という思いがあります。目で見ることで認識することができるフィードバックではないもの、それは「耳」であり、つまり「音」です。
キーボードからのフィードバックとして「音」というものを追加したらどうなるのか、これを検証したく、Lunakey Miniでは「圧電スピーカー」を標準搭載しています。Lunakey Miniを駆動させるためのQMK Firmwareでは、Audio Featureが備わっていて、ファームウェアのコードから圧電スピーカーを操作することが可能です。その際に、周波数や長さなどのパラメータを指定することができるので、簡単なメロディを奏でることも可能だったりします。
Pro Microというマイコンの容量が小さく、全てのことをファームウェアとして書き込んで制御することは難しいのですが、Underglow LED、OLEDモジュール、そしてAudioによる音、これら全てをファームウェアにて有効にすることは、可能です。Lunakey Miniを購入してくれた方々が、「音」という可能性に少しでも触れることができるように、僕は設計したかったのです。
音の可能性については、僕もまだ明確な答えを持っていません。ただ、圧電スピーカーを設計から外してしまうことで可能性をゼロにはしたくなかった、という強い思いがあって、設計に含めましたし、キットに圧電スピーカーと抵抗を同梱しています。
厚みに対するアプローチ
圧電スピーカーを基板に取り付けてしまうと、それだけで結構な高さが必要になります。そのため、キーボード全体の厚みが大きくなってしまう懸念がありました。それをできるだけ避けるために、アクリル板の厚みを 2mm にしています。
PCB と同じ素材を用いればもっと薄くすることはできるのですが、Underglow LEDの美しさを体験して欲しくて、透明のアクリル板にこだわりました。
「それでも僕はできるだけ薄くしたいんだ!」という方は、圧電スピーカーを取り付けない、という選択肢があります。そして、キットには M2 スペーサーとして 7.5mm の高さのものを採用していますが、例えば 6.5mm の M2 スペーサーを別途取り寄せることで、単純計算として 1mm の削減が可能です。
まとめ
長々と書いてしまいましたが、まとめると、Lunakey Mini では僕は以下のことを解決したくて設計をしました。
- 無理なく親指を使いこなすことができる快適性。
- 利用頻度は高くないけれどあったら確実に時々便利だな、というキーを1つ配置した贅沢感。
- 全ての指が自然とキーにフィットするColumn Staggeredでのキー配列のズレ感。
- 音という新しい可能性を捨てないこと。
- なるべくなら薄く、より薄くもできる余裕感。
今後改善点が見えてくるかもしれませんが、現状では僕の最適解になっています。これを皆さんにも体験していただきたい、と思っています。もしご興味あれば、ぜひご購入いただき、良いことでも、悪いことでも、フィードバックを聞かせてください。
Lunakey mini rev5 (ベースキット) - Kichi Keyboard
また、組み立て時や利用時の不明点などは、可能な限りサポートしていきたいと思っていますので、気軽に Twitter( @yoichiro ) などで声をかけてください。
Lunakey Mini が、皆さんのPCライフをより快適にしてくれることを、願ってやみません。