Arduino Battery Shield




Introduction: Arduino Battery Shield

"Scotty, we need more Power!".

This instructable is about making battery shield for Arduino.

Step 1: Material

Material list:

  • flat lithium battery (e.g. taken from old mobile phone) (I used battery for Huawei Ideos X5 U8800)
  • Li-ion charger module with TP4056 (see on eBay)
  • DC-to-DC step-up module, with V_out = 5 V (see this one on eBay or better one here on eBay)
  • switch
  • Arduino Proto Shield or something equivalent
  • red and black wires (I used AWG24)
  • double sided tape


  • metal paperclips
  • some kind of lock connector (I used PSH02-02PG)

Step 2: About the Modules

Li-ion charger module with TP4056

See the figure above. This module contains two parts: charger (IC TP4056) and protection, which protect a cell against over-charging, over-discharging and against short circuit. Over-charging and short circuit may cause an explosion (see on YouTube).

Make sure you connect battery plus to "B+" and battery minus to "B-" of the module, because wrong polarity will destroy the protection circuit.

The R3 is resistor for setting maximum charging current.

R3max charging current

1.2 kΩ → 1000 mA (default)

2 kΩ → 580 mA

3 kΩ → 400 mA

For more details see TP4056 datasheet.

And read article about lithium cells on Wikipedia.

DC-to-DC step-up module

Classic step-up converter. Output voltage is constant 5 V. For more details see article about boost converter on Wikipedia .

I bought version with a USB connector dedicated for small DIY powerbanks. But desoldering the connector is redundant and not pleasurable work, so you should buy rather version without the USB connector.

Step 3: Wiring and Soldering

Make wiring according to schematic on the figure above. It shouldn't be hard.

As I wrote above, make sure you connect battery plus to "B+" and battery minus to "B-" of the charger module.

Don't attach the modules to battery with a hot glue, because they can heat up to high temperature and melt down the hot glue. Use a double-sided tape instead of the hot glue. Switch and connector you can attach with hot glue (as usual).

Step 4: Shield

If you complete previous step, you have standalone battery module now. It can be used in many different projects. And that's the reason why I don't want to attach the battery module to a proto shield permanently with a glue. In my case the battery module is attached to the shield just by 'helping holders'. These 'holders' are made from bended metal paperclips and soldered to my 'dummy' proto shield. See figures above. It works pretty good.



  • Metalworking Contest

    Metalworking Contest
  • Tiny Home Contest

    Tiny Home Contest
  • Water Contest

    Water Contest

49 Discussions

It's great! I want to make it. Could you answer my question, pls.

Should I keep the battery UNCONNECTED when I connect the Arduino to PC for a sketch uploading?


1 year ago

I really like it. I have these parts rolling around my workshop, but I am still figuring out how to put the pieces together. This is a well-designed shield.

Cool stuff!

I'd like to charge the LiPo with a 5V solar panel and power the arduino (outdoor weather station) by the LiPo.
This project should work out of the box, wouldnt it?

1 reply

Yes, with a 5V solar panel it should work fine.

thanks for your instructable.

I want to power some servos with a shield (it need 6V and 3A), and my arduino. Do you think i can parallelize my tp4056 and my shield (and move the switch before the parallelization)?

1 reply

I was not very sure about parallel connection of TP4056, but there are modules with two TP4056, so it is possible. You can found it as "Dual TP4056" on AliExpress or eBay. (Be also carefull to max recommended charging current...)

About parallelization of the shield I'm not very sure at the moment.

Maybe a li-pol battery for RC models with some good quality DC changer would be better solution in your case.

If i solder 2 batteries in series will this work the same way? i am trying to double my usage time, also will it work for batteries in parallel?

1 reply

Sorry for my late reply. Li-ion in serial or parallel connection must be sister cells. With same capacitance, same time in use, same condition, same type. Configuration with two different cells can damage one cell quickly (and I'm afraid it might be even dangerous.)

In serial connection you have to use step-down converter to get 5V. But step-down converters have a bit better efficiency than step-up converters.

Third option is using one cell with bigger capacitance.

I have an old smart phone. Are there any chances I could use the phones in built battery protection circuit instead of buying it online?
If yes, then please tell me how? Thanks :)

1 reply

Sorry for my late reply. This is difficult. I don't know, how exactly do it. And every smart phone is different. You must identify charging circuitry, than extract it withou damaging, etc. Buying simple cheap module online is a lot easier.

Is the only purpose of the switch to turn off the supply to the Arduino? I assume the switch may be closed when charging?

1 reply

Yes, purpose of the switch is turn on/off the supply to the Arduino. Charging is independent to the switch state.

I use ferric chloride, which I bought in my local electronic components store. I saw bottles of ferric chloride also in chemist's. Some people use acid+peroxide, but that isn't so safe...

Because I have no laser printer I can't use classic toner transfer method. I use obsolete 'old-school' transfer by-hand using resistant marker. For prototypes and simple PCBs it's not a problem.

I use hydrogen peroxide (100 vol) when I'm in a hurry to etch a board but you must be extremely careful with it and not spill any on yourself as it will burn your skin very quickly. Never handle hydrofluoric acid unless you have an adequate supply of neutralizer on hand because if you spill some on yourself and it covers more than about 3% of your body then you will soon be off to the happy hunting ground.

I tried same recipe(30% Hydrogen Peroxide and Hydrofluoric acid 5-15% - 1/1) today so I can see how long it will take and it took 13 minutes to make my PCB. There were no problems and it was perfect ! I tried another way to make PCBs by using High Voltage and salt water to remove the copper but it wasn't as perfect as the Ferric Chloride or the HP and HA. Good that I studied chemistry for over 5 years, I remember some other chemical reactions with copper and copper oxide and dioxide, and I will make instructable about that. Thanks for the spend time for answering me !

P.S. I will put your names in my instructuble as the people who inspire me to make it !

This looks very appealing.But, I'm not clear weather this is a way to power the Arduino from a battery, or is it a way to charge the battery with the Arduino?

If I'm understanding the circuit, the battery output goes thru the protection portion of the charger/protection board and then thru a voltage step up board, to power a 5V Arduino.board.

Perhaps this is obvious to many folks, but it's not clear to me how to re-charge the battery. When is the charger circuit used to charge the battery? From what source is the battery charged? Is it done with the USB connector on the charger/protection unit? I presume the switch is turned off then so the Arduino is not drawing power as the battery is being charged - correct? Can you explain? Did I miss something?

Regarding the 3V->5V unit, will it just shut down when the input drops below 3V from the battery?

2 replies

The microUSB charges the battery and powers the boost converter to power the Arduino. The battery powers the boost converter. Lithium Ion batteries have a fairly flat discharge curve, they hold their voltage for a long time, then when they are close to depletion, it drops. I haven't looked at the discharge curves, but you probably have half of the capacity of a 4.2v LiOn above 3v. No, the Arduino will not back charge the battery across the boost converter, this is intended to completely replace the Arduino power input.

Hi, and thanks for
the quick reply.

Just to make sure I am getting the picture, is this correct:

I open the switch, and use an external power source with a microUSB

connector to charge up the battery.

Then I remove that power source, close the switch, and the battery and your

circuit can then power the Arduino until the output voltage of the battery

drops below 3V. Then I reconnect the external power source to recharge the