Addressable RGB Driver

Has anyone done much research into an addressable RGB driver, IE datapin plus voltage pins and to control update 255 drivers independently,

I found this guys pic controller, he's coded it. Just wondering would this be an easy arduino import. I haven't even recieved my first arduino yet and am already needing help ;D

Or am i barking up the wrong tree, are there better cheaper alternatives already out there that i've overlooked in my searches.

The BlinkM's are a bit pricy for my need, they're $15 each i'm going to need quite a few.

Thanks in Advance


As far as i can see he uses a PIC10 something for EACH RGB LED. It would be rather costly to do that with Arduinos.

I think the master controller code could probably be ported to / implemented on Arduino, but i haven't looked at it.

Or am i barking up the wrong tree, are there better cheaper alternatives already out there that i've overlooked in my searches.

The BlinkM's are a bit pricy for my need, they're $15 each i'm going to need quite a few.

Thanks in Advance


I make these. Don't know if the pricing is down far enough for you, but it's another thing to look at I guess. They've been tested with the Arduino.

The shiftbrites might come in handy as a bit of a fall back plan, i just think the data you end up sending gets a little unwieldy even at 10 shiftbrites.

I was thinking originally with the link i posted that is there a way this could be done using the small pic chips, and just interfaced to an arduino, cause obviously he chose those specific chips for their price and ease of programming.

It’s just the addressable nature that would allow you to run 2 wires and be done with it, individual nodes can run from battery.

still something to think about

Hmmm...unwieldy how? I'm intrigued since I definitely want to improve these if possible.

I looked at the protocol for the Blinkenlichten and it doesn't seem much lighter, and it's very timing-dependent. Each ShiftBrite only require 32 bits of data and it's a simple clocked serial line. The ones you linked have an actual protocol similar to I2C, and the communication bus maxes out around 1MHz apparently. Also, the microcontroller has to drive the entire data bus! With 200 devices and a long wire, 1MHz is asking a bit much. ShiftBrites max out at 5MHz, and each input is buffered and then sent to the next device in the chain. That means the microcontroller only has to drive one device. One other thing: you can't actually buy Blinkenlichten yet.

I do like Blinkenlichten...the guy should look into getting them produced. His site currently says that he "might" make pre-programmed ICs available. Maybe I'll get in touch, I have the manufacturing and importing stuff all worked out...

Well i suppose you have used the shiftbrites already, i'm just thinking how i'd implement it in code, i'm sure something will come to me soon.

The only other thing would be led drivers driving say up to five per driver, that would put the chips at 100mw per colour channel.

The other thing with the Blinkenlichten is that with a few mods you could make it more easily interface with the arduino, for instance being able to change and store it's address over the data wire, because it's not too hard to program that pic chip with his code he puts out for free.

And absolutely you should look at making it available, but the code needs a few more pairs of eyes over it before it's commercially ready. the address being set during pic programming is the problem that sticks out first off. there's probably other things though.

My arduino should arrive today. Finally.... Stupid Australian Post!

I actually think that programming the shiftbrites would be very easy. You basically just have to shift somebits out of a pin and toggle a latch pin. All this i well known territory in the Arduino world. You can read the 595 shiftregister tutorial in the playground, that would give you almost all you need to use the Shiftbrites with Arduino.

i was just thinking that to modify a single LED you would need to send 32*(number of chips) bits, when you look at anywhere from 10 - 50, you're talking about 320 - 1600 bits, which makes it a little impractical the bigger it gets. storing the previous values in an arduino for 1600 bits, i'm not sure where the memory limits start but.

I think i'll just do a few small scale tests and work out where the practical limits are for this. My first project will be converting my room to ambient lighting on sensors, and i'm hoping to do this without any computers still connected to the arduino. perhaps an Ethernet port for controlling.

Eventually i'd like to use this same technology for a full scale house lighting, or perhaps a wearable art thing for my girlfriend seeing as she's artistic.

Which is why i'd like to look at addressing using something like 2 wire technology, you would have 100+ led drivers located in different rooms, that do their own thing.

I’ve found this chip, has anyone used this before is it perfectly suited to this?

No. It doesn't do any PWM on its own. A TLC5940 would be better, it has 16 outputs with individual PWM generation, you shift 192 bits into it.