Finally completed my 2nd 64 x 64 matrix.

(Mark Estes) #1

Finally completed my 2nd 64 x 64 matrix. Built from 16 of the 16 x 16 WS2811 led panels. This time, it is mounted in a picture frame rather than in a table format. Had to solve the challenge of not all the panels having the same color balance, especially at low levels. The correction is not perfect but much better than the not corrected version. The brain here is a PJRC teensy 3.6 driving the PJRC OCTOWS2811 board. That brain is married via serial to a teensy 3.2 that is mated to the PJRC audio adapter board to supply FFT audio analysis that drives few of the animations. There are at least 10k variations being generated from about 50 base patterns and a host of effects that are assigned when a pattern is selected for viewing.

The overall structure of the code is a loop that runs a patterns for about a minute before selecting a new one. In that loop, the image is updated per the pattern, then one of many effects could be applied then a fade is applied before refreshing the pixels. The effects include a blend of wind effect based on pixel shifting, screen mirroring effects based on the LEDMatrix library, intermittent shrinking or growing geometric shapes (triangles, stars, boxes, circles). The modular design of this allows me to invent a new effect and apply it to any pattern. The fades are of differing magnitudes and can favor one color group over others (for example, could fade the blue and green channels at a higher rate than the red, resulting in tails that fade towards red before fading out completely). The code also allows some effects to be limited or assigned for a particular pattern (i.e. some combos look horrible together so they are avoided while others look great and are encouraged to happen).

I use an amazon echo to feed the audio to the circuit. This echo is mirroring the one that is playing into the home music system so what you see is what you hear but there is no interconnecting wire. A suppose a Bluetooth transmitter / receiver would also work but then I could not boss it around. A mix of photos and videos here.

(Marc Miller) #2

This looks really nice all framed up. Super build. I like that you used an extra Amazon Echo.

(Yves BAZIN) #3

@Mark_Estes really nice !! looks really neat

(Tom Schubert) #4

Beautiful animations/effects @Mark_Estes

(Andrew Tuline) #5

That’s a pretty spectacular build. Great job!

(Daniel Haber) #6

That’s an amazing project! The animations that react to music, especially the circular one, are awesome! Also gotta give you props like Marc for using an Amazon Echo. When you talk to it and Alexa responds, does it turn on and show her voice in one of the animations? How does that whole thing work?

(Mark Estes) #7

@Daniel_Haber I normally talk to a different echo and ask that it play the audio on a group of echos. " alexa , play “don’t fear the reaper” on spotify everywhere" where everywhere is the group of echos. If I talk to the one in the frame “amazon” her voice would appear in the animation but only if an animation is playing. Which gives me an idea of making it so it does animation based stuff if there is audio present. I keep tweaking the animations so it is like a house that is never finished being built.

(Mark Estes) #8

one alternative to the alexa audio feed is a Bluetooth audio receiver . i will be trying to implement that shortly.

(Mark Estes) #9

every once in a while, i hit a pattern that is beyond what i expected. like this one.
missing/deleted image from Google+

(Mark Estes) #10

so added some matting (wide white, thin black, silver, white) and a clear cover. The glare from the cover layer and the tiny air gap makes it look much better/ deeper.
missing/deleted image from Google+

(Marc Miller) #11

That looks sharp.

(Will Tatam) #12

Looks really good.

Sometimes it looks like a whole matrix section lights up faintly, is that just a reflection?

(Mark Estes) #13

@Will_Tatam . you are not imagining it. i am fighting that, i suspect it is an artifact of me trying to color balance the mis-matched panels.

(Mark Estes) #14

@Mark_Estes i think I have a handle on it now, my adjustment was occasionally rounding up to 1 rather than down to 0.

(Daniel Haber) #15

@Mark_Estes Is your code on github by any chance? I think our projects have similar aspects and it’d be cool to see how you’re doing it.

(Mark Estes) #16

@Daniel_Haber if you search this site, a few members have ported an older version of my code to work with all sorts of modern (non-teensy) hardware. If you look even farther, you will find my code posted as well. It is not the latest but i did take the time to clean it up a bit before posting and it had gotten a bit shabby of late.

