128x64 P2 screen skips every 4 rows

I bought a P2 128x64 screen from here:

which has ICN2037BP chips onboard, which some googling seems to indicate are compatible.
I have connected to a Smartmatrix v5 board with teensy 4.0.

The issue I have is that the screen writes 4 rows, all 128 pixels fine.
But then seems to skip 4 rows, then writes 4 rows.

It looks like the 4 missing rows isnt a case of the rows being spaced too far apart, so much as the in between data is absent instead.

I’m not sure how to start troubleshooting this, I’m not sure if the multi row refresh mapping example is what I need to be doing, or something else?


I’ve now replaced all of the hardware, 2nd screen, ribbon cable, smartmatrix board etc.

But still the same issue. So I think it’s code related instead of a hardware problem.

Will have a dig around in the library files and see if I can make sense of anything.

Can you take a picture of the back of the panel including labels on the HUB75 connector, and any model number? Also what chips are on the back, at least the two main types repeated on the board (row/column drivers)?

Thanks Louis.

Here are some pictures/details.

As you noted, the ICN2037BP should be supported: ICN2037 support - #7 by Mori

I don’t see any other clues from the back of the panel to explain what’s going on.

You say the data is absent in the skipped rows, but then you also said you have the same problem as a user that showed a picture of rows being spaced too far apart, do you think you should show a picture of the same FastLED functions sketch as that other user so I could compare?

Running the multi row mapping sketch might help but I’m not sure.

Sorry it’s not absent data, it was hard to tell at first. It’s that it spaces it apart.
I ran multirow mapping but it didnt really give any clues. It wouldnt write to any of the “missing” rows.
I tried setting it to 128 rows tall, 32 rows tall, etc but no difference.
I was running the FeatureDemo sketch, I cant take a picture sorry as I was using a loaned power supply.

If you’d be happy to troubleshoot it I’ve no problem buying the same screen again and have it sent to your address. (Obviously with no guarantees / obligations, might just be incompatible somehow)

Every HUB panels has at least two types of chips on board - a driver and a multiplexor. A most of them also has additional chips, as input buffers or controlling mosfets.
The ICN2037BP on your panel is a led driver, the 74HC245 is a buffer.
Therefore, there is should be another chip - a multiplexor, which you didn’t show in the picture. According to the picture, there are chips labeled Q1-Q8 on the panel.
Knowing the type of multiplexor is essencial to work with panel.

Thanks for that.

I’ve found two more types of chips.

One says RUC7258D and OAD15669 on the top.

The other says 74HC04D - CQ4A1R.1

Looks like there are two of the RUC7258D chips on the board that I can find.

Searching for that other chip type, I’ve found someone else with similar issues.

(about half way down thread)

Looks like maybe it relates to the teensy speed being too fast for the chip to handle?

Sounds like it was fixed with some delays added.

From the PxMatrix library notes. Is there a similar way I can add a delay to the A-E channels in this library?


The first is a led driver and the second is a multiplexor. The both chips are quite standard and should be fully supported by the library.
So your problem is not in the library, it seems to be in your user code, connections or software setup Do you selected the E pin?

Okay thanks.

My understanding is that E pin is selected by default if I use SM_PANELTYPE_HUB75_64ROW_MOD32SCAN`

Is that correct?

Since I am using the V5 smartmatrix shield, and have uncommented that in the code.
The E pin should be set correctly already? Or is there something else I need to adjust?

I’ve tried selecting most/all of the variations of selectable options in the FeatureDemo code, with no major changes to the code or library apart from defining screen size, SM_PANELTYPE_HUB75_64ROW_MOD32SCAN, and uncommenting the V5 shield option.

Sorry, I am not sure. You should ask @Louis


From the PxMatrix library notes. Is there a similar way I can add a delay to the A-E channels in this library?

Good job finding the issue. I’m not exactly sure how to fix it in SmartMatrix Library, but please try extending these values that have to do with the latch pulse. Maybe a wider pulse, or longer delay after the pulse will help.

Thanks for that @Louis.

I had since noticed that the blue channel was not working at all. It turns out that despite swapping everything I did have some sort of hardware issue. The only thing I hadnt replaced was the Teensy itself.
Perhaps one of the pins was soldered poorly or something - However, with a fresh one it’s now working great, and I’m over the moon!

Cant wait to get stuck into this.

Thanks everyone for help / advice / suggestions.

1 Like