Thoughts on pixel spacing/pitch in a matrix

Hi, so I picked up a bunch of these fairy lights and intend on arranging them into a matrix on a vinyl sheet to hang in my 2m x 1m window on holidays etc.

They spacing is 5cm apart on the wire but obviously I can go smaller than this by having some slack. I was initially thinking 5cm would be a good distance, but am curious if anyone else has done a matrix project like this and can lend their thoughts… I’d like to be able to do effects of course like so many patterns already available here, but also it would be nice to have the door open for pixel art / sprites / text, or other stuff that needs the density to be of a certain degree for our eyes to “see” the image. I didn’t have a lot of success googling this - maybe I’m using the wrong terminology.

My windows are 35-50ft from the viewer depending, and I am planning two 1m x 1m squares to either form a large 2m x 1m display, or moved apart to create two separate ones.

Those fairy lights have their place, but there are a number of issues that make them less than ideal for what you’re wanting to do.

If you wanted to cover a 100cm square at 5cm spacing, you could weave them back and forth in a zigzag but you would need about 400 pixels, which is a problem because:

  • The addressing doesn’t work the same as WS2812B-compatible LEDs; each LED has a fixed address and each string starts over at 1 (or sometimes a higher number, if they chopped a few off the front of a reel). If you connect multiple strings together, the portion of the pattern on the first string will be echoed on each successive string.
  • There’s a severe voltage drop from one end of the string to another which will cause color shifts and can cause occasional malfunctions (eg. a bright section of a pattern could cause a “brownout” and make the string stop listening). Some people on the forum have suggested that the effective limit is about 200 pixels.

Also, the fairy light LEDs are coated in some kind of translucent resin (possibly hot glue) which diffuses the light well but also reduces the brightness, which may be a problem if you want the matrix to be visible from a distance.

To make a large matrix, @jeff used a mesh net of 12mm bullet-style WS2811/WS2812s. I’ve also seen people drill a grid of holes in a board and populate it with the same 12mm bullet-style LEDs, or cut a reel of 30 or 60 pixels-per-meter LEDs into strips and mount them in parallel lines on a backing board.

To make the LEDs visible from a distance, I’d suggest going with a backing-board design and then using some kind of diffusing material to make the apparent size of the pixel larger. Some people glue ping-pong ball halves over each LED; others put a walled partition (like the dividers in a carton of wine bottles) over the LEDs with a translucent material across the top.

1 Like

I totally agree, the fairy lights aren’t a good fit for a regular matrix. So many better options, including even basic LED strips to make a matrix to hang up.

Thanks! I did already test them, they are plenty bright and more than big enough to see from the road. They are not fixed address, they act like WS2812B and I’ve already confirmed this with a spare ESP I had while I’m waiting for the pixelblaze to arrive.

For power I was going to run them all off 5V individually and only daisy chain the data line.

But anyway my question wasn’t whether I should use these (I already have them) it was about pixel spacing haha :grimacing:

1 Like

But pixel spacing isn’t the only thing to consider; pixel size is also important. You might be able to see the dots, but if there’s too much space between them they’ll appear as scattered points rather than blending together into an image for art/sprites/text. That’s where diffusion can be very helpful…

There’s math out there somewhere – look up “visual acuity” and “visual angle” for details. But perceived size is roughly inversely proportional to viewing distance. Just intuitively, 1m x 1m matrix with 5cm pixel spacing should make a decently “readable” matrix display if viewed from your 35-50 foot target distance. You probably won’t want to play high res video on it, but simple sprite graphics and animations should be fine. My best suggestion – build a prototype frame from scap wood or pvc, or whatever you have around, and temporarily zip-tie the LEDs to it, and see how it looks.

For reference, the pixel spacing on PCB-mounted matrices is something like 1cm between pixel centers.

