Our Holiday lights are designed to normally run from a 5V 3A mains power supply (we’ve been using the excellent Phihong PSAA15W-050V), but it is certainly possible to power them off a battery pack if you understand a few requirements & limitations.
First, some typical Holiday usages will draw the following current from the power source:
– Linux booted, but no LEDs on – approx. 180mA (0.18A)
– As above with WiFi active – approx. 250mA (short bursts) (0.25A)
– Medium brightness static colour or animation – approx. 1000mA (1.0A)
– Bright colour – approx. 1400mA (1.4A)
– Full brightness white – approx. 2000mA (2.0A)
For reliable operation of the main CPU and WiFi adapter, the power supply needs to be within +/- 5% of 5.0V – i.e. 4.75V to 5.25V. If the voltage drops below about 4.7V into the controller, the CPU will likely detect a “brownout” condition and reboot. The voltage drop along the cable out to all the LEDs isn’t so critical, and as along as the voltage to the LEDs at the far end of the string is above 3.4V or so, everything should be fine. At about 3.4V the LEDs will begin to lose their “blue” brightness, but this amount of voltage loss should only happen at high currents on the cable.
One battery power option is to use a USB power pack. Testing a few of these, both cheap and expensive, I found that even the ones rated for 2.1A output could not sustain a good 5V supply for very long when drawing 1.5A or higher. It would often drop to 4.5V or less (depending on cable length and quality). In any case, at currents above 1.5A the batteries would run flat very quickly. But I found I was able to draw at least 1A, and in some cases close to 1.5A with few problems. The key is to get a decent quality unit, and make sure the power cable (described next) is of a decent gauge.
You will need a cable that adapts from the USB port on the battery pack (USB A plug) to a 5.5×2.1mm DC barrel connector, with a centre positive connection. There are lots of these available (e.g. SparkFun TOL-08639), but none I found could handle more than 500mA without a high voltage drop, largely because that was the limit in the original USB standard. So I recommend that you actually make one yourself, or find a friend with soldering experience who can make one for you. Something like DigiKey part CP-2191-ND has the appropriate plug with a decent 18AWG cable. Attach this to a USB A male plug, like DigiKey AE10637-ND, and cover the USB connector with some double walled heat shrink for grip/aesthetics. Even with 18AWG cable, you’ll ideally want to keep the cable short, like say under 300mm (12”).
If I do located a source of pre-made cables of good quality that can handle 1.5A or more, I’ll post a link here.
Some testing showed that drawing about 1A from the power pack, we could get nearly one hour of runtime from a 2000mAh rated USB power pack (cheap one from eBay at <$20) before it dropped below 4.7V, or nearly 6.5 hours from a high capacity one rated at 11200mAh (Konnet PowerEZ Pro at about $80). If you’re wondering, the reason these values are lower than might be expected based on theory, is because of the low-ish efficiency of the boost circuit, and the (somewhat dodgy) way that battery manufacturers rate their battery capacities. I have some more low cost USB battery packs on order, and if they give good results I’ll add a note here.
Alternatively, if you’re a somewhat comfortable with electronics, you might want to go with the heavy duty solution we’ve been using as shown above. We took some cheap 7.2V Lithium Polymer RC packs (from DX.com – 11.1V and higher capacity models also fine), and combined them with a 5V 3A Micro UBEC (from Hobbyking.com). This gave a very reliable 5V supply that could last for quite a long time. Efficiency is quite good as it is down converting the 7.2V to 5V, rather than boosting from 3.7V up to 5V. In the above picture, you can see I also used a larger ferrite toroid and heavier wire than the standard HobbyKing UBEC.
If going with this solution, you will of course need a suitable LiPo charger, but there are many available from places like HobbyKing at reasonable prices. Also be very careful not to short out the LiPo battery as they are capable of outputting very high currents, and can even catch fire if mishandled.
There is a good post at the Homebrew Robotics Club http://hbrobotics.org/wiki/index.php?title=Pololu_2110_power_supply which shows the process of making something similar for powering a Pandaboard robot controller off a 12V (or higher) battery pack.
We also plan to include a feature in the compositor part of the MooresCloud control software that allow you to set a maximum total LED current for the system. So for example, if an LED pattern is going to be displayed that would require 1500mA, but the limit it set to only 1000mA, the compositor would scale back the brightness of all the LEDs to reduce the overall system current to approximately 1000mA. This will be useful for people wanting to run from a battery pack, either with limited output capability, or to maximise run time. It will also be very useful for people who want to control larger strings of LEDs (e.g. 100 to 300, and maybe more…) and avoid accidentally displaying patterns that would overload the power supply.