Open briggsm opened 1 year ago
Hi, I just discover your post, and I guess I fighted with the same kind of outdoor panels from Eagerled (P5-O8S-SMD2727-64x32). I wrote a mapping in an algebric way, if it helps :
void MapSinglePanel(int x, int y, int *matrix_x, int *matrix_y) const {
int pix_nb = x+(y*64);
*matrix_x = ((((pix_nb%64)/4)+1)*8)-((((pix_nb%1024)/512)+1)*4)+(pix_nb%4);
*matrix_y = ((pix_nb/64)%8)+((pix_nb/1024)*8);
cheers, fabrice.
I found a panel that none of the Multiplex options (0-18) worked for, so I had to create a new one for it in
multiplex-mappers.cc
.I don't really have a deep understanding of what I'm doing, but I managed to get it working. I want to document it here, so others might benefit, and I'd like to create a pull-request to have it added to this library.
Here's the code I added to
multiplex-mappers.cc
:This panel uses a 'Row Address Type' of 0:
--led-row-addr-type=0
So the configuration options that I use are:
--led-cols=64 --led-rows=32 --led-row-addr-type=0 --led-multiplexing=19 --led-slowdown-gpio=2
led-multiplexing
of 19: The Multiplex Mapper I specified in this post.led-slowdown-gpio
of 2: sometimes needs to be 3 depending on the quality of my power supply / power cable!To figure out the multiplexing code, I setup a spreadsheet, so I could see the pattern, then figure out the right math that would map the pixels correctly. (Anybody, please feel free to simplify my math if it can be - or make it perform better). Here is an image of the spreadsheet that shows how the pixels are mapped on my panel:
Out of curiosity, does anybody know what this type of mapping is called? (stripe, zstripe, checkered, spiral, etc.) I have no idea - looks really weird to me. Must be for speed or brightness, I guess.
Also for reference, here's a picture of the back of my panel:
What other info can I give to help distinguish this panel from other similar panels?