Skills

PicoBuck LED Driver

Description: The PicoBuck LED Driver is an economical and easy to use driver that will allow you to control and blend three different LEDs on three different channels. Power in supplied to the PicoBuck with a wide range of input voltages (6v to 20v) connected to the VIN header and three inputs for each driver channel (labeled IN1, IN2, and IN3) driven with standard 3.3v or 5v logic.

This PicoBuck supports PWM control so long as the signal is above a minimum of ~1.5V and each LED is driven to ~350mA.

Note: If you’re going to use screw terminals, this board uses two different sizes. Check the related products for both sizes you’ll need.

Note: The PicoBuck LED Driver was made in collaboration with Ethan Zonca. A portion of each sale is given back to him.

I’m having some unexpected behavior from the PicoBuck.
I am running only two channels. One with a Red “3 Watt” LED and one with a Blue “3 Watt” LED.
I am powering this with the +12vdc rail of an old PC power supply. I am controlling each of the channels with a separate PWM output from a Arduino Nano. I am reading two separate pots to set the output value used to drive each channel. [pseudocode analogWrite (BlueLEDpin, analogRead((BluePot)/4)]
The problem is, it appears I have a lot of cross talk between the two channels. If only one channel is connected, I can control it’s brightness without issue. But, if I have two channels running, both pots change the brightness of both LEDs.
Using serial.Print shows that each value being written out is in the expected range of 0-255. There is no cross control happening there. This leads me to believe the issue may be in the PicoBuck it’s self.

Any ideas?

[EDIT]
I looked into the specs on the AL8805W5 and found it works more reliably with <= 500Hz control signal.
Since I am using pins 5 & 6 from the Arduino, I may be getting ~980Hz . Additionally, pins 5 and 6 use T1 for timing, as does the “delay()” command. These two items combined may be causing the issue.
More testing later. I will post the results [/EDIT]

[EDIT2]
Yes, it is as I expected, using D5 & D6 for PWM output, along with code that includes “delay()”, is NOT a good idea.
I simply moved the control signals to D10 & D11 and the PicoBuck worked perfectly.
I am tempted to remove my original post, but if it helps someone else to fix a problem, then I am happy to leave my oversight posted. [/EDIT2]

I think that should work fine. Considering the efficiency of the regulator and on-resistance of the switching FET (typically about 0.25 ohms) I don’t think there should be much of an issue. the AL8805 should be able to regulate with ~1V of headroom, although I haven’t personally tested it.

PWM Noise? Crosstalk?
I’m wondering if anyone has any experience working with these in parallel with a microphone or other high resolution analog sensors? Do these generate a lot of electrical noise that gets picked up by analog sensors?

I’m considering these for my next project iteration, and looking to eliminate the noise caused by these constant current circuits. http://www.instructables.com/id/Circuits-for-using-High-Power-LED-s/?ALLSTEPS

Thanks all! =]

Details
( I can use high frequency PWM on my teensy3.1 at 10-11bit depth to escape the “audible” range of my FFT audio analysis, however I need to use 16 bit pwm, which gets easily picked up by my FFT. My diagnostics indicated the noise wasn’t EMF from signal lines, but noise in the power rails likely from the pulse draw. This gets heard by the teensy on all sensors, even when my mic is connected to the isolated +3.3v of the teensy and separate analog ground. +5v 2A power from wall-wort otherwise)

I built the basic picobuck circuit into a device and made it past 60601-1 3rd edition emission and interference testing with zero problems. I mean it was silent. Beautifully silent. If you do your own circuit board, make sure you follow the layout recommendation in the AL8805 data sheet, and put your inductor in the right place.

I have worked with Ethan Zonca a lot in applying this circuit for lighting and audio purposes. Keeping this short, I will say I have experienced audio problems with PWM and noise while driving high current LEDs. However, this is easy to fix. The 2.2uF capacitors help offset most of the noise generated by the current limiting switching, which is about 500kHz (well out of audible noise range). To eliminate the PWM noise which is created by line drops from the high current draw it really helps to add some bulk capacitance at the power input of the picobuck. I recommend a 10uF ceramic and possibly even a 20uF or more electrolytic depending on your wiring situation. The longer your power wires, the more bulk capacitance you may require.

i was looking at your bill of materials, because i was wondering if this circuit could be driven with 24v.
i need to make it work with an already existing architecture.
you are mentioning higher voltage caps. would one also have to use a diode with a higher “Voltage – DC Reverse” ? I think the currently used diode has a rating of 23V.
thx

The components selected were chosen based on availability (basically, what we have in stock already) and size (to keep the board size down). It’s possible that there could be some higher-voltage replacements available out there that would allow you to bump the input voltage up to 24V.

