Skip to content

HUB75: use FM6124 driver for 4-scan panels, remove 64x64 limitation if board has PSRAM (partial solution for #5628)#5647

Open
softhack007 wants to merge 3 commits into
16_xfrom
hub75_driver_patch1
Open

HUB75: use FM6124 driver for 4-scan panels, remove 64x64 limitation if board has PSRAM (partial solution for #5628)#5647
softhack007 wants to merge 3 commits into
16_xfrom
hub75_driver_patch1

Conversation

@softhack007
Copy link
Copy Markdown
Member

@softhack007 softhack007 commented May 23, 2026

  • some 4-scan "outdoor" panels need the FM6124 driver. Tests on my hardware showed that "shiftreg" panels seem to work with this driver, so the risk of regressions is low
  • partial solution for HUB75 not supporting FM6124 and FM6126A chips #5628
  • Remove 1-panel limit if the board has PSRAM.
  • Remove an unnecessary mxconfig.double_buff == false check (we never use the driver's internal double buffer)

Summary by CodeRabbit

Bug Fixes

  • HUB75 LED matrix driver now validates hardware compatibility more thoroughly and automatically adjusts configuration settings when needed for improved reliability.

Review Change Stack

* some 4-scan "outdoor" panels need the FM6124 driver
* Remove 1-panel limit if the board has PSRAM
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 23, 2026

Walkthrough

BusHub75Matrix initialization adds PSRAM validation to enforce single-panel mode on PSRAM-constrained boards, explicitly configures FM6124 as the I2S shift-register driver for TYPE_HUB75MATRIX_QS, documents available driver options, and removes the conditional guard around _ledBuffer allocation to allocate it unconditionally.

Changes

HUB75 Matrix Initialization

Layer / File(s) Summary
PSRAM validation and FM6124 driver configuration
wled00/bus_manager.cpp
Added PSRAM presence and size validation that enforces single-panel mode when PSRAM is unavailable on 64-pixel boards; explicitly configures HUB75 I2S driver to FM6124 for TYPE_HUB75MATRIX_QS; added comment enumerating additional shift-register driver options.
Unconditional LED buffer allocation
wled00/bus_manager.cpp
Removes the conditional check on mxconfig.double_buff that previously guarded _ledBuffer allocation, allowing unconditional buffer allocation at initialization time.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related issues

  • wled/WLED#5628: Adds explicit FM6124 driver configuration for TYPE_HUB75MATRIX_QS, directly addressing the missing HUB75 I2S driver initialization.

Possibly related PRs

  • wled/WLED#4950: Modifies wled00/bus_manager.cpp HUB75/HUB75MATRIX_QS initialization around panel chaining and chain_length handling.
  • wled/WLED#5026: Modifies wled00/bus_manager.cpp BusHub75Matrix initialization for HUB75 chain-length handling and QS-type behavior/buffering.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changes: using FM6124 driver for 4-scan panels and removing the 64x64 limitation when PSRAM is available, directly matching the implementation changes in bus_manager.cpp.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@softhack007 softhack007 changed the title HUB75: use FM6124 driver for 4-scan panels, remove 64x64 limitation if board has PSRAM HUB75: use FM6124 driver for 4-scan panels, remove 64x64 limitation if board has PSRAM (partial solution for #5628) May 23, 2026
@softhack007 softhack007 requested review from DedeHai and netmindz May 23, 2026 21:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant