-
Notifications
You must be signed in to change notification settings - Fork 213
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scan Failure - Garbled LED matrix panel display output (ESP32 GPIO is 3.3v). #35
Comments
This library has been built and tested on 1/16 panels 64x32. Though other users have had success with a 64x64 panel: #9 So I'm not sure what the issue could be, hopefully not a regression. @csloz - perhaps you could test the latest library with your 64x64 panel for me? Keep the old copy of this library unless I have introduced some weird regression. |
@advadv00 - Can you pst a link to the panel you bought? Can you try the earliest version of the library 1.0.2 and see if that makes any difference? Please triple check your cabling? |
I tried version 1.0.2 and succeeded! |
Ok. Will you be able to help me try and figure out the problem with the new library? I will create a new version in the coming days/weeks of library for you to test if you can spare some time to test. |
I will be happy to help! |
When you get a momment, can you do a basic test using this branch of the library: https://github.com/mrfaptastic/ESP32-RGB64x32MatrixPanel-I2S-DMA/tree/advadv00 Don't worry if the colours don't look right - I just want to confirm or not if you see garbage. |
Can you send me a link to the panel you bought? |
Sorry.. I didn’t buy these. I got things with bad pixels. I found two factors affecting image quality.
In this picture, the first module had no effect on clock speed. In the last picture, ESP32_I2S_CLOCK_SPEED is 10000000UL, left module is first module. |
Ok. This looks like electrical issue then? The reality is these panels are supposed to have a signal input voltage of 5volts, not 3.3 volts - so the fact the ESP32 3.3v GPIO output even works with most of these panels is a hack in itself.
The clock speed output from the ESP32 can go down to even 8,4,1mhz, so try that even and see what happens - although you will notice flicker. The only other option pehaps is to use a logic level shifter between the ESP32 to the first input pins on the panel chain - but I wouldn't know what to do here though. A random google search produced this though: https://www.aliexpress.com/item/4001131536726.html
Could be issues with the power supply? I think it's due to the signal voltage being insuffient. Perhaps some of these panels aren't so tolerant to 3.3 volts.
Signal attenuation of 3.3v signal and/or different panel LED driver chips that can't handle a high frequency.
Missing capacitors should be replaced with equivalents. |
Thanks for making the point well. I'm not used to github, do I have to close this issue? |
No problems. I'll close this once you get things up and running. Out of curiosity, where do you get these used panels from? I wouldn't be suprised if there's now starting to be a flood of these panels going to landfill with dead pixels etc. I wouldn't mind getting hands on a recycled one instead. |
Just my 5 cents to this - I was able to hook up two panels 64x64 ABCDE 1/32 scan with FM6126A shifters and it works just perfectly. Still digging the code on how to find out refresh rate for these setup but for my naked eye it looks pretty good. I have two more panels stashed, so will try 4x64x64 setup soon. |
Thanks for the update! Let me know how you get on with four of the panels
chained! Turn on serial debug in the library as you might run out of memory
with the ESP32 before anything else for that pixel resolution.
|
Hell, it works! It just works! :) Can't believe that single esp32 can drive 256x64, and I have to admit it looks pretty well! At least some of those simple demos I've tried. Will do more tests later, but I'm already thinking of buying more of those Chinese panels. :) 👍
|
😀 😀 😀 😀 😀 😀 😀 😀 That's brilliant! Best of luck with the extra panels hahaha! |
@mrfaptastic Thanks! Well, Christmas coming... time to buy a present or two... just for yourself :)) |
Closed due to contribution #42. Thanks @vortigont |
AMAZING~!!!!!!!!!!!! Thank you sir!!!! I've worked on a problem with horizontal noise happenning, worked on this for 2 days straight. Changed settings, wires, soldered numerous time. Power supply didn't seem a problem for me at first, I've used 5V 10A power supply, outputted 5.4V. Checked with a multimeter saw a very small ripple. But the thing is that when I played with the wires it seemed like it changed the noise but this was all a misconception!!, no capacitors were needed at all as the cabling was short and the hidden capacitor near the end of the barrel jack did the trick... I fell at the first problem at wiring though, I didn't hook the GND of HUB75 connector on the ESP32 at first since I thought the GND on the INPUT from the board should do the trick, when I didn't hook it, I got a very horrible noise. Just the all screen color command worked okay, after that when I fixed the GND and saw that the noise reduced a lot but still remained a bit, that started all the tragedy as I fell to the misconcetion that my wiring was at fault. But who knew the voltage was very important ?? Guys listen to this guy, he is wise! |
An Update: I solved the problem for good with 3.3V to 5V circuit. Two SN74HCT245N chips were used. |
Hi @Orel-A. Thank you for letting us know the permanent fix for this! Do you have a schematic of how you connected the ESP32 -> SN74HCT245N's -> HUB75 at all, using this library? |
Because the HC245 variety uses 3.8V to signal a logic high, but the HCT245 only uses 2.0V, right? I noticed that this Adafruit HUB75 driver also uses an AHCT245 between the 3.3V ATSAMD51J19 and the HUB75 connector. I also noticed that my panel happens to use an 74HC245C instead, and it spits out garbage when I chain two. A proper 3.3V to 5V logic level shifter might be pretty critical after all. Since I'm stuck with the same problem over here, I'll try adding a ICs of the HCT245 variety into my next PCB design. Hell, maybe I'll try to swap the chip on the panel itself if it's pin-for-pin compatible. EDIT: No luck so far, though it maybe be that I just didn't design or build my PCB right. |
I'm running into this issue at the moment too, I need to dig more into it. Using a "5v" power supply (actually 5.2V if measured) I have a panel here that if I use Setting So this made me think that this panel just needs BUT even with And if I use a level shifter on the output to the matrix using Unfortunately the people who have made my trinity board have come across a panel and power supply combo that just doesn't work with any config I've supplied (it's hard to test without having the issue here) so I think all future designs need the level shifters. Need to do more digging into it. If people are interested in the level shifter I can share the gerbers for them once its finalized. Here is the current schematic: |
Does anyone else have this issue? I may have (or someone in my discord realistically) come across a software workaround for it
It sets the amount of current that the GPIO can output up to 40mA (default is level 2, which is 20mA) |
Ha! Funny you should mention this.... I've been digging through the espressif idf recently and stumbled across this as well the other day. I've implemented this into the library, so give it a try. aae55e9 |
Haha, Awesome! Will give it a test soon |
It doesn't seem to be working for me. It seems that
it works as expected. |
Bizzare, compiled and worked for me, but anyway, have changed it to a hard integer. |
Maybe I'm assuming too much by saying its not resolving, and I'm being too vague. It compiled fine but the matrix didn't work correctly (looks about the same as not having that code). I tried to serial print the value but I think that file is a C file and Serial is a C++ object and I'm too dumb to know what to do about that :D |
Nobody's dumb around here! Ah, so interestingly what you're saying, if that code is in the Arduino sketch - then it works and sets the GPIO power output... but what I've put in the library doesn't do anything and the panel problem still persists? |
Either way, I've made another commit and simply copy-pasted your code. If that doesn't work, then perhaps I need to put it earlier in the iomux_set_signal or something. |
Apologies I really didn't make it clear. Your code as was didn't improve the display for me Changing your code with the above line (in the same place) made the display work the same as it did when I had my original snippet in my Arduino sketch |
Ok. I have changed the code to be an exact copy-paste to your original suggestion. If that doesn't work then it confirms I am going insane. ha |
You're using |
Closing. ced87c0 |
Yeah looks good! |
Just to confirm I have tested the new code with a bench supply and have tested 3V to 5.6V (afraid to go higher) all working well |
I have tested with a 1/32 scan P2.5 64x64 panel with Line E, and H file MATRIX_HEIGHT modified for 64x64
but testing doesn't work.
It comes out as if it's scan rate failure.
Is there any way I can use it?
The text was updated successfully, but these errors were encountered: