SmartMatrix - Kind of ghosting with 1/4 Scanrate panels

Hello everyone !

I’m trying to make some 16x32 P8 panels with 1/4 scan rate works, and I nearly at the end of making it work, but I have one problem that if I understood correctly seems to be ghosting, as you can see on in this video :

I’m using SM_PANELTYPE_HUB75_8ROW_MOD4SCAN as panel type, I also tried to change the clock rate and tried other type of panels but nothing seems to make it works

I’m using an ESP32 with a custom PCB with 5V level shifters (74HCT245), I tried with and without the level shifters and the result is the same

Any idea of what is going on ?

Thanks !

Hello

I saw something similar on my panels when the A B C D channels switching was delayed and fell at the moment the OE was turned on.

But in order to say for sure, you need to look at the signals LAT CLK OE & A B C D on the logic analyzer

Hello, Thanks for your reply !

Unfortunately I don’t have a good logic analyzer for now, but maybe I need to look in that direction

I saw something similar on another forum related to ghosting :

need to turn off OE one clock before latch, otherwise can get ghosting

But in that case, I think I won’t be alone to have the same problem with this library ? I have the same ghosting issue with 2 different P8 panels

it’s true
For avoiding glitches latch and switching A B C D should be done when OE is in “OFF” state.
(OFF state - state when matrix LED are turned off, OE can be either high and low - depending on the type of matrix)

As I think it is incorrect type for your panel. You choose 32x8 scan4 panel type, it is inconsistent to your hardware. For your panel you should use something like SM_PANELTYPE_HUB75_16ROW_32COL_MOD4SCAN_V2 or …V3 …V4

Without correct settings of width, height and scantype it makes no sense to say about glitches on the picture. If the panel is configured incorrectly, the picture may contain a lot of artifacts

If you have STM32 F103 “bluepill” or F401/411 “blackpill” boards, we could try your matrix on my library. It has support various types of 32x16 4 scan

Yes, effectively it was not the correct mapping, so I changed

I used a custom mapping based on the configuration of the SM_PANELTYPE_HUB75_16ROW_32COL_MOD4SCAN

Using this as mapping :

    {0, 7,  -8},
    {0, 23, -8},
    {0, 39, -8},
    {0, 55, -8},
    {4, 8,  8},
    {4, 24, 8},
    {4, 40, 8},
    {4, 56, 8},
    {0, 0, 0}

I have everything work about chaining panels and stuff like this, so I think this part is OK

I don’t have a STM32 right on hand, but my other P8 panels now have the same kind of glitch using this library

I used the DMA library from ESP32-HUB75-MatrixPanel-I2S-DMA, with this library I have no glitch, but can only make like two of these panels to work, and I need the third panel to work because it’s the panels I have the most

Maybe i can order an STM32 to see what happens with it

But at the end I need an esp32 because I have a base code for it that works well for my project.

Also, the clock is on a pin that is normally used for serial (Because I don’t have any other pins available, I have an ethernet chip connected because I want the led data driven using RJ45 cable) maybe I can try to change this pin to see whats happens

Yes, we talked with you there, :slight_smile: I am board707

Could you explain in more detail what parameters you chose for the matrix in that library? Dimensions, scan type, multiplex type?
In the file that you posted there in github you have selected a matrix with a scan of 1/16 - but this is not true … your panel has 1/4 scan

Oh okay ! Nice to meet you here

In the file that I posted on the github, I effectively selected an 1/16 panel and using the custom mapping function for using it with 1/8 panels and it’s magically fit all led, and made it works nice using the custom remap function that I explained to you

Then, I just used the normal init setup from the example file; like this :

#define NUM_ROWS 1 // Number of rows of chained INDIVIDUAL PANELS
#define NUM_COLS 1 // Number of INDIVIDUAL PANELS per ROW
#define PANEL_RES_X 32 // Number of pixels wide of each INDIVIDUAL panel module.
#define PANEL_RES_Y 16 // Number of pixels tall of each INDIVIDUAL panel module.

mxconfig.clkphase = true;

And the magical thing was to use this :
OneEightMatrixDisplay->setPhysicalPanelScanRate(ONE_EIGHT_32);

HUB75_I2S_CFG mxconfig(
PANEL_RES_X * 2, // DO NOT CHANGE THIS
PANEL_RES_Y / 2, // DO NOT CHANGE THIS
NUM_ROWS*NUM_COLS // DO NOT CHANGE THIS
,_pins // Uncomment to enable custom pins
);

But this setup never worked in any configuration for more than one P8 module, and never worked for the panel that I want to use

When I try to use this configuration with more than one P8 module configured, I have error (I think because it’s here made for an ONE_EIGHT_32 panels so… It was just luck that it’s worked for only one module)

Another fun fact is that if I invert the clock (By using SM_HUB75_OPTIONS_ESP32_INVERT_CLK) I have garbage content, but I don’t have these glitching artifacts anymore, all content stay static

I also tried to use differents pins, same result

it’s really lucky as your settings don’t seem to match the matrix type.
By the way, do your map functions in the two libraries refer to the same matrix?
If so, please note that the order of pixels turned out to be completely different.

I think that the fact that the matrix worked with that lib - is an accident. Your SmartMatrix settings look more reasonable. This is also confirmed by the fact that chaining works now.
For further settings, you should pay attention to the type of multiplexing - for 1/4 panels it can be BINARY (only pins A and B are used) and DIRECT - then pins A to D are involved. I don’t know how this is configured in the smartmatrix - but such a setting should be ,

Yes, on my panels the pins name are show on the connector, so at first look I can see that I have only A and B pins used, si it’s BINARY panels I think !

And I know where the problem is coming, I have another thread running that receive a lot of packets from my computer using async udp library, and when I stop sending these packets from my computer, the glitchs are really less visible, so I think the problem come from here and I have to look this way

So, at the end the problem come from the fact that I am using an ethernet shield, everytime I receive a packet on the ethernet adapter, I have these glitch appearing. The glitch are not present with Wifi