Power LED shield

I'm giddy to announce that I'm about ready to send my first ever PC board design out to BatchPCB! I've always wanted to make an Arduino shield and after reading all the posts on how to drive LEDs or make an aquarium light system, the idea finally came to me to build a power LED driver shield. :D

The power LED shield will be of specific interest for: aquarium owners, indoor growers, entertainment lighting, high-efficiency indoor lighting, bike headlights, nocturnal robotics :-? and the usual hobbyist and enthusiast crowds.

While I may sound like I'm already almost done with it, I'd really like to hear if anyone has ideas, feedback or suggestions on features that I might be able to add before having the PC board fabbed.

Once I do some more verification on the schematic and board design, I'll post pics.

Here's a rundown of the current features: o Duemilanove (and Mega?) compatible o Up to 4 driver channels, individually addressable via 4 Arduino PWM pins (3, 9, 10 and 11 on the 2009), any combination of colors. o Buck (input voltage higher than LEDs), Boost (input voltage lower than LEDs) or a combination of driver types o Max output manually adjustable from 50mA to 1A per channel, constant current o Full opto-isolation to protect our precious Arduinos o Optional 5V regulator to power the Arduino from the shield o Easily drive 115 watts of LEDs from one shield (8 LEDs x 3.6 watts x 4 channels) o Stackable for EVEN MORE output per channel. :o o Input voltage range 5-32 VDC

So far, future improvements and ideas already include: o Set max output current and perform analog dimming in software with a DAC circuit on each channel. o Library that allows changing the PWM frequency easily (not necessary if I can do the DAC idea above) o Serial option to allow zillions of channels without eating up pins. o Mega-specific shield with more channels on more PWM pins. (I don't have a Mega yet)

Lemme know what you think!

Cheers all!

EDIT: Misstated the output wattage at 156 watts. wooops!

Lemme know what you think!

Sounds interesting, looking forward to seeing your schematic drawing of the design. Only advice is to keep an open mind and keep it general purpose as it might be useful for driving things in addition to LEDs.

The whole Mega Vs standard Arduino is kind of a challenge as many pin functions change to other pin numbers and of course the footprint are different.

I like the idea of opto-isolation and requiring external power so that one can't by accident try and power the shield/loads from the internal Arduino power. However if you expand on funtions and features requiring more pins you might find that you get short of space for complete opto isolation.


keep it general purpose

That's a good point. For the first version(s) the LED drivers are modules made by another company (LEDDynamics' BuckPucks and BoostPucks). But I may consider revising the board with drivers of my own design, and I'll keep that in mind. In any case they are/will be constant current drivers and I'm not sure what other uses that type of power has.

Here's a decent version of the board and schematic. I haven't ordered the parts and checked fit yet. But other than that, I'm calling this ready to submit.

Full sized images at: http://www.chesterfamily.org/gallery/ProjectsAndStuff/Electronics/

Shoot. I just had another idea for a change I want: a DIP switch to enable/disable channels (to free up unused pins).

I just had another idea for a change I want: a DIP switch to enable/disable channels (to free up unused pins).

Or even just simple 2 pin jumper clips to perform the same fuction. Lot cheaper then those DIP switchs. So is the processor chip on the shield and drive the outputs? If so how will the main Arduino board communicate commands to the shield, serial link?


The 4 large components, labeled 3021 are constant current LED driver modules (these: http://www.leddynamics.com/LuxDrive/buckpuck.php and/or these: http://www.leddynamics.com/LuxDrive/boostpuck.php). Each one has power in pins, LED out pins, and a control and reference pin. The Arduino addresses the Ctrl and Ref pins via the opto-couplers with a PWM signal from pins 3, 9, 10 and 11 (one for each 'channel'). There's also a 5k pot near each module that sets the max current through the LEDs.

The user only has to set the max current with the pots (only if the LEDs are rated lower than the driver modules. docs will cover this) and control the PWM or digital value on each of the pins to control brightness and on/off.

If the 5V regulator is used to power the Arduino, you have to close J1 and J2 and you lose the total opto-isolation by combining the grounds. But opto-isolation still works for the control pins, which is the critical piece for not frying the Arduino.

I think I will update it with jumpers (or some means) to assign PWM pins to channels in whatever combination suits the user.

I've been looking into this type of project and so i'm very interested in how you get on. I assume you plan on selling these once you're done?

Count me in, can you give me any more details on price and dates?

cheers paul

Hi Paul,

It would be cool to sell them once I can get the money to order a large batch of boards and parts. I don't have any real dates for anything as I'm learning as I go along. But I received an order of parts this week and I'm going to settle on the first version PCB design, hopefully by the end of the weekend. I keep making "minor" PCB layout changes that cause me to reroute the entire board. :P

I updated some things too: I added a buffer IC to reduce the load on the Arduino pins so that many shields can be stacked for 8, 12 or more channels. I also added jumpers to allow assignment of Arduino PWM pins to driver channels. So one could run them all on different pins, all on one pin or any combination. This also allows multiple shields to each have a pin or whatever you want to do.

I haven't tallied up any costs yet to be certain. But the boards will run me about $20-25 each for the first few, and the LED driver modules are about $15 each IIRC. The rest of the parts are all a few cents to a dollar or two.

Here's updated board and schematic:

Full res images at: http://www.chesterfamily.org/gallery/ProjectsAndStuff/Electronics/

Really nice project. Will the Mega version fit both the original mega, and the Seeeduino Mega? I have a seeeduino Mega, so just ask if there is anything you want to know about it.

Thanks! :)

