お久しぶりです、イプシロンソフトウェアで代表をしております渡部です。ここのところ最近 Wantedly のストーリー更新がサボリ気味でしたのでまた久々にいろいろ書こうと思います。今回は表題と写真にもあるように自作キーボードのお話です。あ、写真中央に写っているのはケンジントンのスリムブレードというトラックボールなので本稿とは関係ありません。
本編の前にいつもの宣伝ですが、うちの会社では一緒に働いてくれてくれる仲間を募集しておりますので興味がある方は覗いてみていただけると嬉しいです。代表もまだ多少はコードを書いておりまして、今回紹介する自作キーボードも現場で大活躍しています。エンジニアにとって働きやすい環境が(きっと)整っているはずです(多分)。
自作キーボードにしようと思ったきっかけ
私の場合はちょっと事情が特殊と言いますか、4年ぐらい前に軽い脳梗塞を患ってしまった時期がありました。いろんな症例をご覧になっているお医者さんからすれば「軽い」なのかもしれませんが、病気をした本人からすれば結構な大事です。直後は右半身に麻痺が出てしまいまして一切動かすことができず、わりと絶望してしまったことを覚えています。その後 約 2ヶ月程度のリハビリ期間を経て回復し、幸いにして後遺症もほとんどない状態となりまして日常生活に復帰することができました。
ただ この「日常生活に支障がないレベル」というのが若干曲者でございまして、本当に微妙なところでは少し支障が出る感じなのです。ずっとパソコンに向かってお仕事をさせていただいておりますので、特に指先を動かしてタイピングをするというのが今までの感覚とは少し違うなーというのは、どうしても誤魔化すことができませんでした。少し疲れがたまってくると指先がもつれる感覚が出てきてしまいまして、特にバックスペースキーの押した回数が頭で考えている回数とリンクしなくなってくると、打ち直しが多く発生してしまってわりとイライラするポイントでした。
右手と左手でキーの重さを変えてあげればこのような指のもつれも軽減されるのではないかと考えたこと、もともと自作キーボードにちょっとだけ興味があったこと、それまでつかっていたキーボードに若干の飽きが来ていたことなどが重なりまして、ついに自作キーボードの道へ足を踏み出してみることにしました。
遊舎工房へGO
自作キーボードと言ったら遊舎工房さん、ということで実際にお店に足を運んでみました。場所としては末広町~御徒町の間あたりにあります。弊社イプシロンソフトウェアは島根県松江市にある会社でございまして、私も島根に住んでいます。今回は たまたまプライベートで東京に行く用事があったのでついでにお店のほうに足を運んでみました。
(初めての体験に興奮しすぎてしまいまして写真を撮るのをすっかり忘れてしまっていたので遊舎工房さんのウェブサイトより引用させていただきました)
やはり世界的に見ても自作キーボード専門の店舗は非常に珍しく、土日ということもあって店内はお客さんで溢れていました。店内を見渡すと見たこともないようなパーツがズラッと並べられておりまして、圧倒されるばかりでした。何をどう選んだらいいのかよく分からず、とりあえずデモの展示品を触らせてもらては「良い…」「これも良い…」と心の中で呟いていた感じですね。さすがにこんなことばかりをしていたらいつまで経っても選びきれないのでお店のスタッフの方に相談させてもらったところ懇切丁寧に「こういう基準で選ぶといいですよ」とか「これは対応してないので、ここの中から選ぶ必要ありますね」とか色々教えていただきまして、無事に一式を組み立てるためのパーツを選ぶことができました。遊舎工房さんには工作室が併設されており、そこで組み立てまで行うことが出来るようになっているようでして、何かあったときにスタッフさんに相談までさせていただける環境のほうが安心だな~とは思っていたのですが、残念ながら組み立て始めたら飛行機の時間に間に合いそうにないのでこの日は組み立てることなくお家に帰ることにしました。
ハードウェアの組み立て
今回 私が購入したのは ErgoDash という製品をベースに必要なキースイッチやキーキャップ、ケーブル類を選びました ( → 遊舎工房さんの通販ページ)。どうせ作るのであれば市販品では珍しい左右分離型がいいのかなと思って選んでみた感じですね。必要なパーツを一式揃えたら全部で25,000円ほどになっていました(工具類は所有していたので買っていません)。プロ向けのキーボードの価格帯よりちょっと安いぐらいでしょうか。
(画像は公式のGitHubより引用させていただきました)
ハードウェアの組み立て自体にさほど難しいポイントはありませんでして、基本的には公式の組み立てガイドを拝見すればスムーズに組み立てることができました。ただ、組立自体はそんなに難しくはないのですがいかんせん部品の点数が多すぎたので大変でした。全部作るのに5時間ほどかかりまして、遊舎工房さんのFAQに載っていた数値とほぼ同じでした。お店で組み立てせずにいったん飛行機でお家に帰って正解でしたね。
ファームウェアの書き込み
一般的な市販キーボードではキーボードのファームウェアというものをほとんど意識することはないかと思います。アップデートするという機会もほぼないですしね。自作キーボードの場合はPro Microというマイコンがよく使われているらしくErgoDashもこのタイプです。Pro Microのファームウェアを書き込まないとキーボードとしては機能させることができません。
ファームウェアを書き込む方法はいろいろあるようですが、私の場合は技術的なところもある程度分かるので、今回はソースコードから直接ビルドして転送する方法で書いてみることにしました。ファームウェアはQMK Firmwareというのを使用します。私の場合はメインではWindowsの環境で作業しているので環境のセットアップに従ってQMK MSYSをインストールし、QMK MSYSの中で有効になるflashコマンドを使ってファームウェアのコンパイルと転送を同時に行いました。
qmk flash -kb omkbd/ergodash/rev1 -km default
コマンドを打ったあとで、画面上に「転送するキーボードのリセットスイッチを押してください」と表示されますので、そのタイミングで組み立ての途中で取り付けたキーボードのリセットスイッチを押します。ファームウェアの転送完了までは環境にもよりますが30秒~1分ほどかかるので少し待ちまして、動作確認のために適当なテキストエディタを開いて打ってみたところ…無事に動きました! これで私も憧れの自作キーボード使いの仲間入りです。
憧れの自作キーボード…が、問題発生
さてさて、ついに憧れの自作キーボードが完成して意気揚々としていたのですがすぐに問題にぶち当たることになります。キーボードの左手で操作する部分については問題なく動作するのですが右手で操作する部分が一切効かないのです。組み立ての際にミスったのか…ショートしていないか等々をマルチテスター等で確認してみるのですがこれと言って問題も見つからず。となるとハードウェア的な組み立ての問題ではなくソフトウェア的な問題な気がしてきます。
ErgoDashは左右分離型のキーボードですので右手部分と左手部分はTRRSケーブルと呼ばれるケーブルで接続されます。ErgoDashは左右に1つずつマイコンのPro Microが配置されていますが、どうやらファームウェアを書き込もうとしたときにTRRSケーブルを通じてファームウェアの情報が伝播していくのではなく、2つのマイコンそれぞれにファームウェアの転送を行う必要があるようでした。右手側のPro Microにも同様のファームウェアを転送してみたところ、それぞれが無事に動作しました!
キーマップをいじる
自作キーボードの中に入っているマイコンのファームウェア設定を変更することでキーを押したときの挙動を変更することができます。ErgoDashのGitHubのページからのリンクが切れているようだったのですが(2023年6月現在)、keyboards/omkbd/ergodash/rev1/keymaps/default/keymap.cを変更して転送してあげれば改造できるようです。本来はキーマップを新しく追加して転送してあげるべきなのかもしれませんが、今回はQMK MSYSがcloneしてきたリポジトリを手元で適当に改造してみることにしました。ソースコードを直接いじってファームウェアをビルドする場合、以下のページが参考になります。
一般的なキーボードでFnキーがあってキーの同時押しの組み合わせによって挙動が変わるという仕組みがあると思うのですが、QMK Firmwareの場合はLowerキーとRaiseキーの2種類があり、それぞれの押し方の組み合わせで4面を構成することができます。私の行ったカスタマイズではLowerキーとRaiseキーを同時に押した場合のAdjust面でマウスの移動ができるようにしてみました。ちょこっとマウスカーソルを動かしたいときにキーボードから手を離さなくてよくなりました。QMK Firmwareでマウスの機能を有効にする場合はビルドするためのコンフィグが必要で、公式に説明のあるとおり以下のオプションを追加する必要があります。
MOUSEKEY_ENABLE = yes
実際に組み立てるよりもキーマップの変更と慣れるまでの期間のほうが圧倒的に長くかかりましたが、一週間程度を経たあたりからはスムーズに使えるようになってきました。
自作キーボードに変えた感想
今回は初めて自分でキーボードを作ってみたのですが、時間をかけてじっくりと選んだキースイッチは押し心地も音も非常に好きなタイプです。当初一番の問題であった「右手のもつれ問題」も解決できました。また、思った以上にファームウェア側でカスタマイズできる箇所が多くてびっくりしました。とかく自作キーボードと言えばハードウェア側に目が行きがちですがファームウェア変更の自由度の高さも魅力の一つかもしれませんね。
新しいキーボードに触れられるとなったら仕事に対するテンションやモチベーションも上がります。ちょうど「受験生が新しい文房具買ったときに勉強のやる気が出る」というのと近いのかもしれませんね。