You could also just try it at 24V, depending on the nature of the application. Exceeding the voltage ratings <strike>may</strike> will shorten the life of the board; maybe that doesn’t matter for your application.

i am driving the driver with a PWM signal from a teensy micro controller. it works fine.
but the datasheet says:
“The CTRL pin is designed to be driven by both 3.3V and 5V logic levels directly from a logic output with either an open drain output or push-pull output stage.”

i know if i drive the rebel led driver (from sparkfun) with a regular PWM pin from an arduino it will burn the driver, because it too needs an open drain PWM signal.

i’m interested to know how this led driver would compare to something like the TLC5940.
certainly this one can handle higher amp leds but when using multiple channel of the TLC one could get similar or more current sinking.
i guess i am just hoping to learn a bit more about the different options out there. thx.

Thanks for the video! I noticed two things in the fade on the left, the flicker (mentioned in a comment below) where the light appears to go off for second is looks like a recording artifact for 30 frames per second. I’ve seen it two through cameras, BUT you don’t see that with your eye correct?

Also there seem to be subtle, interior pulses as the brightness rises… Are those only from this driver? Overall, is the fade as smooth as a single 5mm LED in the basic Arduino fade example?

the drivers work great with a PWM adjust signal. but when looking at the leds through a camera i can see flicker. the flicker changes depending on the PWM frequency but never goes away completely.
i am wondering if you had any experience with using a DAC to control the brightness?

I haven’t driven a PicoBuck with a DAC, but I have tested analog control with a bench power supply as the control input. Just have your DAC generate a voltage between .5V-2.5V to the control pins. The control pin only takes microamps to drive, so you shouldn’t need any buffering of your DAC’s output. Keep in mind that analog control can only dim from ~20% to 100%, so you may still want PWM if you need low (<20%) brightness.

If you haven’t already, contact techsupport@sparkfun.com and let them know that your PicoBuck failed when operating within the product specs. PicoBucks have been run above 19v successfully, so you probably just got a bad board.

I’m unfamiliar with the WS2801, but it does look like you could use that IC to drive the inputs of the PicoBuck. The datasheet includes an app note where the WS2801 is driving external NPN transistors–all you’re doing is replacing that transistor with a channel of the PicoBuck

cool. i will give it a try.
with my old circuit, as mentioned before i needed to set my micro-controller output to be an open drain, otherwise the led driver actually started smoking when driving it to full brightness - analogWrite(255).
would this be a worry here too?

how do i adjust the brightness of each led that i am connecting to this thingy? I am hooking up an RGB LED that has individual leads for + and -. So far it always seemed that the Red channel is brighther than the others for example, so in order to make them mix nicely i need to do some adjustments, yes?

There are 2 ways you can adjust the brightness: apply a 0-2.5v analog voltage to each of the control pins, or send a PWM signal to each input. Check out the “Hookup Guide” linked above, it should point you in the right direction.

Thanks.
Wow, that looks awesome! I’ve been trying to design (or buy) something just like this. I need to power 12 RGB LEDs (as 36 independent channels) with relatively high efficiency, at up to 700ma per channel.
Is the efficiency of this buck driver affected much by the difference between the Vin and the LED’s Vfwd? It looks like I could probably use 12 of these (4 for red, 4 for green, 4 for blue, with Vin on each set close to the Vfwd of that colour) with different current sense resistors (0.14Ω?)
I guess my question is, would it be able to handle that amount of current, possibly with heatsinking?

The PicoBuck should be able to handle around 700mA of current if you replace the current limiting resistors with 0.14Ω. I wouldn’t go much above 700mA, as that is approaching the current limit of the diode. Also, if you don’t need independent control of each LED, you can attach multiple LEDs of a color in series (as long as your input voltage is 1.5v+ more than sum of your forward voltages).

A large difference between Vin and Vfwd (running a 2.5v led at 700ma from a 9v supply ) yields about 76% of efficiency. Increase that to a Vfwd=5v and efficiency jumps to 88%. In either case, you shouldn’t need any heatsinking (as far as the numbers go).

Hello, It appears that we received an email from you on April 15, and replied to you the same day. We tried to answer all of your questions in that email. That’s the last we heard from you. I’m sorry you were not satisfied with our technician’s response.

SparkFun is an online retail store that sells the bits and pieces to
make your electronics projects possible. Whether it's a robot that can
cook your breakfast or a GPS cat tracking device, our products and
resources are designed to make the world of electronics more accessible.

In addition to products, SparkFun also offers
classes and online tutorials to help educate
individuals in the wonderful world of embedded electronics.