TL;DR

Is there an easier way to XY map a hollow matrix of square panels, with pixels on the inside edge (please see picture attached), so that;

A) Doesn’t require XY mapping every pixel - as this size of install would need a 108x189 size array. The amount of Null pixels would be huge!

B) is trivial to make patterns across the whole matrix instead of on individual panels.

C) Preferably it would be similar to the XY coordinates in Jason coon’s Tree, but for a 2D plane instead. I have looked into this a little bit, but not enough to wrap my head around yet.

Just wondering if anyone has some input on a project I am about to step into.

A friend of mine bought an LED infinity dance floor (4x7 tiles) from China about a year ago. The build quality was poor and the type of LED limited the amount of control.

He’s asked me to rip out the base panels and refit with some better LEDs. There’s 28 tiles in total and I have now fitted 4 of them with WS2813 pixels @ 60LED/m

Each side is 26/27 pixels long giving a total of 107 pixels for each tile

I am using the ESP32 feather with @Jason_Coon 's wonderful Octo level shifter shield. I plan to use parallel output to 7 rows, with 4 tiles in each row. That gives a total of just under 3000 pixels.

I have parallel output working fine (Thanks for your code input @Sam_Guyer - not to mention all the guys from FastLED behind the scenes! @Daniel_Garcia @marmil @Marc_MERLIN the list goes on…! ) …but my patterns are a bit disjointed due to the way they are wired…

Each panel has the first pixel starting from the top left corner, going downwards, all the way around until it reaches the top left corner again. I have then soldered a joining piece to some 1.0mm 3 core flex cable, onto an XLR connector, and straight into the next panel in the chain.

Because of this, when I output a rainbow pattern the colours of two adjacent tiles is out by a factor of 3/4 (I.e - side 3 of tile 1 is next to side 1 of tile 2 etc, if that makes sense)

I was looking at pixel mapping them (have done this before on the stairs project and a few others) but this time it’s a different ball game. This time the array I would be creating would be 108x189 pixels which gives a total XY map of 20,412pixels (including the null pixels) so it just isn’t that appealing to do it that way.

I have briefly looked at the alternative XY mapping in which the pixels are given a coordinate on a grid and mapped to a 0-255 array. But just can’t seem to get my head around it.

So, before I invest some time into mapping this out properly, are there any recommendations about mapping each particular layout?

The pattern is repeating squares, so there must be a better method somewhere. I’m not really sharp on my maths anymore since leaving uni.

But any help is greatly appreciated…