Mixed Panel Geometry

Hi there. I am building a setup with 4 horizontal panels and 2 vertical panels

In order to display anything here, the geometry does of course needs to be taken into account.
I didn’t give it much thought in the beginning since I assumed I would just have to transform my input accordingly before passing it to rpi-rgb-led.

However. I seems like rpi-rgb-led does have support for defining layouts. But I am unsure if it can support this type of mixed panel orientations.

The default mappers don’t allow any kind of layout, and it depends on if your layout is a handy multiple of 2 or 3 (to use 2 or 3 chains in parallel for better refresh)
Have a look at https://github.com/hzeller/rpi-rgb-led-matrix/tree/master/examples-api-use#v-mapper-and-vmapperz-vertical-arrangement
Using the V-Mapper and U-Mapper at the same time may allow you to do strings like this

S1.1->S1.2->S1.3
               v
S1.6<-S1.5<-S1.4

and repeat this with a string#2 and string#3

Otherwise, you’ll have to write your own mapper, you can look at this for an example


and

But back to your exact layout, no there is no support for rotated panels half way through a display. You’ll have to write your custom mapper for this.

Thanks a lot! I will take a deeper look into solving this problem when I get to that.

I’m still working on the mechanical parts and have not started doing any real wiring or coding yet.

And to be clear, the custom mapper API literally allows you to map any x,y coordinate set to any other X,Y set, so you’d just wire your panels as if they were a long string (or 2 or 3 long strings for parallel output), and then map the pixels in software from the display coordinates once you’ve laid out and rotated your panels, to the actual physical coordinates.

I am wondering if I need to use a custom mapper for the following arrangment:

S1.12<-S1.11<-S1.10 
               ^
S1.7->S1.8->S1.9
 ^
S1.6<-S1.5<-S1.4
              ^
S1.1 ->S1.2->S1.3

I was trying it this way:

sudo ./demo -D0 --led-no-hardware-pulse --led-rows=64 --led-cols=64 --led-chain=12 --led-parallel=1 --led-pixel-mapper=U-Mapper --led-gpio-mapping=adafruit-hat

but how can I force it to make 3 tiles wide and 4 tiles high?

I’m not an expert, but I don’t think U mapper will know how many times the display is “folded”
you can see some details on rpi-rgb-led-matrix/examples-api-use at master · hzeller/rpi-rgb-led-matrix · GitHub
I think in your case, you can lie to the library and tell it you have 4 panels of 192x64
P4
^
P3
^
P2
^
P1 (which is 192x64)
Then you can use Vmapper to tell it your 4 virtual panels are stacked up and not horizontal