⌨️

Kailh MX Socket と ALPS EC11/12 兼用フットプリントを作る

2021/12/01に公開

この記事は キーボード #2 Advent Calendar 2021 1日目の記事です.

この記事では Kailh MX Socket と ALPS EC11/EC12 兼用のフットプリントを作った手順について述べます.フットプリントは Rhinoceros で製図したものを Grasshopper でポリラインの頂点座標に変換し,最後にテキストエディタで直接 KiCad のフットプリントを編集して作成しました.

はじめに

自作キーボードという趣味が人口に膾炙して久しいですが,スイッチを PCB にはんだづけする行為は依然として初心者にはとっつきづらいものです.はんだづけの難しさに加え,高いものでは1つ100円を超えるキースイッチという部品を PCB にはんだづけしてしまうことには心理的抵抗も大きいでしょう.さらに,一度はんだづけしたスイッチを取り外すには特殊な工具[1]が必要です.これらの問題を解決するため,スイッチのかわりにソケットとよばれる部品を PCB に取り付け,スイッチを交換可能にしたキーボードが最近では多くなりました.

一方で,最近ではキーボードにロータリーエンコーダを取り付けるのが流行っています.最もよく使われるスイッチの固定穴は 14 mm 角ですが,アルプス電機の EC11, EC12 シリーズは本体がこの穴より小さく,筐体の設計を変更せずにキースイッチのかわりに取り付けられるため自作キーボード界でよく使われています.

問題は,ソケットとロータリーエンコーダを両立したフットプリント[2]があまりないことです.後述するようにフットプリント的に無理があるというのが最も大きな理由でしょう.本稿では,このフットプリントを安価な PCB プロトタイプ業者が作ってくれる範囲内でなんとか実現してみたことについて書きます.なお,一般的な PCB の製造基準から外れているフットプリントなので,このフットプリントを使用してもファブから製造を拒否される可能性はあります.

完成したフットプリント

完成したフットプリントは GitHub にアップロードしてあります.

手順

緩められる条件を把握する

今回は少数だけ生産する自作キーボードを対象とするので,生産と組立をスケールさせる必要がありません.さらに,自作キーボード界では穴の配置の治安が悪めですが,自作キーボードはすっかりポピュラーな趣味になったので業者もそれを織り込んでくれていることを期待します.したがって,以下のようなことができます.

  • 部品の足をユーザがいい感じに曲げてくれることを許容する
  • 業者の spec のうち,穴の配置間隔を守らない
  • 手はんだで接合できれば良いものとする(リフローを考慮しない)

フットプリントを製図する

ALPS EC11 と EC12 の爪が入る穴の寸法を,データシートや試作を通して把握します.赤と青緑の線はデータシートの数字から作図した MP (メカニカルパッド.この場合は基板取付用の爪)の外形線です.外側にある円はそれらがうまくおさまる穴です.

青色の線は Kailh ソケットの満たすべき条件です.オレンジ色の線は銅箔の外形線です.どう頑張ってもMP穴の銅箔とソケットの取り付け穴の距離が取れないのがわかります。これはほとんどの業者で製造ルールの違反になりますが、自作キーボード界隈では比較的よく破られているルールなので今回は違反することにしました。

なお、違反しない方法として異形のPTHを使う方法がありますが、これができない業者も多いので今回は使用を避けました。

製造誤差とレジストのズレを考慮し,MP と Kailh ソケットの間は 0.5 mm 離しました.実際には MP と Kailh ソケットの端子が短絡してもそこまで問題はありませんが, ソケット端子 - MP - スイッチプレートのアルマイト破れ[3] - GND という導通をしないとも言い切れないので,安全をみてあります.

KiCad の任意形状フットプリントについて

KiCad のフットプリントには,任意形状のパッドを作る機能があります.パッド形状を Custom (Circular Anchor) または Custom (Rectangular Anchor) とすることで,この機能を使えます.

この形状は KiCad の UI でひとつずつ入力することもできます.しかし,面倒なのでできればコピペで済ませたいところです. KiCad には表計算ソフトなどからコピペする機能はありませんが,かわりにフットプリントがテキストエディタで編集しやすい形式なので,テキストエディタで編集することを考えます.

ファイルを見てみるとわかりますが, KiCad のフットプリントはS式とよばれる形式で記述されています.任意形状のフットプリントの外形線は (xy x座標 y座標) で表される頂点座標の配列として表現されるので,上で製図した曲線をこの形式に変換すればよいことになります.

フットプリントをポリライン頂点の座標列にする

上で製図したフットプリントは円弧と直線の複合した図形ですが,KiCad のフットプリントにするためにはポリラインにするのが簡単です.このため,ポリラインに変換するスクリプトを書きます.以下のような Grasshopper スクリプトで任意の曲線を KiCad のフットプリントに変換できます.

ここでは Grasshopper 組込みの曲線をポリラインに変換する関数を使いましたが,もし自前で実装しようとする場合は,曲線を細かくサンプリングしたうえで曲線を単純化するアルゴリズム(たとえば Ramer-Douglas-Peucker)を適用するのが良いでしょう.所詮は自作キーボードで扱うレベルの基板のフットプリントなので,そこまでの精度は必要ありません.

完成したフットプリントの写真

この記事は Shirabiso のプロトタイプ(公開時期未定)で書きました.
2日目の記事は alg さんの 2021年の自キ活ふりかえり です.

脚注
  1. はんだ吸取器.たとえば HAKKO FR-301 ↩︎

  2. 部品を PCB に取り付けるための穴やパッドの集合をフットプリントと呼びます ↩︎

  3. スイッチプレートのアルマイトに絶縁効果を期待しないほうがよいでしょう.スイッチプレートの穴をアルマイト工程の吊り穴として利用された場合,MPとスイッチプレートが導通する可能性は無視できません. ↩︎

Discussion