workflow: 既存フローとの対応だけを残し、確定した仕様に追従させる

解決策・プロトコル・次のアクションの各節は layers と phase1 の重複だったため削除し、
工程分析とその課題だけの文書にした。レイヤーの定義は layers を正とする旨を冒頭に置く。
工程の対応先は、回路設計をELCのみ、ファームウェア基本設定をPHY+IDX+ELCに修正。
PCB製造は品種とフットプリントを持たないため対応なしとした。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-20 22:02:39 +09:00
co-authored by Claude Opus 5
parent d858361586
commit fdd3c7def1
+11 -69
View File
@@ -1,5 +1,8 @@
# 自作キーボード制作ワークフロー分析 # 自作キーボード制作ワークフロー分析
既存の制作フローの各工程が、どのレイヤーに当たるかを見る文書。
レイヤーの定義と役割は `keyboard-design-layers.md` を正とする。
## 現在の一般的な制作手順 ## 現在の一般的な制作手順
### 1. デザイン・設計段階 ### 1. デザイン・設計段階
@@ -23,7 +26,7 @@
- ダイオード配置の検討 - ダイオード配置の検討
- **出力**: 回路図、ピン配置表 - **出力**: 回路図、ピン配置表
- **現在の課題**: KLEからマトリックス情報への変換が手動 - **現在の課題**: KLEからマトリックス情報への変換が手動
- **Beyond KLE対応**: **ELCレイヤー** + **IDXレイヤー** - **Beyond KLE対応**: **ELCレイヤー**。行列構成という工程は持たず、キーの端子とピンの対応として書く
### 2. PCB設計段階 ### 2. PCB設計段階
@@ -35,7 +38,7 @@
- スイッチフットプリントの配置 - スイッチフットプリントの配置
- マイコン・コネクタ等の部品配置 - マイコン・コネクタ等の部品配置
- **現在の課題**: KLEとPCBツール間の座標変換 - **現在の課題**: KLEとPCBツール間の座標変換
- **Beyond KLE対応**: **PHYレイヤー** → PCBツール連携 - **Beyond KLE対応**: **PHYレイヤー** → PCBツール連携。渡すのは配置であって、フットプリントの選択はPCBツール側に残る
#### b) 配線・ルーティング #### b) 配線・ルーティング
@@ -54,10 +57,9 @@
- マトリックス定義(ROW/COL) - マトリックス定義(ROW/COL)
- ピン配置設定 - ピン配置設定
- 物理レイアウト定義 - 物理レイアウト定義
- **現在の課題**: - **現在の課題**: KLEとファームウェア設定の手動変換
- KLEとファームウェア設定の手動変換 - **Beyond KLE対応**: **PHY** + **IDX** + **ELC** → ファームウェア自動生成。
- VIAではlabelフィールドに"1,5"等を記入してmatrix座標を表現 ROW/COLはELCの配線から出力時に割り当てる
- **Beyond KLE対応**: **IDXレイヤー** + **ELCレイヤー** → ファームウェア自動生成
#### b) キーマップ設定 #### b) キーマップ設定
@@ -73,7 +75,7 @@
#### a) PCB製造 #### a) PCB製造
- **出力**: Gerberファイル、BOM、Pick&Place - **出力**: Gerberファイル、BOM、Pick&Place
- **Beyond KLE対応**: PHY/ELCレイヤーからの自動生成 - **Beyond KLE対応**: なし。部品の品種とフットプリントを持たないため、この段階はPCB設計ツールが担う
#### b) 部品調達・組み立て #### b) 部品調達・組み立て
@@ -86,72 +88,12 @@
- **問題**: KLE → PCB → ファームウェアで毎回手動変換 - **問題**: KLE → PCB → ファームウェアで毎回手動変換
- **影響**: 一箇所変更時の全体への反映が困難 - **影響**: 一箇所変更時の全体への反映が困難
### 2. マトリックス情報の欠落 ### 2. 設計変更時のトレーサビリティ不足
- **問題**: KLEは物理配置のみ、論理構造(マトリックス)は別管理
- **影響**: VIAでのhackyな対応(labelフィールド悪用)
### 3. 設計変更時のトレーサビリティ不足
- **問題**: どのレイヤーでの変更が他に影響するかが不明確 - **問題**: どのレイヤーでの変更が他に影響するかが不明確
- **影響**: デバッグ・修正作業の複雑化 - **影響**: デバッグ・修正作業の複雑化
### 4. ツール間連携の脆弱性 ### 3. ツール間連携の脆弱性
- **問題**: 手動変換によるヒューマンエラー - **問題**: 手動変換によるヒューマンエラー
- **影響**: 設計ミス、製造後の修正コスト - **影響**: 設計ミス、製造後の修正コスト
## Beyond KLEによる解決策
### 1. 統一データモデル
```
物理設計(PHY) → キー識別(IDX) → 電気設計(ELC) → キーマップ(MAP)
↓ ↓ ↓ ↓
PCBツール ファームウェア 回路図 VIA/Remap
```
### 2. レイヤー間の明確な責任分離
- **PHY**: 物理配置のみに集中
- **IDX**: 物理と論理の橋渡し(最重要レイヤー)
- **ELC**: 電気的接続の明確化
- **MAP**: キーマップロジックの分離
### 3. 双方向の依存関係管理
- 上流レイヤーの変更が下流に自動反映
- 下流での制約が上流設計にフィードバック
### 4. 既存ツールとの互換性維持
- KLE JSONの完全サポート
- VIA/QMK等への出力対応
- 段階的移行の実現
## Phase 1で策定すべきプロトコル
### 1. レイヤー間インターフェース仕様
- 各レイヤーの入出力JSON Schema
- 依存関係の明確化
- エラーハンドリング規則
### 2. 既存フォーマットとの変換仕様
- KLE JSON → PHY変換
- QMK設定 ← IDX+ELC+MAP変換
- VIA JSON ← 全レイヤー統合
### 3. 拡張性設計
- 非標準マトリックス(charlieplexing等)対応
- 3D配置への拡張可能性
- カスタムキーコードサポート
## 次のアクション
1. **JSON Schema策定**: 各レイヤーのデータ構造定義
2. **変換ロジック設計**: レイヤー間の変換アルゴリズム
3. **リファレンス実装**: TypeScript/Rust等でのプロトタイプ
4. **テストケース作成**: 代表的なキーボード設計での検証