2dom/PxMatrix

New P3 64x32 Issue

PurelyAbrasive opened this issue · 65 comments

I am having an issue where not all the LED's are lighting up. I have followed Brian's guide and I have verified my cabling multiple time and I just can't see why its not working. Below are some images of the issue.
IMG_7600
IMG_7601

2dom commented

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)

https://github.com/witnessmenow/WiFi-Tetris-Clock

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

I have same problem

WhatsApp Image 2019-08-30 at 09 17 03

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?

2dom commented

Did you try with and without fastUpdate ... might be a timing issue ....

2dom commented

Cannot get hold of that RUC7258 pdf ... does any one of you happen to have it?

2dom commented

@556duckvader I would assume your display is 8 scan.

Set display.begin(8);

This is the Chipset on my matrix

64X32 P3-6432-2121-16s-d1 0

WIN_20190902_21_43_37_Pro
WIN_20190830_13_45_04_Pro
WIN_20190902_21_48_43_Pro

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

2dom commented

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)

https://github.com/witnessmenow/WiFi-Tetris-Clock

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.

2dom commented

Does anyone of you live in central Europe and can send a spare matrix I can test with?

They also bought a panel 64x32 P3, tried a bunch of sketches and everywhere 4 stripes shine, 4 do not shine ...

PS. Now the seller has already made a warning that there are problems on the esp8266 and esp32, but there are no problems with raspberry pi

rgb1
rgb2

I don't have a problem board, but I would be happy to contribute to you getting one from the same seller @2dom

2dom commented

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

Conducted a little research, maybe it will somehow help
schema

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

2dom commented

Did you try adding a few nops to the code yet?

Unfortunately not so strong as to add changes.

2dom commented

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.

2dom commented

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.
clock
circle

  1. Youtube video - Mario
  2. Youtube video - Banana
  3. Youtube video - Circle
  4. Youtube video - Clock
2dom commented

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.

2dom commented

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.

By advice @texynz increase delayMicroseconds to 2 and sent pull request to @2dom, to include support for the new display in the library code.

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.

2dom commented

Will look into it as soon as I have a panel ...

2dom commented

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().

2dom commented

This would add 1us after the B channel

2dom commented

@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

Arduino_VSCODE_error

@2dom Updated to the last master, the image ceases to be displayed at all, if you roll back to the c7005e5 commit, then the image is.

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.
not work

2dom commented

Thanks for the feedback @egrekov . Left a stray return in the function :) Check again with the latest master please!

@2dom, thank you so much, everything works, you're just super)

2dom commented

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.

2dom commented

Do you use PxMatrix on Arduino Mega?

2dom commented

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

rgb1
rgb2

можно вашу библиотеку? самостоятельно я не смогу
62843324-10cd2f00-bc87-11e9-824d-1757fe3b2eee

Check out #117

@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