New P3 64x32 Issue
PurelyAbrasive opened this issue · 65 comments
can you post the pattern test, post the result as gif/video and share your code ?
Here is the code I used for the Mario Image. And a video of the test pattern.
CodeUsed.txt
I have a similar issue, 4 lines works and then the next 4 doesn't works.
I also followed Brian's guide (I bought the matrix on aliexpress with the link, he provided on his tetris clock repo)
I contacted the manufacturer, who confirmed other people has issues with ESP32/ESP8266 and suggested to try it with a Raspberry Pi.
I try the matrix using https://github.com/hzeller/rpi-rgb-led-matrix/ and it works fine with default settings.
Time to find what is going wrong with the ESP32, i'll report what I try here :-)
It seems related to #104
Chipset on my matrix
- RuiChips RUC7258 (Led Gate Driver) : http://www.ruichips.com/uploads/file/20180816/20180816053859223.pdf
- Chipone ICN2037 (16-Channel Constant Current LED Sink Driver with Dual Latch) http://en.chiponeic.com/content/details36_245.html
- Chipone ICN74HC245 (Logic Control) http://en.chiponeic.com/content/details38_95.html
This was the response of the provider:
"hello friend, please connect it to raspberry pi controller. ESP8266 controller is updated, not support our led panels recently. Any questions, please feel free to contact me."
I too have the exact same problem, tried with RPi works great. So I'm guessing the drivers for the new chipsets have to be supported for this to work?
Did you try with and without fastUpdate ... might be a timing issue ....
Cannot get hold of that RUC7258 pdf ... does any one of you happen to have it?
@556duckvader I would assume your display is 8 scan.
Set display.begin(8);
Same issue, same chipset. Removing E makes no difference, neither does fastupdate. Obviously how the library latches to the next row
Did some testing and used the following:
display.drawPixel(0,0,myRED);
display.drawPixel(0,1,myRED);
display.drawPixel(0,2,myRED);
display.drawPixel(0,3,myRED);
//
display.drawPixel(0,4,myGREEN);
display.drawPixel(0,5,myGREEN);
display.drawPixel(0,6,myGREEN);
display.drawPixel(0,7,myGREEN);
//
display.drawPixel(0,8,myBLUE);
display.drawPixel(0,9,myBLUE);
display.drawPixel(0,10,myBLUE);
display.drawPixel(0,11,myBLUE);
It should give three vertical lines of red, green,blue. But only shows RED and BLUE. If I remove the D pin leave it floating I can see the green show up (flicking) in position 2, but also in position 4 of which I have not programmed. Depending on the state of the "flicker:" if I earth the D, then I can get the position 2 GREEN to stay on. But the other states will now not light up.
So in conclusion it its leading me to think that on a row change, the D pin needs to be constantly toggled. Funnyily the D pin on the ESP is sitting at 2.5V... and even if I just ground the D pin then I only get the GREEN POSITION.
Will have to have more of a play, but hopefully that info will help someone investigate further
Did you set the right scan in
display.begin(x)?
Yes set it to 16. Tried others also just in case it was some odd setting but no difference. I am running an older pxmatrix.h file that doesn't have an compile issue with the esp8266, but even on the latest build on an esp32 I get the same results.
I have a similar issue, 4 lines works and then the next 4 doesn't works.
I also followed Brian's guide (I bought the matrix on aliexpress with the link, he provided on his tetris clock repo)
Hey @maditnerd , can you confirm where you used the link and I'll at the very least update it with a note to this issue
Sorry that it didn't work, it was the link i used for myself!
@witnessmenow No problem i'll used it with a Raspberry Pi.
Yes, it is the link from your youtube video : EMvjy3z from SRYLED Display Store
Maybe they changed the chipset ?
I should have tell you first, I was hoping it was simple to fix, but It seems to be more complicated then I would have thought.
Next time, i'll ask the seller if their matrix is compatible with ESP32. They responded pretty quickly so it's a good idea to do before buying.
Does anyone of you live in central Europe and can send a spare matrix I can test with?
I don't have a problem board, but I would be happy to contribute to you getting one from the same seller @2dom
How about this ... tell me the seller and I will get one myself ... if it works you guys can buy me a beer :)
I have updated the readme on the WiFi clock with the warning about this display. Does anyone have a good source from Aliexpress at the moment.
Hi, I bought P3 64x32 panel, but there is FM6126A and with esp8266 brightness doesn't work, from here https://www.aliexpress.com/item/1615847398.html
I was looking for other P3 64x32 display, but it looks like it has the same "fm6126a layout" https://www.aliexpress.com/item/32728985432.html
https://s.click.aliexpress.com/e/dj9WupK0
This is the panel I bought. The issue is that the chips may change depending on the batch. I didn't get the FM chip and have the issue with the every 4 rows. If you float the a b C pins in you hand like someone suggested the entire screen lights up but flickers. The data is correctly being shifted in but the timing for the scan is either out or requires a different of triggering
Presumably the impulse of line C is supposedly short and because of this OUT4-8 do not have time to grow to the desired amplitude, like A, B, D
Did you try adding a few nops to the code yet?
Unfortunately not so strong as to add changes.
Could you try adding delayMicroseconds(1); to the very end of the setMux function?
I tried to add delayMicroseconds(1); in set_mux. commit
But I had to use an older version of the library pxMatrix.zip, otherwise I get an error SPI, how in #issue129
The addition of a microsecond did not work, also 4 lines are not displayed.
No worries...will wait for the panel to arrive (Brian thankfully donated one) and I will try to figure out what the timing issues are. You scope plots are very helpful ! Thanks!
Add delayMicroseconds(1); only line C commit
Everything started to display correctly. There are small artifacts when a large picture is drawn, for example, mario.
Nice...getting there. Can you try putting the delay after digitalWrite(_C_PIN,HIGH); YOu could also try increasing the delay if that does not do the trick.
Nice work. I was so close but had the delay in a different place. If you increase the delay it will reduce the flicker and artifact.
So what are you using now...could you post the snippet of code ?
Same place as egrekov in the binary part of setmux for line C but delay of 2us. delay must before the pull high.
Nevertheless, the addition of microseconds 1-10 in delayMicroseconds, adds a flicker to the display, of course this fixes the problem temporarily, but the picture is not so pleasant for the eye.
Will look into it as soon as I have a panel ...
You can try the latest master. I added an option to control the delay in every stage of the multiplexing.
Try adding display.setMuxDelay(0,1,0,0,0);
after display.begin()
.
This would add 1us after the B channel
@witnessmenow Thanks for the panel and the matrix shield - working just fine !
@2dom Very sorry about this but I can't seem to figure out what is going on. Somewhat of a noob here... tried with both Arduino IDE and VSC- PlatformIO
@scarecrow2k6 You need to update the library
https://github.com/2dom/PxMatrix/blob/master/PxMatrix.h
Spent more testing. it turns out a working commit 4d8c6d4, but I had to comment out lines 654-657 otherwise it did not compile.
PxMatrix.h:655:123: error: expected ';' before ')' token
Beginning with the de2df96 commit, problems have already appeared, and at the last commit, not a single LED is working at all.
Thanks for the feedback @egrekov . Left a stray return in the function :) Check again with the latest master please!
No worries ... Glad that it works :)
Hi, I have 64x32 P2.5 16S V1.0 panel with ICN2037 and RUC7258 and when I connect it, display is totally blank.
I tried to play with setMuxDelay, but it doesn't help at all. I have latest master.
Maybe this helps. see also issue 139.
Via the "discussions" from the site of Morphing Digital Clock by HariFun i tested a suggestion from "timz3818 " to disable "#define double_buffer " and voila this works.
No black panel-screen after PX 1.7.0 and ESP 8266.
It works for Hari's clock, the remix and further variations.
I have no ideer what double buffer does in those scetches, but disabling works somehow.
I disabled double_buffer a long time ago, otherwise my P3 and P4 panels didn't work.
But P2.5 with two ICN74HC245TS, four RUC7258 and a lot of ICN2037BP is not showing a single pixel.
It is from here https://www.aliexpress.com/item/32650905490.html but is has different chips and layout than on the picture there.
@zakrava
Hello, I have a P3 display witch the exact same ic's an the same behavior, no pixel lights up. Except the pattern_test and the double_buffer Demo works as expected. I cant understand that behavior :(
I disabled double_buffer a long time ago, otherwise my P3 and P4 panels didn't work.
But P2.5 with two ICN74HC245TS, four RUC7258 and a lot of ICN2037BP is not showing a single pixel.
It is from here https://www.aliexpress.com/item/32650905490.html but is has different chips and layout than on the picture there.
I currently have 3 different 64 * 32 displays, all with different chip sets. One of them does not have a RUC7258 circuit. This is the only one that works seamlessly with ESP32. There are different problems with those with the RUC725 (eg issue # 152) All 3 of my monitors run smoothly on the Arduino Mega, unfortunately the Arduino's performance is not sufficient for my needs.
Do you use PxMatrix on Arduino Mega?
If so you could try reducing SPI speed
I don't use PxMatrix in arduino. I just wanted to point out that displays were working.
I'm experiencing the same problem with a panel with the same chips as @maditnerd, and no pixel light at all.
I am in the same boat.
Sie kauften auch ein Panel 64x32 P3, probierten ein paar Skizzen aus und überall leuchten 4 Streifen, 4 leuchten nicht ...
PS. Jetzt hat der Verkäufer bereits gewarnt, dass es Probleme mit dem esp8266 und dem esp32 gibt, aber es gibt keine Probleme mit dem Himbeer-Pi
@DanielRTRD Thank you, this pointed me in the right direction.
I bought a P3 panel (64*32) with the name E506652 DCHY-M 2013. While the same panel with 1946 at the end comes delivered with the FM6124 the 2013 comes with ICN2037BP.
The solution for PxMatrix with ESP32 and as such for TetrisClock (shout out to @witnessmenow, thank you!) is to add the following line after display.begin(16)
.
display.setMuxDelay(1,1,1,1,1);
Reducing the speed for just channel B (as the example states in #117) results in flickering for me. Adding delays for all gets rid of flickering in my case.
Hi, I have 64x32 P2.5 16S V1.0 panel with ICN2037 and RUC7258 and when I connect it, display is totally blank. I tried to play with setMuxDelay, but it doesn't help at all. I have latest master.
Did you manage to make this display work? Thanks