キーボードをなるべく薄くするためPCBAを選択
自作したキーボードの「ThumbShift2」は、キー配列や機能はよくできていると感じる。しかしもう少し薄くしたい。

ThumbShift2が厚い原因はマイコンのRP2040-Zeroである。これは基板の両面に部品が実装されている上に、USB端子は基板の上にそのまま載っている。リセットボタンやBOOTボタンがあるから、Pro Microのようにマイコンを裏返して実装することもできない。
- RP2040-Zero(写真中央)
-

ThumbShift2ビルドガイド
キーボードのメイン基板にマイコンを載せるのをやめて、マイコンを構成している部品を直接メイン基板に実装すれば、マイコンの厚みを考慮せずにすむ。その際にUSB端子をミッドマウントタイプ(基板をコの字にくり抜き、そこにコネクタを沈めるように実装する方法)にすれば、実装後の基板の厚みはUSBコネクタの厚みと同じになる。計算すると、ThumbShift2と比べて約5ミリ薄くできるとわかった。今の構造では限界の薄さだろう。これで作ってみよう。
マイコンを使わないとなると、マイコン上に細かく載っているたくさんの部品を全部メイン基板上に自分で配置、配線しなければならない。これを手はんだするのはとても無理なのでPCBAを依頼したい。PCBAとは、KiCadで設計した基板を発注する際、どの部品をどこに置くかの指示書も送って、その通りに部品をはんだ付けしてもらうサービスである。
RP2040を直接実装する基板の作成
これまでキーボードを2つ設計してきたものの、電子工作にはまったくうとい。自作キーボードの設計は、並べたスイッチをキーボードとして使えるようにする部分をマイコンにおまかせすれば電子工作としては簡単な方だ。今回はマイコンの部分も自分でメイン基板上に配置、配線しなければならない。
幸い、先人のサンプルがいろいろある。おもに以下を参考にして基板を設計した。
そしてSelf-made Keyboards In Japanやサリチル酸さんのDiscordでいろいろ質問したくさん指摘され、おかげさまでこれなら多分大丈夫だろうというところまで完成度を上げることができた。本当にありがとうございました。
- 回路図

- 配線図

こことここは配線をなるべく短くとか、この線とこの線はできる限り同じ長さで並べて配線する(USB_D+とD-のペア、差動ペアという)などのルールがいろいろあった。スイッチソケットのパッド周囲にビアを打ってあるのは、こうするとパッドがはがれにくくなると聞いたため。
RP2040周辺の配線はすごい密度で、完成図を見ると自分でもよくこんなにできたなと思う。

参考にした回路図をもとに、RP2040の各ピンから少しずつ配線を伸ばすようにしていたらできた。コツは、ここはどうしてもこう配線せざるを得ないというピンからまず配線を伸ばすことだと感じた。大幅な手戻りが発生しなかったのは運がよかった。配線は時に難しいが、パズルみたいで楽しくもある。
部品の配置の際には部品の表/裏にも注意する。裏に配置する部品であっても「フットプリントのプロパティ」で「面」が「表面」になっていると、PCBAの際には表側のフットプリントと判断され部品が配置されない。

裏側に配置する部品は、表側に配置されたフットプリントを「F」キーで裏側に移動させたときに表裏が正しくなるようにする。今回はダイオードのフットプリントを裏返しにしたのを自分で作った。

また、LED(SK6812MINI-E)はJLCPCBでは「Economic and Standard」だった(原稿執筆時。現在は「Standard Only」)が、今回はPCBAせず自分で手はんだすることになった。というのはMSL(Moisture Sensitivity Level、湿度感度レベル)がレベル5だったから。

MSLが高いとはんだリフローの前にベーキングが必要となり、ベーキングするとエコノミックPCBAではなく標準PCBAになる。するとPCBAの基本料金だけで5,000円くらい高くなる。JLCPCBからは「1.ベーキングする(標準PCBAになる)」「2.ほかの部品を選ぶ」「3.発注者の責任でかまわずPCBAする」という選択肢が示された。SK6812MINI-Eなら自分ではんだ付けできる。部品を実装しないよう依頼した。
USBコネクタの電源線のビア(下の画像中央の4つの円)は、これ以上小さくしてお互い近づけると基板の製造時に追加の技術料が数千円発生する。

それから差動ペアの配線長は「7」キー(「配線」-「単線の長さを調整」)で測定しつつ調整する。このとき、測定する配線が端から端まで正しく測定されているかをよく確認する。配線の余分な切れ端が残っていたりすると、配線長を正しく測定できなくなることがある。
下の画像では、USB_D+とUSB_D-の長さは測定するとほぼ同じだが、よく見るとUSB_D+はビアの手前まで、USB_D-はビアの先の赤い配線まで測定している。これでは配線長の差を正しく測定できない。

