ねこみみどーらくblog

nekomimistのよしなしごと

自作キーボードを作った話(自設計キーボード編)

この話の続き。

nekomimist.hatenablog.com

SU120版のちょっとした不満点

アクリルのトップ・ボトム両プレートを作って使用感よくなったため、Ergo Dashを予備役にまわしてnekonos0を楽しく使っていたのだが、いくつか不満点があった。

キースイッチが外れやすい

MX互換キーは1.5mm厚のプレートに対して爪がひっかかるようになっている。しかしアクリルキャスト材は2mmからなので爪がひっかからない。今まで作ったことがあるHelixErgo Dashもアクリルプレートだが1、これらはソケットではなく基板にスイッチを半田づけする構造なので、大きな問題は生じなかった。

しかし、Kailhソケットでスイッチを固定するSU120で作られたnekonos0では、アクリルプレートにキースイッチの爪がひっかかっていないため、キーキャップを変えようとするとスイッチも必ず抜ける。これは、次の問題との組み合わせによってたいへんストレスになった。

親指まわりのキーとプレートの位置関係の問題

そもそもトッププレートはnekonos1用に設計したものを手直ししただけなので、SU120のビスケットを適当に現物合わせしたnekonos0用の親指まわりとは微妙に位置が合っていない。ビスケットを調整してなんとかスイッチが嵌るようにはしているのだが、位置合わせがシビアである。

それで何が起こるかというと、キースイッチの端子がKailhソケットを捉えそこねて曲がってしまうのである。実につらい。

前述の問題が原因でキースイッチが外れやすく、この問題が原因でキースイッチが嵌めづらい。これはキーキャップを試行錯誤する過程において非常につらい。

Pro Micro下のプレート形状がいまいち

nekonos0のボトムプレートのPro Microのあるあたりが横に広くてスマートさが足りない。nekonos0のボトムプレートはnekonos1のPCBと同じ形状なので、つまりはnekonos1の基板形状が悪い。

ここは目に入りやすいところなので最初気になった。まあすぐに慣れたのでそこまで致命的ではないかも。

アンダーグローがいまいち

nekonos0はボトムプレートをクリア赤アクリルにした。これはこれでわりとカッコいいのだが、せっかくアンダーグロー用のLEDテープをつけても赤にしか見えない上に暗くて映えなかった。

下を赤くしたいならば、赤のアクリルではなく、クリアアクリルに赤いアンダーグローでいいのではないか。

折角基板設計したのに作らないなんてとんでもない

最大の不満はこれで、nekonos1の基板は99%設計終わっていたし、プレートも90%設計が終わっていたのである。これを作らないなんて組み込みエンジニアとしては耐えられない。

nekonos1を作ることにした

というわけでnekonos1は上記の課題を解消する目的で、実際に基板を起こすことにした。そのため、nekonos0の完成後に下記の部分に手を入れた。

  • Pro Microのあたりをすっきりさせる
  • プレートをPCBプレートにしてキースイッチを抜けづらくする 2

  • ボトムはクリアのアクリルで作る

回路と基板設計

KiCadを利用した。ほぼ全面的にfoostan氏の自作キーボード設計入門の3章の記述通りにやった。KiCadのバージョンがたぶん違うのと、undergrow用のLEDテープのfootprintにちょっと悩んだくらいだろうか。

まずEeschemaで回路図を書く。泥くさいところは全部Pro Microに任せているおかげで、単純なキーマトリックス回路そのものであり悩むことはない。エンジニアならサルレベルでも書けるに違いない。

f:id:nekomimist:20201227141053j:plain
回路図

あとは個々の部品にフットプリントを設定して、PCBnewでフットプリントを望む形に配置した。概ね前述のfoostan氏の本の通りにやって概ね問題なかった。

