キーボードを作ってみたらハマった話

 

VOYAGE GROUP Techlog Advent Calendar 2020 - Adventar 21日目の記事です。

 

 

みなさん!キーボード、自作してますか?

自作とか難しそうって最初は思うんですが、やってみたら作るのは簡単でした。

何事も走り出すまでが大変だよね!

 

沼の入り口

自分の場合、まずは既存のキーボードに近い形状で分割されていると嬉しいなー。ついでにハンダ付けも少なめだといいなぁーって言うことで7sProを作成しました。

7sPro | 遊舎工房

7sPro

 

キーが左右に分割されていると、肩を自然に開いた状態でキーボードを使うようになります。1日の終わりに目に見えて肩が楽!キーキャップも選べて楽しい!沼に浸かるのはあっという間でした。キーマップもちょっとづつ調整してだいぶ馴染んできて、自作キーボードの情報も初期の頃よりだいぶ集まってきました。

使い込むうちに、もうちょっと自作キーボードならではの体験を追求したくなってくるのが世の常。そんなタイミングで丁度ショップに在庫が入ったのがcorne light v2でした。

Corne Cherry Light | 遊舎工房

corne light v2

 

corne light v2は配列が自然な指のポジションに合うようにカスタマイズされていて、ほぼ全てのキーをホームポジションから大きく手を動かさずに打鍵できる。これは思ったより快適でした。一方でキーの数はちょっと足りなく感じました。親指キーがせめてもう一つ。あと、Enterはやっぱりいつもの場所にいて欲しい。

良さと足りなさが見えてきたぐらいのタイミングで、キーごとに分割できる基板に出会ってしまいました。

SU120 自作キーボード用基板(テンキーセット) | TALP KEYBOARD | 自...

 

自分の指のサイズと可動域を考えながらテープで貼り合わせて大体の位置を決めて、ネジ止めのしやすそうな位置に微調整したりを繰り返してプロトタイプを作成します。一応ちゃんとつかえるキーボードになるはずだったので、配線のハンダ付けまで進めたんですが、いろいろ不満点も出てきます。スイッチの接続がちょっと緩かったのでトッププレートを作らないとなーとか、ちょっとガタガタしているなーとか、ケーブルの位置は調整できないかなーとか。

試行錯誤

トッププレート、やっぱり必要かー。アクリル高いし基板でプレート作るかなー。あーでもやったことないしなー。とりあえず、調べるだけ調べてみよう。

 

設計方法を調査する

と言うわけで、何を調べたかです。電子工作はほとんど経験がなく、ハンダ付けは数回したことがあるぐらいの人が、まず網羅的に情報を得たい時どうするか。

 

参考本

この界隈には素晴らしいガイドがあります。実は読むだけで簡単なキーボードなら作れてしまいます。

自作キーボード設計入門(電子版) - Pastry Keyboard - BOOTH

さらに詳しく知りたい場合は続編もあります。

自作キーボード設計入門2(電子版) - Pastry Keyboard - BOOTH

 

ソースコード

CADのデータファイルを公開している先駆者の方がいます。回路図の作り方、回路図を元にした基板データが見れるので、図から本物になるときにどんな風に繋がるのかがよくわかります。自分の場合はこの辺から探してKiCADのプロジェクトがあるリポジトリをダウンロードして参照させてもらっていました。

Search · keyboard · GitHub

特にcorneシリーズは作りたいキーボードに近かったのでとても参考になりました。上で紹介した自作キーボード設計入門の著者の方です。

GitHub - foostan/crkbd: Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.

 

インターネットの情報

PCBの製造をしている業者のサイトに、基板を設計する上で注意すべきことが載っています。一回配線してからみると理解が進みやすいかもしれないです。

ノイズ対策.COM|プリント基板の回路設計者・開発者のための技術サイト

国内のPCB製造業のサイトには大抵設計のヒントが書かれていたりするので、一通り探してみると参考になると思います。

プリント基板データ制作・管理ノウハウ | プリント基板ネット通販P板.com

 

wiki

ここを見ればだいたい用語とか網羅されてます。

Self-Made Keyboards in Japan

 

Discordのサポートチャンネル

できれば何がわかってないのかが理解できるぐらいまでの知識はもってから質問しに行きたい。でもみんな親切です。かなり丁寧に教えてくれます。

Self-Made Keyboards in Japan Discord Server を開設した話 - たのしい人生

 

ソフトウェア

使ったソフトはKiCadです。まずはチュートリアルをやって操作方法を覚えました。ちょっと独特だったけど、大丈夫。慣れます。

KiCad EDA - Schematic Capture & PCB Design Software

 

コンセプトを固める

さて、だいたい基礎的な知識は調べました。あとはやりながら覚えてくってことで、作りたいキーボードのコンセプトを固めます。

  • なるべくホームポジションに近いキーで使えるように、40%キーボードがベース。
  • 分割式。肩が楽だから。
  • EnterとバックスペースはノートPC内蔵に近い位置で使えるように追加する。
  • カーソルキーはいらないような気がするけど、集中して使いたいときはあるので追加する。
  • 親指列は4キーほしいと思ってたけど、レイヤー移動のキーとスペースキーは分けたい。じゃあ、5キーかな。
  • なるべく特殊キーキャップを使わず組めるようにしたい。ので、バックスペース、タブ、Caps(Ctrl)キーは標準サイズをつかう。Shiftは短いのがセットに含まれていることが多いのでCapsと同じサイズにする。Enterはスペース的に諦める。。なんかArtisanでも使うと良いよ。。。
  • 光らせたい。バックライトも、アンダーグローも、光りたい。
  • OLED付けたい。初期の動作チェックが単体でできるのはとても便利。

