この記事は Safie Engineers' Blog! Advent Calendar 12日目の記事です
こんにちは、セーフィー株式会社でフロントエンドエンジニアをしている佐川です。
3Dプリンターでなんらかの入力デバイスや小物をつくることが趣味で、同好の士が増えることを願いながら部内のLTや深堀り会などで作ったものの話などをしています。 今回はその中で話していたことのひとつ、キーボードを作る話を書きたいと思います。実業務とは関係がなく、本当に趣味の話です。
- 3Dプリンターとはんだごてがあると、作れるものの幅が広がって楽しい
- パラメトリックモデリングによる3Dモデリングの容易さ
あたりについて書いていきます。各工程について詳しくは記載していないため、もし気になったら調べてみてください。
キーボードを自作したい!
ここ数年でキーボードを自作する行為はだいぶメジャーになってきた印象があります。
2025年3月に行われるキーボードマーケットトーキョーという自作キーボードをメインに扱う即売会では、協賛企業も含めると70を超えるブースが出展するのだとか…。世は大自作入力デバイス時代ですね。
自作キーボードは市販品とは異なり、採算度外視の自由さが魅力です。游舎工房のWEBショップを少し覗くだけで、あまりのバリエーションと各制作者の発想力にただただ震えます。最近だと、キーボードにトラックボールがくっついているのを見たときの衝撃たるや…。
さて、自作キーボードと言っても自作の方法には2種類あります。
- 売られているキットを買ってきて組み立てる
- 0から作る
- プリント基板を発注する
- 手配線
大体の自作キットは基板、外装(+ファームウェアを焼いたマイコン)がセットになっており、あとは必要な電子部品と好きなキースイッチ・キーキャップを用意すれば、プラモデルをぱちぱち組み立てていく感じでキーボードを作ることができます。
ただ、こんな自由度高く様々存在している自作キットといえど、100%自分が求めている要件を満たすものがあるとは限りません。当時、自分が求めている自作キットは存在していませんでした。ロープロファイルのキースイッチが使えて、格子配列の40%キーボードが欲しいだけなのに…。
妥協したものを買うのもなあ…と思ってキーボードの自作方法を見ていると、基本は電子回路を設計して外部にプリント基板を発注する方法がメジャーなようでした。プリント基板は海外の制作会社に発注するとおよそ2000円~で作ってもらうことができますが、発注してから届くまでにある程度時間がかかります。(別料金を払えば翌日には出荷してもらえます)まずは作って、気に入らないところがあったら修正して…のサイクルを回したい自分としては、時間とお金が気になります。また、発注時の最低ロット数は大体5枚なので、個人用に作りたいだけなのに4枚も余らせてしまうのはなんだか微妙という気持ちもありました。
もう少し調べてみると、3Dプリンターで印刷した外装にキースイッチをはめ込み、それらを手で配線していく方法で作っているものを見つけました。なるほど、それなら100%自分好みに作れますし、ちょっと気に入らないところが出たらすぐに直して印刷してしまえばよいです。無限の可能性を感じます。
ScottoLong Handwired Keyboard
余談ですが、こちらは手配線にこだわるとここまで美しくできるのかと非常に感銘を受けたものです。
キーボードを自作する
キーボードを作るにあたってやるべきことは、大まかにこれくらいでしょうか。
- 作りたいキーボードを考える
- ケースをモデリングする
- (回路図を書く)
- ProMicroやラズパイのようなマイコンボードを使う場合は単純なのであまり書きません
- マイコンボードに頼らないときは、マイコン、USBコネクタ、リセット・BOOTスイッチ、水晶発振器…などなど、登場人物が多いので書きます
- ファームウェアを書く
- フルスクラッチ
- QMKというキーボードファームウェアのベース
- 組み立てる&手配線
作りたいキーボードを考える
上のほうでも書きましたが、こんなキーボードが欲しいなと考えました。
- キー数40%
- ロープロファイルスイッチ
- 格子配列
- できるだけ本体を薄くしたい
キーボードを作る前は、hsgw氏のPlaidを使っていました。必要な電子部品たちが装飾も兼ねてきれいに配置されており、とても気に入っているキーボードです。こちらを使い始めてからは完全に格子配列に馴染んでしまい、他の配列に戻れなくなってしまいました…。
パラメトリックモデリングによるケースのモデリング
作りたいキーボード案をもとに簡単にラフを書いたあと、早速3DCADソフトを用いてモデリングしていきます。
ところで、自分は3DCAD、3DCGソフトを扱うのが不得意です。GUI上には膨大な数のアイコンやメニューが列挙されており、自分のやりたいことをスムーズに行うには、ソフトごとでの習熟が求められます。 自分の頭の中では「この平面に穴を等間隔で開けたい」「15mmの壁を足したい」など明確なのですが、それを行うための操作手順が煩雑で、作業に対するストレスがグングン溜まっていきます。
そんなとき、OpenSCADというコードベースでモデリングできるソフトウェアを見つけました。 実業務でも趣味でもコードを書いているため、こちらのアプローチにすんなり馴染むことができました。
たとえば「四隅に穴の空いたプレート」を作りたいと思ったら、以下のように書くことができます。
width = 10; length = 20; height = 1; difference() { cube([width, length, height], center=true); for (xpos = [-1, 1], ypos = [-1, 1]) { translate([xpos * (width / 2 - 1), ypos * (length / 2 - 1), 0]) cylinder(h=height, r=.5, center=true); } }
書きっぱなしで読みづらい状態ですが、参考までにキーボードをモデリングした際のコードを以下に置いておきます。
github.com
ファームウェアを書く
オープンソースで公開されているものがいくつかあり、そちらを用いることで簡単に自作キーボードのファームウェアを作成することができます。有名なものは以下の2つかなと思います。詳しくはドキュメントなどをご参照ください。
QMK | 一番有名なファームウェア |
Vial | QMKベースで、WEBブラウザ上でのキーマップ変更機能を有していて便利 |
余談ですが、組み込み系の知識が乏しかったので、以下の動画を面白く見てました。
自作キーボードって組込みRustの入門にちょうどいいらしい #ch789
組み立てる&手配線
一気に端折ってしまいますが、モデリングしたケースをSTLファイルに変換して3Dプリンターで印刷するとこんな感じになります。(ネジ止め用のインサートナットを圧入済み…)
ケースにキースイッチをパチパチはめて、キースイッチとダイオードを銅線で配線し…
マイコンボード(今回は家に転がっていたRaspberry Pi Pico)とキースイッチを配線。
キーキャップはめて完成!
(キーキャップの文字やアイコンは、テプラのマット透明テープに印字して貼っています。お手軽)
かかった金額
部品名 | 金額(およそ) |
ダイオード38個 | 100円 |
Kailhロープロファイルスイッチ 38個 | 2600円 |
Raspberry Pi Pico | 800円 |
キーキャップ 37個 | 1200円 |
3Dプリンタのフィラメントや、はんだとか、こまごま | 500円 |
合計 | 4000円 |
…かかった時間を考えるとすごく安い!というわけでもないですが、キースイッチやマイコンなどのパーツは使い回せるので、作り直すときはより安価に作ることができますね。
最後に
後半はかなりふっ飛ばしてしまいましたが、3Dプリンターと手配線でキーボードを自作する話でした。
今後ですが、キースイッチを使いまわしたいときにキースイッチの足に直接はんだ付けしている場合、一度はんだを取り除く作業が必要になり非常に面倒くさいです。 なので付け外しが容易になるソケット(Kailh製やベリリウム銅のものなど)を用いてキースイッチのつけ外しが楽なように作りたいなあ…と考えています。 あとはロータリーエンコーダーをつけたり、一体型だけれど左右分離型のような配置のキーボードとか作りたいですね…。
最後までお読みいただきありがとうございました。年末年始のおともにキーボード作り、いかがでしょうか。