キー番号はPHYの幾何からもELCの配線からも導出できない決めごとなので、IDXが正本を持つ。 公開した基板のキー番号は他人のキーマップが依存する公開インターフェースであり、 出力のたびに生成し直さず固定する。 「最も重要な抽象化層」「最も欠けている層」という位置づけは誤りだったので落とした。 QMKのLAYOUTマクロの引数順、ZMKのmatrix transformのmap、KMKのcoord_mappingとして 既に存在していて、形式化されていないだけである。 あわせて2点。MAPはキー番号ではなくPHYのキーIDを参照する(IDXへの挿入でMAPがずれないため)。 IDXの保存形式は order: string[] とし、ELCのLEDChain.orderと同じく並びの位置を番号とする。 phase1-json-schema.md の P-1 を解消。 Journal: journal/2026-09-21-idx-necessity.md Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.8 KiB
3.8 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レイヤーが正本として持つ
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. ツール間連携の脆弱性
- 問題: 手動変換によるヒューマンエラー
- 影響: 設計ミス、製造後の修正コスト