(I’ve got 1000 pixels of the "strange’ fairy lights for a planned holiday display – they’re definitely not the same as the ones from Sparkfun. Mine are 200 per strand, on 20m of wire, with 10cm pixel spacing. I got around the addressing problem by running each strand on its own output expander channel.);

1 Like

Yes there are two types, one is 10cm fairy lights and they are knock offs found on ali-express and then there’s the sparkfun 5cm ones that behave like ws2812b.

I’m thinking maybe using a fluorescent light diffuse on the front - because I completely agree, if the pixel is not “big enough” it will just look like dots.

@pixie I can’t download the pdf you linked me, is it working for you?

There are some advantages, I wouldn’t dismiss using these for a matrix!

If you use some kind of frosted sheet, it will help diffuse the light and make them much easier to see as a display rather than points of light. These are more directional than some fairy LEDs, so it may be important to somehow coax the LEDs to point in the same direction to get consistent brightness, or perhaps use a sheet on both sides.

You can also use hot glue and glue these to the sheet (if it doesnt melt), the hot glue itself will help act as a light pipe and increase the illuminated pixel area.

If you want to double resolution, you could gently twist 2 parallel strings together with one offset half a spacing apart. Or interlace them, doubling the rows or columns, like a checkerboard pattern. Pixelblaze’s pixel mapping would let you get away with that with minimal headache. Otherwise twisting the wire carefully or bending it back over itself can also decrease distance between pixels, but beware the cut-wire style that these fairy LEDs use can cause shorts.

You should be OK with 400 as long as voltage drop is mitigated, by injecting power and/or limiting power draw. For reasonably good FPS I would keep under 500 pixels on a given output.

BTW @pixie, here’s a photo from the listing:

Notice the 4 wires with 1 cut, and red/green dot? Those are tell-tale signs that this is a regular WS2812-like fairy light and not one of the 3-wire bus-addressable kind. These alternate red and green which swap input/output pin position, and the wire that is cut alternates as well to create a chain.

1 Like

Thanks @wizard - I spent quite a while zooming in on various ali-express product listings trying to look for this offset to find ones that were the actual kind I needed (as the sparkfun ones are)… I gave up and decided it was too risky.

Surprisingly they are not overly directional. I have a mockup here with 1 strand taped to plastic sheet and I could hardly tell if they were facing back or front. My original idea is to use hot glue directly to the sheet to make a hot glue “dot” basically.

Do you think there is an advantage to interlacing? Or do you suggest this to ease the construction side of things?

I’m currently just thinking I’ll space them something like 4cm apart with a little slack in the wire which should help if I need to fix / solder.

I stand corrected…at first glance, I thought they were the same as the AliExpress ones.

The PDF was there an hour ago, but at the moment the website is timing out without returning anything.

Here’s the file from my browser cache: understanding-viewing-distance.pdf (924.2 KB)

1 Like

Just thinking that would be relatively easy for construction vs measuring out a smaller gap and having slack.

If those are “surprisingly not overly directional” then the 3 wire bussed-addressables are “surprisingly omnidirectional” :laughing: They have a lot more epoxy on them that helps diffuse the light. I don’t think it will matter for your project enough to switch, especially if you end up using hot glue, you’d have more material to help diffuse plus the glue could hold them in one direction.

1 Like

Thanks, this is the sort of thing I found which is reference for video screens. I’m trying to cut corners a bit on the prototyping but I think it seems like I probably have to prototype it to really know for sure.

Thanks - so what are you planning on doing with your sets? not a matrix?

I’m mostly trying to cut corners on prototyping with someone else’s experience haha but I suppose it’s not all that difficult to do so I should just get at it already!

I bought a lot of those Brizlabs/Aliexpress lights last year when they were inexpensive. If you can live with the quirks, they’re actually really pretty.

The first 400 are going on the Christmas tree, which will be mapped in a rough 3D cone. The newest 1000 are going to be a big 20x50 matrix in a picture window.

It’ll be on a wooden frame covered with lightweight tracing paper for diffusion, with an evenly spaced grid of high test clear fishing line to support the LEDs. I’ve done a lot of theater set building over the years, so I’m reasonably sure I can knock something together that will look good and be durable enough to get us through the holiday season. After that, all this stuff will be disassembled go into other fun projects!

3 Likes

Oh yes, those are the “3.5 wire” ones, not the fixed address mystery chip ones.

You need to be aware that at least one of us (@JustPete I believe) was using these and having some issues with Sparks or at least failures due to electrical issues. Or maybe it was wire issues… Anyway… A simple matrix layout (ie zigzag) should be fine and hopefully low stress on the wires. I think the trick will be finding the right level of pixel spacing AND diffusion. When you do, take both measures and video for us!

I also bought a big pile of the brizlabs mystery fairy lights, and yes, an output expander is one solution if you want to run more than 200 of them

For some comparison, I have a 30x10 matrix of WS2811 bullets hanging on my front railing. Prices have risen, it’s $250 now. The 4" wire spacing results in a net that’s about 8’ wide and 3’ tall. Viewing distance is 20-60’.

You can see them do “graphics” in the rotating pumpkin post, and here’s what text looks like from 20 feet away (excuse the off-color message, it was a really frustrating night before Christmas trying to get some code working).

3 Likes

I looked at that exact set and considered it actually! It looks like you’re getting a little help from the reflection on the wire itself too which increases the pixel size. I think since my max spacing is 1/2 of yours at 2" I should be more than okay - however my pixel is quite a bit smaller so I’ll plan on adding a diffuser but maybe won’t actually buy anything until I look at it without.

OMG! I just dug up this conversation. Lots of valuable talk here! But that message @jeff takes the cake! I have soooo been there!

1 Like