Neltner Labs

Tutorials and Projects from Brian Neltner

Super Inexpensive Four Channel Linear Drivers


Been working on a nice little project for making driving high power LEDs more convenient. This is actually a linear driver that allows extremely high PWM frequencies, and is much cheaper than a switching system. I’ll be using this set of five to build new display tables and optical illusion generating boxes for Brickbottom Open Studios November 23rd and 24th. Come and check them out!


I’ve also used them to drive a 40W RGBW LED using an Arduino Leonardo with 16-bit color, and the code templates are set up to make it pretty simple to use this with any Arduino Shield that doesn’t use the requisite PWM pins.

Here’s a photo showing a very simple circuit where an Arduino is controlling a smaller 10W RGBW LED.


The heat sink there provides 3.5C/W, so with all four channels at full current, it can handle 4V of voltage drop at the current sink terminal with a 35C temperature rise. Typical operation only requires ~2V of overhead, so under normal conditions it will run at under 15C over ambient.

Here’s a video showing two of these in use to control a new seven LED light fixture!

And finally, here is a link to the circuit schematic. Total component cost is under $7 for a four channel 600mA current sink, plus board and assembly. About half of that is the heat sink, followed by the nice right angle connectors, so you can decrease that a lot by integrating into a different style design. This schematic is for only four channels, but you can easily make it seven, or a hundred if you have enough PWM outputs to provide control signals and enough heat sinking.

For Arduino software to activate four channel 16-bit color mode and do a fully saturated RGB fade, here is a link. In this code, the pin numbering is:

  • Arduino Pin 11 (PB7) - GREEN
  • Arduino Pin 10 (PB6) - BLUE
  • Arduino Pin 9 (PB5) - WHITE
  • Arduino Pin 5 (PC6) - RED

As always, code is GPLv3.

Brian NeltnerComment