Build an 18650 Battery Capacity Tester and Grading Station
Anyone who's pulled 18650 cells out of dead laptop packs, old power tool batteries, or vape mods to reuse in flashlights, battery banks, or ESP32 projects eventually runs into the same problem: cells that look identical on the outside can vary wildly in real capacity, internal resistance, and safety once you actually load-test them. Mixing a healthy 2800mAh cell with a degraded 1200mAh cell in the same series or parallel pack is a reliability problem at best and a fire-risk problem at worst. A dedicated capacity tester and grading station turns "probably fine" into a documented number, and it's a genuinely useful piece of shop infrastructure if you touch li-ion cells at all.
Two Approaches: Off-the-Shelf Active Tester vs. DIY Discharge Rig
The fast path is an active battery analyzer/charger like an OPUS BT-C3100 or Liitokala Lii-500, which discharges each cell at a set current, measures real delivered capacity in mAh, and displays internal resistance — genuinely accurate, safe (built-in over-discharge cutoff), and requires zero circuit design on your part. The DIY path builds a discharge rig from an adjustable electronic load (or a fixed resistor bank) plus a microcontroller logging voltage and current over time to calculate capacity yourself; more work, but it scales to testing several cells at once and gives you raw logged data you can graph. This build covers both: a proper commercial tester as your accuracy baseline, plus an ESP32-based multi-cell logging add-on for higher-throughput grading.
Setting Up the Active Tester
Run the active tester's built-in capacity test mode on each cell at a moderate discharge rate (0.5C is a reasonable default for most reused 18650s — roughly half the cell's rated capacity in amps) rather than a high discharge rate, since higher discharge rates read lower apparent capacity and don't reflect how the cell behaves in most low-drain applications like sensor nodes or flashlights. Let the full test cycle complete (charge, rest, discharge, measure) rather than reading a partial number mid-test — the final mAh figure and the internal resistance reading together are what actually tells you whether a cell is healthy.
DIY Multi-Cell Logging Add-On
For grading a big batch of salvaged cells faster than one-at-a-time in a commercial tester, build a simple parallel discharge bank: one power resistor per cell bay (sized for your target discharge current at the cell's nominal 3.7V — a 2-3 ohm, 5W+ resistor gives a modest, safe discharge rate per cell) switched by a logic-level MOSFET per channel, with an INA219 current/voltage sensor per channel reporting back to an ESP32 over I2C (use a PCA9548 I2C multiplexer if you're running more than two or three INA219s, since they share a narrow default address range). The ESP32 logs voltage and current at a fixed interval, integrates current over time to get delivered capacity in mAh, and can push results to a simple web dashboard or CSV log for record-keeping across a whole box of reclaimed cells.
Grading Thresholds
GradeTypical Criteria (common 18650 cell rated ~2500-3500mAh)Suggested Use A — Like New>90% of rated capacity, low internal resistance (<100mOhm)Power banks, e-bike/tool packs, anything performance-sensitive B — Good70-90% of rated capacity, moderate resistanceFlashlights, ESP32/sensor projects, general reuse C — Marginal50-70% of rated capacity or noticeably rising resistanceLow-drain, non-critical projects only; watch closely Reject<50% of rated capacity, high resistance, visible swelling, or won't hold a charge overnightRecycle — do not reuseSafety Notes
Never test or charge a cell that's visibly swollen, dented, leaking, or has damaged wrapping — recycle it immediately rather than putting current through it. Always test and charge li-ion cells on a non-flammable surface, ideally in a fireproof LiPo/li-ion charging bag or a metal ammo can with the lid propped open, and never leave an active discharge or charge test unattended overnight. Match your resistor discharge bank's resistor wattage rating with real margin — an underrated resistor overheating is both a burn hazard and a fire risk, and resistors get surprisingly hot even at modest currents when run continuously for a multi-hour discharge test. Never mix cells of different measured capacity or age in a series pack once you've built one — the whole point of grading is matching cells so no single weak cell gets over-discharged or overcharged relative to its neighbors, which is a real fire risk in series li-ion packs specifically.
Once built, this station pays for itself fast if you do any amount of battery reuse — instead of guessing which drawer of salvaged cells might work for a project, you've got a graded, labeled stock with real numbers behind it, and a documented process for catching the cell that's quietly degrading before it becomes a safety problem in a finished build.
Related Guides
- Multi-Cell Li-ion Battery Packs: BMS Selection, Balancing, and Spot-Welding Tabs
- Battery Fuel Gauge ICs for Lithium Projects: MAX17048, BQ27441, and Coulomb Counting Explained
- How to Build a LiPo Battery Charger with the TP4056: Circuits, Safety, and BMS Integration
- How to Salvage Electronic Components from E-Waste: Desoldering, Testing, and Reuse
- Electronics: Testing Battery Capacity
- Scanning and Logging NFC Tags on the Go with Flipper Zero
- ESP32 Deep Sleep & Battery Optimization for Solar/Battery Projects
- ATS Mini V4 Battery Care & Runtime Optimization