ルール策定前に書かれた設計ドキュメント7点を、以降の基準点として そのままの状態で記録する。CLAUDE.md のルール1〜4は未適用。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MdLT5x5ka5y6CaWLeE3EKb
4.8 KiB
4.8 KiB
自作キーボード制作ワークフロー分析
現在の一般的な制作手順
1. デザイン・設計段階
a) レイアウト設計
- ツール: KLE (Keyboard Layout Editor)
- 作業内容:
- キーの物理配置を決定
- キーサイズ・間隔・角度を調整
- 視覚的な配置確認
- 出力: KLE JSON ファイル
- Beyond KLE対応: PHYレイヤー
b) 回路設計・マトリックス設計
- ツール: 手動計算、KiCad等の回路図エディタ
- 作業内容:
- キーマトリックスの行列構成を決定
- マイコンピンとの対応付け
- ダイオード配置の検討
- 出力: 回路図、ピン配置表
- 現在の課題: KLEからマトリックス情報への変換が手動
- Beyond KLE対応: ELCレイヤー + IDXレイヤー
2. PCB設計段階
a) フットプリント配置
- ツール: KiCad、Eagle、Fusion360等
- 作業内容:
- KLE JSONから座標を抽出(手動またはスクリプト)
- スイッチフットプリントの配置
- マイコン・コネクタ等の部品配置
- 現在の課題: KLEとPCBツール間の座標変換
- Beyond KLE対応: PHYレイヤー → PCBツール連携
b) 配線・ルーティング
- ツール: PCB CADソフト
- 作業内容:
- マトリックス配線の実装
- 電源・信号線のルーティング
- Beyond KLE対応: ELCレイヤー情報の活用
3. ファームウェア設定段階
a) ファームウェア基本設定
- ツール: QMK、KMK、VIA等
- 作業内容:
- マトリックス定義(ROW/COL)
- ピン配置設定
- 物理レイアウト定義
- 現在の課題:
- KLEとファームウェア設定の手動変換
- VIAではlabelフィールドに"1,5"等を記入してmatrix座標を表現
- Beyond KLE対応: IDXレイヤー + ELCレイヤー → ファームウェア自動生成
b) キーマップ設定
- ツール: QMK Configurator、VIA、Remap等
- 作業内容:
- 各キーへのキーコード割り当て
- レイヤー設計
- マクロ・特殊機能の設定
- Beyond KLE対応: MAPレイヤー
4. 製造・組み立て段階
a) PCB製造
- 出力: Gerberファイル、BOM、Pick&Place
- Beyond KLE対応: PHY/ELCレイヤーからの自動生成
b) 部品調達・組み立て
- 作業内容: はんだ付け、組み立て、動作確認
現在のワークフローの問題点
1. データの分断
- 問題: KLE → PCB → ファームウェアで毎回手動変換
- 影響: 一箇所変更時の全体への反映が困難
2. マトリックス情報の欠落
- 問題: KLEは物理配置のみ、論理構造(マトリックス)は別管理
- 影響: VIAでのhackyな対応(labelフィールド悪用)
3. 設計変更時のトレーサビリティ不足
- 問題: どのレイヤーでの変更が他に影響するかが不明確
- 影響: デバッグ・修正作業の複雑化
4. ツール間連携の脆弱性
- 問題: 手動変換によるヒューマンエラー
- 影響: 設計ミス、製造後の修正コスト
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配置への拡張可能性
- カスタムキーコードサポート
次のアクション
- JSON Schema策定: 各レイヤーのデータ構造定義
- 変換ロジック設計: レイヤー間の変換アルゴリズム
- リファレンス実装: TypeScript/Rust等でのプロトタイプ
- テストケース作成: 代表的なキーボード設計での検証