Files
Beyond-KLE/journal/2026-09-20-switch-terminal.md
T
ewdernaandClaude Opus 5.5 85f333cb24 chore: Markdownのインデント幅を4に固定し、リストの継続行をスペース4つに揃える
継続行がスペース2つだと、VS Codeがインデント幅を2と自動判定する。
.vscode/settings.json でMarkdownの自動判定を切って幅4に固定し、
既存の継続行もリストの記号から4つ下げた位置に揃える。
変更したファイルに markdownlint --fix をかけた分(journalのURL囲みと空行)も含む。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VbfgHT848s3JbuFw8MKFF8
2026-10-19 08:16:12 +09:00

3.5 KiB

スイッチ種別の保持先 (旧 PHY P-7)

結論

PHYは端子配置(terminal) / ソケット方式(socket) / スイッチの向き(orientation)の3軸を持つ。ブランドは持たない。 実際のPCBフットプリントは3軸の積として出力時に決まる。KLEの sm, sb, st はBeyond KLEの端子配置と対応させず、不透明なまま退避して書き戻す。

案の比較

論点 案 採否
ブランド KLEの sb 相当をPHYで持つ 不採用
ブランド 持たない 採用
種別の定義 (a) スイッチ側の足の配置。MX-3pin と MX-5pin は別タイプ 採用
種別の定義 (b) PCBに開ける穴の配置。MXは1タイプ、ボス穴・LED穴はオプション 不採用
分類 端子配置を階層化(MX系 > MX-3pin, MX-5pin) 不採用
分類 平坦な識別子 + 定義表の属性列 採用
未知の種別 未知のときだけ出力時にフットプリントを指定させる 不採用(既知も同じ仕組みで足りる)
未知の種別 識別子 → フットプリントの対応表を常に出力設定に置く 採用
KLE sm/sb/st Beyond KLEの端子配置に変換して取り込む 不採用
KLE sm/sb/st 不透明なまま退避して書き戻す 採用

根拠

  • ブランドは同じボードに対して利用者が選ぶもので、穴もパッドも配線対象も変えない。ボード設計の情報ではない
  • KLEの st は MX1A-11Nx のようなベンダー品番で、ブランド・種別・バリエーションが混ざった文字列。ここから穴形状を機械的に導けないため、 Beyond KLEの端子配置との対応づけは成立しない。名前も意味もKLEと別物なので、同名を避けて terminal とした
  • 端子配置は電気的インターフェース(2端子接点 / アナログ / 光学)も決める。PHYが持てばELCが別途スイッチ情報を持つ必要がない。 これがPHYに置く根拠になった
  • 向きは90度と270度で別物(LED穴・ボス穴の位置が変わる)なので4方向。キーの回転とは別の値で、キーのローカル座標系に対して持つ
  • 階層化を採らなかったのは、欲しいのが分類ラベルであって継承ではないため。低背かどうかも定義表の列で表せる
  • 未知の種別を特別扱いしなかったのは、KiCadのフットプリント名がライブラリ依存で、既知の種別でも出力時のマッピングが要るため。 未知は「マッピングが未登録」なだけになる

(b)案を捨てた経緯

5pin穴のPCBには3pinスイッチも刺さるため、3pin/5pinの差は「スイッチの選択」ではなく「PCBの選択」だという整理ができる。 これはブランドを落とした理屈と同じ形なので、(b) のほうが一貫するとして提案した。 ユーザーの判断: 3pinを明示的に使いたい制作者が多く、設計データ上で3pinと5pinを区別したい。よって (a)。

LED穴も (b) と同じ形の論点だが、LED専用ノードを立てる可能性が出たため、端子配置のオプションとしては扱わず別途詰める。

捨てた仮説

  • 「マウント方式」をKLEの sm と同じ軸だと考えていた。KLEの sm は cherry / alps のような軸規格で、 プレートマウント/PCBマウントでもホットスワップ/直付けでもない。ユーザーの意図はソケット有無だったため socket に落ち着いた