If your LED panel is completely black — correct wiring, correct firmware, serial log reporting success — the build probably isn't the problem. The panel's driver ICs are.
Patternflow scans the panel directly from the ESP32-S3. No sending card, no receiving card, nothing in between. That works for one whole class of panel and cannot work for another, and the two look identical from the outside: same HUB75E ribbon, same 128×64, same P2.5, same 320×160 mm.
HUB75 / HUB75E is a connector and a set of signal names, not a protocol guarantee. Like a USB-C plug — same shape, many different things behind it.
The catch that makes this hard
The obvious advice is "check the driver IC before you buy." We audited our own BOM-linked listing — the panel we know works — to see whether that's even followable:
| Where you'd look |
What's there |
| Title / spec table |
Resolution, pitch, SMD 2121, 5 V/30 W, HUB-75, 1/32 scan, dimensions. No driver IC |
| Marketplace AI summary |
Restates the above. No driver IC |
| Attached PDF "user manual" |
EU compliance boilerplate. No driver IC |
| Buyer reviews |
🎯 ESP32 confirmations, seller-contact reports, photos of the board |
So the practical method isn't hunting for a part number. It's reading the reviews.
What to actually do
Before you buy — search the reviews for ESP32 / Arduino / Raspberry Pi / HUB75 / WLED. On our BOM listing that surfaces an auto-extracted "compatible with Raspberry Pi" tag, a buyer driving it from an ESP32, and a buyer who questioned the seller first and then had an ESP32-S3 displaying images. Somebody has usually already run the exact test you care about. Review photos often show the back of the panel too.
When it arrives — flash stock and see. PANEL_PROFILE defaults to PANEL_STANDARD, which sends no init sequence at all and drives most panels. Only if it comes up completely dark do you change it. Don't pick a setting from the part number: FM6124 needs no init and FM6126 does, one digit apart.
Full guide, with the chip tiers, a copy-paste question for the seller, a symptom→cause table, and how to tell the LED driver from the buffer and the row driver on a board:
Shipped in #258.
Verified panels so far
Panels actually run on Patternflow, not inferred from datasheets — all on PANEL_STANDARD, no init:
| LED driver IC |
Marking |
Notes |
| FM6124 |
FM6124EJ / A012527 |
The BOM-linked 128×64 P2.5 320×160 panel |
| ICN2037 (Chipone) |
ICN2037BP / D19337NA, D01170MA |
Two panels, same chip, different lots |
| DP5125D |
DP5125D / 3G2608 |
Row driver on the same board: SM5166P |
Two of these — ICN2037 and DP5125D — have no entry in the ESP32-HUB75-MatrixPanel-DMA driver list at all, and work anyway. Absence from a supported list is not evidence a panel won't work. The hard stop is the S-PWM architecture, not a missing part number.
Help make this list real
Running a panel other than the BOM-linked one? Please comment here — working or not. A one-line "ICN2038S, lit up on stock" is genuinely useful.
Ideal report: driver IC part number and its lot-code line, silkscreen model string (e.g. P2.5(2121)-32S-320X160-V6.1), resolution + scan rate, which PANEL_PROFILE you used, and a close-up of the back of the PCB. Those go straight into the table above.
(Changed the panel resolution rather than the panel — a 64×64, a chain of two? That's #224, a different question.)
Two chips are currently flagged as disputed and first-hand evidence would settle them:
RUL6024 — the library README calls it S-PWM, the DMD_STM32 chart calls it FM6126-compatible.
DP3364 / DP3364S — circulates in buyer's guides as S-PWM but appears in none of the sources we checked.
Credit
Every panel I happened to own worked, so this was never on my radar. @SimonePDA ran into the failure, raised it, went and researched it properly, and proposed what to do about it — which opened up a part of Patternflow I'd been blind to. A panel that lights up is where every build starts. Thank you.
If your LED panel is completely black — correct wiring, correct firmware, serial log reporting success — the build probably isn't the problem. The panel's driver ICs are.
Patternflow scans the panel directly from the ESP32-S3. No sending card, no receiving card, nothing in between. That works for one whole class of panel and cannot work for another, and the two look identical from the outside: same HUB75E ribbon, same 128×64, same P2.5, same 320×160 mm.
HUB75 / HUB75E is a connector and a set of signal names, not a protocol guarantee. Like a USB-C plug — same shape, many different things behind it.
The catch that makes this hard
The obvious advice is "check the driver IC before you buy." We audited our own BOM-linked listing — the panel we know works — to see whether that's even followable:
So the practical method isn't hunting for a part number. It's reading the reviews.
What to actually do
Before you buy — search the reviews for
ESP32/Arduino/Raspberry Pi/HUB75/WLED. On our BOM listing that surfaces an auto-extracted "compatible with Raspberry Pi" tag, a buyer driving it from an ESP32, and a buyer who questioned the seller first and then had an ESP32-S3 displaying images. Somebody has usually already run the exact test you care about. Review photos often show the back of the panel too.When it arrives — flash stock and see.
PANEL_PROFILEdefaults toPANEL_STANDARD, which sends no init sequence at all and drives most panels. Only if it comes up completely dark do you change it. Don't pick a setting from the part number:FM6124needs no init andFM6126does, one digit apart.Full guide, with the chip tiers, a copy-paste question for the seller, a symptom→cause table, and how to tell the LED driver from the buffer and the row driver on a board:
📖
docs/panel-compatibility.mdShipped in #258.
Verified panels so far
Panels actually run on Patternflow, not inferred from datasheets — all on
PANEL_STANDARD, no init:FM6124EJ/A012527ICN2037BP/D19337NA,D01170MADP5125D/3G2608SM5166PTwo of these —
ICN2037andDP5125D— have no entry in theESP32-HUB75-MatrixPanel-DMAdriver list at all, and work anyway. Absence from a supported list is not evidence a panel won't work. The hard stop is the S-PWM architecture, not a missing part number.Help make this list real
Running a panel other than the BOM-linked one? Please comment here — working or not. A one-line "ICN2038S, lit up on stock" is genuinely useful.
Ideal report: driver IC part number and its lot-code line, silkscreen model string (e.g.
P2.5(2121)-32S-320X160-V6.1), resolution + scan rate, whichPANEL_PROFILEyou used, and a close-up of the back of the PCB. Those go straight into the table above.(Changed the panel resolution rather than the panel — a 64×64, a chain of two? That's #224, a different question.)
Two chips are currently flagged as disputed and first-hand evidence would settle them:
RUL6024— the library README calls it S-PWM, the DMD_STM32 chart calls it FM6126-compatible.DP3364 / DP3364S— circulates in buyer's guides as S-PWM but appears in none of the sources we checked.Credit
Every panel I happened to own worked, so this was never on my radar. @SimonePDA ran into the failure, raised it, went and researched it properly, and proposed what to do about it — which opened up a part of Patternflow I'd been blind to. A panel that lights up is where every build starts. Thank you.