What happened?
For a HUB75 matrix bus, the LED Preferences page hides the "Color Order" dropdown entirely, even though the HUB75 driver in bus_manager.cpp reads and acts on that same value (it swaps GPIO pin roles to compensate for panels whose R/G/B lines aren't wired in the order WLED expects).
On top of that, only RGB and BGR are actually handled in firmware whilst the other four permutations (GRB, BRG, RBG, GBR) silently do nothing.
Root cause, wled00/data/settings_leds.htm:
gId("co"+n).style.display = (isVir(t) || isAna(t) || isHub75(t)) ? "none":"inline"; // hide color order for PWM
Per the comment, this was meant to hide the control only for PWM/analog/virtual buses; HUB75 appears bundled in by mistake.
Firmware side, wled00/bus_manager.cpp (BusHub75Matrix::BusHub75Matrix):
if (bc.colorOrder == COL_ORDER_RGB) {
DEBUGBUS_PRINTLN("MatrixPanel_I2S_DMA = Default color order (RGB)");
} else if (bc.colorOrder == COL_ORDER_BGR) {
...swaps r1<->b1, r2<->b2...
} else {
DEBUGBUS_PRINTF("MatrixPanel_I2S_DMA = unsupported color order %u\n", bc.colorOrder);
}
COL_ORDER_GRB (0, the system default for any new bus), BRG (2), RBG (3), GBR (5) all fall through as no-ops.
To Reproduce Bug
- Add a HUB75 matrix bus in Settings -> LED Preferences.
- Note there's no "Color Order" control for it (compare to a WS2812 bus on the same page).
- Use a panel needing a non-RGB/BGR order (e.g. Green/Blue swapped); colors render wrong with no way to fix it in the UI.
Expected Behavior
Color Order dropdown visible for HUB75 buses; all 6 orders correctly remap R1/G1/B1/R2/G2/B2 GPIO roles.
Install Method
Self-Compiled
What version of WLED?
WLED 16.0.1 (2605010)
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
Bus: Config (0-4096, type:65, CO:1, rev:0, skip:0, AW:0 kHz:0, mA:0/0, driver:RMT)
MatrixPanel_I2S_DMA = Default color order (RGB)
Anything else?
Suggested fix: drop isHub75(t) from the hide condition; extend the bus_manager.cpp chain to all 6 COL_ORDER_* values. Locally implemented/verified the RBG case. I'd be happy to open a PR with the full set. Hardware: classic ESP32 (no PSRAM), esp32dev_hub75 build env, 64x64 P2.5 panel with G/B swap.
Code of Conduct
What happened?
For a HUB75 matrix bus, the LED Preferences page hides the "Color Order" dropdown entirely, even though the HUB75 driver in
bus_manager.cppreads and acts on that same value (it swaps GPIO pin roles to compensate for panels whose R/G/B lines aren't wired in the order WLED expects).On top of that, only RGB and BGR are actually handled in firmware whilst the other four permutations (GRB, BRG, RBG, GBR) silently do nothing.
Root cause, wled00/data/settings_leds.htm:
Per the comment, this was meant to hide the control only for PWM/analog/virtual buses; HUB75 appears bundled in by mistake.
Firmware side, wled00/bus_manager.cpp (BusHub75Matrix::BusHub75Matrix):
To Reproduce Bug
Expected Behavior
Color Order dropdown visible for HUB75 buses; all 6 orders correctly remap R1/G1/B1/R2/G2/B2 GPIO roles.
Install Method
Self-Compiled
What version of WLED?
WLED 16.0.1 (2605010)
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
Anything else?
Suggested fix: drop
isHub75(t)from the hide condition; extend thebus_manager.cppchain to all 6 COL_ORDER_* values. Locally implemented/verified the RBG case. I'd be happy to open a PR with the full set. Hardware: classic ESP32 (no PSRAM), esp32dev_hub75 build env, 64x64 P2.5 panel with G/B swap.Code of Conduct