29 banks of RGB LEDs, 6 sets of colors...

I have not even gotten to the sketch on this one, but here are the basics:

I am trying to make a method to control 29 independent banks of RGB LEDs. These banks alter between 2 and 50 LEDs. The banks are locked (IE the 2 LED set will never get a 3rd LED).

There will be 6 predetermined colors that each bank can be set. In addition, I would like some method to make that bank BLINK.

Currently, my thoughts are providing enough different voltage power supplies and using common cathode RGB LEDs. Each LED in a bank is wired in parallel, and through some toggling, the correct power supplies are connected.

My current setbacks: Common cathode RGB LEDs seem to be harder to find. Is there a common anode solution that I am missing? The physical toggling/switching seems daunting. 29*7 number of physical switches (or 29 rotary 8 way toggles). The electronic switching seems kind of straight forward... a monstrous amount of NPN transistors (29*7*3 = 609) each connected to a color on the LED bank.

Do I even need an arduino for this, will it even help? Perhaps in some sort of virtual GUI switching -> arduino -> NPNs instead of physical knobs/switches?

And finally, how to go about making a single bank blink? Do I give up on that concept and just add a 7th color instead?

Look at WS2812B, 8-bit PWM controller +LED in one package, daisy chain them all together, can individually control each one (but have to send out the info for all with each update - just have an array with 3 bytes/LED that gets sent out when an update is needed). Adafruit has a Neopixel library that takes care of the timing. Alternately, WS2801, controller only with SPI kind of interface (data + clock), use common anode RGB LED per controller. Or WS2803, controls 6 RGB LEDs.

I will indeed look at the WS2812B, I was not even aware such a thing existed! For interfacing, could I use 8 way knob switches with different impedances (or something) and read that into the arduino to know when a bank needs to change color?

I'm not understanding how many independent "channels" you need... i.e. Are all of the LEDs in a "bank" always the same color and the same on/off state? ...That would be 3 colors x 29 = 87 channels.

Assuming the bank operates like one big RGB LED, you don't need a "monstrous" number of Transistors... Just 3 for each bank.

I assume the 6 colors are from turn turning the RGB elements on & off and no dimming is required? If you don't need dimming, you can use [u]shift registers[/u] to individually control/address and almost unlimited number of channels using just 3 Arduino output pins.

Then, assuming there are 87 channels, each channel will require some kind of "driver" to supply the current for each channel. For 50 LED together, you'll need a transistor or MOSFET. For just 2 LEDs you can use a driver chip. Driver chips with 8 or more outputs are common.

Common cathode RGB LEDs seem to be harder to find. Is there a common anode solution that I am missing?

Common cathode or common anode is just a matter of a different driver circuit. LED driver chips are usually made for common anode.

Do I even need an arduino for this, will it even help? Perhaps in some sort of virtual GUI switching -> arduino -> NPNs instead of physical knobs/switches?

With the Arduino and software control you wouldn't need any switches. You may need switches if there is a human interface is required.

And finally, how to go about making a single bank blink? Do I give up on that concept and just add a 7th color instead?

Since you are controlling the color by switching on & off the 3 color elements you already have all of the logic & control required to blink. Without dimming, there are 8 possible states... 7 colors (including white) plus off.


I suggest you "start small" and build up. Start with one RGB. Then add a 2nd. Then scale-up to 29 LEDs. When all of the basic logic is working, add the drivers and LEDS to make the banks.

There's going to be a "monstrous" amount of wiring!!! I had a project where I used 48 single-color LEDs, each one individually soldered to wires... That seemed to take forever to solder & heatshrink the 96 connections... If the thing is small enough, I'd suggest getting circuit boards made. And, I suggest making "modules" with connectors instead of hard-soldering everything.

That's mainly for troubleshooting and serviceability. For example, if one bank stops working (or one color on one bank, etc.), you can plug-in a different bank to determine if the bank itself is the problem or the driver/control circuitry.

DVDdoug: I'm not understanding how many independent "channels" you need... i.e. Are all of the LEDs in a "bank" always the same color and the same on/off state? ...That would be 3 colors x 29 = 87 channels.

Each bank can have 1 of 6 different colors. These colors can change periodically (user controlled).

Assuming the bank operates like one big RGB LED, you don't need a "monstrous" number of Transistors... Just 3 for each bank.

True in the sense that each bank operates as a single large RGB LED. The 28th LED in the bank will be the same color as the 2nd, etc.

I assume the 6 colors are from turn turning the RGB elements on & off and no dimming is required? ... Since you are controlling the color by switching on & off the 3 color elements you already have all of the logic & control required to blink. Without dimming, there are 8 possible states... 7 colors (including white) plus off.

That was what I was thinking. Why make it a complicated 'PINK' when 'RED' is easy.