コンセプト通りにキーを足し引きした結果、51キーのキーボードになりました。形状が車のサスペンションぽいのでWishbone51と命名しました。色々追加キーがあるので左右非対称です。イメージを固めたら、作っていきましょう。

 

実践する

回路図はこんな感じの出来上がりです。

回路図

回路図

回路図の作成はすごい簡単でした。恐らくですが、キーボードは電子回路としてはとても単純です。たくさんあるスイッチと、逆流防止のためのダイオードマイコンとして使うArduino互換のpro micro。それぞれを格子状につなげばOKです。ガイド本にも詳しく仕組みが説明されています。今回はやりたいこと盛りだくさんなので、OLEDもバックライトもアンダーグローライトも足しました。分割キーボードにしたいのでそのための信号線、ジャックも回路図に用意しました。一応全部まっさらな状態からやりましたが、内容としてはガイド本通りの回路図とか先駆者のソースコードから参照できる回路図を参考にすればすぐできます。

 

回路図が固まったら、次は基板です。基板の設計は、基板の形を決め、回路図を元に対応する部品の位置を決めていきます。まずは部品をプロトタイプのサイズを測ったりしながら配置して、部品に沿って外形を決めます。キーの配置と外形の設定が終わるとだいたいの形が見えてきてテンションが上がります。

配置を決める

キーに沿ってバックライトやダイオードを配置するのに、pythonで簡単なスクリプトを作りました。たくさんあるキーの周辺、適切な位置に部品を配置していくのが手作業だとめんどくさすぎる。。。コードでできると随分と楽でした。

次は部品に配線をしていく作業です。よく使われるのは2層基板。面と裏を使って配線していきます。意外と適当に線を引くと、線をまたいで配線したい時に困ることになります。なるべく面裏を用途で揃えて、距離があんまり長くならないように、電気の流れが悪いところができないように。ちょっとしたパズルみたいで結構楽しかったです。

実は自動で配線するツールもあるのですが、今回は全部を手で配線しました。配線間隔とか角度を調整する方法とか手探りだったので。

ここで何か間違えてると最悪の場合せっかくの基板がゴミになってしまうので、結構慎重に確認しました。紙に実物大で印刷してサイズ感を確かめてみたり、線の細かい調整をしながら接続ミスがないかを確認したり。

そして、トッププレートも外形をコピーしてスイッチ穴を配置していって……

配線してトッププレート

日を置いて確認し直して納得したら、いよいよ業者に発注します。業者は思ったよりもいっぱい選択肢があります。Wikiにいい比較のまとめがあるんですが、今回はガイド本に従って品質重視の業者にしました。出力ファイルを発注用に準備して、WEBからアカウント作成して出力ファイルを登録してあとは待つだけ。と思ったらデータ確認でメールが来たりして、待つこと約1週間。発注した基板が到着です。

加工が終わると写真で連絡してくれる

基板発注後の待ち時間にアクリルカット用のデータを作ります。今回はアンダーグローライトをつけるので、半透明のアクリル板で導光したいですし、OLEDにはカバーが必要です。なので、バックパネルとカバー用のデータを基板の外形に沿って作りました。アクリルカットサービスはだいたいの場合Ai形式かPDFでの受付です。今回はiPadで作業できたら楽だなと思ったのでAffinity Designというベクターグラフィックソフトを使いました。が、データの作成は結局PCで全部済ませました。こちらは国内で作業してもらえるのでだいたい3~4日ぐらい。あとから調べたら基板を発注した業者に頼むこともできたみたいでした。

 

あとはダイオードとかソケットとかキースイッチとかキャップとか、細々とした部品を揃えたらいよいよ組み立てです。今回は全部ハンダ付けしていきます。

組み立て

部品入手先は参考になる記事がまとめられています。海外通販が安いですが、到着までは結構待つ。

自作キーボードの入手先をまとめるよ! - 自作キーボード温泉街の歩き方

【自作キーボード】パーツ&キーキャップ通販サイトまとめてみた【部品】 | F.KEYHACK

 

そんなわけで無事自作のキーボードを完成させました。

wishbone51

めちゃめちゃかっこいいですね(自画自賛

 

終わりに

結構苦労して調べたので実際にものになると愛着がわきますね。早速使ってますがとても便利なんですが、改善点もまた幾らか見えてきました。

  • k: だいたい欲しいキーは網羅されているので使い勝手がすごく良い
  • k: 光る。テンションが上がるのが一つあるのと、PCに繋がってるかどうか確認しやすい
  • k: 肩こりが改善された
  • k: キーキャップが好み
  • k: ルブをしたので比較的静か
  • p: ケーブルの位置、やっぱりしっくりこない
  • p: アンダーグローライトが綺麗に導光できてない
  • p: キーの種類によっては行が揃ってないと高さが違うキーになったりするので調整したい
  • p: 最下段に追加したキーが時々誤入力されるので低くしたい

次へのTryはこんな感じにしました。

  • カーソルキー周辺はロープロスイッチを使えるようにトッププレートを分割
  • 使えるキーキャップの選択肢を増やすため、バックスペースはHHKBで使われているサイズに変更する。
  • アンダーグローの位置を親指キーの下に移動する
  • 左右の接続ケーブルをUSBと平行になる位置に移動する

 

Tryを実践したキーボードは今週末ぐらいまでには到着予定です。

ということでキーボードを作った話でした。