driving 48 RGB LEDs on BBB

Hi, I am programmer and new to electonics and BBB, so please be gentle with me :slight_smile:

I have a project that involves controlling 48 RGB LEDS and want to be able to control color and brightness and animation of the LEDs based on other sensory inputs. eg changing colors, brightness and patterns when an imput sensor detects a change in temperature

After some searching around I have found the Adafruit 24-Channel 12-bit PWM LED Driver - SPI Interface
here https://www.adafruit.com/product/1429

So I am contemplating getting 6 of these and chaining them together to be able to control the 144 channels (3 x 48) required to drive the LEDs.

My questions are :

Is this the right way to go or is there a better way ? For example are there other breakout boards that can drive 144 channels on there own or is 24 channels the maximum available ? Or do I need to build a custom circuit for this ?

There are arduino libraries available for these LED Driver breakout boards but I need to run on BBB so can anyone tell me how hard it would be to adapt the libraries for BBB from the arduino ones ? Or would it be better to do this on an arduino and pass the logic through to that from the BBB ?

Any other thoughts on additional hardware that might be required to make this work.

If anyone has done similar projects I would be extremely grateful for any advise or pitfalls


That’s one way.

There are many ways to do something, it all depends on the materials available, on your skill set and what you’re used to. Anything that works is a right answer.

I take it these are discrete LED’s? Have you looked at LED strips and “intelligent” LED pixels? (WS2811 LEDs and WS2811 LED strips) Those items have PWM drivers built in.

Also for BBB, look at LEDscape, it’s a software package that runs RGB LED’s. http://trmm.net/Category:LEDscape Read/research through all the LEDscape stuff you can. A lot of information is available, just not in a step-by-step format.

You’ll still need an interface to match the BBB’s 3v pins to the 5 volts/12 volts needed for LED strips or Pixels.

Making Arduino libraries work on BBB is an exercise for very advanced programmers, not a trivial task.


Those WS28xx lights are probably the way to go. There are many projects based on them.


is one such project, and there are countless others for different embedded platforms / types.

thanks for that advise

I hadn’t realized those strips had pwm drivers in them already, this looks like a much easier approach.

looking at these now

12mm Diffused Thin Digital RGB LED Pixels (Strand of 25)https://www.adafruit.com/product/322

Only thing is I need each LED to be about 2 meters apart,
Do you think they would work if I added in an extra 2 meters of cable between each LED ?

count wise ) that you like. My assumption here should mean that if this is
true, you should be able to "splice" each individual LED at 2M. However,
noise may also play a factor here. Get the datasheet, and read :slight_smile:

These is a data sheet for the WS2801

But what should I be looking for ?

I found some cheap alternatives on ebay from hong kong which have 50 pieces for only $30

Any experience with cheap chinese parts ? Are they likely to be any good ?

I have zero personal experience, but have chatted with a few people on IRC who have used them in various projects. Try searching youtube for some awesome xmas demo’s using them on houses . . . If you post on that Beaglefu forum on Rickta’s post he may ( or may not ) respond. Several people have used them on 43oh.com forums. Perhaps one of them may respond if Rick doesnt.

This below from the ws2801 datasheet , I think this means they can be up to 6 meters apart. ?

The Connection and Driving of Cascading Operation
The transmit the data over long distance by cascading, the WS2801 integrates push-pull output stage with strong driving capability which enables the data and clock can be transmitted up to 6 meters at 2MHz clock frequency.
To prevent the reflection, it is necessary to connect a 50Ω resistor at the data input or output port for impedance match.

Distance is a problem and I don’t remember what it is, I’ll dig through my notes and try to find out. Meanwhile, when distance IS required and it is too long, they leave a Pixel (or two) inline and program it (them) to be off all the time. I believe the distance affects the timing and any pixel acts as a repeater/amplifier of sorts for the simplistic explanation.


The Christmas lights folks use the Chinese sources all the time. Ray Wu is one of the better prefered vendors.


I believe so! Also, the Christmas Lights folks use Cat 6 cabling for connecting things due to it’s superior shielding characteristics. Just chop off the plugs and don’t untwist any more than you have to to solder to.