For an upcoming regional burning man event, we’re planning to build an art installation consisting of many WS2812B LEDs,
and use FastLED for programming the animations on it.
I saw there are a lot of people with experience in this community, since this is the first time
we do something like this, we would really love to hear any suggestions/tips/warnings you have.
You can see our planned structure in the images I uploaded.
Basically we’re building a 2 meter by 2 meter square, which has a sun like figure inside of it.
Each ray coming out of the sun will be covered with a strip of WS2812B LEDs.
The strips will be connected to an arduino to control to LEDs.
The total length of the rays is about 20 meters.
A few things I would love feedback about:
We’re thinking whether we should use 30LED/meter or 60LED/meter strips.
Things that we thought it may impact is the required current to run it.
Also memory requirements from the arduino.
If we use the 60LED/meter, that amounts to about 1,200 LEDs.
1.a Is that something reasonable to drive from an arduino?
1.b Will the current in our house be able to handle that while we test it?
Connecting the strips:
I was thinking of two options:
a. Connect them in serial, so at the end I get one long led strip.
That means connecting the wires on both side of the strips.
b. Connect them in parallel. That means 24 parallel strips.
Is that something easy to do with an arduino?
Does the FastLED library work well with that kind of setup?
Which of the 2 options seems better to you, and why?
What kind of diffuser would you recommend for this?
Any other comment/question is very welcome! Any help is appreciated!
You will definitely want to look into a high amperage 5v power supply for that many leds. At least 15Amp, if not more. You shouldn’t have to worry too much, though, about your house power supply. 15Amp@5V is still only 75W, while your average home outlet can handle 1500W without difficulty.
You will however need to think about the thickness of your wiring. (The wiring hack job that I did for tree of life is beginnning to melt
If you haven’t already purchased the leds, consider looking into APA102’s. If you are going to stick with WS2812B’s (for either cost or already purchased) reasons, go with parallel lines. On the teensy 3.1 FastLED can handle writing out 16 lines in parallel, which means the difference between spending 36ms writing out a frame’s worth of data and ~2.5ms per frame. Even with the teensy 3.1’s 96Mhz rate, computing values for 1200 leds will chew up cpu time. (I haven’t yet played around with overclocking a 3.1 to 120Mhz).
No matter what option you consider for arranging the leds, you will want to inject power at various points.
@Andrew_Tuline why suggest a Smart Matrix? It’s unclear how the smart matrix would translate to the rods of leds that they’re looking to set up here.
I suggest wiring in parallel. It’s more work to set up and requires more memory, but when one LED goes bad on the playa or one drunk person stumbles into your sign, it will fail MUCH more gracefully since all the other strands will still work. If LED #3 goes out and they’re all in series then you’re just screwed.
Hey,
Thanks for the responses! @Matt_Chaney The event is called midburn, it’s the Israeli regional @Daniel_Garcia I bought a 70Amp@5V power supply, looks like it should do the job.
Regrading thickness of wiring - what thickness should I be using? How do I calculate that?
I’m currently planning on using an arduino mega. Is the teensy 3.1 significantly better?
@David_Brailovsky I would no recommend using a MEGA if you are using 60LED per meter strips.
Updating 1200 WS2812 LEDS will take 36ms as pointed out by Daniel. That means you will probably be updating less than 20 times per seconds and many animations may not look as smooth as you expect !
N.B. my electrical knowledge is gleaned from years of trial and error, I am not an electrician, and I may get this stuff wrong. To answer your first question, though, there’s two things you want to think about with wire thickness. One is voltage drop - the thicker the wire, the less the voltage drop across the line from one end to the other. This is going to be pretty important for you if you have long runs of wiring. The other is how many amps you can push through the wire. If you try to push more amps through a wire than its gauge is rated for, it puts off heat. A lot of heat. Like melt everything nearby levels of heat http://www.powerstream.com/Wire_Size.htm has some info on the max amps for various gauges of wires. My advice? Go for a thicker gauge than you think/compute you need. It’ll be more expensive, but it will also give you some headroom.
The arduino mega is going to be a problem for you with the number of leds that you want. For one, the mega runs at 16Mhz, and isn’t fast enough to do parallel out put. This means that 1200 leds will take 36ms to write out (~30µs per WS2812 rgb led). That means you’d barely get 30fps if you spent all your time writing led data. If you spent half your time writing led data, that’d be a mere 15fps. Even then, at 50% cpu time, you’d have a total of ~530,000 clocks per frame (when running 15fps), or 441 clocks per rgb led per frame. That may sound like a lot until you realize that it’s only 147 clocks per each of r, g, b, per led per frame and on avr, a division operation can easily chew up a hundred clock cycles or more.
The teensy 3.1 has four things going for it.
Higher clock speed - 96Mhz (and reports of folks overclocking to 120Mhz).
32-bit architecture means more per clock. E.g. adding two 32 bit numbers is a 1 cycle operation on the teensy 3.1 while it is a 4 (if not 5) cycle operation on avr - and that’s not including load/store times. (2 cycles each for a 32 bit number on arm, eight cycles each for a 32 bit number on avr).
Much more ram - 96kb - you may want to store more led state data than just the led’s RGB values.
Parallel output - the teensy 3.1 supports 16 way parallel output which means your frame will only take ~2.5ms to write out.
Now, if you want to maintain a rate of, say, 60fps, that’d be 150ms/s writing led data out, which would leave you 850ms/s for computing led data, or 14ms/frame to compute data or 1.3 million clock cycles per frame or 1000 clock cycles per rgb led - clock cycles that are, by definition more efficient (up to a factor of 4!) compared to their avr counterparts
Because the whole assembly is within a 2 Meter X 2 Meter panel, you wont have very long lengths of wire between your PSU and the strips. That will help selecting a smaller sized wiring than if you had long lengths.
Just do a search on ‘Wire size calculator’ and it will provide a good base for selecting wiring.
I am assuming the PSU will be located somewhere close to the center of that star shape so each power wire length would not be more than let’s say 4 feet round trip (2 foot for Ground wire and 2 foot for the 5Vdc) If you use 18 gauge wire, that is the size of many small electrical appliances wiring, you should be OK in my humble opinion.
Note that I prefer to always be on the very safe side of these types of choices and most likely would go for a 16 or even 14 gauge.
Yep , I agree with JP Roy, thicker wire and look into a computer psu …enough amps to drive leds and not to expensive and a fan to keep itself cool, If you catch my drift