Loopback LED Curtains - Proof of Concept

I’ve come up with a way to build a LED curtain to use with WLED without any additional hardware. I built a small 10x10 curtain for a proof of concept. I started with the standard 10cm (4in) pitch fairy lights and each strand I’m looping back on itself and offsetting the pixels to end up with a 5cm (2in) pitch matrix. I used transparent 6mm heat shrink tube to hold the strands in place.

I wrote a program to generate a LED map because pixel 9 is between pixels 0 and 1, 8 is between 1 and 2 and so on. You also need a very recent build of 0.14.0-b2 because until recently ledmaps were disabled in 2D mode. The developers are still working out some of the details for how ledmaps are going to work with 2D, non-rectangular shapes with gaps, etc.

10x10 Curtain

1 Like

So…
Interleave horizontal/vertical option in matrix set up is due.

It worked OK as is. Users will need something to generate the ledmap. We could make something in JavaScript.

Biggest problem is that it ignores the first pin and orientation settings in 2D config. So text is always scrolling vertically unless you click transpose.

But if you have ideas that would make it easier, I’m all for it.

That’s what I’m saying. :slight_smile:
Automatically creating a matrix ledmap using pixel interleaving. Should not be too difficult for a single “panel”.
Interleaving & serpentine interleaving.

1 Like

A full size curtain is going to have 1200 - 1800 lights. I assume ledmap works across multiple pins as long as you set the correct number of LEDs on each pin. Am I correct in that assumption Blaz?

Yes, internal ledmap for 2D has no issues until about 4000 (8k buffer) on ESP32 and can take as many pins as you like.
It is external that are limited by JSON buffer and ArduinoJson array processing.

Internal would be if you developed an interleave feature for panel configuration and external would be if I’m using ledmap.json. Going off of my experience sending pixel art, I’m guessing wed be OK with a 32x32 matrix, but probably not too much bigger than that. Do you have a feel for what the approximate limits would be for ESP32 and ESP8266?

I would not go beyond 16x16 for ESP8266.
For ESP32 (and variants) the limits would be:

  • 4096 for regular 32 and S3
  • 2048 for S2
  • 1024 for C3

You can increase JSON buffer length to about 32k on ESP32 (& S3) but not much on S2 or C3.