Looking to Cut the Cord? Power Your Arduino Project with a Lithium Battery

10/20/2021 | By Maker.io Staff

So far, this series of articles have investigated common battery technologies, the tasks of battery management systems, and how to charge Lithium batteries correctly. This article summarizes a few options makers have when powering an Arduino-based project off a single 18650 Lithium-Ion battery cell.

Using an External Charger

The simplest way to make your designs portable is to design them in a way that allows the user to quickly and easily change the battery when necessary. Then, the user could employ a regular external 18650 battery charger:

Looking to Cut the Cord? Power Your Arduino Project with a Lithium Battery External battery chargers can be a quick and easy solution as long as your project doesn't drain the batteries too quickly. Image source: Screenshot of https://www.digikey.com/en/products/detail/xtar-technology-inc/XTAR-SC2/13540420

Keep in mind that this option is only viable if the user doesn't have to replace the battery very often. If your device drains batteries quickly, you should look for other options. Either way, this method is perfect for retrofitting an existing project with a battery.

While this method allows you to omit the charge protection circuit, you should keep in mind that you must still include protection to prevent deep discharging the battery or drawing too much current from it. Sometimes, a boost circuit is also required, for example, when using a 5V Arduino. Luckily, several small breakout modules, such as this one, offer protection against these common problems.

The obvious benefit of using this method is that you can keep your project very simple. The biggest downside, however, is that you’ll need an external charger. Furthermore, you’ll have to design your project in a way that allows the user to remove the battery effortlessly.

Arduino-Boards with an Included BMS

Another easy-to-implement option is using an Arduino-compatible board that already comes fitted with an onboard Li-Ion and LiPo charging circuit. Some prominent examples of such boards include the Feather Huzzah ESP8266 and the Feather Huzzah ESP32. These two development boards are exceptionally versatile and cost-effective. Furthermore, they come with all the connectivity features one would expect to find in a modern portable device:

Looking to Cut the Cord? Power Your Arduino Project with a Lithium BatteryThe feather huzzah range of boards all support Lithium batteries right out of the box. Image source: https://www.adafruit.com/product/2821

The Arduino MKR Zero and the Arduino MKR Vidor 4000 are two official Arduino boards that also support Lithium batteries right out of the box.

Each of these four devices is a fantastic choice for those interested in using standard batteries to make their Arduino-based projects portable. The benefit of using this method is that you’ll get a tried and tested method, and you can be sure that your battery-powered project is protected from various faults. One downside of using a ready-made battery-compatible Arduino board is the decreased flexibility.

Use an Arduino Shield to Upgrade Existing Projects

Regardless of their age, classic Arduino boards such as the UNO are still popular due to their low entry price, form-factor, and ease of use. These boards, however, don’t support Lithium batteries right out of the box. Using a dedicated shield specifically made for the Arduino UNO, for example, is an easy, safe, and cost-effective method of making existing projects portable.

Looking to Cut the Cord? Power Your Arduino Project with a Lithium Battery A simple Arduino shield enables you to upgrade existing projects without additional modifications. Image Source: https://www.digikey.com/en/products/detail/adafruit-industries-llc/2078/5356829

The Powerboost 500 is one such shield. It's compatible with the Arduino UNO, Due, Leonardo, Mega, and Duemilanove. Keep in mind that this shield was specifically designed with flat Lithium Polymer battery packs in mind. You can, however, use any regular 3.7V or 4.2V Lithium-Ion or LiPo cell with an integrated protection circuit, such as this one.

Ready-Made Lithium Battery Charge Modules

By far, the most popular option for adding a Lithium battery in a DIY project is to utilize a simple charger breakout module. These often-tiny modules offer a fantastic mix between flexibility, safety, and cost-efficiency, and they are typically remarkably easy to use.

Typical modules offer protection against overcharging the battery, excessive current draw, and deep discharges. Some modules may also include advanced protection features such as a temperature cut-out switch or a timer. Furthermore, the board manufacturers often allow for the adjustment of vital parameters such as the maximum charge current, the maximum discharge current, and the cell voltage using jumpers or digital signals. All this means that you can employ unprotected Lithium cells such as standard 18650 batteries in combination with common charge modules.

Looking to Cut the Cord? Power Your Arduino Project with a Lithium BatteryOff-the-shelf battery modules are a good way to secure a project that uses batteries against common faults that might occur while charging or discharging a Lithium battery. Image Source: https://www.digikey.com/en/products/detail/sparkfun-electronics/PRT-14411/7725301

Two examples of charge modules include the PowerBoost 500 + Charger and the PRT-14411. Both of these modules also come with a boost circuit so that they can directly supply power to your 5V Arduino board without the need for additional components.

Custom Design

As a last resort, you can also create a custom charger design using off-the-shelf components such as battery management PMICs. You’ll need a good understanding of electronics design and battery charging in general to design a reliable Li-Ion and LiPo charger that properly monitors and maintains the battery.

Looking to Cut the Cord? Power Your Arduino Project with a Lithium BatteryAn exemplary battery charging circuit that uses a single BQ24090 chip and only a few external components. Image source: Texas Instruments BQ24090 Datasheet (https://www.digikey.com/en/products/detail/texas-instruments/BQ24090DGQR/2353309)

Besides charging the battery, you’ll most likely also have to include a protection circuit that prevents your Arduino-based project from deep discharging the battery. In addition, you should also make sure that the rest of the circuit doesn’t draw more current from the battery than it can safely deliver over extended periods.

Luckily, you can buy off-the-shelf components such as ICs that monitor and control the charging process, as well as ICs that prevent the battery from reaching a problematic state. Regardless, I recommend this option only if your project needs to meet some special requirements that you can’t reach using readily available modules.


You can choose from a wide variety of options when you build a portable Arduino-based device. Sometimes, the easiest option when converting an existing project into a portable one is to use a simple 18650 cell in combination with an external charger. Note that this method still requires you to add a simple protection circuit to ensure that your project doesn't discharge the battery beyond a certain level.

Arduino boards with included protection circuitry are great for new projects. These development boards contain all necessary protection mechanisms and ensure safe operation. However, using this method limits your flexibility when choosing a microcontroller for your project. Ready-made Lithium charger modules offer greater flexibility. They can be used with every Arduino board and also other development platforms such as the Raspberry Pi.

Custom battery protection circuits provide the best level of flexibility. However, doing so can be a complex and time-consuming task. Designing and building a custom battery protection module on a small scale is typically also more expensive than using a mass-produced design.