# 自作キーボード制作ワークフロー分析 既存の制作フローの各工程が、どのレイヤーに当たるかを見る文書。 レイヤーの定義と役割は `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. ツール間連携の脆弱性 - **問題**: 手動変換によるヒューマンエラー - **影響**: 設計ミス、製造後の修正コスト