Design for a 10-channel RGB LED strip driver

I'm a total beginner at electronics design, but I needed several RGB LED strips to be driven by PWM, so I did this design with two TLC5940 chips. Got a lot of good tips and instructions from this forum and others, so I thought I'd share the design with others who might be interested in using it.

I've got couple of questions related to component values, even though the current design seems to work just fine using a breadboard prototype.

But let's start with the board. Below is a 3D rendering from KiCad showing 8-port RJ45 connector (for data and LEDs), amplifier circuits and the two TLC5940s (open the image in a separate tab to see it properly).

The schema and PCB layout are available at GitHub (rgb-led-controller/hardware at master · ochrons/rgb-led-controller · GitHub) with a couple of PDFs for easy viewing for those without KiCad.

Basic idea is to use chained TLC5940 chips to control a number of RGB LED strips. Each board can control 10 RGB channels (with two extras for white LED strips). I'm planning to use four boards for illuminating a home theater with zone controlled lighting (and some disco effects 8) ). The boards are daisy chained using normal CAT5 cable. Controller can be an Arduino board, or probably in this case a Raspberry Pi (for easier programming of complex functionality).

LED strips are also connected using CAT5 cable. Each cable (8 wires) can drive two +12V RGB LED strips.

Because LED strips use more current than TLC5940 can handle, each PWM output has two NPN transistors to "amplify" the signal. One transistor inverts the signal and the second inverts it back and acts as the "amplifier". It is designed this way to avoid the inversion problem where it would be impossible to turn off the LEDs fully when only a single transistor is used. As two TLC5940s provide a total of 32 channels, only 30 of those are used to drive RGB LEDs. The two extra PWMs are intended for even more power hungry white LED strips, so the other transistor is replaced with a N-channel FET.

Due to high current requirements, +12V power is provided separately for the board and the "single PWM channels" use dual wiring in CAT5 to provide lower resistance.

Now, the digital part I can handle quite easily, being a software developer and all, but the analog circuitry is a bit of a mystery. I read through a lot of TLC5940 posts and instructions, but to be frank, the values for resistors and capacitors are basically "googled" without any deeper understanding of why they should be just the way they are.

Therefore it would be really nice to get some feedback from the resident experts on the components. For example I have 2kOhm resistors for TLC5940 input current control, but I'm not sure what would be the optimal value due to the dual transistor design that takes practically all the current from the LEDs. Also the power rail filter capacitor values are just copied from some other designs. I noticed that not having them created a lot of problems, and there had to be separate capacitors for +5 and +12 power lines.

Also there is the question of what happens to the lights when the controller is offline. I noticed some instructions about connecting BLANK to VCC via 10k resistor to prevent lights going on. Would this be a viable option in a daisy chained design?

Thanks in advance!

Great design!

Are you selling the circuit pcbs or kits anywhere at the moment? I've been looking for a simple (and expandable) system like this for a few projects I'm working on - this looks teriffic!

what kind of code are you implementing on this? Rainbow fade effects or something similar?

  • N!