Closed marcmerlin closed 1 year ago
Hello @hzeller , First of all thanks for your awesome code and project, please anyone can help me with my problem!!! My problem is when I'm add another panel to the output of the first panel the screen shows me different output but alone with just 1 led panel everything is okay! and also I using the same led panel!! panel IC is ------> FM6126A_ 64*128 I tried these command flags also not work --led-chain=2 && --led-chain=1 I also set col to 256 and also dosen't work!!!,And also I'm not using any hat, direct to raspberry pi GPIO! Everything is ok when its just only 1 panel no more chain!!!!!
Please Somebody Help! Appreciate!
First Image Only 1 led Panel --It works Correct
Second Image chain second panel !!!
First Image Only 1 led Panel
Second Image two chain panel !!!
Yeah, tipical, you need a level shifter, you need a hat.
No way to use hat?? I don't want to make them parallel I just want to extend my led in a row! if i'm not wrong i think level shifter is used for two different output
@mcpgza thanks for the answer, can you please guide me how to control any pixel of led panel, very simple code.
@arash1221 Please don't hijack an existing issue with an unrelated problem; open a new issue.
To your problem: try to gpio slowdown your output (--led-slowdown-gpio
) depending on the internal wiring you're increasing the load on the gpio pins, which will make them switch slower.
Also, you really want a level shifter, as not only will be the digital voltage correct (and right now you're just essentially playing jeopardy if it might work), but also, you can't really drive long lines with the GPIO pins directly.
Thanks @hzeller I recall it.
Thanks @mcpgza . I'll probably pay a bit more for pristine panels, I don't want missing pixels for my setup :)
985 explains why ABC is slower than ABCDE. In a nutshell, ABC panels are ABCDE panels with 2 address lines missing, so it takes longer to send the 5 bits of addresses over 3 bits.
you can benchmark this yourself with ~/rpi-rgb-led-matrix/examples-api-use/demo --led-rows=64 --led-cols=128 --led-chain=1 --led-show-refresh --led-parallel=3 --led-pwm-dither-bits=1 --led-pwm-bits=7 --led-panel-type=FM6126A --led-row-addr-type=0 -D0 and then use led-row-addr-type=3 You can do the speed test even without the right panels and look at the Hz value you get.
Hey, I've seen your discussion about ABC being slower than ABCDE. This is because the code is not using the Shift-Register that is connected to the row selection as it is meant to be used (I guess).
To select one out of N rows, you are shifting out N-1 zeroes and one one out to the display. Of course this needs more than N clock cycles which is way longer on 1/16 or even 1/32 panels than just setting 5 GPIOs at once.
However: This is actually not necessary if you scan your rows incrementally, which is usually what is done. In this case you actually do only have to shift out one bit for every cycle. You shift out 1 for row 0 and 0 otherwise.
Here is the code I contributed to PxMatrix few days ago: https://github.com/2dom/PxMatrix/blob/178054b3021892cb9185c3a92051ba2b2afc8977/PxMatrix.h#L1012
If you don't require random row access, it boils down to:
// Just shift the row mux by one for incremental access
digitalWrite(_C_PIN, (value==0) ); // Shift out 1 for line 0, 0 otherwise
digitalWrite(_A_PIN, HIGH); // Clock out this bit
digitalWrite(_A_PIN, LOW);
Hope this may also help you :)
Nice, thanks xsrf
Nice, thanks @xsrf . Could someone who has such a panel (I Ithink I don't have any if these in mystash) implement and test that in the rpi-rgb-led-matrix library and send me a pull request (e.g. @marcmerlin :) I could implement it blindly, but it is better with a board to test that it actually works :)
@hzeller please implement it, i will test and fix it if necessary. I dont know how to translate that code to your library api.
So, I do have ABC panels somewhere in my garage, but I'm not using them, as my main array is ABCDE, so honestly my enticement to spend time on them for a small improvement that i won't see because I don't use them, is kind of limited :) That said, I'm happy to confrim that new code works on them if that helps.
Hi. I read your comments to try to solve my problem but could not solve it. I have 4 LED arrays with 32x16 size. I want the image or Demos to be centered in my panels but I have not been able to configure the parameters to achieve this.
Each matrixs connected in a only matrix of 64x32 size...
The closest thing to what I want (DEMO 0)....
Any idea?
I believe those panels are not ABC, so this is not the place to ask for him on those panels. Unfortunately there isn't a support group yet for this library, @hzeller was consideirng options, otherwise for now try to file a new issue with all the details on your panels, how they are wired, what command line options you used to run the demo, etc.
@javiervalero31 actually there is a support group now, I just created one :) https://rpi-rgb-led-matrix.discourse.group/
@xsrf I implemented it in my code and after that I found your message.
Here is the code I contributed to PxMatrix few days ago: https://github.com/2dom/PxMatrix/blob/178054b3021892cb9185c3a92051ba2b2afc8977/PxMatrix.h#L1012
If you don't require random row access, it boils down to:
// Just shift the row mux by one for incremental access digitalWrite(_C_PIN, (value==0) ); // Shift out 1 for line 0, 0 otherwise digitalWrite(_A_PIN, HIGH); // Clock out this bit digitalWrite(_A_PIN, LOW);
Hope this may also help you :)
If you implement it like this then it also fixes the problem with the black line in the middle of the module (which was reported many times in this issue).
I also have the panel with ABC row addressing and I found something interesting today. Just look at ICND2019 datasheet. The control sequence is exactly the same as you proposed. Also it seems that B
line could be used in order to configure some extended register (haven't tried it yet). Here is a line from the datasheet:
For control card, SDI is the C of 3-8 decoder, DCK is the A of 3-8 decoder, RCK is the B of 3-8 decoder
this has been fixed for a while, closing
This is starting to get annoying... I get output on them after sending the fm26126A init sequence, but the output is all wrong given the line addressing having changed again. It seems that you only select one of 8 lines, and push 4 times 128 pixels to reach the other 3 rows after filling the first one. Why, oh why do "they" have to keep changing how to do things? I got those as replacements for a perfectly working ABCDE panel