Every interesting project eventually wants to leave the bench. A wearable, a handheld instrument, a sculpture with no visible cable, a sensor you leave in a gallery for a month. At that point you need a battery, and for anything small the answer is almost always a lithium polymer cell.
LiPo is also the component most likely to cause an actual fire in a hobbyist workshop. That is not a reason to avoid it. It is a reason to understand five specific things before you solder to one.
1. The numbers on the label
A LiPo pack is specified by three figures.
Nominal voltage: 3.7 V. This is an average, and treating it as a constant is the single most common beginner mistake. A single-cell LiPo is roughly:
| State | Voltage |
|---|---|
| Fully charged | 4.2 V |
| Nominal / mid-discharge | ~3.7 V |
| Low, stop here | 3.3 V |
| Damaged below | 3.0 V |
So a “3.7 V battery” delivers 4.2 V when fresh. Anything you connect directly to it must tolerate 4.2 V. A bare 3.3 V microcontroller does not.
Capacity, in mAh. A 1000 mAh cell nominally supplies 1000 mA for one hour, or 100 mA for ten. In practice, derate: you cannot use the bottom of the discharge curve, converter efficiency costs you 10–20%, and capacity falls in the cold. Plan on about 70–80% of the rated figure being usable.
C-rating. Maximum continuous discharge current, as a multiple of capacity. A 1000 mAh cell rated 2C can supply 2 A continuously. This matters more than people expect — a motor stall or an ESP32’s Wi-Fi transmit burst can pull far more current than the average, and a cell asked for more than it can give will sag in voltage and brown out your microcontroller mid-write.
2. Charging: use a module, and know which one
Never charge a lithium cell with a bench supply and good intentions. Lithium chemistry requires constant-current then constant-voltage (CC/CV) charging with a hard cutoff at 4.2 V, and overshooting that voltage is one of the ways cells vent.
The default answer is a TP4056 module, which costs almost nothing and does CC/CV properly from 5 V USB input.
Two things to get right:
Buy the version with protection. TP4056 boards come in two flavours: bare, and with a DW01 + dual MOSFET protection circuit on board. The protected version adds over-discharge cutoff, over-current cutoff and short-circuit protection. The difference in price is a few cents. Look for the extra 8-pin IC and the two-transistor package next to it; if the board has only the TP4056 and passives, it is the unprotected one.
Set the charge current. The TP4056 sets charge current with a single resistor, R_PROG, usually labelled R3 and shipped at 1.2 kΩ for 1 A. Charge at roughly 0.5C to 1C — for a 500 mAh cell that is 250–500 mA, so you want a larger resistor than the default. Charging a small cell at 1 A heats it and shortens its life.
Many cells sold for maker use already have a small protection PCB bonded to the tab under the yellow tape. That is a good thing and it is not a substitute for a protected charger — it is a last line of defence, not a charge controller.
3. Getting the voltage your circuit wants
You have 3.0–4.2 V and your project wants something fixed. Three options, and the choice has real consequences.
Run natively at 3.3 V with an LDO. Works only while the cell is above about 3.5 V (an LDO needs headroom — its dropout voltage — above its output). Simple, quiet, cheap, and it strands the bottom third of your battery because once the cell falls below the dropout threshold the regulator stops holding 3.3 V.
Boost to 5 V. A boost converter will hold 5 V all the way down to 3.0 V, so you use the whole cell. The costs: switching noise, which matters if you have analogue audio or sensitive sensors; and efficiency loss, typically 85–92%, so some of your capacity becomes heat.
Use a buck-boost. Holds 3.3 V from an input both above and below it, so you get the full discharge range at the voltage most modern parts want. More expensive, more parts, and the right answer for a product rather than a prototype.
For anything with audio, be aware that a boost converter’s switching frequency will find its way into your signal path unless you plan for it. Separate the analogue supply, add bulk capacitance, and keep the switching node’s loop area small.
4. Measuring state of charge
Users want a battery indicator. Giving them an honest one is harder than it looks.
The cheap way: a voltage divider into an ADC. Two resistors scale 4.2 V down into your ADC’s range, you read it, and you map voltage to a rough percentage. Use high-value resistors — 100 kΩ and 100 kΩ, say — so the divider itself does not drain the cell, and remember that it drains continuously unless you gate it with a MOSFET.
The problem is that a LiPo’s discharge curve is flat through the middle. Between roughly 3.9 V and 3.6 V the cell is giving up most of its energy while barely moving in voltage, so a voltage-derived percentage will sit at “60%” for hours and then fall off a cliff. It also reads low under load and recovers when idle, so your gauge drops when the motor runs.
The honest way: a fuel gauge IC. Parts like the MAX17048 do coulomb counting plus a model of the cell’s behaviour, talk over I²C, and give a percentage that is actually monotonic. If the battery indicator is user-facing, this is worth the part.
The pragmatic middle: read the voltage, average it over several seconds, and show three states rather than a number — fine, low, charge now. Nobody has ever been annoyed by a three-bar indicator.
5. The things that actually start fires
In rough order of how often they happen to beginners:
Puncture. A LiPo pouch is foil. A dropped screwdriver, a sharp enclosure edge, or a cable tie pulled tight over the cell will breach it, and a breached lithium cell can ignite within seconds. Mount cells so nothing can press into them, never let a cell sit where a screw boss can push on it, and never close an enclosure on a cell you have not checked for clearance.
Reverse polarity. Red and black on a JST-PH connector are not standardised between suppliers. Check with a multimeter before you plug an unfamiliar cell into anything. Some boards die; some cells vent.
Short across the tabs. Bare tabs plus a metal bench equals a very high current very quickly. Keep tape over unterminated tabs.
Over-discharge. Below about 3.0 V a cell suffers internal damage; a deeply discharged cell can form internal shorts and then fail during the next charge, which is why a cell can sit fine for weeks and ignite on a charger. If you find a cell below 3.0 V, dispose of it rather than reviving it.
Charging unattended, on something flammable. Charge on a hard non-combustible surface, not on the sofa or on a pile of paper, and be in the building.
And the operational rule: a swollen cell is finished. Swelling is gas from decomposition inside a sealed pouch, it does not reverse, and the cell has no remaining safe life. Take it to a battery recycling point — not household waste.
A starting bill of materials
For a typical portable microcontroller project:
- A protected single-cell LiPo, 500–2000 mAh, with a JST-PH 2-pin lead
- A TP4056 module with DW01 protection,
R_PROGset for ~0.5C - A boost or buck-boost converter sized for your peak current, not your average
- A 100 kΩ / 100 kΩ divider into a spare ADC pin, with a software low-voltage cutoff at 3.3 V
- A slide switch in the battery positive line, and physical clearance around the cell inside the enclosure
That last software cutoff is the one people leave out, and it is the difference between a project that ages well and a pile of dead cells. Have the firmware shut itself down at 3.3 V rather than relying on the protection circuit’s cutoff, which sits closer to the damage threshold and exists for emergencies rather than for routine use.
Sources
- Adafruit: Li-Ion and LiPoly batteries
- TP4056 datasheet
- Adafruit MAX17048 LiPoly/LiIon fuel gauge and battery monitor
- Arduino LiPo batteries explained: big power, one big risk — Marc de Vinck
- Power your projects with batteries! (LiPo/Li-ion) — Sine Lab