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 (extension keypad (numpad etc.) )

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

とはいえキーボード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キー版を作った時にテンキーとして接続出来るようTRRSコネクタ接続に対応します。

設計・部品選定

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

基板

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

回路図

img

 ProMicroのピンからスイッチとLEDの接続、電源ラインを取り出して接続。あとは遊んだりテストする用の端子をいくつか出しています。

PCB

img

 キースイッチのフットプリント、LEDのフットプリント、ダイオードのフットプリントを収めて配線するのですがなかなか難しい…この辺はお試しレベルと割り切ってちょっとぐちゃっとしてしまいました。次はもう少しキレイになるように検討したいところです。
 OLEDとProMicroの配置をHelixやcrkbdみたいに縦に配置するか、Ergo42みたいに横に配置するか悩みましたが今回は縦にしてみました。ちゃんと使えるなと思ったら次に作るときは横でやっても良いかな。横にすると10cm x 10cmに収まって基板製作費がめちゃ安くなります。

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

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

フレーム

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

img

 ケガしないよう角をほんの少し丸めてネジ穴作って、トッププレートが出来たらコピーしてスイッチの穴を消してボトムプレートを作り、OLED保護プレートを作りました。
 ちなみにネジ穴はM2なら2mmよりほんの少し広げておきましょう。

ネジ類

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

パーツ発注

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

To be continued

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

Back to Top