Attempting to do the impossible

Hello respected peers.

I am attempting to create a room and came to the conclusion it cant be done without Arduino! I have minimal coding skills but am willing to put in blood sweat and tears to accomplish this. It may seem ludicrous but it can be done. however i have no clue where to start, what i need, thus i humbly present myself before you. Initially i thought it was impossible but i witnessed a magnificent Christmas light show on youtube and am now a believer.

the goal

I am hoping to create an infinity room filled with led strips raining down that will twinkle based on my code. Im assuming i need 10k+ Individually addressable LEDs. I know they come on strips and i need an Arduino to tell them what to do. The code will be written with fastled. What are my steps? what do i need? if it can be done it will be.

thank you guys! looking forward to your replies :sweat_smile:

attatched is an image for reference.

What are my steps?

Start small. Learn the basics with Arduino and a few leds, then learn to work with one strip, then matrices of strips, and then finally work up to this huge project.

OP’s picture:


That's an effect done with leds and reflective surfaces, not walls covered with leds.

See if you can make an infinity mirror by first learning before doing. It's hard to do what you don't know about.

You need what's in Basics, Microcontrollers and Programming Foundations just to get started with code.

Your Arduino IDE has built-in examples. If you got the basics down they won't be quite so mysterious.
Look over sections 1,2,3 and 5. Skip section 4, it teaches baaad Arduino (okay on PC with gobs of RAM) habits.

In sections 1,2,3 and 5 if you see an example that you can run, you have the pieces, then load it from the IDE using File->Examples->... etc menu and open a browser to the example web page -- you can go between the browser and IDE to decipher how the code executes, open a browser tab to the Arduino Reference Page to double-check on syntax that you're not rock-solid sure of.

There is a whole beginner to intermediate manual spread out on the site.

You will need some massive 5V power supplies. 10,000 leds at roughly 60 mA (all colours on) equals 600 A total. If your strips are e.g. 100 leds per meter and one meter long, you can also use a 6A power supply per strip; add a little overhead and I would use a 6.5A (or 7A depending on what's available) power supply per strip (or a 13A for two strips).

Depending on the length of the strip, you will have to feed it from both sides (and maybe even in the center or every meter depending on how many leds per meter; this is a little outside my area of expertise).

You will need an Arduino with sufficient RAM to address at least one strip in one go. If your longest strip is e.g. 200 leds, that means at least 200x3 equals 600 bytes; if your longest strip is 400 leds, it will be 1200 bytes and with an 328P based board 1200 bytes might become critical.

Note that longest strip here means either one strip of e.g. 200 leds or two strips of 100 leds in series. With 200 leds per strip, you will need 10,000 / 200 equals 50 pins to control them. There are probably ways to use a multiplexer to select on of the strips before sending the data but I haven't looked at that.

If you have certain patterns (e.g. one led on in every strip, dripping down from ceiling to floor), they can be calculated on the fly which will not cost much memory. Other patterns you might want to store in non-volatile memory (with 10k leds, you will more than likely need an SD card for that).

If you opt for a 3.3V board (e.g. MKR series), you will need a means of level conversion from the 3.3V (data) output of the processor to the 5V data input of the strip. You will also need capacitors at the beginning of each strip (over the 5V power supply, 1000 uF) and resistors (200..500 ohm) at the data input of each strip that receives a signal from the processor.

As the others said, start small.

I'm working on a smaller version (7 strips @ 60 leds) and decided to use a Mega so I will not run out of memory too easily. Based on layout of my strips, I will use 7 data pins (one for each strip); if I run out of storage space for patterns, I can add external storage.

I'm using two 18A power supplies, one for 4 strips and one for 3 strips.

I'm still assembling the hardware at this stage.

A Teensy 3.6 has 256KB RAM and a cool 1MB program space, so wouldn't have any issues to keep the patterns 'in memory'.
It also has a uSD slot built-in, so storage for pre-generated patterns isn't an issue, either.
It is a 3.3V device, though, so you may need level shifters.

But with 10K LEDs you're going to bump into issues updating everything quickly enough to avoid a 'wave' effect.

I'd suggest splitting it into smaller chunks, maybe 500 LEDs and have a dedicated Arduino for each chunk, and a 'master' to synchronize them.

You might find this helpful:
Note that the WS2811 is just the WS2812 with controller IC in a separate package from the LEDs. The WS2812 are more common these days and should substitute without issues.

But with 10K LEDs you're going to bump into issues updating everything quickly enough to avoid a 'wave' effect.


I appreciate the help! Will small then replicate the process. thanks for the resources. i definitely have my work cut out for me.

You can power a 1m strip from USB for testing, so long as you don't turn them all on at once at full power.

You can use 3.3V control but it will be glitchy without proper 5V conversion. There is a neat way of using one LED and a diode as a converter.

Start with a small strip (like 8 LEDs) and the examples in the FastLED library.

For some reason it is always cheaper to buy the LEDs soldered in strips instead of unsoldered components.

Search the Teensy forums at PJRC. There are some stunning examples.

Infinity effect uses 1 strip or band of leds and parallel mirrors to create the effect of a zillion lights that can move and suck you in.

1 meter strip will circle with a 12.53" diameter. Put it on a cardboard strip, circle that around, set in front of a mirror with pane of glass over the front and run your lights. 60 leds per meter, make a nice clock.