Addressable Net Test Wall of Awesomeness

Ok, the addressable nets are fun!

Thanks to @justpete, I’ve had a couple of the aliexpress nets to play with. They measure about 8’x6’, and have 400 LEDs. Here, I’ve hung them offset diagonally by 1/2 the pixel distance and set them up with a Pixelblaze 3 and an output expander. Eventually, I’m planning an architectural “cloud” fixture, to be hung from a ceiling. For now though, it’s pretty stunning as a wall display.

Below is a video showing some of the things I’m working on. Source code is available on my repo, and below the video there’s an index with times, names and links for the specific patterns.

13 Likes

Wow. Just, and I can’t stress this enough, wow.

1 Like

Wow that’s absolutely amazing super dope! Could you possibly provide a link to the exact one that’s in the video. I love this forum every time I get on here I learn something new!

Thanks Man,
Twilight

1 Like

Very nicely done indeed, and some of those new patterns are great!

I’m sure zranger1 will correct me if I’m wrong, but I think it has to be these ones.

3 Likes

They are indeed the ones @chrisNZ linked above. If you get them, be sure to note the orientation of the cable before you cut off the controller, so you can test polarity. There are 4 wires, 3 are connected.

On mine, the ground wire is on an outside edge marked by a continuous, somewhat hard-to-see white stripe. The data line is right next to the ground, and 5v is on the other edge.

I have two of these nets.
Yors setup looks very nice! I will try to reproduce it.
I have a power related question to you.
When I quickly tested one of this nets for a full white I noticed more than a half of LEDs
looked very redish (I posted a picture but cannot link it to these thread).
Obviously wires are too thin resulted to the huge voltage drop.
Did you power yours nets just only from one side or did you inject power at the end
of horizontal wire?

For the moment, I’m using a couple of 20A power supplies that I grabbed at random from the parts drawer, and powering only one end of the horizontal wire.

Without injection at both ends, mine behave just as you describe – nearly orange at the far corner when set for full white. But the drop effects are also uneven. I had reddish LEDs at seemingly random places in the vertical strands, even in columns near the power supply.

For development, I’ve just limited the maximum brightness to 70% and continued. But I think additional power injection is a necessity. When I build the permanent frame, I plan to inject power at both ends, and possibly in the center of each horizontal strip as well.

1 Like

OK.
This is exactly what I am planning to do for the power distribution.

Thank you. Can’t wait to get my hands on theses.

Absolutely love this project! I was curious as to whether these lights could work for something like that.

@Scheeeeer , Yes, but the trick is getting the data back up to the next strand. You could use output expanders for every 8 strands, up to 64 strands. Similar to the 8x8x8 cube here. The bullet style LEDs like that end up pointing in random directions. I made a 3D printed cap that clipped them pointing downward along the wire which helped.

The LED net mentioned above has a return data line built in so its all 1 string and can be used without an expander (unless you combine 2, as @zranger1 has). It also has the LEDs flush with the string so they aren’t poking out in random directions.

I see. That makes sense. Thanks for clearing this up for me.

I did something similar to mine I folded each strand up and connected the bottom to the top in the middle between the next stand to double the density and make it 2m x 1m. It’s really quite bright for the power consumption. I never noticed the white issue I suppose I never had a pattern with enough white pixels to catch it.

Since you have 2 interleaved addressable nets
connected via 2 channels of IO Expander,
could you please point me to the mapping function?

@Vitaliy,
Here is the mapping function. It maps the 800 pixels of the two nets onto every other pixel of a 40x40 unit coordinate grid. The “top” net, expander channel 0 on my system, gets even numbered coordinates and the “bottom” net (expander channel 1) gets odd.

function (pixelCount) {
  width = 20;
  
  var map = []
  
  // "top" net
  for (y = 0; y < 20; y++) {
    for (x = 0; x < 20; x++) {
      k = x * 2
      j = y * 2
      map.push([j,k])
    }
  }  
  
  // "bottom" net (shifted down and left)
  for (y = 0; y < 20; y++) {
    for (x = 0; x < 20; x++) {
      k = 1 + (x * 2)
      j = 1 + (y * 2)
      map.push([j,k])
    }
  }
  

  return map
}

Thank you very much for shearing yours mapping functions.
If I got it right (I hope so), nets interleaving is like this:
—0--------760 <— Ch0
1--------761 <— Ch1
—2-------762
3-------763

—38------798
39------799

Interesting mapping!

This mapping function is good demonstration of the idea that pixel index numbers, as determined by wiring order, need have absolutely nothing to do with the coordinate mapping. Map coordinates can be whatever best lets you solve the problem at hand

Here’s how it works: I have 2 20x20, 400 pixel nets, for a total of 800 pixels. I mounted the first one so that the first pixel (at index 0) will be at coordinate location [0,0]. Then I mounted the second net a little down and left of the first one, so its pixels sit diagonally between the first net’s pixels.

This sets me up to map the whole assembly onto a 40x40 virtual coordinate space. The two nets fill half the pixels. I’d need two more nets to build a full 40x40 display, but even with only half the pixels available, spatial resolution looks pretty good.

For clarity, and because it was easier for me to think about when writing it, the mapping function has a separate section for each map. The “top” section works with the first net - pixel indices 0-399 - and generates a map that looks something like this:
[0,0,0]
[1,0,2]
[2,0,4]

[399,38,38]
Note that these are pixels on the even rows and columns of the 40x40 coordinate map

The second section makes a similar map for the second net, only with the odd numbered rows and coords. Since it’s connected to channel 2 of the output expander, it starts with index 400:
[400,1,1]
[401,1,3]
[402,1,5]

[799,39,39]

Thank you very much for the detailed explanation.
I had to reread your post multiple times (shame on me) before I got it.
I have only 2 of these nets handy. So, my setup will be half of yours.
But as you mentioned, even having half of the pixels looks very impressive.

My apologies if already answered. I would recommend injecting power. Also be sure whatever power source you’re using has more wattage than the total amount to be used. Which may be why you’re having issues with the color of the LED pixels further from the power source… Hope this helps any…

This Addressable Net definitely has insufficient wiring.
Power injection is a must but it is not clear if adding power at the end
of horizontal stretch will be enough. Unfortunately I did not have time
to check this. I am EE and I know what I am talking about.