diff --git a/PHYレイヤー.md b/PHYレイヤー.md index affae5e..97a7e3f 100644 --- a/PHYレイヤー.md +++ b/PHYレイヤー.md @@ -96,7 +96,8 @@ LED・OLED・ロータリーエンコーダ・ネジ穴のように、設計者 部品ノードはクラスターの子になれる。クラスターを動かせば配下の部品も追随する。 -LEDの配線はPHYが持たない。デイジーチェーンの順序はELC、RGB効果が使う論理インデックスはIDXが持つ [推測:P-11]。 +LEDの配線はPHYが持たない。LEDの識別番号もPHYは持たない。番号は配線で決まるため、ELCが持つ。 +IDXはLEDの番号を持たない。RGB効果が必要とする位置と区分は、PHYのノード配置と種別から得る。 ### デカールとゴースト @@ -298,12 +299,6 @@ Beyond KLEはスイッチの品種を持たないため、対応づける先が - 現状の認識: どのラベルがMAPに適用できるかは、おそらく機械的には判断できない。自動で適用してユーザーが不要なものを落とす方式も考えられる - 格上げ条件: 適用するか、する場合は自動適用とユーザーによる取捨の流れをユーザーが決める -### P-11 LEDのチェーン順序をELCが持つか - -- 位置づけ: 本文「部品ノード」が前提にしている -- 現状の認識: 電気的な接続なのでELC、という切り分けで進めている。ただしデイジーチェーンの順序が接点マトリクスと同じ層に収まるかに確信がない。引っかかりを言語化できていない -- 格上げ条件: ELCの構造を具体化し、チェーン順序がその中に無理なく収まるか、別の持ち方が要るかを確認する - ### P-12 部品の表裏を描画でどう扱うか - 位置づけ: 本文「部品ノードは表裏を持たない」の残余 diff --git a/journal/2026-09-20-led-index-layer.md b/journal/2026-09-20-led-index-layer.md new file mode 100644 index 0000000..7b69076 --- /dev/null +++ b/journal/2026-09-20-led-index-layer.md @@ -0,0 +1,40 @@ +# LEDの識別番号をどの層が持つか (P-11解消) + +## 結論 + +ELCが持つ。IDXは持たない。 + +LEDの番号は「設計者が恣意的に決めてよい」が、決めた瞬間それは配線の指示になる。 +そのためチェーン順序やドライバのアドレスと同じものであり、置き場はELC。 +IDXに別の論理インデックスを置くと、ELCの番号と二重管理になり、食い違えばファームが別のLEDを光らせる。 + +なおP-11は検証で解消したのではなく、決めで解消した。ユーザーの判断「一度エイヤで入れてしまいましょう」。 + +## 案の比較 + +| 案 | 番号の出どころ | 判定 | +| --- | --- | --- | +| ELCが持つ | チェーン順序 / ドライバのアドレス | 採用 | +| IDXが持つ | 設計者が振る論理番号 | ELCの番号と二重管理になる | +| PHYが持つ | 配置順 | 配線と無関係な順序になりうる | + +## 根拠: QMK RGB Matrix の `g_led_config` + +- `matrix_co[row][col]` … キーからLEDインデックスを引く +- `point{x,y}` … 物理座標。左上 `{0,0}`、右下 `{224,64}` +- `flags` … `LED_FLAG_MODIFIER` / `LED_FLAG_UNDERGLOW` / `LED_FLAG_KEYLIGHT` など + +効果は主に `point` の座標で計算する。インデックスは座標を引くための識別子であって、 +効果の意味を持たない。したがって「効果のためにIDXが番号を振る」必要がない。 + +インデックスはデータ線の並び順そのものとは限らず、ドライバのアドレス方式に対応する。 +WS2812系ならチェーン順序、IS31FL37xx系なら (ドライバ, チャンネル)。 +どちらも配線で決まる値なので、ELCが持つという結論は変わらない。 + +出典: https://docs.qmk.fm/features/rgb_matrix + +## per-key以外のLED + +アンダーグロー・ロゴLEDなど、キーに紐づかないLEDがあるため「キー番号で代用する」ことはできない。 +これらはPHYの部品ノードとして位置を持つので、`point` はPHYから、`flags` の区分は +per-key LEDか独立した部品ノードかという種別から導ける。ここでもIDXの出番はない。