Problems powering LED strip with a battery.

For my physical computing art project, I have a 5x5x6 (that's a cube with a 5x5 matrix of LEDs on each side) array of LEDs. The LEDs are a strip, so essentially it uses SPI along a single data line to address the 150 LEDs. Now, my problem is powering the LEDs.

I have a 3.7v LiPo battery which I hooked up to a DC-DC Boost converter to output 5V. Previously I was testing just a 25 leds, and powering it through the 5V connection on the Arduino via USB, which works fine.

However, when I tried using the LiPo battery through the converter, the LEDs would power, but flickr randomly (and the DC-DC converter makes a hissing noise - capacitors?). I suspect this is due to the uneven current draw by the LEDs.

But, if I run the battery through the Arduino using VIN, and then use the 5V output from Arduino to power the LEDs, the LEDs work fine.

Also, although the LEDs are rated at 5V, they work (but also flicker) when connected to straight to the 3.7V battery.

Some facts: Each 5x5 panel draws about 350mA, and the DC-DC boost convertor is rated up to 37V, and I think it has a voltage regulator. The battery can output up to 2A, so I don't think it's a problem at this stage. I am just trying to power 50 LEDs at the moment. I am using the Arduino Uno.

My questions are,

    1. What is the maximum current I can draw through the 5V output on the Arduino? (if it's high enough, then I might as well just use it!)
    1. What is causing the flickering when powered through the DC-DC booster? Is it because of the voltage regulator? Would adding a 5V fixed voltage regulator to the output help, if this is the case?
    1. Am I doing something fundamentally wrong with my set up?

And here's a video of the 5x5 prototype 2D Array of RGB LEDs reacting to music - YouTube for those interested!

Thanks for help in advance; this is my first time with electronics, let alone Arduino, so I will probably sound like a complete newbie. It is also likely that I've missed something that is completely 2nd nature to you, so please point out anything that would help.

Some facts: Each 5x5 panel draws about 350mA,...... The battery can output up to 2A, so I don't think it's a problem at this stage.

I do, 350mA X 6 = 2.1A

What is the maximum current I can draw through the 5V output on the Arduino?

Where from? From USB power 500mA, from an external supply it depends on the actual input voltage but about 650mA

What is causing the flickering when powered through the DC-DC booster?

I would guess you are trying to draw too much current from it.

Am I doing something fundamentally wrong with my set up?

Yes you are not understanding the difference between current and voltage.

A link to the strip LEDs you are using would be good.

Thanks for your reply! Just to clarify, I'm just trying to power two panels at the moment, so about 700mA. That is enough to cause flickering. If I try three panels, it doesn't work at all.

When I run the LED's through the Arduino, the battery was hooked up to the Arduino through the DC-DC converter - I forgot to point it out in my first post. So essentially when it's hooked up to the Arduino, it draws more current through the battery than just the LEDs itself (LEDs + Arduino). And it doesn't flicker. I'm afraid to try more LEDs through the Arduino just in case I fry it.

So somehow, something on the Arduino is 'smoothing' things out, and it fixes the flickering. So I would like to know what's different between putting it through the Arduino compared to hooking it up to the DC-DC converter straight. That seems to be the key to the fix.

I am getting a bit confused between what a voltage regulator does and how the DC-DC boost converter works I think.

The LEDs are from Bliptronics: BlipTronics.com and they're powered in parallel every 25 LEDs.

Thanks again :slight_smile:

Assuming you are feeding your DC/DC converter with 3.7V and you have set the output to 5V, it says it has an conversion efficiency of 90%.
So 700mA at 5V is a power of 0.7 * 5 = 3.5 Watts
With 90% efficiency that means you must have 3.5/0.9 = 3.89 Watts going into the input.
At a voltage of 3.7V then you have an input current of 3.89 / 3.7 = 1.05 Amps. As the maximum input current the converter can take is 3A then this bit of the circuit is fine providing your battery can actually delver just over an amp at 3.7V. You need to do some measurements here, there is no excuse for not having a meter.

EDIT: I just measured the current. It's drawing about 1.8A from the battery which is more than I anticipated. The output current is only 0.5A. So power in is currently 3.9v * 1.8A = 7.8W but power out is 5v * 0.5A = 2.5W. Something isn't quite right. However, the battery is rated at 2A, so ignoring the completely crap efficiency, it should still work fine. The current is the same if I wire the LEDs through the Arduino (which goes through the converter) or if I wire it to the converter straight. This leads me to think that high current is not an issue. Something other than the current is causing the flickering, and if I put it through the Arduino first, this fixes it.

EDIT 2: More measurements. If I connect the converter straight to the LEDs, the output current is 0.8amps, which is really weird because one would think having the Arduino connected would draw more current than less. So it is likely that the flickering is due to high current, but I don't know what's causing the current to be higher. Would a resistor help? It's 1am here. Thanks for your advice so far, we're getting somewhere, haha.

Well 90% efficiency is an "up to" figure. No doubt there is a set of conditions where this is true. However a 32% efficiency is not alright for this sort of circuit and it suggests there is something going wrong.
Were the voltage measurements taken under load. That is did you measure the voltage while that amount of current was flowing. Often voltage will drop under a load, and I think that might be what is happening here.

However, the battery is rated at 2A

That is an odd thing to say normally batteries are rated in amp hours, or milli amp hours not in amps. You can have a battery rated at 2 Amps / hour that is not capable of supplying 2Amps.

So it is likely that the flickering is due to high current

No not in itself, flickering could be caused by the controller or a varying voltage.

Would a resistor help?

No but a capacitor might. I would be inclined to add some decoupling capacitors along the chain of the LEDs.
http://www.thebox.myzen.co.uk/Tutorial/De-coupling.html
Anything but ideally a 10 to 100uF and a 0.1uF ceramic across the supply at strategic points along the length.

It is possible that the switching noise from the DC/DC converter is interfering with the electronics in the LED strip. Again extra capacitors on the DC/DC output would be the way to go.

It would be best if you could get hold of an oscilloscope and look at your voltage waveforms. Ideally these will look like a straight line but you might get a surprise.

I mean the maximum output current of the battery is 2A. Otherwise the battery is rated at 2000mAh. I know these two values don't mean the same thing.

The voltage measurements above were both taken under load, and as much as I would like it, I don't have an oscilloscope handy.

I'll give the capacitors a go, thanks for that. What do you mean by across the supply? In parallel with the LEDs or in series?

I just think if there's a way to figure out what's different in the Arduino, that should fix it.

Across the supply means one end to the positive and the other to the ground.
You said

For my physical computing art project

So doesn't your educational establishment have access to a scope?

Okay. I just read that guide, so I should get a large capacitor around 47uF and a small one around 0.1uF to help correct the noise.

Unfortunately the most advanced stuff we have is a temperature controlled soldering iron. The oscilloscopes are all in the physics department.

So get someone to talk nicely to the physics department. They don't byte, I used to be one myself. :slight_smile:

I've emailed my lecturer, I'll see how that goes. Meanwhile, I think I'll find some capacitors. I note that there are several large capacitors on the DC-DC converter which should be doing the job? Or are they just there to smooth out the AC current?

Thanks for your help again :slight_smile:

I managed to borrow an oscilloscope but I'm not sure what it indicates. I've posted a short video on YouTube with a demonstration of the oscilloscope connected across the LEDs when 1) connected through the Arduino, and 2), connected straight to the converter. Notice the sound it makes for the second part, and you can see the LEDs flicker at the top right corner. - YouTube