(Marc MERLIN) #17

Nice. Some questions:

  1. is it a 1cm pitch, and therefore a 64cmx64cm matrix?
  2. did you figure out what your problems were with the brightness not being the same on each panel? Were they all from the same location? Did you maybe have a wiring issue that gave less power to some panels than others?
  3. did you write more animations than in . I’m assuming the code you wrote is compatible between your table and this new frame?
  4. If you have new animations, can you share the code? :slight_smile:
  5. how much did the panels cost? Was it about $35 * 16 = $560?
  6. Did you consider something like or 2 of these which would be cheaper and easier to wire ?
(Mark Estes) #18


1)they say the board is 17 cm wide x 17 cm tall for a 16 x 16 so just off the 1 led / cm pitch ( or 68 x 68 cm square). I cannot disagree with that spec.

  1. the panels, while looking identical, are apparently of 2 different flavors. Changes to the power and the data lines do not change this. The power is very well distributed and checks out with a volt meter. That was my first thought. I can only conclude that i have panels from 2 distinct batches or manufacturers or chip suppliers. II did not buy them all at once.

I have tried many things to even them out… Essentially, I make a copy of the array, then apply some version of fadetoblack to the brighter parts, then send the altered copy of the array to the leds. The troublesome part is that a correction that works when the pixels are at nominal brightness ( I typically run most of the stuff at a max brightness of 64 to 85), falls apart when at lower brightness. So, fading tails and low level background colors suffer. I will eventually get my head around this or simply replace 1/2 of the panels.

3/4) I have written more patterns. the code runs on both. the brightness issue only shows up with the new one.

New patterns include a helix pattern, stereo audio analysis (in place of the mono that was working in the prior parts) and some other tweaks. I think there are now about 140 base patterns. some of these are dedicated combinations of what was there before and about 20 are really new ideas.

I will need to clean up the code a bit before sharing it. This may take some time because: a) I have been invited to show my work at a gallery so I am busy making the 3rd and 4th 64 x 64 matrix and buttoning up the #2 matrix b) I just had an idea about beat detection that I want to try out and it that works, adding that to the existing mess will distract me and c) my real job is kinda busy right now.

  1. the price on some of these was as low as $20 a pop about a year ago, but the current prices are about $32 to $35, so now it is as expensive as you suggest. They seem to be in short supply or at least less of a glut than there was.

  2. I did look at those adafruit boards (or similar) for a moment of 2 but they seem to need to an entirely different setup in terms of hardware and code to drive them (or am I missing something) and are a lot smaller so I would need 2 or 4 of them. If you can see an easy way to drive them, I will take another look.

(Marc MERLIN) #19

@Mark_Estes thanks for all the answers. Yeah, 1cm pitch is what I have on the boards I ordered from amazon. I made a 32x32 out of it, but didn’t go all the way to 64x64 with them (I didn’t really have a need for 64x64 and only built one because someone gave me the LED strips)
You’re right that they likely changed the LEDs between 2 batches. (What a bummer… Must have wasted a lot of your time :frowning: ). Also quite a bummer that the price went up

Yes, I’d love to see the new patterns one day, but take your time, I’m going to be busy with other stuff for at least the next 6 weeks.

Ultimately though, you’ll probably want to put this on github so that you can have your own version history and allow other folks like me to fork your code and potentially feed back some fixes/improvements.

The panel boards I referred to are indeed totally different, they’re a pain to drive in comparison, but they’re a lot cheaper and it’s great to be able to get 32x64 in one board or even 64x64 with a smaller pitch if that’s relevant to your project.

I’m just still curious though: why octoWS? Can’t you wire 16 or even 24 lines in parallel to a teensy without needing the board? Also if you work without the board, then your code would be even more trivially usable on ESP32 for instance.

(Mark Estes) #20

@Marc_MERLIN I think the simple answer to “why octo” is this: that is a happy place I landed on a journey that had a lot of bad turns. I wish in hindsight that I had keep looking and found the ESP32. I did buy one the other day just to see if I could join the rest of the club. So, i may yet redeem myself. It has not made it to the top of my list yet though.