From eb96ff02d8df64614326419b3525c135f5a718a7 Mon Sep 17 00:00:00 2001 From: EwdErna Date: Sun, 20 Sep 2026 20:24:56 +0900 Subject: [PATCH] =?UTF-8?q?PHY:=20LED=E3=81=AE=E8=AD=98=E5=88=A5=E7=95=AA?= =?UTF-8?q?=E5=8F=B7=E3=82=92ELC=E3=81=8C=E6=8C=81=E3=81=A4=E3=81=93?= =?UTF-8?q?=E3=81=A8=E3=82=92=E6=98=8E=E8=A8=98(P-11=E8=A7=A3=E6=B6=88)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RGB効果が使うのは物理座標で、インデックスは配線で決まるアドレス。 チェーン順序を設計者が恣意的に決めてよいのは確かだが、決めた順序は そのまま配線の指示になるため、電気的な情報としてELCが持つ。 IDXに別の論理インデックスを置くと二重管理になり、食い違えば別のLEDが 光るため、IDXはLEDの番号を持たない。 検証ではなく決めによる解消。 Journal: journal/2026-09-20-led-index-layer.md Co-Authored-By: Claude Opus 5 --- PHYレイヤー.md | 9 ++---- journal/2026-09-20-led-index-layer.md | 40 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 journal/2026-09-20-led-index-layer.md 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の出番はない。