Picture

Hi, I'm marksard.

Joy of making, Smile be making, Interest and making.

PCBから自作キーボードを作りたい(設計編)

基板を作ろう

 Twitterで自作キーボード界隈の濃い方々をフォローしていると次々と新作の自作キーボードやら自作キーキャップやら自作ケーブルやらが完成していったり次々と機材を投入しててなにか作ってるし自分もなにか作ってみようかなという気分にさせて非常に危険。ということで私は基板作成をやってみることにしました。

要求仕様(Phase2:最終目標)

  • Ortholinear 48keys (4rows x 12columns)
  • Supports Hotswap MX keyswitch
  • Supports Full color LEDs per switch. and underglow LEDs
  • Supports TRRS communication (Helix / Crkbd compatible)
  • Supports extension keypad (numpad etc.)

 フルカラーLEDがキーごとにピカピカ光るホットスワップ対応48キーOrtholinearキーボードが欲しいです。
 誰か作って出してくれてもGBとかだと時間かかるだろうし海外だといいお値段だろうなと思ったので自分で作ります。(自分で作ると高くつくけど待ってるよりは早く入手できるはず)
 加えてTRRSケーブルでつなぐテンキーがあると独自性もあり欲しみが深くなると思いました。(MiniVan & Roadkitみたいな感じをイメージ)

とはいえキーボードPCB自作初心者ですし

 上記要件を一発で作れるの?という懸念。いきなりデカいの作って失敗してPCB無駄にするのはもったいない。なので上のヤツはPhase2にして、テンキーをPhase1として作ってみることにしました。

要求仕様(Phase1:今回作るもの)

  • Ortholinear 20keys (4rows x 5columns)
  • Supports Hotswap MX keyswitch
  • Supports Full color LEDs per switch. and underglow LEDs
  • Supports TRRS communication (Helix / Crkbd compatible)

 コンセプトは
「ピカピカ光ってホットスワップな動くスイッチテスター」
です。

 学習・試作・検証・実用を兼ねるのでお安く作れるようにします。
 PCBの発注は基板の大きさで値段が決まってそれを最低5枚から発注可、という感じなのでキー数を減らして基板サイズを削減します。
 20キー、4行5列にしたのはテンキーとして使うにも演算子やモデファイアキーやレイヤー移動キーを配置したいなと思ったのと、二枚組み合わせて使うことも想定しました。2枚合わせると40キーになり、48キーの両端一列をカットしたキーマップを試しに考えてみたらギリギリ使えそうな感じです。
 2枚の基板を別々に製造するのはもったいないので、リバーシブルで使える基板にします。
 ホットスワップ対応とバックライトLEDはPCBでの配線の取り回しに慣れたいので盛り込みます。
 二枚組み合わせることと48キー版を作った時にテンキーとして接続出来るよう、helixなどと互換のあるTRRSコネクタ接続に対応します。互換性はなくても良いのですが、キーマップを書けば後々Helixにつないで遊んでみるとかも出来るかなと思ったりしています。

設計・部品選定

 部品選定、回路設計、PCB設計は時折相互に見直しながら決定していきます。
 要求仕様からも見える通り、HelixやCrkbdの影響大で決めたところがあるので、それらの資料を参考にして作っていきます。

基板

 KiCadというツールを使います。回路図作成、PCB作成、PCB発注用のガーバーデータ作成までデータを連携させて使えます。(これで回路シミュレーターついてたら最強ですが)
 まずKiCadで雑に基板を作るチュートリアルで簡単な回路とPCBを作ってみて、そのあと改めてKiCad 5.0入門実習テキスト『KiCad Basics for 5.0で再学習しました。後者はキーボードショートカットやfreerouterの使い方まで書かれていて即戦力になりました。
 それからキースイッチとダイオードの接続や、それらのProMicroへの接続がなぜこうなっているのかはゆかりさんのオリジナルキーボードを使ってみるが超良記事ですので目を通しておくと捗ります。ねこでも作れる!オリジナルキーボードもおすすめです。

回路図

img

 全部Pro Microまかせの構成なのでほぼスイッチとLEDの接続だけ。あとは遊んだりテストする用の端子をいくつか出しています。

PCB

img

 デジタル回路設計についての知識が必要になってくるであろうMCU回りはProMicroに丸投げしているカタチなのであまり気にせず配線していきます。注:LEDの通信ラインはデジタル信号なので配慮が必要なようです(要出展)
 キースイッチのフットプリント、LEDのフットプリント、ダイオードのフットプリントを収めて配線するのですがなかなか難しい…この辺はお試しレベルと割り切ってちょっとぐちゃっとしてしまいました。次はもう少しキレイになるように検討したいところです。  OLEDとProMicroの配置をHelixやcrkbdみたいに縦に配置するか、Ergo42みたいに横に配置するか悩みましたが今回は縦にしてみました。ちゃんと使えるなと思ったら次に作るときは横でやっても良いかな。横にすると10cm x 10cmに収まって基板製作費がめちゃ安くなります。

 ProMicroのフットプリント周辺の配線だけfreerouterで配線させました。
 右下の余白に遊ぶ用のピンがあってゴチャゴチャしています…。

 名称はキーが20個なのでそれにちなみたいなと思ったんですが良いのを思い浮かばなくって、#ash2enty(HashTwenty->#20->20番)という超適当な充て文字で落ち着きました…

フレーム

 スイッチをはめるトッププレート、ボトムプレート、OLED保護プレートはアクリルをカットしたものを使います。
 キースイッチのはめる部分はCherryMXのデータシートから14mm角、スイッチ-スイッチの間隔はSelf-Made Keyboards in Japan - キーボードを設計するときに見るチートシートを観ると19mmぐらい、と書いてありますが、念のためにKeyboardLayoutEditorでレイアウトを作ってPlateCaseBuilderでプレート部分を作って、SVG出力したのをInkScapeというOSSのドローツールで開いてトレースしました。
 今回は全部1Uなので関係なかったですが、PlateCaseBuilderだと2Uとか使った時のスタビライザー用の穴も作ってくれるのでそれらを使う場合は便利だろうなと思います。

img

 ケガしないよう角をほんの少し丸めてネジ穴作って、トッププレートが出来たらコピーしてスイッチの穴を消してボトムプレートを作り、OLED保護プレートを作りました。

ネジ類

 Helixやcrkbdはトッププレートでキースイッチを保持して、キースイッチとハンダで結合されたPCBは吊り下げられた状態になっています。なのでこのままホットスワップ対応してしまうとスイッチの脱着時にトラブルを引き起こします(ex.スイッチがちゃんと刺さらないとか、スイッチのピンが曲がったりとか)。なのでPCBを下面から支えてスムースな脱着を行えるような仕組みが必要なのですが、今回はトッププレートとボトムプレートを接続するスペーサーに一回り大きいスペーサーを嵌め込んでPCBが落ち込まないように対策しました。
 スペーサーの高さはHelixと同じにしてみました。

パーツ発注

 基板はFusionPCBに、アクリルカットとキースイッチとLEDは游舎工房に、ネジ類はヒロスギネット、TRRSジャックとダイオード、リセットSWとOLED用のロープロファイルソケットは秋月にそれぞれ発注しました。

To be continued

 国内に発注した資材は全部届いたのですが、FusionPCBに9/16に発注した基板が届いてなくて、中国の中秋節と国慶節に被る時期に突入していているのでまだもう少しかかりそうです…

Back to Top