Help making a high powered RGB Lighting system for my highschool

I’m working on some new stage lights for my high school. The budget for this project is ~$300.

So far I have planned this:

10W RGB LEDs (350mA/10V per color channel) x8 -

120W Computer Powersupply at 24V for powering LED drivers

Arduino PWM outputs for control - the 6 outputs will be mapped to R/G/B for stage left and stage right to allow for advanced color mixing.

Buck Constant Current 1A with PWM Controller - - 6 of these - 1 per PWM channel

Run 4 light channels from each driver in 2 series 2 parallel. (for 20V/700ma)

Questions I still have:

  1. How to solder that chip? It’s 3x3mm and I have no idea how to solder up 8 wires to it. Maybe there is a chip socket for that shape of chip (hopefully)

  2. Housing/Reflectors for the LEDs. I can see a couple other LEDs of the exact same dimensions but different colors/intensities so I have a feeling that is a standard LED form factor. Anyone know of housing for it? Looking for roughly a 12-15 degree beam angle.

  3. Is it a bad idea to run multiple strings of LEDs in parallel? Will this cause a load imbalance?

Finally, if you see another problem with something in my plan please don’t hesitate to help! Thank you in advance.


NO!! This is a 10 watt LED - it has to be mounted on a substantial aluminium or copper heatsink and may require a fan too.

1) Soldering to it may be a little tricky - the lead pitch may fit stripboard though?

2) I know some of the 3W and 5W LED packages have reflectors available - you'll have to search - but it may be that there's too much heat and a plastic reflector just melts.

3) If the LEDs are matched (from same batch) you may get away with it. Given the high power there will be thermal imbalances that upset things - best to have some current balancing resistance for this reason alone. Note that each colour has a different forward voltage so you can only common the reds, the greens and the blues independently. Its important that there is good heatsinking so the different LEDs are at similar die temperatures to help with balance - and ensure long life.

