hzeller / rpi-rgb-led-matrix

Controlling up to three chains of 64x64, 32x32, 16x32 or similar RGB LED displays using Raspberry Pi GPIO
GNU General Public License v2.0
3.64k stars 1.16k forks source link

P3 64x32 ICN2037 with Raspberry PI 1 model B: no pixel working #976

Open masiorama opened 4 years ago

masiorama commented 4 years ago

Hello everybody, in the last days I'm playing with my first matrix led screen (bought last December) and after a few tries I am totally confused, and nothing works.

This is my setup:

For the wiring I followed this.

I cloned the library and tried with a few examples, like for example:

./demo -D 0 --led-cols=64

but not one led turns on.

I tried with a lot of parametrs but nothing seems to work. The screen is totally blank, and it shows just a second of blue flashing when I power everyting up, and then nothing more...

I'm sorry if these infos are not enough, but I'm a total n00b, this is my first attempt with this kind of stuff. Thanks in advance!

penguintutor commented 4 years ago

I've got a lot of experience with Raspberry Pi and electronics, but I'm having a similar problem.

I have a 32x64 matrix which I'm trying to get working using a Adafruit Matrix Bonnet. At one point I thought I may have been sent a dud matrix, but I can get it working with an Arduino, just not the Raspberry Pi.

I've tried using the Adafruit installer as well as compiling this from source. I've even tried two different Raspberry Pis. I'm guessing there is a conflict with something else on the Pi, but not sure what. I'll keep looking, but if anyone else has come across this problem and found a solution that would be useful.

hzeller commented 4 years ago

The ICN2037 might well have some configuration needed that we need to clock in there first.

If you find a detailed datasheet you can experiment with your panel to see if there is some code needed like for the FM6126 ( https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/lib/framebuffer.cc#L396 )

If you get it working, we can add another --led-panel-type that can deal with this. Please send datasheet findings here for people to comment and possibly send a pull request.

Related bugs to check discussions there; These are also ICN chips, so they might have a lot in common:

Since I don't have such a panel, I can't test it, so you have to make the necessary experimental steps and prepare the code for a pull request.

masiorama commented 4 years ago

@penguintutor I'd like to try with an arduino (I think I've got an old Arduino Leonardo) to find out at least if the screen is ok. Can you share how you make it work? Thanks in advance.

@hzeller I'm a total noob, but I will try to follow your suggestions to contribute, thanks!

hzeller commented 4 years ago

I just read your first message again: you are using the adafruit wiring, please don't do that, they use my library but mix things up a little. Only use the original wiring documentation found here: https://github.com/hzeller/rpi-rgb-led-matrix/blob/master/wiring.md

penguintutor commented 4 years ago

@hzeller Thanks for pointing out that wiring. In my case I am using the Adafruit Bonnet which I believe should work using the option --led-gpio-mapping=adafruit-hat If I connect directly to the Pi I am concerned that it may damage the Raspberry Pi as I believe I may have damaged a MKR Arduino which uses 3.3V the same as the Pi. I believe that without the power supply to the board then it pulls current from the controller and perhaps overloaded the pins (when connected to an Arduino Mega with no 5V supply the LEDs lit but were dim. I powered on the Arduino before powering on the 5V supply; perhaps the 5V needs to be connected first, but that could be a problem if the 5V is accidentally disconnected before the Pi?

The code for the Arduino is standard code which is the same as the other matrix displays so I didn't think it would need additional code. I will try comparing the code to see if there is anything extra that that Arduino is doing, but that's the reason I thought it may be something else interfering with the GPIO. I know the snd_bcm2835 module has caused me problems with other RGB lights in the past, but I have already blacklisted that.

@masiorama Unfortunately your Leonardo won't run the code. For a 32x32 you need at least a Uno and for the 32x64 you need an Arduino Mega. You may be able to run the 32x32 code on a Uno connected to the 32x64 matrix (in that case the image is duplicated side-by-side). Also avoid the MKR series (as I stated above I think I may have permanently damaged one by connecting that to the matrix). Wiring details for the Mega are at https://learn.adafruit.com/32x16-32x32-rgb-led-matrix/overview . I think the Pi is more suitable for the matrix rather than the Arduino (due to lack of memory on the Arduino), but it was useful to test using the Arduino to prove that it wasn't a faulty matrix.

masiorama commented 4 years ago

Indeed it was the wiring. I just tried and the screen is working as intended! Thank you everybody for you suggestions and @hzeller for the library!

penguintutor commented 4 years ago

I've had chance to try it again and it does work with the standard wiring. The library should support the AdaFruit bonnet with the appropriate parameters, but that's not working. I'll take another look at that when I get chance, but for now I've got it working by wiring directly from the RPi to the ribbon connector. Thanks.

hzeller commented 4 years ago

Looks like in their tutorial they use a really really old version of this library with a wiring you can select with --led-gpio-mapping=classic-pi1

penguintutor commented 4 years ago

I can now confirm my problem was hardware related.

I have returned the AdaFruit Matrix Bonnet to the supplier who have confirmed that it isn't working. So it looks like I may have had a dud.

I'm sticking with driving it directly from the Raspberry Pi as that takes up less space than with the Bonnet installed.

Thanks for your help and for creating the code which is really useful.