RGB LEDs, too many resistors.

I’m trying to create a shield with 8 RGB LEDs driven off 3 74595 shift registers. The problem is 24 resistors are taking up a lot of space on such a tiny board and I can’t fit all the components on. Even if I try to cram them on, the board is looking pretty ugly, and even the ICs are taking a lot of real estate.

I’ve considered resistor networks, but I’d need DIP networks so there wouldn’t be much space savings and it would just make parts harder to find.

I could install the resistors vertically, but that looks really ugly and like a cheap kludge.

Anyone have any other ideas?

Surface mount? 1206 (and maybe even 0603) sized resistors can be soldered between the pads on a prototyping pcb.
If you make the 74HC595’s SMT you will also save a lot of space.
D

I could handle 1206 resistors – 0603 are no chance at all.

But I’m trying to make something anyone can solder. If I use a 1206 package it will rule out a lot of people.

Well, if you were to multiplex one color at a time, you’d only need one resistor on the common lead.

Alternately, you can consider resistor arrays. You can get three resistors (all same value) in a 6pin SIP, six resistors in a 12pin SIP, or eight resistors in a 16pin DIP (though that’s not much smaller than 8 individual resistors.) You’ll have to do some thinking if you want different resistor values for each color. There are SMT versions (SOIC and smaller) as well, but you’re avoiding them. They seem to run about $0.10 per resistor at digikey.

Well, if you were to multiplex one color at a time, you’d only need one resistor on the common lead.

Alternately, you can consider resistor arrays. You can get three resistors (all same value) in a 6pin SIP, six resistors in a 12pin SIP, or eight resistors in a 16pin DIP (though that’s not much smaller than 8 individual resistors.) You’ll have to do some thinking if you want different resistor values for each color. There are SMT versions (SOIC and smaller) as well, but you’re avoiding them. They seem to run about $0.10 per resistor at digikey.

If I multiplex with one resistor per lead, it means I have the same resistor for each colour, which could be a problem if the red washes out the other colours since it has a lower voltage drop. It will make the software more complex too, though that doesn’t rule out the idea.

Maybe what I could do instead is multiplex it without a resistor and use a low duty cycle as each comes on to keep anything from burning out? Or for that matter, select my resistor based on the red LED, and leave the green and blue ones on longer?

In that case, I have enough IO lines to skip the shift register completely and use 11 pins to control the LEDs

What you’re calling resistor arrays is what I called resistor networks in my first post. I hadn’t considered SIP ones though. It might fit. My only concern there is prototyping will be a pain since I can’t easily get them here and shipping from Digikey to Canada can get expensive.