I note that there are several large capacitors on the DC-DC converter which should be doing the job?

They are doing the job for the converter they might not be enough when the load is on.
That noise from the DC converter is typical if a bit loud and suggests it might be struggling. It is from the coil used in the design and is caused by the magnetic field moving the wire in the coil, rather like a loud speaker. The more current the louder the noise.

of the oscilloscope connected across the LEDs

Do you mean the LED's power supply, that is what you need to see. Also look at the input voltage to the DC converter and see if that is smooth. You might have to put capacitors on the input to the DC converter as well.

I've tried putting capacitors - 47uF and 0.1uF in across both input and output (across input to gnd and output to gnd) to no effect, except the noise is less loud. Flicker is just as bad as before though. Could it be something to do with the SPI interface not being in sync somehow?

to no effect, except the noise is less loud.

That is not no effect that is telling you that it is doing something. It could be you need a bigger cap than 47uF or one with a better ESR (effective serial resistance). Look to see if that lessening of noise corresponds to any waveform measurements you can make on say input or output voltage. On the scope switch to AC coupling and wind up the sensitivity to see the ripple in more detail.

Could it be something to do with the SPI interface not being in sync somehow?

No SPI is synchronous with clock and data, they get generated together so there is no way they can get out of step. As it works fine with a "conventional" voltage source your problem must be with your DC converter.