自作キーボードの始め方
この記事は、Mobility Technologies Advent Calendar 1日目の記事です。
AI技術開発部の 74th (@74th)です。
普段は、AI寄りのフルスタックエンジニアとして、システムのアーキテクチャを作ったり、バックエンドのマイクロサービスを実装したりしています。
今回記事中で紹介するものは、全て会社の事業とは無関係であり、74th が個人的に仕事中にも愛用している自作キーボードの紹介になります。
2年前のアドベントカレンダーでは、自作キーボードで拘った高さの低さへの挑戦について述べました。
自作キーボードを初めて3年以上が立ちましたが、今でも新しくこだわりたいポイントが見つかるくらい、楽しんでいます。
自作キーボードのファーストステップを今進めるならどうするかを考えて記事にします。
自作キーボードの良いところはなにか
人それぞれ、自作キーボードの利用者の数だけ、こだわりポイントがあります。自作キーボードは「愛用の文具のように日々使う道具を拘れるところ」が良いところです。
74th設計の Sparrow62(+1)v2(オプションなし、ノーマルの姿)
主な自作キーボードの定番の利点としては、以下のようなところです。
- (よく使われるファームウェアを使えるならば)ボタンと入力されるキーの配置を自由にカスタマイズできる
- 左右分割や、配列をこだわることで、キーボード入力時の体の負担を減らせる(いわゆるエルゴノミクス)ようカスタマイズできる
- 楽しくタイピングできるように、感触をスイッチを変えることでカスタマイズできる
- 光ったり、見た目にかっこよさを拘れる
人とマシンとの接点をカスタマイズできるのが、面白い良いところだと思います。
私の場合は、以下のようなところに拘っています。
- 強めの反動があるスイッチをバシバシするのを楽しみたい。
- マウス、トラックパッドとキーボードを使う時に移動する距離を最小にしたい。
- 小指よりも親指に仕事をさせたく、キー配置を自由にカスタマイズしたい。
Sparrow62で拘っているトラックパッドとの一体化(キットのオプション品でトラックパッドジョイント台がある)
自作キーボードの良いところはどうすれば手に入るのか
キーをカスタマイズしたいのであれば、キーボード配列カスタマイズの定番ファームウェア QMK Firmware に対応したキーボードを使うことで、それが実現できます。
自作キーボードキットの多くは、ProMicro(ATMega32U4)、RaspberryPiPico(RP2040)を使っており、QMK Firmware に対応しています。
スイッチのカスタマイズを楽しみたいのであれば、ホットスワップソケット対応のものを選ぶことで、あとからでもスイッチを好みのものに入れ替えることができます。1つのキーボードで、多くのスイッチを楽しめます。
自作キーボードの世界では、一般的な配列以外にも様々な配列が発明されて、使われています。
はんだ付けをせずに自作キーボードの良いところを手に入れたい
自作キーボードキットの多くは、基板が含まれていて、その基板にロジックボードや、スイッチを実装するのは、購入者で行う必要があります。
自作キーボードの専門ショップ遊舎工房では、既に実装されて、主にスイッチをはめるだけで使えるキーボードが多く扱われています。こちらを購入することで、スイッチをはめるだけで自作キーボードの効果を得ることができます。
また、いくつかの同人アイテムでは組み立て済みの商品を用意している場合があります。
私が販売している自作キーボードキットにも、組み立て済みのものがありますので、ぜひご利用を検討ください(私が作ります)。
遊舎工房さんの入門セットで入門する
遊舎工房さんでは、自作キーボード入門セットという、1個のキーボードを作るためのフルセット(工具は含まず)があります。これを選ぶことで、カスタマイズを1つのキーボードがある状態から始めることができます。
自作キーボードキットを選ぶ
自作キーボードキットを見るときに注意したいところは以下の点と思っています。
- キット以外に必要なもの
- 対応キースイッチ(MX/Choc)
- 対応ファームウェア
- ビルドガイド
- ヘルプ時の問い合わせ先
自作キーボードキットは単体で購入すれば済むものではなく、カスタマイズのベースが手に入るだけです。マイコンボード、キースイッチ、スタビライザ(Shiftキーなど大きいキーをスイッチと一緒に支える)など、多くの追加の部品が必要になります。
多くの自作キーボードキットには「キット以外に必要なもの」が明記されていますので、必ず確認が必要です。
多くの自作キーボードのスイッチは Cherry MX(以下MX) というスイッチに互換性のある形をしており、同じ様に使うことができます。一方、薄型スイッチである Kailh Choc スイッチはMXにしか対応しない基板に使うことができません。薄型スイッチによっては差し込めはするものの、形が少し異なるため対応できないことがあります。薄型、Mid Hight などと書かれていなければ、ほとんどが MX 互換です。
対応ファームウェアは、キー配列のカスタマイズに必要なファームウェアです。QMK Firmware に対応と書かれているものであれば、多くの知見がGoogle検索で見つかります。
なお、私の Sparrow62v2 では Pythonで記述できる KMK Firmware に対応しています。
ビルドガイドには、組み立てに必要な工程が書かれています。この工程を読んで、作ることができそうか見る必要があります。必ず先にビルドガイドを見るようにしてください。(参考: Sparrow62v2のビルドガイド)
自作キーボードの世界は、アマチュアの方が同人アイテムとして販売しているものが多いです。適切なサポートが得られなかったり、キットが委託されている購入先からはサポートが得られないことが多いです。しかし、キットの製作者の多くは、SNSやメールを通じて質問や、製作失敗時のリカバリー方法についてサポートしていただけることがあります。基本は自己解決を目指しつつ、キット制作者に助言を求めてみましょう(アマチュアなのでサポートが得られないことも許容しましょう)。
責任は組み立てる自分にあると肝に銘じる
自作キーボードキットは、プラモデルのように手順に従って組み立てるだけで完成するものです。しかし、組み立てるのは自分であるため、失敗する可能性があります。それを肝に銘じて、キットを購入に進んでください。
手に入らなくなることを許容する
今出ている自作キーボードキット、キースイッチ、キーキャップはどれでも安定的に入手できるものはありません。キットは制作者が販売をやめてしまったら手に入りません。スイッチは近年種類が増えていて、安定的に手に入るものは少ないです。
キットの他に組み立てに必要なものを確認する
キットによって組み立てに必要なものは異なります。カスタマイズ要素であるスイッチとキーキャップ以外にも多くのものが必要です。
マイコンボード(ProMicro、RaspberryPiPicoなど)
左:ProMicro、右:RaspberryPiPico
自作キーボードでは、マイコンを直接基板に実装するタイプもありますが、多くはマイコンボードと呼ばれるマイコンとUSBを含んだ電源回路が実装された基板を使って、実装するようになっています。
主に、ProMicro(ATMega32U4) と RapberryPiPico が使われます。自作キーボードキットによって、必要となるマイコンボードは異なります。
マイコンボードは各ショップで購入できます。一時的にマイコンボードの取り扱いが少なくなっていましたが、入手困難ではない程度に手に入るようになっています。
また、あるマイコンボードとの互換性のあるマイコンボード(例えば、ProMicro互換でUSB Type-Cのものや、ProMicro互換で Bluetooth対応のもの)などでも、大きさや、仕様によっては非対応の場合があります。気をつけてください。
コンスルー(スプリングピンヘッダ)
マイコンボードと基板の間に挟むのが、コンスルーです。ProMicro付属ピンヘッダを使っても良いのですが、ProMicroのUSBソケットが衝撃に弱く外れやすいこと、マイコンが故障する可能性があることから、あとからマイコンボードを交換するために挟み込まれるコンスルーが使われてきました。
キットに付属の場合もありますが、別途調達が必要なキットが多いです。
コンスルー(スプリングピンヘッダ)
コンスルーが入手できない問題について、あとで述べます。
遊舎工房さんにおいて、委託ではなく、直販しているキーボードキットについては、多くがコンスルー付属で売られているようです。
スイッチソケット
スイッチのホットスワップ対応と書かれているキットは、多くはスイッチソケットを実装して、そこにスイッチを差し込むことで、この対応が行われています。
スイッチソケットは MX 用(通常のスイッチ) と、Kailh Choc 用(薄型スイッチ)のがそれぞれ販売されています。
スイッチを揃える
現在多種多様なスイッチが出ています。それぞれのスイッチで違うところは、主に以下の点です。
- タクタイル(山がある) or リニア(直線) or クリッキー
- 静音化のための機構が入っているか
- バネの強さ
- 工場での潤滑剤(ルブ)の有無
- 素材と、作りのしっかりさ
タクタイルスイッチとは、押す時に1mm付近に反動の強い山があり、それを超えると軽くなるスイッチです。この山は、スイッチに垂直なバネではなく、横向きにスイッチの金属部分からなる板バネの強さからできています。この山を楽しめるのが自作キーボードの良いところです。
romlyさんの「軸の秤」で測っていただいた、推しスイッチ Durock POM T1 Sunflowerの、押す深さと圧力のグラフ(通称フォースカーブ)
リニアスイッチとは、反動が垂直バネによるものがメインのスイッチで、ずっと強さが変わりません。スイッチを底まで叩き切る感じが楽しいスイッチです。(上の様な山がなく、ずっと直線上に負荷がかかる)
静音化したスイッチが多数出ています。しかし、静音スイッチでも完全に音がなくなるわけではなく、ある程度音がなるものです。静音化で感触が柔らかく変わってしまうこともあります。静音スイッチを考慮する際には、ぜひ静音でないスイッチも試してもらえると良いと思います。
垂直バネの強さは、主にリニアスイッチでスイッチの重さをとして現れます。タクタイルスイッチでは、タクタイルの山までがメインの感触のため、垂直バネの影響は大きくないです。
スイッチは2つのプラスチック部品がスライドされて、動作します。素材によってはこの擦れ具合が振動となって押した感触にフィードバックされて、カサカサすると表現されたりします。自己潤滑性のあるPOM素材を使うことで、カサカサ感を低減することができます。また、メーカーによって作りのしっかりさが異なります。
一方、最近のスイッチには、工場で潤滑剤の塗布(ルブ)まで行われ、このカサカサ感を低減されているものがあります。わりと、ルブをすると、素材自体はあまり気にならない様に思います。
スイッチを実際に比較したい場合、スイッチのセットを販売しているショップがあります。こちらを試してみるのも手です。
私のおすすめは、強いタクタイルが楽しめる Durock POM T1 Sunflower スイッチです。伝説のカスタマイズスイッチ HolyPanda のような強いタクタイル感、かつカサカサ感の少ないPOM素材でケース全体が作られており(多くのスイッチは POM 素材を使うにしても上下に移動する中央の軸(ステム)のみにPOM素材を使われます)、さらに工場でルブされています(されていないものの扱いもあるので注意)。
加えて、親指や小指などのキーは、底まで打ち切ってしまうため、その衝撃を弱めるために、ゴム素材で衝撃を抑えるサイレントスイッチを利用しています。
個人的には、若干お値段がしますが、Durock, JWK, JWICK というブランドのスイッチが(これらは製造元は一緒)、しっかりとした作りで、ステムにPOM素材が使われ、ファクトリールブもあるので、推しスイッチブランドです。
その時々で手に入るものが異なると前に話しましたが、現状長く安定的に売られているものは、Cherry MX、KailhのBox/Speedシリーズ、Durock/JWK T1などが挙げられます。これらを最初に手に入れて、ベースにほかのスイッチにカスタマイズしていくのも良いです。
キーキャップを揃える
自作キーボードで用いられるキーキャップは、MX用スイッチのキーキャップです(なお、薄型スイッチKailh Chocは専用のキーキャップが必要です)。多くのキーキャップが出ています。刻印付きキーキャップの場合、US配列用のキーがメインになっています。日本語配列用のキーキャップも出回っていますが、数は少ないです(また日本語配列を実現できるキーボードキットも少ないです)。
まず、キーキャップは行によって高さが異なるもの(スカルプチャード)と、全て同じものがあります。
スカルプチャードで、刻印つきの場合、刻印は標準的なキーボードの配置に合わせて作られています。例えば[
、DEL
は下から4段目、=+
は下から5段目といったようにです。
刻印付きの場合、様々なキーの入ったキーキャップセットが発売されていますが、キーキャップセットによって付属しているキーが異なります。特にShiftキーや、Ctrlキーなどは複数のサイズ、及び行のものが収められているキーキャップセットがあります。「目的のサイズ」と、「行」が一致する刻印のキーがあるかどうかを確認する必要があります。
サイズは、アルファベットキーの正方形サイズを1Uとして、横幅がそのいくつ分かどうかで 1.5U 2.25U と呼び分けられます。
左右分割キーボードの多くは、全て1Uサイズで作られていることが多いです。多くのキーキャップは Shift、Enter などの1Uは用意されておらず、代わりのキーキャップをつける必要がでてきます。
キー配置をカスタマイズすると、[
、]
キーなど、一般的な行とは異なる場所に配置したくなるので、必然的に刻印とキーの位置が一致していないことを許容する必要が出てきます。
不足するサイズのキーについては、ショップにて無刻印のキーキャップを買って代わりとして使うことができます。TALP KEYBOARDさんのところが、種類が豊富でおすすめです。
DSA、XDA(Cherry、MDA などの代わり)
MA(SA、MT3、MG などの代わり)
次にキーキャップには、高さが同一のもの(ノンスカルプチャード)と、キーによって高さが異なるもの(スカルプチャード)に分かれています。
- 高さが同一: DSA、XDAなど
- 高さが異なる、低め: Cherry、など
- 高さが異なる、ミドル: MDA、MSA、OSA、OEM など
- 高さが異なる、高めで上面が球状を描く: SA、MT3、MG、など
私の所有しているもの写真を撮ってみました。
74thが所有しているキーキャップ(一部)
私の所感として、高さが同一のものも、異なるものもどちらも良いです。
2年前は低さ重視でDSAにはまっていました。去年は、MDAなども高さが違っていい感じに指に吸い込まれるので良いなと感じていました。Cherryは若干階段すぎて、指が引っかかるように感じていますが、Cherryを愛用されている方もいます。更に最近として、SA、MG、MT3 などの高さがあって上面が球の形で段差がないキーキャップが、ガシガシ入力していると気持ち良いなと思えてきました。
結構キーキャップはメルカリでも取引が盛んなので、合わないなと思ったら、手放してしまうのも手です。
ある程度低くてスカルプチャードな MDA を押したいのですが、現在国内では MDA が簡単には手に入らなさそうです。
安価なものでとりあえず始めたいのであれば、Amazonでも複数出ています。
安価ものの一つに「FILCO Majestouchシリーズ専用交換用キーキャップセット」がありますが、これが SA と呼ばれる背の高めのキーキャップの一部を使ったキーキャップとなっており、初めて使った時に高さに面食らってしまいました。
MSAという若干素性の怪しげなキーキャップが、安価に入手できて、スカルプチャードかつ2色形成で良さそうです。ただし、素材が良くないのか、経年劣化で表面加工が剥がれて光ってしまう(テカる)のが早かったのと、キーのハマりが若干緩いように思います。
キーキャップというものは、わりとその時々で流通するキーキャップは異なるため、惹かれるキーキャップがあれば、逃すと今後買えなくなる可能性が大きいです。また、グループバイも多く行われています。
文字の印字には、主に「昇華印刷(染み込ませる印刷)」、「2色形成(ダブルショット、2つの金型を使う)」、「レーザー刻印」などが行われています。2色形成では、擦れて文字が消えることがありません。昇華印刷も、今まで消えたことはありませんが、白色を昇華印刷することはできないので、私の好みの white on black キーキャップは2色形成でないと実装できないものだったりします。
素材には、主にABS、PBT の2種類が用いられます。PBT の方が硬くしっかりとしたざらついたものになり、ABS は少しツルッとしていたり、ざらついていても表面の摩耗が早い(テカりやすい)と言われます。PBT の方がよさそうですが、PBT でもテカってしまうことがあると思うので、あまり違いを感じていません。
スタビライザ
Shift キーなど、大きいキーはスイッチひとつでは支えられず、スタビライザ、という部品を使って支えます。スタビライザには Shift キーなどの2U用と、スペースバー向けのものがあります。スペースバー向けのものは、キットによって必要なサイズが微妙に異なることがあるので、気をつける必要があります。
スタビライザ
MXスイッチ用スタビライザには、「PCBマウント」と「プレートマウント」の2種類があり、どちらを使うかはキットによって異なります。
ショップで購入することができます。
おすすめは、DUROCK という メーカのスタビライザです。しかし、スタビライザを使う場合にはスイッチ以上に、スタビライザへの潤滑剤の塗布を行うと、良い感触になります。
ケース
最近作った互換ケース対応のキーボード
日本の自作キーボードでは、専用のケースを用いずに、基板を重ね合わせることでケースとしているものが多くあります。Sparrow62v2を含む、多くの分割キーボードはこの方法が利用されています。
一方、Poker互換、GH60互換と呼ばれる自作キーボードケースがあります。これは、Poker、GH60という自作キーボードキットのケースと同じ仕様で作れるようになっているキットがあります。60%キーボードケースとなっているものはこの仕様のものが多いです。
あとは自作キーボードキットによっては、3Dプリントサービスで作れるケースのデータを提供しているものもあります。
最近、リニアスイッチを楽しむためには、スイッチを底まで押す反動を抑えるために、ケースが必要そうという考えに至り、分割キーボードではなくケースを使う一体型キーボードをテストしています。
その他に必要なもの
以下のものが必要になることが多いです。他にも必要なものがあります。
- TRRS ケーブル(分割キーボードで左右をつなぐ、3極オーディオではなく、4極オーディオケーブルが必要なものもあります)
- USB ケーブル
実装の道具
最低限以下が必要です。
- はんだこて
- はんだこて台とスポンジ
- はんだ線
- ハンダ吸い取り線
- ピンセット
はんだこては最初であれば電子工作用、もしくは集積基板用と書かれたはんだごてを使うと良いです。リカバリができるようにハンダ吸い取り線と購入しておくと、心強いです。
加えて、デジタルテスタがあると、動かない時の通電確認ができて良いです。
私自身は USB PD で使うことができるはんだこて Pinecil を使っています。
ファームウェアをビルドする環境を作る or REMAP を利用する
QMK Firmware を使う場合、カスタマイズの反映には QMK Firmware をローカルで再ビルドして組み込むことで実現します。この場合には環境構築が必要です。
一方、REMAP対応となっている場合には、REMAPというWebツールを使ってキー配置のカスタマイズができます。ただし、QMK Firmwareでできる拡張がすべて REMAPでできるわけではありません。
REMAP では、ファームウェアの書き込みまでできるキーボードキットもあります。その場合には、環境構築は必要なく、REMAPのサイトでファームウェアの書き込みまで行い、その後はREMAP 上でキー配列のカスタマイズができます。
私のキーボードキットSparrow62v2 では、KMK Firmware を使いますが、USBドライブとして認識してPythonのスクリプトテキストファイルを編集するため、カスタマイズに別途環境構築する必要はありません。ただし、REMAP、QMKに対応していません。
これらを全部やって
これらを全部やって自作キーボードが出来上がります。
長いようですが、1日プラモデルを組み立てるくらいの感覚でできると思います。
コンスルーが手に入らない問題
ここまで、自作キーボードで必要な部品として基板とマイコンボードとの間に使うコンスルーが必要と述べてきました。
このコンスルーですが、2022年11月 現在入手が困難になっています。
この代わりには、ProMicroに付属するピンヘッダを直接はんだ付けを行い、はんだを取らない限りマイコンボードを交換不可能な状態にすることです。
もしくは、コンスルーの代わりに基板の重ね合わせを行う方法です。一つには、PCBにピンソケットを実装し、ピンヘッダを実装し、ソケットに差し込むことで接続する方法です。しかし、コンスルーピンヘッダよりも高さが必要になります。特に、基板をキーボードと利用する状態で机の上においたとして、基板の下面にマイコンボードをつける場合、ケースの構造によってはケースがつかなくなる恐れがあります。ピンソケットを実装する前に、ピンソケットをつけた状態でも、ケースがつけられるかどうか確認してください。基板の上面につける場合にも、カバーとなる素材が高さを許容できるか確認してください。
直接キーボードキットの販売されている方に可能かどうか聞くのも良いと思います。遊舎工房に委託されているキーボードキットの場合は、製作者にたずねてください。
ピンソケットで低くする方法として、低い背のピンソケットを使うということもできます。秋月電子に売られている以下のピンソケットは比較的低いです。これにProMicro付属のピンヘッダを使うと、接続できます。
低背ソケットとピンヘッダ
この方法ですと、ProMicroの最も背の高い部品(USB ソケット)まで、11.0 mm程度になります。マイコンボードの上に重なる部品がある場合、これが許容できるか確認してください。
ProMicro のソケットがもげないように
マイコンボード ProMicro に実装されているUSB Microソケットは非常にもげやすいことで有名です。この対策として、ソケット周辺をエボキシ系接着剤で補強するということが行われます。私もその方法で補強を行っていました。
詳しくはこちらが詳細に写真がありますので、確認ください。
動かないときは
私も最初に作ったキーボードでは1キー動作しなかったり、1列、1行まるっと動かなかったりしました。
マイコンボードを使う場合、USBは直接マイコンボードに接続するため、ファームウェアの書き込みまでは上手くいったりします(なおSparrow62v2は異なります)。
1キー動作しない場合は、そのキーに接続するダイオード、スイッチ、スイッチソケットの実装不良であることが多いです。はんだづけし直します。
1行、1列動かない場合は、マイコンボード側の実装不良が疑われます。キーボードの多くはスイッチ単位でマイコンに接続されるのではなく、各行と各列がまとめて接続されていて、行と列の2つの接続を使ってどのキーが押されたのか判定しています。なので行、列が反応しない場合はマイコンボード側を確認します。基板によっては、マイコンの接続口に行と列の番号が書かれていたり、回路図が公開されていて確認することができます(参考:Sparrow62v2の回路図)。公開されていない場合は制作者に聞いてみるのも手です。
自作キーボードを楽しもう
ファーストステップのつもりが、落とし穴について書いているうちに長くなってしまいました。
自作キーボードは始めてしまえば、あとからさまざまなカスタマイズができる実益を兼ねた趣味になります。私自身も今使っているキーボードなしでは仕事をしたくありません。
私のこだわりがたくさん詰まった自作キーボードキット Sparrow62 も販売しております。
ぜひ、よければお求めください。
Sparrow62(再掲)
明日は Koji Furuya さんです。お楽しみに。
We're Hiring!
📢 Mobility Technologies ではともに働くエンジニアを募集しています。
興味のある方は 採用ページ も見ていただけると嬉しいです。
Twitter @mot_techtalk のフォローもよろしくお願いします!
Discussion