koktoh の雑記帳

気ままに書いていきます

自作キーボード用の KiCad フットプリントライブラリを作った

はじめに

KiCad 用フットプリントライブラリをつくりました。

その紹介と説明をします。

画像がいっぱいなので重いかもしれないけど、耐え忍んでください。

公開場所

github.com

使い方

前提

  • git が使えること

わからない場合は、頑張ってググってください。

導入手順

リポジトリをクローン

以下のコマンドを実行。

git clone git@github.com:koktoh/BrownSugar_KBD_KiCad_Library.git

git submodule を初期化

以下のコマンドを実行。

git submodule init
git submodule update

KiCad にパスを登録

KiCad の 3D ビューで 3D モデルを表示するためにパスを登録します。

名前 パス
BROWNSUGAR_KBD_3DMOD [cloned directory]\BrownSugar_KBD.3D (例 C:\foo\bar\BrownSugar_KBD.3D)


ライブラリの説明

KiCad 5.x で作成しました。たぶん KiCad 6 以降でも使えるはずです。

MCU

シンボル

ProMicro, BLE Micro Pro, RP2040 のシンボルを用意しています。

なお、 RP2040 にはデフォルトフットプリントとして Package_DFN_QFN:QFN-56-1EP_7x7mm_P0.4mm_EP5.6x5.6mm_ThermalVias を登録しています。

フットプリント

ProMicro

正位置、シルク無し、裏返しを用意しています。
裏返しはピン番号も反転しているので、同じシンボルに紐づけても問題ありません。

スルーホールの穴径は、コンスルー推奨の Φ0.85mm にしています。

BLE Micro Pro

正位置、裏返しを用意しています。
ProMicro 同様、裏返しはピン番号も反転しているので、同じシンボルに紐づけても問題ありません。

スルーホールの穴径は、コンスルー推奨の Φ0.85mm にしています。

ピンのシルクはどうしようか迷いましたが、 ProMicro と共通とすることにしました。

3D モデル

ProMicro

おおむねの見た目を再現しました。
何気にコンスルーです。

部品のほとんどは公式のモデルを登録して位置調整しています。

BLE Micro Pro

こちらもおおむね再現しました。

ProMicro と同様公式のモデルをふんだんに使っています。

余談

コンスルーのモデルを作成するために仕様書を読んだんですが、どうやら窓がない方を半田付けする前提っぽいですね。

参考

製品ページ
仕様書

キースイッチ

シンボル

SW_PUSHfoostan さんのシンボルをお借りしました。

Rotary_Encoder_LED は、 KiCad 公式のものの改変です。
ほぼ、秋月で売っている LED付ロータリーエンコーダ (通販コード P-05762, P-05767, P-05768)専用ですね。
探せば他にも同じようなものはあると思いますが。

フットプリント

MX

solder と hotswap それぞれを用意しました。

大きさは以下のものがあります。

  • 1U
  • 1.25U
  • 1.5U
  • 1.75U
  • 2U
  • 2.25U
  • 2.5U
  • 2.75U
  • 3U
  • 6U
  • 6.25U
  • 7U
  • 8U
  • 9U
  • 9.75U
  • 10U
  • ISO Enter

ほぼ網羅してるでしょう。

Choc

V1, V2 両方があります。
Choc は 1U のみ です。

V1 は、 solder と hotswap があります。
また、 Choc V1 の hotswap はソケットの大きさが 1U ぎりぎりになるので、 1U からはみ出ないようにパッドを狭めたパターンも作りました。

hotswap 用フットプリントについて

パッドの四隅に貫通 via を配置することで剥がれにくくしました。(当社比)
正直、パッド剥がれに遭遇したことがないのでどれほど効果があるかはわかりませんが、強くなってることは確かだと思います。

3D モデル

ソケットと各種スイッチのモデルを用意しました。

MX は Silent Alpaca のみです。

Choc は有名どころは押さえているはずです。
デフォルトでは、 Choc V1 は Sunset Tactile 、 Choc V2 は Red を登録しています。
好みで変えたりしてください。

キーキャップ

MX 用のみです。