配線を修正した結果、USB_D+とUSB_D-のいずれも、ビアまでの配線長を測定している。この状態で配線長がほぼ同じになるようにする。

差動ペアをこんなに長くするなんてとかいろいろありましょうが、USBコネクタとRP2040はそれぞれここに置きたい。ひとまずこれで完成とした。
PCBAの発注がとても簡単になっていた
基板の設計ができたら発注である。PCBAのための具体的な操作はこちらがとても詳しい。
PCBAの発注には、KiCadが「KiCad official repository」に入れているプラグイン「Fabrication Toolkit」を使う。

ツールバーの端に追加されたアイコンをクリックし、そのまま「Generate」をクリックすれば「Production」フォルダにガーバーファイル(プロジェクト名.zip)、BOMファイル(bom.csv)、CPLファイル(positions.csv)が作られる。

「Production」というフォルダ名は変えられず、出力し直すたびにフォルダ内のファイルは警告なく上書きされる。なのでメイン基板のデータに続けてスイッチプレートやボトムプレートのデータを出力するなら、フォルダ名の「Production」を「Produciton_main」「Production_top」などに変更していくとよい。
さて、JLCPCBの「発注する」(https://cart.jlcpcb.com/jp/quote/)からガーバーファイルをアップロードしたらPCBAを指定し、「次へ」をクリックすると基板のプレビューが出る。

上の画像では左下のシルクが反転している(基板の向かって裏側に刻印されるシルクがこちら側に見えている)が、この段階ではこういうことはよくあるので気にせず「次へ」。「部品表」のセクションへ移動する。
KiCadで各部品の「Value」(数値)をちゃんと指定しておけば、発注時にJLCPCB側がある程度自動的に選んでくれる。PCBAの発注というと以前読んだ記事では、KiCadから部品表と部品配置ファイルをエクスポートしてそれを表計算ソフトで編集して…みたいな手順だったけれどそれはもう不要。それどころか上の記事によると、回路図エディタのシンボルフィールドテーブルに「LCSC」などの列を作って、自分でhttps://jlcpcb.com/partsから部品を探して部品番号を入れて…みたいな手順も必要ないそうだ。
今回は上の記事を知る前に自分で部品番号を入れた。次回は部品選びをJLCPCBにやってもらおう。いずれにしても正しい部品かどうかしっかりチェックする。標準PCBAにならず、エコノミーPCBAでおさまるように。
「部品表」に続く「コンポーネントの配置」では基板に部品が載った状態のプレビューが出る。ここでは部品の向きをよく確認する。右の部品一覧をクリックすると、該当の部品が選択される。

向きが違っていたら、スペースキーを押すと部品が反時計回りに90度ずつ回転する。(ここではLEDを回転させているが、最終的に前述の通り実装しないことになった)

ここでは基板が3D表示されていてぐるぐる回せる。USBコネクタがミッドマウントになっていることも確認できる。

「次へ」をクリックし、カートに保存したらほかの基板(ThumbShiftの場合スイッチプレートやボトムプレート)のデータも「発注する」からアップロードしてカートへ入れる。カートから発注する基板を選び(たいてい全部)、「安全な決済」ボタンをクリックして送り先や支払い方法を選択すれば発注は完了である。
今回は進捗状況が「All orders have been reviewed, waiting for engineers to produce the manufacturing data.」になってから動きが止まってしまった。数日待ってチャットで問い合わせたところ、メールを送っていてこちらの返事待ちだという。おかしい。メールは受信トレイはもちろん、迷惑メールフォルダやゴミ箱にも届いていなかった。謎である。メールを再送してもらった。それが上述のLEDに関する問い合わせで、「LEDは実装しません」と送ったらすぐに製造が始まった。
基板が届いて組み立て
パソコンの画面では拡大して見るが、届いた基板だとマイコンまわりはとても細かい。そしてちゃんと実装されている。はず。

ミッドマウントのUSBコネクタもちゃんとついている。いいですね。

組み立てたらこうなった。薄い。

奥が今使っているThumbShift2で、手前が今回作ったキーボード。ボトムプレートからスイッチプレートまでの距離が9ミリから4ミリになった。5ミリの差は大きい。

このキーボードはThumbShift3と名付けよう。これでエンドゲームとし、キーボードの設計は最後にするつもり。
実はファームウェアの書き方を1行間違えていて、当初キーが全部反応しなかった。またしてもDiscordで質問して指摘してもらった。助かりました。
ThumbShift3は
BOOTHや来年3月28日の
キーケットで販売する予定です。来年2月8日の
天キーにも持って行きます。BOOTHには今使っているThumbShift2や、旧モデルのThumbShift5-15tbもあります。どうぞご覧ください。
明日はtakashicompanyさんの記事です。内容は「書く」とのことで、何が出てくるでしょうか。
この記事はThumbShift2で書きました。