キースイッチの配置はPCBnewで完結させるのは難しそうだったので下記手順で行った。

  • Keyboaed Layout EditorのRaw DataをPlate & Case Builderに食わせてSVGを出力する。
  • このSVGInkscapeで開いて基板外形を書き込んでからSVG3とDXFにセーブする。
  • このDXFをKiCadのPCBnewでEdge.Cutsにimportする。原点は気合で合わせる。
  • キースイッチのフットプリントをimportした絵に合わせて配置する。
  • Edge.Cutsからキーボード穴を消す。

もっといい手があったかもしれない。

f:id:nekomimist:20201227141710j:plain
PCB (GNDベタ消し状態)

あとは気合で配置と配線をしていけばOK。Freeroutingによる自動配線はあまり美しくなかったので、Pro Microまわりの一部を残して手で配線した後にのみ利用した。ちなみにこれはこれで十分な配線スペースがないとFreeroutingがギブアップするので注意が必要だろう。

トッププレート

PCBプレートなのでこれもPCBnewで作る。

先程作った基板外形+キー穴のSVGをトッププレートの形に整形する。nekonos1はPro Micro部分だけ高さが違うので切り離す必要がある。まあ、しかし、特に難しい事はない。Pro Micro分のデザインを2種類考えてたのでPro Micro部のカバーが2コあるくらいか?

f:id:nekomimist:20201227144740j:plain
トッププレート

Pro Micro部にロゴが欲しかったので、これはAffinity DesignerでSVGを作って、InkscapeでDXFにしてフットプリントを登録してトッププレートにはりつけた。

f:id:nekomimist:20201227230346j:plain
ロゴのフットプリント

ロゴは金にしたかったけど、それだけのために高いENIG(金メッキ)にする気はなかったので、HASL(有鉛半田レベラー)の結果として銀っぽい色になった。

このへんの処理はサリチル酸さんのブログ記事e3w2qさんのブログ記事を少し参考にした。

ボトムプレート

アクリルプレートなのでPCBnewではなくInkscapeを使う。といっても、メインPCBの時に作った基板外形+キー穴のSVGからキー穴を削ってネジ穴を追加するだけでOK。今回はついでにPro Micro部カバーのPCBの上に載せるパーツも入れた。

遊舎工房さんとか、工房Emerge+さんに依頼するなら、それぞれのルールに合わせてデータを作る必要があるが、今回は基板といっしょにElecrowに製造依頼する予定だったので、本当に線で描いただけで終わった。

f:id:nekomimist:20201227145450j:plain
ボトムプレートとPro Micro部の飾りパネル

Elecrowに製造依頼する

メイン基板とトッププレートのデータはPCBnewでガーバーデータを生成した。これもfoostan氏の本のほぼその通りにやったはずだが、一部ググったかもしれない。

ボトムプレートはSVGデータと寸法説明用のPDFを同梱してZIPにまとめるだけでOK。あとはElecrowのアカウントを作り、さきほどの3点のZIPをそれぞれ基板製造の見積りページアクリルカットの見積りページから入力してカートに入れて、注文しておしまい。支払いはPayPalが使える。

1日ほどでin productionにステータスが変わり、1週間後くらいに「発送した」というメールが基板とアクリルプレートの写真と共に届いた。その後2日くらいで荷物が到着した。

組み立て

自分で設計したキーボードなので悩まずにぱぱっと組める。

M2ネジとスペーサーはSU120版を作ったときに買ったものを利用した。実は追加でAliExpressで注文していたのだが、届かなかった。

あとのパーツはこのへん↓だが、細々と他のものを買うついでに遊舎工房やTALP KEYBOARDで買ったいたものを使った。

アンダーグロー用のLEDテープはHelixから剥がした。まあこれも遊舎工房で買える。

完成状態はこちら。

ちなみに、キーキャップ・キースイッチ・ケーブルは下記の通り。

とりあえず当初の目標は全て達成できたと思う。


  1. Helixが2mm、Ergo Dashは3mmのアクリル。

  2. PCBプレートは1.6mm厚が標準。スイッチの爪はぎりぎりひっかかる

  3. SVGは後でトッププレートとボトムプレートを作るのに使う。