R1 ~ 4 と Convex, ISO Enter があります。
デフォルトではすべてのキーキャップを登録しているので、レイアウトに合わせて削除したりして調整してください。

3D 表示したときに干渉とかが確認できたらいいなぁと思って付けました。

更に詳しくはこちら。

koktoh.hatenablog.com

スタビライザー

フットプリント

見にくいですね……

MX PCB マウント、 MX プレートマウント、 Choc V1 用を用意しています。

サイズは以下です。

  • MX
    • 2U
    • 3U
    • 6U
    • 6.25U
    • 7U
    • 10U
  • Choc V1
    • 2U
    • 5.25U

3D モデル

それぞれの 3D モデル、あります。

PCB マウントにはデフォルトで Screw-in のモデルを登録しているので、 Snap-in にしたい場合は改めて登録してください。

ロータリーエンコーダ

フットプリント

例の水平方向ロータリーエンコーダも用意しました。

3D モデル

3D モデルもあるので安心してください。

EC11 には、互換品の BOURNS PEC12R シリーズを作りました。
高さは、データシートに載っているすべてを用意しています。

  • 15mm
  • 17.5mm
  • 20mm
  • 22.5mm
  • 25mm
  • 30mm

フットプリントにはデフォルトで 20mm のモデルを登録しています。
これも設計によって変更したりしてください。

LED

シンボル

これも使いそうなものを用意しました。
形で見分けがつくようにしています。

フットプリント

見た通りですね。

3D モデル

3D モデルもちゃんと作ってるので、完成のイメージがしやすいんじゃないでしょうか。

OLED

シンボル

モジュールとしての OLED と OLED ディスプレイ自体のシンボルを用意しました。
キーボード基板に直接実装したい奇特な人向けですね。

試しに作った時は、 CxN ピンに接続するチャージポンプ用キャパシタの容量を間違えたため少し暗くなってしまいました。
でも、それ以外は問題なく動きましたよ。

フットプリント

モジュールとディスプレイ単体があります。

モジュールのフットプリントは、フットプリントのローカル原点によって3種類作りました。

  • モジュールの中心
  • ディスプレイの中心
  • ピンの中心

設計してるときにそれぞれ欲しいなと思ったので。

ディスプレイ単体は、ディスプレイから生えてる FFC を半田付けする面で複数作っています。

  • top
    • PCB の表面、ディスプレイの真裏に半田付け
  • bottom
    • PCB に穴を開けて、裏面に半田付け
  • both
    • top と bottom 両対応(半田付け時に選択)

また、 Active Area と囲われている部分が、実際の 128 x 32 px の表示エリアです。

3D モデル

3D モデルもちゃんと作ってますよ。

フットプリントと同様に、実際の 128 x 32 px の表示エリアを水色で示しています。

モジュールのモデルは、ピンソケットとピンヘッダを使って接続する状態にしています。
たぶん、この方法が一番多いと思うので。

それぞれのモデルは独立しているので、別のモデルを登録したり削除したり位置調整をすることで、いろんな付け方に対応できると思います。

USB

フットプリント

実際に使ったりした USB のフットプリントです。

PCB Edge と書かれている線に沿って外形線を引いてください。

3D モデル

USB Micro-B のプラグは生産終了予定らしいので、 3D モデルは作りませんでした。

スイッチ系

フットプリント

独断と偏見で、使われがちと判断したスイッチを用意しました。

3D モデル

3D モデルもあるね(確認)

その他

その他もろもろのシンボルとかをまとめて。

シンボル

ESD 対策用のチップとかのシンボルです。

MarkStabilizer は好きに使ってください。シルクアートのフットプリント用とか。

フットプリント

ボタン電池と TRRS ですね。

3D モデル

3D モデルもあるので、干渉確認とかに使ってください。

おわりに

説明になってましたかね。

一仕事終えたって感じです。

3D モデルは独立したリポジトリに置いて、キースイッチなどと同様 submodule で参照するようにしたいです。
まあ、しばらくはいじらないでしょうが。

なんかおかしいとか、このフットプリントが欲しいとかあったら、 Issue 立てたり、プルリクしたりしてください。
お前のプルリク待ってるぜ!!

頑張ったので差し入れください(直球) www.amazon.jp