初の自作キーボード設計に挑戦しました(Limb44)
はじめに
元々Corneキーボード(以下crkbd)を愛用していたのですが、使っていてどうしても気になる点が出てきました。
キット化されたキーボードを探してみましたが、自分の理想に沿うものがなさそうだったので設計することにしました。
設計から発注、組み立ての流れを備忘録として残します。
参考にした書籍・記事
・自作キーボード設計入門
今回こちらの書籍を参考に設計から基盤の発注までしました。foostan様に感謝です。
・HelixのOLED表示を簡単にカスタマイズするサービスを作った
せっかくなのでOLEDに表示するロゴも作成してみました。こちらのサービスを使えば難しい知識なく作成することができます。
コンセプト
基本はcrkbdを踏襲しつつ、自分好みに改造します。
・小指キーを手前に近づける
小指奥側のキーが押しづらいので手前に近づけます。
・親指のキーを1つ増やす
crkbdの場合、片手側にAltキー1つ、反対の片手側にWinキー1つになるのですが、それだとショートカットが使いづらく感じていました。(左手のみでのAlt+TabとWin+Shift+Sの共存ができないetc.)
片側にAltキーとWinキー両方を割当られるように設計します。
・一番内側のキーを1.5Uから1Uに
細かいですが、一番内側の親指キーを1.5U(少し長いキー)から1Uに変更しました。市販の1.5Uのキーキャップはあまり親指にフィットするものがないので、比較的キーの種類が豊富な1Uに変更します。
▲ 画像左が設計したキーボードで、右がcrkbdです。
ぱっと見それほど違いはないですが、より個人的な好みに近づいた感じです。
やったことのフロー
作業の流れとしては以下になります。
①キーの物理配列を決める
②PCBの設計・発注
③プレートの設計・発注
④パーツの購入・組み立て
⑤ファームウェアの作成
①キーの物理配列を決める
Keyboard Layout Editorでキーボードの物理的な配列を決めます。
PropatiesからX座標、Y座標、幅などの数値を入力しながら作成します。
有名キーボードのレイアウト(Row data)はQMK Keymap Rendererから取得できるので、今回はcrkbdのRow dataをコピペして、それを元に改造しました。
②PCBの設計・発注
KiCadを使ってキーマトリクスと配線を行っていきます。
自作キーボード設計入門と、Githubで公開されているキーボードのKiCadデータを参考に作成しました。
完全な素人なのでかなり時間がかかりました・・・。
設計した基盤はElecrowに発注しました。枚数や厚さ、色、表面加工などを指定します。
注文後10日ほどで届きました。早い・・!
↑の画像は発送通知メールに添付されていたものです。
③プレートの設計・発注
キースイッチをはめるためのプレート(トップ・ボトム)を設計していきます。
キーボードにはスイッチのマウント方式が複数ありますが、今回はサンドウィッチマウント方式で作成しました。
サンドウィッチマウントは上記画像のように、基盤をプレートとプレートで挟むようなマウント方式になります。比較的安価なようです。
(参考:プレートマウント方法とスイッチとの相性情報)
Inkscapeという2DCADを使ってプレートを設計します。
Kikadでプレートの線データを出力できるので、そちらをInkscapeでインポートして整形します。
作成したプレートデータを遊舎工房様のレーザーカットサービスで形にしてもらいます。
注意点として、Kikadから出力したデータはパスが繋がっていません。そのためパスの結合を行う必要があります。私はこれを把握しておらず、発注時にデータNGになってしまいました。
▲ 作成いただいたアクリルのトッププレート
厚さ2mmで発注したのですが、1枚割ってしまいました・・。
3mmの方が安心感ある気がしました。
後日切断堂様にトッププレートをアルミで作成いただきました。とても質感が良く満足度が高かったです。
アクリルは安く作れるのが大きな魅力ですが、(個人的には)質感や音質の面で他の素材に劣るので、もし予算が許すならアルミなどでも良いのかなと思いました。
プレートデータはGithubに公開しています。
https://github.com/yt3trees/limb44
④パーツの購入・組み立て
パーツを購入して組み立てていきます。
キットと違って自分でパーツを揃える必要がありますが、ほとんどネットストアで揃いました。
■買ったものリスト
キーボードパーツは遊舎工房オンラインストアであらかた揃います。
・TRRSジャック×2
・タクタイルスイッチ×2
・ProMicro&コンスルー×2
・ダイオード(チップタイプ)100個入り×1
・OLEDモジュール×2
・PCBソケット(MXスイッチ用)10個入り×5
・キーキャップセット×1
・キースイッチ(パーツばら売りのスイッチ)
→トップハウジング・ステム・ボトムハウジング
スペーサーとネジは遊舎工房実店舗で購入しました。
実店舗以外ではヒロスギネットなどで販売されてますね。
・M2スペーサー6mm×10
→トッププレートとボトムプレートを固定するスペーサーです。
・M2スペーサー8mm×4
→OLED保護用のプレートを固定するスペーサーです。
・M2ネジ×28
上記以外の部品はAmazonやAliExpressで購入しました。
・クッションゴム22粒(Amazon)×1
・マグネット式MicroUSBケーブル(Amazon)×1
・TRSSケーブル(AliExpress)×1
⑤ファームウェアの作成
作ったキーボード用のファームウェアを作成します。
ファームウェア環境は以下の記事を参考に整備しました。
プログラマーではない人向けのQMK Firmware入門
今回設計したキーボードはほぼcrkbdと同じ配列であることもあり、基本的にはcrkbdのファームウェアをコピーして一部整形するだけで問題なく動きました。
もう少し具体的に言うと、keymap.cや、rev1.hのLAYOUT、config.hのPRODUCTの定義などをいじったくらいです。
もしキット化してBoothなどでの販売を考えるのであれば細かく整備していく必要はありますが、今回は完全個人用なので動けばOK程度の修正です。
作成したファームウェアはGithubで公開しています。
https://github.com/yt3trees/qmk_firmware/tree/master/keyboards/limb44
おまけ:OLEDに自分で作ったロゴを表示させる
ここまででキーボード自体は作成できましたが、せっかくなのでOLEDに自分で作成したロゴを表示させました。
(参考:HelixのOLED表示を簡単にカスタマイズするサービスを作った)
ロゴデータ自体は何で作っても良いですが、私はiPadのPixakiというアプリで作成しました。
Windows標準のペイントソフトでも作成できるのでペイントソフトを持って無い方はこちらで良いかなと思います。
サイズは128px×32pxです。もしかするともっと適した比率があるかもしれません。
「ファイルを選択」から作成したファームウェア内にあるglcdfont.cと描いたロゴデータを選択します。
「送信」をクリックした後「ダウンロード」ボタンが出るので、そちらをクリックしてロゴデータをダウンロードします。
ダウンロードしたファイルの名前をglcdfont.cに変更して所定のフォルダ(今回の場合はlibフォルダ内)に配置します。
そしてファームウェアを書き込むとOLEDに作ったロゴが表示されるようになりました。オリジナルキーボード感が出てテンション上がりますね。
おわりに
オリジナルキーボード「Limb44」の制作過程を簡単にまとめてみました。
色々悩みながら作業するのが非常に楽しかったです。
今回で感覚をつかめたので、次はもっと変態的?なキーボードに挑戦してみたいなと思っています。
もしキーボード設計に興味がある方はぜひ挑戦してみてください。
この記事が気に入ったらサポートをしてみませんか?