Skip to content

4 · The battery

ESPuino runs happily off a USB power supply indefinitely – but for mobile use, you need a battery. Since real safety is at stake with lithium batteries, this gets its own chapter. Please read it before connecting a battery.

Only use lithium batteries with a BMS – otherwise there's a fire risk!

Never use a lithium battery without a protection circuit (BMS, Battery Management System). An unprotected battery can be overcharged or over-discharged and catch fire. Buy a ready-made battery pack with an integrated BMS – there's no room for compromise here.

LFP or LiPo?

Once that's settled, it's about choosing the type. Both are briefly explained in the glossary; for the decision itself, this comparison is enough:

LFP (LiFePO₄) LiPo
Safety very safe noticeably more dangerous
Choice of ready-made packs limited (basically just the one mentioned below) wide
Energy density / runtime lower higher

In short: LFP is the mild-mannered, safer sibling; LiPo is the more compact one with more choice – but also the one that demands more respect.

Recommendation: ready-made packs

The simplest and safest option is a ready-made pack from Eremit (German retailer) – they already have the protection built in and the matching JST-PH connector:

For DIY builders

If you'd rather build your own LFP pack with a protection circuit, there's a guide in the forum: A small self-built LiFePO4 pack with BMS (#1592) (German-language). The same rule applies without exception here: never without a BMS.

Connecting it

The battery type is set on the board via solder bridges – pre-set at the factory according to your order, changeable later. Details are covered under the solder bridges in chapter 5.

Always check the connector's polarity!

Never blindly trust the connector – check the polarity against the board's printed labels before plugging it in. There have been packs with swapped wiring in the past, and reversed polarity can destroy the board. Notes on this are also available at the Eremit pack listing.

How full is the battery?

ESPuino shows the charge level via the Neopixels and in the web interface. To understand this properly, it matters how that reading is derived: ESPuino measures the battery voltage and infers the charge level from it. That works without any extra hardware, but it has a fundamental weakness – especially with LFP. Its voltage stays nearly constant over much of the discharge curve (around 3.2 V across a large range of charge), so it only gives a rough idea of how full the battery really is. With LiPo, the discharge curve is steeper, and the estimate is correspondingly more accurate.

A truly exact reading would require a coulomb counter that tracks the actual charge drawn. Such a component isn't currently built into the Complete – so the charge display remains a voltage-based estimate, with the imprecision noted above for LFP.

While charging

If a charge cycle is currently running over USB, the measured voltage is artificially raised and therefore not meaningful. A reliable charge-level reading is only available when running purely on the battery.