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.72k stars 1.18k forks source link

LED display 128x64 RPi4 RGB Matrix Hat problem #1504

Open Tadont opened 1 year ago

Tadont commented 1 year ago

Hello! I connect this LED screen using raspberry pi4 and RGB Matrix Hat. using config data. None of the examples run(Python, demo, led-image-viewer). would be grateful for help IMG_20230126_110417 IMG_20230126_113112 IMG_20230126_134718 photo_5373298417566073720_y

https://user-images.githubusercontent.com/123635181/214839035-d818547f-5356-4c44-a274-339f1b7ec16e.mp4

sudo ./led-image-viewer --led-cols=128 --led-rows=64 --led-gpio-mapping=adafruit-hat --led-slowdown-gpio=1

anandrajgupta commented 1 year ago

1st --led-slowdown-gpio=5

2nd led image viewer will take image as an argument

3rd led multiplexing will have to be applied

etc...

put --help in the command line argument and you will get all possible options

Tadont commented 1 year ago

--led-slowdown-gpio=5 produced such a result. led multiplexing doesn't change anything. Maybe some more advice? photo_5373298417566074000_y

anandrajgupta commented 1 year ago

i think it is --led-gpio-mapping issue, you might need to choose something else because the content is not being drawn at all!

moreover, led multiplexing command is --led-multiplexing=x where x = 0 to 17 digit

Tadont commented 1 year ago

@anandrajgupta, Unfortunately, none of the above settings help.

Tadont commented 1 year ago

the chip that my rgb matrix uses: SM16169S

anandrajgupta commented 1 year ago

same chip https://github.com/hzeller/rpi-rgb-led-matrix/issues/1015

wata-net commented 1 year ago

Thank you for letting me know the model number of the driver IC. According to the datasheet, "SM16169SD is a high-brush constant-current drive chip using SM-PWM protocol. It has a built-in 8K SRAM memory, which can store a complete frame of display data, and supports 2~16 scan LED display screens to store and display the entire frame of data." So this library probably does not support SM16169S. I don't know if it's correct, but I tried to find out how to initialize the SM16169. (I'm assuming RT5958 because I'm not sure about the row driver.) I hope someone sees this and responds... 1

Tadont commented 1 year ago

@wata-net DP7268 number of the second chip on the panel

wata-net commented 1 year ago

Judging from the model number DP7268, it is probably a product of "德普微电子". But I couldn't find out the details. The model number is similar to TC7258, so it may be the same product. By the way, TC7258 is a normal 3 to 8-Line Decoder, so no special settings should be required.

Tadont commented 1 year ago

But for some reason it doesn't work

wata-net commented 1 year ago

The DP7268 does not require any special settings, but the SM16169 requires a special initialization procedure. If the DP7268 works fine and the SM16169 does not, the LED panel will light up but the correct image will not be displayed. Both DP7268 and SM16169 need to work properly to display correct image.

andytheengineerguy commented 10 months ago

@Tadont or @wata-net, did you ever find out how to initialize the SM16169SH?

I am facing the same problem now. I have translated the datasheet into English, and in general, I understand it. But I'm yet to figure out how this library does the 'initialization sequence' of the panel.

bsparacino commented 10 months ago

I keep running into this issue too, manufacturers keep updating their modules with SM16169SH chips and I can't use them. I have 4 different modules right now with this chip that I can't use. I will send a monetary reward to whoever comes up with a solution.

andytheengineerguy commented 10 months ago

@bsparacino I feel you!!! I have a lot invested in this library and the project I am basing it on. I am very willing to compensate whoever solves this too. @hzeller is this cheeky to ask? Could you be this person..?! 😅

bsparacino commented 10 months ago

And now I just got an order of 400+ modules in with ICND2153AP chips, of course the manufacturer changed the design from our previous order and didn't tell us. Now I have a pile of rocks I can't use.

wata-net commented 10 months ago

I don't have an SM16169 panel, so I can't confirm the operation. Has anyone tried the previously posted analysis results?

andytheengineerguy commented 10 months ago

@wata-net thank you for posting the analyses results - personally, this is beyond my skill level in terms of firmware development. Do you know anyone who could translate your analyses into a C initialization sequence to integrate into this library?

wata-net commented 10 months ago

@andytheengineerguy Sorry, I don't know. If I'm lucky enough to get an SM16169 panel, I'll report back. Since only STM32 can be used, I plan to check the operation with STM32.

bsparacino commented 10 months ago

@wata-net I have SM16169 panels, I can mail you a couple to test. I'm in the US.

andytheengineerguy commented 10 months ago

@bsparacino and @wata-net I also have spare SM16169 panels that I'm willing to ship. Let me know if I can be of any use here 💪

wata-net commented 10 months ago

I have uploaded the HUB75 driver project file for NUCLEO-F446RE. https://drive.google.com/file/d/10cotodkM1iLoY0CljS72_RwHh7dI84Kq/view?usp=sharing Please load it into STM32CubeIDE and use it. Compatible driver chips are SM16380, ICND2153, and SM16169. SM16380 and ICND2153 have been confirmed to work. Could someone please confirm the operation of SM16169?

Please specify the number of pixels of the LED panel in lines 230 to 236 of main.c. Also, specify the type of driver chip on line 309.

Everything is written in main.c. Please decipher. However, my coding skills are crap. please forgive me.

If you do not want to convert the level of the output of NUCLEO-F446RE, please set the power supply voltage of the LED panel to 4V. This is very important.

I am in Japan. Thank you for suggesting sending LED panels. However, it costs money, so I would like someone to try the above project file.

ICND2153_test Pin assign

andytheengineerguy commented 10 months ago

Hi @wata-net, thank you for sharing this. I have ~intermediate experience with both the Nucleo and STM32CubeIDE. I have used them both at work, but do not own any Nucleos at home. However, with a bit of time and some guidance from you, I'm confident I could test this.

Some questions:

  1. Is there any way you could adapt this code to a fork of the rpi-rgb-led-matrix so that I can test it directly on RPi hardware? If not, no worries, I would be willing to buy a Nucleo to test your code. Let me know.
  2. Just curious - you mention the compatible driver chips as SM16380, ICND2153, and SM16169, SM16380 and ICND2153. Is it because they all share the same initialization sequence?
wata-net commented 10 months ago

@andytheengineerguy

  1. I've never used a raspberry pi. I hope someone does it.

  2. These three driver chips are electrically the same, but there are some differences. For example, the control commands to send, the number and contents of configuration registers, the number of GCLK pulses, etc. These three were successfully controlled by analyzing signals from commercially available controllers.

andytheengineerguy commented 10 months ago

@wata-net ok, no problem. I just bought a Nucleo. I'll let you know how it goes

IGR2014 commented 2 months ago

@wata-net I can do it if you explain me how SM16169 should be initialized. I see your code, it's ok but without some kind of programming manual it's hard to convert this code for rpi-rgb-led-matrix library

wata-net commented 2 months ago

@IGR2014 I'm sorry, but I don't have enough time to create a manual yet. I've posted before about how to initialize SM16169, but if you have any questions, could you let me know? https://github.com/hzeller/rpi-rgb-led-matrix/issues/1504#issuecomment-1406583087 I'll answer as much as I know.

IGR2014 commented 2 months ago

@wata-net oh, wow, thank you! I missed your screenshot with register map. I'll try to make working code ASAP

UPD: The first question I have is what exactly PRE-ACT command is? Just a 14 CLK themselves? image

wata-net commented 2 months ago

@IGR2014 I don't know the details. It's probably some kind of unlock command to write to the configuration registers.