mrcodetastic / ESP32-HUB75-MatrixPanel-DMA

An Adafruit GFX Compatible Library for the ESP32, ESP32-S2, ESP32-S3 to drive HUB75 LED matrix panels using DMA for high refresh rates. Supports panel chaining.
MIT License
929 stars 205 forks source link

Common Issues - READ THIS FIRST #134

Open mrcodetastic opened 3 years ago

mrcodetastic commented 3 years ago

There are so many different types of HUB75 LED panels that the 'default' configuration of this library will not work in some cases.

Below is a list of commonly reported issues, and solutions. If your issue is not one of those listed below, raise a seperate new issue.

Issue 1: GHOSTING [#132][#145]

a6464a55-63d5-436b-bd6a-9e2153134dd3 or IMG_20210722_201736

Solution: Increase the latch_blanking (i.e. the time between clocking data to the panel and then turning the LEDS 'on'). Some panels can't handle the speed of this library.

mxconfig.latch_blanking = 4;
mxconfig.i2sspeed = HUB75_I2S_CFG::HZ_10M;

and reduce brightness as well

  // let's adjust default brightness to about 50%
  dma_display->setBrightness8(128);    // range is 0-255, 0 - 0%, 255 - 100%

and ensure wiring is AS SHORT AS POSSIBLE. Use the shortest jumper cables from the HUB75 to the ESP32. Avoid this:

image

Example video of what happens with long wires: https://www.youtube.com/watch?v=jWXfdtsxo0o

Issue 2: Vertical output isn't aligned in the two panels of a single 1/16 scan panel OR x-coord 0 isn't visable on screen. [#133]

IMG_20210612_104747

Becomes more obvious a problem when using chaining as well, as rows will be offset by a column: bug_1-16

Or on a single panel, pixel with an x co-ordinate of 0 are not visible (and might show on the last/right column instead) image

Solution: Change dma output clock signal phase in your setup configuration. i.e.

mx_config.clkphase = false;

Issue 3: Blurred output [#130] [#75]

https://user-images.githubusercontent.com/60584210/121424145-50dbc680-c971-11eb-94e5-c651e70aa6ea.mp4

Solution: Invert the clock signal in your setup configuration. i.e.

mx_config.clkphase = true;

Note: This is now the default of the library as of 2.0.5.

Issue 4: Flickering or other garbage output [#39] [#35]

image

Solution:

Issue 5: Color change between panels [#62]

WhatsApp Image 2021-01-13 at 15 02 35 There's batch of craply made panels being sold where the red and green (possibly blue as well) pins have been wrongly wired to another color for the R2/G2 pins.

Solution:

Issue 6: Garbled/blurred output on one half of the SAME panel [#130]

https://user-images.githubusercontent.com/60584210/122820652-23313e80-d2dc-11eb-959c-9f40e29f135b.mp4

Solution:

Issue 7: Some rows are not showing for no reason [#245]

20220113_224034

Solution:

Note: These HUB75 panels are supposed to be driven with 5v on the inputs, but they work by accident with 3.3v

Issue 8: Poor WiFi performance when ESP32 is connected to HUB75 panel

This is an electrical noise issue that is out of the control of this library.

Refer to this discussion post on possible solutions: https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA/discussions/656#discussioncomment-10435886

Perhaps just buy a WF1 and configure the library as required: https://github.com/mrcodetastic/HD-WF1-LED-MatrixPanel-DMA

witnessmenow commented 3 years ago

Hey

I had a similar issue as "Issue 2" but with a 64x64 (so I presume a 1/32 scan), but it seemed to be impacting the entire display and was shifting what should have been at x=0 to x=63

image

setting mxconfig.clkphase = false; worked though:

image

marcomilazzo commented 1 year ago

cd213d39-c0ec-4298-939b-33b8c935495f HI i changhed mx_config.clkphase = true; and i get this . with false i don't get anyrhing any suggestions? thank's marco

mrcodetastic commented 1 year ago

You're panel must be some weird scan type. Try using the 1/8 scan example?

The clkphase setting is a physical electrical configuration thing. So the fact you now get an output = correct value.