[You also need to know that these devices can damage your eyesight if you don't respect them]

Aren't the LEDs already mounted on a plate with leads sticking out to the sides?

From the picture it looks like 3 die wired in series, with an anode connection on side and a cathode on the other.

I would run 2 of these in series, each one dropping 10-11V and sharing the 350mA of current. Will need a current limit resistor and a MOSFET to switch the current. With 4 pair, you only 4x350mA x 3 colors max.

Thanks for all the help so far!

I was planning on running only the same color on each driver, as I want separate PWM control for each color so that I can mix the colors and create anything in the rainbow. Basically the PWM will control the brightness for the Red, Green and Blue channels separately, with one set for the left of the stage and the other set for stage right. This will utilize all 6 of the Arduino's PWM channels perfectly.

I found a larger driver IC that has much, much larger pins that will be about 100x easier to solder. Additionally, it already has the necessary capacitors/resistors inside of it so the wiring becomes as simple as wiring up + and - for the power input and the LED, and a 5th pin for control.

My new problem is that the driver IC wants a PWM signal with an amplitude of 1.25V maximum. The Arduino outputs a 5V signal. I want to put a resistor in there to drop the voltage but I don't know what current the arduino PWM signal usually pushes. (or is there a better way to reduce the amplitude of the PWM signal?)

As for cooling these LEDs will be screwed to a large aluminum bar with a dab of thermal paste in between. The aluminum bar will have some fins on the back and a small cooling fan blowing over them. The thermal conductance of the aluminum is pretty high and the LEDs will only be a couple of inches apart so they should stay with a few C in temperature of each other.

Here’s a circuit I would recommend if my assumptions about the modules are correct.
Maybe a little overboard with the fuses, but you’ve got high voltage, better safe than sorry.
I set it up for left & right lights, if you want 4 seperate setsof lights just add more MOSFET drivers.
Maybe use a MEGA vs an UNO to have PWM lines built in.


Post a link for this new driver chip. I think 6 MOSFETS in TO-220 packages are all you really need. The Newark link is down at the moment for the original device.

It's the LDU2430S1000-WD from XP Power.

Comes pre-wired :D.

Looking at your circuit (thanks), it appear the LEDs are driven by a voltage source and a resistor, with no control other than the PWM signal? I need to get exact light levels to get accurate color mixing and similar current flow though all LED modules to insure even brightness.

"Looking at your circuit (thanks), it appear the LEDs are driven by a voltage source and a resistor, with no control other than the PWM signal?" That is correct. Light levels will set by the 255 levels of PWM available to you from the arduino. analogWrite(Ax, 0) will be full off, analogWrite(Ax, 255) will be full on.

I understand that, but how equal will the current in the LEDs be? For example when the arduino is set to 255 across the board all of the LEDs should have 350mA +/- 10mA running across them. If one LED had more current than the other it could be counter acted in software with scaled PWM values but it'd be better to have a more even output precisely controlled by a driver IC.

Basically, if I set the red channel on the left and right to be 100% brightness, all of the RED diodes should be emitting the same amount of light. I just do not know how close you can get to a perfect even brightness with resistors. If one LED got more current the left side of the stage would appear more bright than the other.

As drawn up, there are 12 LEDs of the same color on each side. There may be some small variation from part to part. The variations will pretty much be a wash among part. If you find one side is too bright, bring down the PWM on that side a few notches. If you use current limiting resistors that are 1% variation, then 350 +/- 10 should be achievable. I would suggest reading the value of a potentiometer for each color, and using that to control the PWM value that is used. Then you turn a knob and see the lights of up & down. You can also create presets. Twiddle the knob to find the color you want with the cast & set in place, then program a button to jump (or fade up to) those colors when the button is pushed.

Ah, I see thanks. I think I'll use a bunch of trimpots inside the unit for control. I had planned on adding presets in the software, including the ability to read a light program from a file.

The only concern I have now is the wattage of those resistors. The voltage of the red channel is much less than of the the other two, and thus in series you get:

Red: 14-16V Blue: 20-22V Green: 20-22V

Now, at 350mA the resistor will have to drop 8V, so that gives:

0.350*8V = 2.8W. For safety I want a 5W trimpot, which could require a heat sink and such. Unless I am misunderstanding how this setup is supposed to work?

I want a 5W trimpot

Not sure if such a thing exists. These are normally quarter watt. That is why constant current drivers are such a good idea.


I want a 5W trimpot

Not sure if such a thing exists. These are normally quarter watt. That is why constant current drivers are such a good idea.

That's what I suspected. I guess I'll be sticking with the constant current drivers then. I will need some small trimpots to balance the current between the two series of LEDs but they won't be dissipating much heat at all.

Got most of the project worked out quite well now.

Just need to figure out how to turn the 5V amplitude on the arduino's PWM signal to the 1V amplitude required for the Driver IC's I have.

Run it thru a voltage divider.


Thanks for that diagram Crossroads, that explained it perfectly.

User KE7GKP is correct.

According to the datasheet you linked to, the Dimming input pin, Pin#2 “Can be connected to a logic level PWM signal”. (Typical logic levels are 3.3V or 5V)

On page 3 it says Vdim threshold ranges from 1.85 to 2.25 typically 2. Therefore when the voltage is below 1.85v it is off and when it is above 2.25v it is on (or vise-versa). This confirms you can use either a 3.3V logic or 5V logic. So the arduino output will be fine. No voltage divider is required.

No, I was asking about the data sheet I linked later on in the thread, for a different product. It clearly states that the maximum Vdim voltage is 1.25 and that a PWM signal should be 0-1V amplitude.
This one, showing 1.25V

Output Current Range • 25% to 100%
Operating Frequency • 1 kHz max
On Time • 200 ns min
Off Time • 200 ns min
Amplitude • 1.25 V max <<<
DC Voltage Control
Output Current Range • 25% to 100%
Control Input • 0.3 to 1.25 V max <<<