排他キーも別々の要素として並べる。出力はバリアントを選択した構成を単位とし、
対象外のキーを除いた並びの位置をそのままキー番号にする。同じ配線の排他キーは
選択後に同時には残らないため、番号を共有させる必要がない。
保存したorderは選択で書き換えず、番号の互換性は出力レイアウトごとに扱う。
6d0eba9 で「IDXは番号を共有できる」と書いたが、共有をやめる形に変える。
コミュニティレイアウトの並びを取捨で得られるかは、この方式では未検証のため
IDXのP-1として残す。
Journal: journal/2026-09-22-idx-variant-output.md
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKW58HEg8zAQoLrkWByPfD
4.0 KiB
4.0 KiB
自作キーボード制作ワークフロー分析
既存の制作フローの各工程が、どのレイヤーに当たるかを見る文書。
レイヤーの定義と役割は keyboard-design-layers.md を正とする。
現在の一般的な制作手順
1. デザイン・設計段階
a) レイアウト設計
- ツール: KLE (Keyboard Layout Editor)
- 作業内容:
- キーの物理配置を決定
- キーサイズ・間隔・角度を調整
- 視覚的な配置確認
- 出力: KLE JSON ファイル
- Beyond KLE対応: PHYレイヤー
b) 回路設計・マトリックス設計
- ツール: 手動計算、KiCad等の回路図エディタ
- 作業内容:
- キーマトリックスの行列構成を決定
- マイコンピンとの対応付け
- ダイオード配置の検討
- 出力: 回路図、ピン配置表
- 現在の課題: KLEからマトリックス情報への変換が手動
- Beyond KLE対応: ELCレイヤー。行列構成という工程は持たず、キーの端子とピンの対応として書く
2. PCB設計段階
a) フットプリント配置
- ツール: KiCad、Eagle、Fusion360等
- 作業内容:
- KLE JSONから座標を抽出(手動またはスクリプト)
- スイッチフットプリントの配置
- マイコン・コネクタ等の部品配置
- 現在の課題: KLEとPCBツール間の座標変換
- Beyond KLE対応: PHYレイヤー → PCBツール連携。渡すのは配置であって、フットプリントの選択はPCBツール側に残る
b) 配線・ルーティング
- ツール: PCB CADソフト
- 作業内容:
- マトリックス配線の実装
- 電源・信号線のルーティング
- Beyond KLE対応: ELCレイヤー情報の活用
3. ファームウェア設定段階
a) ファームウェア基本設定
- ツール: QMK、KMK、VIA等
- 作業内容:
- マトリックス定義(ROW/COL)
- ピン配置設定
- 物理レイアウト定義
- キーマップ配列の並び順を決める(QMKなら
LAYOUTマクロの引数順、ZMKなら matrix transform のmap、KMKならcoord_mapping)
- 現在の課題: KLEとファームウェア設定の手動変換。並び順は手書きで、引数の数え間違いがそのまま キーのずれになる
- Beyond KLE対応: PHY + IDX + ELC → ファームウェア自動生成。 ROW/COLはELCの配線から出力時に割り当てる。並び順はIDXレイヤーが全バリアントにわたって正本として持ち、 出力時に選択したバリアントで使うキーだけを残して、キー番号を0から連続する番号に詰める
b) キーマップ設定
- ツール: QMK Configurator、VIA、Remap等
- 作業内容:
- 各キーへのキーコード割り当て
- レイヤー設計
- マクロ・特殊機能の設定
- Beyond KLE対応: MAPレイヤー。キーの参照にはPHYのキーIDを使い、配列への並べ替えは出力時にバリアント選択後のIDXの順で行う
4. 製造・組み立て段階
a) PCB製造
- 出力: Gerberファイル、BOM、Pick&Place
- Beyond KLE対応: なし。部品の品種とフットプリントを持たないため、この段階はPCB設計ツールが担う
b) 部品調達・組み立て
- 作業内容: はんだ付け、組み立て、動作確認
現在のワークフローの問題点
1. データの分断
- 問題: KLE → PCB → ファームウェアで毎回手動変換
- 影響: 一箇所変更時の全体への反映が困難
2. 設計変更時のトレーサビリティ不足
- 問題: どのレイヤーでの変更が他に影響するかが不明確
- 影響: デバッグ・修正作業の複雑化
3. ツール間連携の脆弱性
- 問題: 手動変換によるヒューマンエラー
- 影響: 設計ミス、製造後の修正コスト