2D panels with gaps

Hello! I’m trying to setup 4 vertical panels, each one 8x128 pixels in serpentine. I want to assemble them with a gap between them. I can set them up in 2D Configuration if I leave no gap:

Panel 0: offset 0, 0
Panel 1: offset 8, 0
Panel 2: offset 16, 0
Panel 3: offset 24, 0

In this way I have a matrix dimension of 4096 pixels. This works fine. I have a 4 output board and each panel is in an output with 1024 pixels.

I want a gap, so that effects like Colored Bursts show up correctly. So I tried this:

Panel 0: offset 0, 0
Panel 1: offset 16, 0
Panel 2: offset 32, 0
Panel 3: offset 48, 0

This doesn’t work: the ESP32 reboots and the configuration is not updated.

If I leave a 2 pixel gap (X offsets of 0, 10, 20, 30), it works. But if I leave a 4 pixel gap (0, 12, 24, 36), it crashes. What could be going on? I seem to have plenty of free heap available. Thanks!

More info:

  • The problem happens even if I have only 2 panels (8x128 each).
  • My panels have the first LED at the bottom left. If I set up Top/Left in wled, it works! I can set offsets of 0,0 and 16,0.
  • If I then change the first LED to Bottom/Left in wled, it still works! It doesn’t crash even if I keep the offsets at 0,0 and 16,0.
  • If I set it up from scratch with the first LED at Bottom/Left and offsets of 0,0 and 16,0 at the same time, it crashes. I have to first set up the offsets and leave the first pixel at Top/Left, save, and then change it to Bottom/Left.

You will need a debug build and then monitor serial output. For useful output you will also need to enable exception decoder. Once you capture crash with exception decoder, post it.

2D setup is a bit sketchy, I also noticed that in recent test I ran working on a different issue. Sometimes it just would not save, on rare cases I even got reboots, even when doing 64x64 total size. After some trial and error I had it running at 128x64, so once it successfully saves, it works. Did not investigate. That was on an S3.