Simple Battery System for Arduino – LED Holiday Sweater

This is super convenient and simple way to add a battery solution to your Arduino projects. In this example I use it to add LEDs to a holiday sweater!


The basis of this project is the use of portable battery pack for you smartphones or other electronic devices to add a simple and low cost battery solution to your Arduino projects.

Use USB Type A cable to connect your Arduino system to a power bank for 5V.

The sweet thing about this solution is it requires minimal components and offers a reliable and simple method to utilize Lithium-Polymer (LiPo) batteries.

  • You literally only need a USB Type A cable, no regulator and no charging circuit.
  • LiPo batteries are a little more complex to add to projects as you need to be careful about properly charging them else risk damaging them, which can lead to disastrous results (eg. hooverboards, Samsung Note 7.) Since the power banks have integrated charging and protection circuits this isn’t an issue and you don’t need to worry about designing them.
  • You can use different size power banks depending on the need of your project and be charging one pack while using it one in your project then simply swap them out when needed. When debugging or when not requiring battery power you can power it from any 5V USB port.

Nonetheless, there are some downsides:

  • Not as easily integrated into your project. Would take up more space then an integrated battery solution.
  • May be issue with charging. You can’t simultaneously charge your battery and power your device.
  • May be under the current requirements of your project. Most phone battery packs are rated for about 500mA maximum discharge rate. Be aware of the maximum discharge rate for your power bank and the current demands of your project.

One thing to consider when purchasing power banks is that not all of them are created equal. You can still have charge issues and hazards with power banks and ones with low cost components may be at greater risk.

If you aren’t doing voltage sensitive stuff, the 5V tolerance from the battery pack is usually acceptable. You’ll also want to consider how power supply noise impacts your project and consider if adding a regulator for power supply noise rejection if necessary.

Example – LED Holiday Sweater

Now to make a holiday sweater that your friends will be totally jealous of and likely win your company/school sweater contest.

First, I took my bare bones Arduino board and created a little case for it in a Altoids tins. Then cut an old USB Type A connector and soldered the 5V and GND connections to your Arduino board. I also added a connector for the LEDs providing 5V, GND and the data line. What’s great is you can also use this little Arduino module for other portable LED projects as well.

Bare bones Arduino board with USB power connector.

I use WS2812B LEDs, which I’m a particular fan of as they look great and are easy to use (I also use them in my Audio Spectrum Visualizer project). I strung 9 of them in a row, cutting wire of appropriate length to space them correctly in the sweater and used epoxy to strengthen the joints. I recommend using some sort of adhesive to secure the solder connections to the flex circuit pads of the WS2812Bs, particularly in a project such as this that will move around, as its super annoying when the solder pads rip off and you have to re-solder or replace the LEDs.

WS2812B String with epoxy around connections.

I then took an ugly holiday sweater from a thrift soft, cut out some holes for the LEDs and duct taped the LEDs on the inside. I choose a sweater that had these ridiculous plastic gems on them that I cut out and it made perfect locations to fit the LEDs. I used tape to secure them rather then sew them in permanently as I could take them off to wash the sweater.

Duct taping LEDs inside sweater.

Then I wrote some code with some different effects.

That’s all there is to it, now you have a convenient way to add battery functionality to your projects!



Leave a Reply

Your email address will not be published. Required fields are marked *