Corrupt image on majority of single panel (4x64 matrix)

Has anyone got an idea of what’s going on here? In these pictures, the top right panel is doing something strange (ignore what’s going on with the bottom left, I think it’s faulty). It’s the panel that the SmartLED Shield and Teensy 4.1 is attached to. If I move the shield to another panel I get the same outcome so I’m thinking it’s something to do with either the shield or whatever the code allocates to panel 1.


*Removed

Here are the original files:
*Removed
*Removed

Any help would be much appreciated!

P.S. Ok, just learned that I can only post 1 image as I’m a new user. I will try to add more in a follow up to this initial post.

-Warren

Original 1:
200 (1)

Original 2:
MiPan (3)

Does your panel have an FM6126A chipset?

Hi Louis,
Thanks for the quick reply. I’m sorry to say but I’m not sure how to check this. Here is a photo of the PCB, hopefully it gives you the answer. If not, please let me know how to find the chipset.

I see “GS6238S” on one of the chips, which is a chipset that other users have had trouble with, so it may not be supported by SmartMatrix Library:

In case you’re not following that other thread, someone with a GS6238S chipset was able to make their panel work by lowering the brightness. It might be worth giving a try

As Louis says, I’d be interested to see if the lowering the brightness has an effect on the issue you’re seeing.

I have, to a small degree, been able to replicate something similar but only with very low RGB values. Here’s a photo with a 32 x 32 square appearing dimmer than the rest of the display (the display is made of 4 64x64 panels).

I tried changing values in the configuration files but not much really made a difference (the exception was FLEXIO_CLOCK_DIVIDER, but you had to set it to a really high value for the benefit to be noticable, and the RefreshDepth - lower values made it go away).

Anyway, to cut a long story short, I’ve determined that the issue was the long ribbon cable connected to the output of the panel with the issue. If I disconnected the cable from the output, the problem disappears. If I connect the cable to the output of another panel, that panel has the problem. I suspect that the long cable is introducing too much capacitance (or inductance) for the chips to drive, causing the effect.

So, if lowering the brightness or the RefreshDepth doesn’t work, I suggest removing all the ribbon cables and then adding them one-by-one to see if any of them are introducing the issue.

Hi Louis,
I was a bit skeptical but it turns out that it has actually worked. The image is spot on now and all I did was reduce the brightness from 255 to 254 as suggested.
Now I see this working, I want to go bigger. I don’t suppose you know of anyone trying the teensy 4.1 with SmartMatrix running 192x192 pixels (9 x 64x64 panels)? Thanks again for the help.

Thanks for the suggestion @welshcoder, I didn’t try the ribbon trick you mentioned because as you might have read above this reply the reduction of brightness has fixed the issue. It only to the single value drop to make everything look as it should.

This is the biggest setup I’ve seen:

If you want to try to go bigger, try it out virtually by setting the dimensions to what you want, lower the quality, and run the sketch on the existing panels you have. SmartMatrix Library has to shift out the data even if the panels aren’t there so if the larger dimensions look good on the panels you have, then you can make a decision to buy and add more panels.

At that size, I’d recommend reducing color depth to 15 bit get an acceptable refresh rate (120 FPS or more to avoid flicker).

Thanks for the heads up, what is the default refresh rate? I can see there is a way of setting it but it’s commented out:
//matrix.setRefreshRate(90);

Thanks again Louis for the hot tip, I’ll give that a shot and see how it goes.

You can set it using that commented out function, although if you use a value that is greater than the maximum for your array size and color depth, then the library will reduce the actual rate automatically. You can measure the actual refresh rate with matrix.getRefreshRate().

By default it uses 240 FPS or the maximum possible (if 240 is too fast).

It’s usually best to set a refresh rate a bit lower than the maximum possible refresh rate for improved brightness. You can experiment with different color refresh depths and screen refresh rates and see how it looks.