Hello everyone,
I’m working on a project with a 128x64 P2.5 LED panel and I’m struggling to get it working correctly with the rpi-rgb-led-matrix library. After many systematic tests, I’m hoping someone here might have experience with this specific type of panel.
My Hardware:
-
Raspberry Pi: Pi Zero 2 WH with a fresh 64-bit RaspiOS Bookworm Lite (2025-05-13-raspios-bookworm-arm64-lite.img).
-
Controller: Electrodragon RGB Matrix Panel Drive Board (Model: MPC1119-3 (202504)), which uses the “regular” GPIO mapping.
-
Power Supply: Mean Well MW RSP-200-5.
-
Panel: A 128x64 pixel panel with the following details:
-
IC Driver Chip: FM6124D
-
Panel Model (on PCB): P2.5-2121-HL 2.0
-
Connector: HUB75E
-
Scan Rate (from a spec sheet): 1/32 Scan
(I can provide photos of the back of the panel confirming the FM6124D chip if needed.)
-
The Problem:
When I run the library demos, only half of the rows are active. Specifically, it seems that rows 1-16 and 33-48 (0-indexed) are completely dead, while rows 17-32 and 49-64 display content. This creates large black bars and a “split” image.
This is the output of the grid test (demo -D 8), which clearly shows these dead zones:
The command used for the grid test above was:
sudo ./demo -D 8 --led-rows=64 --led-cols=128 --led-chain=1 --led-gpio-mapping=regular --led-panel-type=FM6126A --led-slowdown-gpio=2 --led-rgb-sequence=RGB
What I’ve Tried So Far (Troubleshooting Summary):
I have systematically worked through all the common solutions, but none have been able to activate the dead rows.
-
System Setup: I started with a fresh install, disabled the onboard audio (dtparam=audio=off), and successfully compiled the library. The base command runs without crashing.
-
Parameter Testing:
-
I have tested all relevant combinations of --led-row-addr-type (0-4) and --led-multiplexing (0-8).
-
None of these parameter combinations fixed the dead rows. Most of them made the image worse (e.g., completely scrambled). This strongly suggests the issue is not a simple mapping/scan-pattern problem that can be fixed with parameters.
- Code Modification (Attempted Init Fix):
-
Based on research for the FM6124D chip, a specific initialization sequence (sending the command 0x0030) is often required.
-
I modified the lib/framebuffer.cc file to “hijack” the InitFM6126 function and send this 0x0030 command instead.
-
I can confirm via a printf statement in the code that my modified function was successfully called .
-
Result: This code modification had no visible effect on the dead rows. The problem remained exactly the same.
My Conclusion:
The issue seems to be a fundamental incompatibility. The panel requires a specific initialization sequence to enable all its address decoders (especially for the 1/32 scan, using the ‘E’ line), and the 0x0030 command alone is not sufficient for this specific panel model.
My Question to the Community:
Has anyone successfully used a panel with this specific combination of FM6124D driver , 128x64 resolution , and 1/32 scan rate ? Is there a known, more complex initialization sequence or a different RowAddressSetter required that I’m missing?
Any help or insight would be greatly appreciated. I’ve hit a wall after exhausting all the standard troubleshooting steps.
Thank you for your time