I've been working with Seeed Studio for the last few months to prototype an Arduino-compatible shield that highlights the TLC5490 driver chips and used three of them to drive a 4x4 RGB LED matrix. This was based on a circuit we built at the first HTINK workshop here in New York City.
Now, Seeed has put together full kits that have everything you need to build the shield for yourself for $35. They also have the bare PC board for $6.50 too if you already have the parts or want to source them yourself.
I've documented the project at http://combee.net/rgbshield. I need to put some actual code examples there... right now, they're scattered around the net a bit. On the shield, each TLC5490 chip is used to drive one of the color channels, so you can adjust the current-limiting resistors to get a better color balance.
This wouldn't have been possible without the excellent TLC5490 library at http://code.google.com/p/tlc5940arduino/. We used that as the basis for our sketches at the workshop. I'm about the update the RGB shield page with some code samples and instructions on using the library.
Here's a picture of an assembled RGB LED shield:
Ordered my kit yesterday and it's on it's way!
Just found the example sketches on your site so I'm picking through them to make sure I understand what I'm doing with the code before I get soldering!
The board looks great in the pictures, hopefully I won't mess up the build ;D
The build is fairly easy. The biggest issue is making sure all the LEDs are installed correctly. I'm glad to help here on the forum if you have any problems, and I'm looking forward to what other interesting patterns people make.
You haven't seen my soldering!!!
Just dreaming up some patterns now.
I did something similar about a year ago:
There didn't seem to be a lot of interest in the board though so I never sold any. I'm curious how your kit will do.
I'm wondering though why you used the TLC5490 chips. At $8 each (from seeedstudio), that would be $24 of the $35 price tag. My design uses 11 Arduino lines to control the LEDs (for your 16 LEDs, I'd need 14 lines). I have interrupt-timer based firmware so controlling the LEDs is similar to how you described yours.
If you don't want to tie up 14 lines and do the work in software, why not put a daughter ATmega on the shield? A $4 ATmega plus 6 transistors vs $24 in driver chips seems like an easy choice. You could knock it from $35 down to $20 and still make more off each one.
When we made the original design, we did an order of several hundred TLC5940 chips from Digikey, bringing the price down to under $4 a chip, much less than Seeed's one-off pricing.
The TLC5490 chip has a very nice property of being able to do PWM directly from the driver. It also runs all of the LEDs simultaneously, allowing much greater brightness than Charlieplexing. This design allows you to do a lot more computation or control of other devices while still running the LED display. You also can add another 16 LEDs without expanding the number of Arduino pins you use. You also can run higher power LEDs using a separate power supply, as the TLC chip works by sourcing power to ground, rather than supplying power to the LEDs. If you were doing some sort of art display, this is a good driver.
So far, it looks like half of the original stock of 20 kits have sold, so it looks like there's some demand. I've also sold about a dozen of the previous boards before Seeed offered to do the kit.
It also runs all of the LEDs simultaneously, allowing much greater brightness than Charlieplexing.
Who mentioned charlieplexing? It's a cute technique but much too low duty cycle for anything non-trivial. I've done tests and find that 10-15% duty cycle looks almost as bright as 100% duty cycle and saves a lot of power. So I don't see the 33% duty cycle I'm drving the LEDs at as a problem at all (or the 16% duty cycle for 16 RGB LEDs). In testing, I lowered mine to 20% while trying to get the red, green, and blue consistant and it still looks full brightness.
Even with a flashlight project I'm working on, I'm driving the luxeon LED at a lowish duty cycle at higher current. It's saving battery life, looks brighter, and the LED doesn't get as hot.
Well the kit arrived this morning and I’ll be building it in a little bit.
Looking forward to having a play!
I'm sensing bad vibes. Time for some chocolate !
Couldn't you upgrade the boards to use TLC5947 ? They have an internal PWM clock. I don't think phase drifts between the individual R,G,B PWM signals matter much for just RGB LEDs.
The advantage of the TLC5940 over the TLC5947 for a kit like this is
1) the 5940 is available in a DIP package, making it easier to solder. The original workshop this was based on was building the circuit on a breadboard, so the surface mount part just didn't work
2) the 5940 seems to be much more available. I only found one source for the 5947 on Octopart.
Basically, the original purpose of the board was to have a way for people who took the original HTINK workshop to make a more permanent version of their breadboard circuit.
Finally found some time and got it working! (I had managed to rip out a couple of tracks with my terrible soldering skills)
I’m now having fun playing with colours and patterns…
I’ll post some video as soon as I find some more time.
Are you going to be making new versions of this device?
I may make a new revision in November that does a multiplexed output and uses only one TLC5490, although my personal need for that is less now that the Rainbowduino exists and works very well.
Hi, look nice, could you post a video of it doing something ;)
WOW thanks, as i am with DMX this look nice
Hmphh. After finally getting round to looking at doing a laser cut cover for this (thanks easty) I realised there are no mounting holes! Arghh.
Please will everyone stick mounting holes on boards. Preferably so they line up with the ones on the arduino but for some things this is not possible/necessary.
I will be cutting a kinda bezel for it but mounting holes in any future versions would be nice :)
I never thought about mounting holes. Sorry! I'm probably not going to do a revision to this one, and my next kit is designed to directly plugin to a USB port. I'll see if holes make sense there.