Choosing ICs to drive odd groupings of RGB LEDs

I'm a software nerd with little electronics training. I've been interested in Arduino hacking for a while, so I'm excited to be starting a project. I'm working with the Lilypad, as the eventual assembly will be part of a theatre costume.

Below is a diagram of what I'm aiming for --- basically, hooking up 160 5mm RGB LEDs in 63 control groups (21 groups of LEDs x 3 colors):

  • 20 rows of 6 RGB LEDs wired in parallel (row0...row19)
  • One "blob" of 40 LEDs (wired in whatever way is most convenient)

After hunting around teh internets for a week, I have not been able to identify a clear-cut "best choice" chip or set of chips to drive these LEDs. I'm willing to pay for something that will require less soldering and or can take advantage of existing arduino libraries---for example, a MAX6951 or MAX6957?---but among otherwise equal options, would unsurprisingly prefer to make it cheaper.

Of course, I would also like to optimize for the number and price of the other components missing from my diagram--- which I'm figuring will vary greatly depending on what ICs I choose. (For example, a couple constant-current LED drivers seem preferable to cramming handfuls of resistors into the costume pockets, so to speak.) I also recognize that the number of LEDs I'm looking to drive on each control channel could require extra components (e.g., transistors).

So, I humbly ask all you more experienced hardware hackers: which IC(s) would you recommend for driving this sort of beast? I apologize for asking something that has been addressed so many times before; any opinions you have may help me filter the information overload I'm currently experiencing.

Thanks and my best,
scout

Do you need brightness control of each color? If not, I would suggest some 74HC595 shift registers, and transistors if you need to control more than 20mA on a channel. The lower currents involved here mean that using resistive current limiting is not too bad. I don't know how small you plan to build all this, but 74HC595 are available from DIP to TSSOP. They are very simple to control, and very cheap.

If you do need brightness control, some kind of specialized chip may be advantageous. The A6281 gives you three current-controlled outputs of up to 150mA each, and 10 bit PWM on each channel. I make a bunch of RGB LED modules that use these chips: Macetech

Probably nothing there that is exactly what you need for a wearable application, but might give you some ideas.

You could also look at the TLC5940, it provides 16 PWM channels and can handle a bit higher current. It gets used a lot here in the Arduino forums.

Yes, brightness control would be nice---it will lend a lot to the theatrical effect.

The A6281 looks promising--- I would need at least twenty-one of them, correct? (Please forgive the newbie questions; the specifics of hardware component requirements are where I'm most worried about getting mixed up.) I could basically build a mini version of your ShiftBrite for each of row1...row19, plus then one or two for the "blob"... but I would be able to get away with doing that without having to worry about extra resistors and/or transistors, correct?

If so, the simplicity of the design certainly has its advantages... and I imagine it would be pretty easy to program, especially for light moving up the rows...

You're getting there...the only problem I see is that you might be considering putting the RGB LEDs in parallel. It's possible to do this, but you are back to needing a resistor on each LED.

The ideal setup would be to have 6-pin RGB LEDs so you could run all the reds, greens, and blues in a specific group in series. However, 6-pin RGB LEDs are usually surface mount. If you're planning to make your own circuit boards anyway, this might not be a problem. It'll save a lot of space in a wearable application, too.

You also want to wire this with normal wire...I don't know if you were planning to use conductive thread. You'd need real wire at least up to the LED controllers, and the power buses. You could probably get away with conductive thread to power the actual LEDs, as long as you account for the voltage drop.

Lastly, the A6281 is a 3x3mm QFN. That's incredibly tiny and you can barely see the solder pads...it doesn't have any pins. Again if you plan to make a circuit board, it's not so difficult to build. I could give you some hints if you decide to go that route.

You're getting there...the only problem I see is that you might be considering putting the RGB LEDs in parallel. It's possible to do this, but you are back to needing a resistor on each LED.

Huh? Sorry, I lost you. Do you mean that the way I was describing having each individual row---with an A6281 hooked up to six RGB LEDs in parallel---that would require resistors? Again a newbie question, but I thought that the fact that the outputs on the A6281 are current-controlled would remove the need for resistors?

The ideal setup would be to have 6-pin RGB LEDs so you could run all the reds, greens, and blues in a specific group in series. However, 6-pin RGB LEDs are usually surface mount. If you're planning to make your own circuit boards anyway, this might not be a problem. It'll save a lot of space in a wearable application, too.

That does sound like a nice solution, I agree... but I fear it will have to be for the next project, as I will be building on protoboard for this one. (Six-lead RGB LEDs seem pricier, too, which can be significant when buying the quantity I will be.) :slight_smile:

You also want to wire this with normal wire...I don't know if you were planning to use conductive thread.

Wire it is! Since this is my first project, I want to make at least one aspect less error-prone. I got conductive thread for future creations, but these particular costumes can hide the wire easily.

Lastly, the A6281 is a 3x3mm QFN. That's incredibly tiny and you can barely see the solder pads...it doesn't have any pins. Again if you plan to make a circuit board, it's not so difficult to build. I could give you some hints if you decide to go that route.

Ah. (And here is where I run off to educate myself about different chip formats.) That does sound like a bit of a show-stopper. Hmm.

Well, maybe I should fall back on the TLC5940. But, if I'm going to go there, it seems like something in the MAX69xx series might be better because they support more channels. (Specifically, lots of folks seem to recommend the 6951, and the 6957 interests me too....) Although they're pricier, they might be more flexible in the future...