By the pictures on Seeed Studios' site, it looks like it would fit. But I don't have either of the Arduino/Seeeduino Mega boards to test on. It is my understanding that shields built for the Duemilanove are physically compatible with the Arduino Mega. But the pin assignments may be different. So as long as Seeed maintained that compatibility you should be alright.

I would need someone more familiar with the Mega boards to verify my statements above.

Shields designed to fit a standard Duemilanove or clones will fit both the Arduino and Seeeduino Mega boards physically. However as stated some basic pin functions like I2C pins, if used, won't function on the either Mega as their I2C pins have moved to non-standard Arduno connectors.

Also in the future if there are shields made that utilize the extra connectors on the Arduino Mega, they won't fit on the Seeeduino Mega as while both have extra pin connectors they are not located the same.


Cool, thanks for clarifying that. :)

Latest board and schematics above.

Been waiting for something like this (im a reef geek)

Just a couple of things

The pucks are only good for 6 high power leds, even luxdrive had to admit to this.

Be careful of the heat from the pucks, there has been quite a lot of failures especially at 1a so staking them may cause some problems.

Apart from that can you make one for driving the big 60w meanwell led drivers :wink:

Cool, I was hoping someone from the reef crowd would chime in too.

Thanks for the warning on heat. I'll have to keep an eye on that. I haven't had any issues with my 700mA bucks, but I haven't tried any of the other ones.

I did notice in the spec sheets, the boost drivers have a max 1A input current, which means if you're driving a big serial string of LEDs, your input voltage must be much higher than the rated minimum. They can drive up to 48V @ 350mA, so at max output you must have at least 17V on the input. I expect a lot of people try to run them at 12V input and are seeing them overheat. If heat problems are showing up on the 1A buck drivers, then it sounds like 1A may be the realm of danger across the board. It wouldn't surprise me if the devices did not hold up to spec. My 700mA bucks only give out 640mA regardless of load, input voltage or adjustment.

The design of the Power LED Shield is based on the LuxDrive *Puck units (because so far they're the only pre-made driver I can find that does both analog and PWM dimming), but I'm looking at ways to make it less specific to one brand. Post a link to the units you're talking about and I'll see if it's a minor change to make it compatible.

If anyone has links to other drivers they like, please post and I'll check it out. If I can make the shield more friendly to a wider range of options, I will for sure.

BTW: the images above don't reflect the latest designs, in spite of me updating them. See this link for the latest designs: http://www.chesterfamily.org/gallery/ProjectsAndStuff/Electronics/

Here is a link the the meanwell drivers. http://www.meanwell.com/search/eln-60/ELN-60-spec.pdf.

There are 3 types,non dimming, type d is 0-10v anolog and the type p is 10v pwm. Thers all ways a but, the type d and p have really long lead times unless your in the uk and rs do the type d.

If you do a shield for the 0-10v it could also control tunze powerheads,Ati lights and any of the t5 dimmable ballasts which are all 0-10v.

i was going to use buck puck for my array but i would have ended up with 16 of them which starts to get expensive where as with the meanwells i can get away with 4 and plug them straight into my profilux controller which has 0-10v control. But thats to easy hence why im lurking around the arduino forum.

The 0-10V control looks pretty straight forward. I've seen that format on a lot of other standard electrical control systems. It will be easy to modify my design to account for this. I'll work on it this weekend.

The buffer ICs I'm using also have an enable pin, so I think I'm going to include that as a separate on/off control. Here goes another 'minor' change. ;)

I went through a few revisions this weekend and decided the 0-10V control option was better served by a different (and less expensive) board. This board can support it as it is currently designed, it's just a little cumbersome to do for the user. And trying to allow all the flexibility I wanted was making for a very complicated shield to configure and use.

But I want to make an opto-isolator shield and that will be a better solution for the 0-10V control devices.

Make me a shield too :)

I have been doing loads of reading about how to do this and i must admit its starting to hurt my head, op-amps,optos and all that stuff is really not my strong point. should go back to pucks and make it easy for myself.

Just quickly while im here, the way im tackleing the 5v pwm to 0-10v is to take the 5v pwm ( through a opto, nice idea ),smooth it with a resistor and cap and then stick it into a op-amp with 2 equal resistors to get 10v. Does that sound about right.

Building a led light for my tank is the easy bit apart from soldering 96 cree leds

OK, who is interested in a Power LED Shield? Once I submit the design, I'll order a few boards and sell them at roughly my cost. Speak up and I'll make sure I order enough of them for the first round, at least. Not asking for a commitment on buying them - just want to gauge how many I should order.

If you're more interested in the opto-isolator shield for 0-10v control, let me know. I haven't started that one yet, but I will shortly after I order the power led shields - maybe over Christmas vacation. And I'll start a new thread for them once I get some specs/features put together.