Built to order

Li-ion Battery Capacity Tester with Automatic Discharge Logging

This project builds an Arduino-based battery capacity tester that discharges 18650 and other Li-ion cells through a calibrated resistive load, measures the true delivered capacity in mAh and Wh, and logs the full discharge curve with a cutoff at a configurable voltage. An OLED shows live voltage, current and elapsed capacity while a timestamped log is written to an SD card for the report. It teaches constant-current discharge testing, Coulomb counting and battery safety — the standard lab method for rating cells. Suitable for B.E./B.Tech final-year projects in Electronics and Communication,

Electronics / E&TC OLED DisplayArduino NanoSD-card data loggingEmbedded C firmwareINA219 current sensorMOSFET load switchCoulomb counting18650 Li-ion testingHardware
Li-ion Battery Capacity Tester with Automatic Discharge Logging — project thumbnail preview
More project photos (3)

The problem

The mAh printed on a Li-ion cell is a marketing number until it is measured. The real capacity of a cell is whatever it delivers when discharged at a defined current down to a defined cutoff voltage, and that number drifts with age, temperature and discharge rate — which is why battery labs test cells with a controlled discharge rather than trusting labels. Students usually have no way to perform that test: bench loads are expensive and crude stopwatch methods miss the cutoff moment entirely. This project fills the gap with a student-built capacity tester: an Arduino switches a calibrated resistive load onto the cell, samples voltage and current continuously, integrates charge over time (Coulomb counting), and stops the discharge at the configured cutoff voltage. The result is the true measured capacity of that specific cell, with a logged discharge curve the student can paste straight into the report.

SYSTEM FLOW

7 components 6 connections

Live flow
Drag to explore
100%
power18650 cell

Single Li-ion cell in the spring-loaded holder; open-circuit voltage read first.

Follow the working sequence

How it works

  1. The cell is placed in the spring-loaded holder; the tester reads the open-circuit voltage and the student selects the discharge current on the menu.
  2. The Arduino switches the calibrated MOSFET load onto the cell, starting a constant-resistance discharge at approximately the selected current.
  3. Voltage and current are sampled (approximately 4 Hz) and charge is integrated over time — the running Coulomb count is the delivered capacity.
  4. The OLED shows live voltage, current, elapsed mAh and elapsed time while samples are appended to the SD-card CSV log.
  5. When the cell voltage reaches the configured cutoff (3.0 V default), the load is switched off automatically and the final mAh/Wh totals are displayed.
  6. The CSV log is opened in a spreadsheet to plot the discharge curve and compute the C-rate vs capacity relationship for the report.

Tech stack:

  • Arduino Nano (ATmega328P)
  • Calibrated resistive load bank + N-channel MOSFET switch
  • INA219 current/voltage sensor module
  • 0.96-inch OLED display
  • SD-card module (CSV logging)
  • 18650 spring-loaded cell holder, fuse, thermistor
  • Arduino IDE (C/C++ firmware)
Parameter Value
Cell types Single 18650 Li-ion (3.7 V nominal); LiPo/NiMH within 2.5–12 V range (configurable)
Discharge current 0.5 A or 1 A nominal (selectable, approximately)
Capacity range Up to approximately 5,000 mAh per test (design target)
Cutoff voltage 3.0 V default, configurable 2.5–3.4 V (expected accuracy ±0.05 V after calibration)
Sampling rate Approximately 4 samples/second (design target)
Current sense INA219, ±3.2 A range, approximately ±0.5% typical per datasheet
Log format CSV on SD card: timestamp, voltage, current, mAh
Display 0.96-inch OLED: V, A, mAh, Wh, elapsed time
Supply 5 V USB for logic; cell under test supplies the load

Project features

  • [True capacity measurement] Coulomb counting — integrates measured current over the full discharge — reports the real mAh and Wh the cell delivered, not a datasheet copy.
  • [Calibrated constant load] Resistive load bank switched by a MOSFET, sized for selectable discharge rates (0.5 A / 1 A nominal), so tests follow the standard constant-current-discharge method.
  • [Configurable cutoff] Discharge stops automatically at the configured cutoff voltage (3.0 V default for Li-ion), protecting cells from over-discharge that would damage them.
  • [Live OLED readout] Voltage, current, elapsed mAh, elapsed time and estimated remaining capacity update continuously during the test.
  • [SD-card discharge logging] Timestamped voltage/current samples written to a CSV on an SD card; the log plots directly into the discharge curve for the report.
  • [Cell-holder safety design] Spring-loaded 18650 holder, input fuse and reverse-polarity protection, plus firmware over-temperature guard using a thermistor on the load.
  • [Multi-chemistry support] Configurable nominal voltage and cutoff so the same rig tests Li-ion, LiPo packs and NiMH packs within its voltage range.

What is included

  • Working capacity-tester prototype (board, load bank, holder, display, SD module)
  • Arduino firmware with menu, cutoff logic and CSV logging
  • Wiring diagram and assembly documentation
  • Load-calibration procedure (buyer runs it and records their own values)
  • Project report PDF (battery fundamentals, Coulomb counting, test method, sample results template)
  • PPT presentation for final review
  • Viva Q&A preparation document

Limitations & prerequisites

  • Tests one cell at a time — multi-cell pack balancing is out of scope.
  • Discharge is constant-resistance (approximately constant current), not a laboratory-grade constant-current sink; current drifts a few percent as the cell voltage falls.
  • Capacity depends on discharge rate and temperature; the report must state the test conditions alongside every number.
  • No charging function — the tester discharges only; cells are charged on a separate commercial charger.
  • High-current cells above the fuse rating cannot be tested on this rig.
  • The thermistor guards the load heatsink only; cells must still be tested under supervision per standard Li-ion safety practice.

Frequently Asked Questions

What capacity will the tester report?

Whatever your specific cell actually delivers under the test conditions — that is the point of the project. You run the discharge, log the curve, and the report documents your own measured mAh/Wh with the stated discharge current and cutoff.

Why Coulomb counting instead of just timing the discharge?

Because current is not perfectly constant. Integrating measured current over time captures every fluctuation, so the mAh total reflects what the cell truly delivered rather than an idealized calculation.

Can it damage my cells?

The firmware stops the discharge at the cutoff voltage and the input is fused, but Li-ion cells must still be tested under supervision, never left unattended, and charged only on a proper charger — standard battery-lab practice.

Does it work with LiPo packs?

Yes, within the 2.5–12 V input range, with the cutoff and nominal voltage reconfigured in the menu. Multi-cell balance testing is out of scope.

What does the SD-card log contain?

Timestamped voltage, current and cumulative mAh samples in CSV format — enough to plot the discharge curve and compare cells or C-rates in the report.

Is this project suitable for a final-year project?

Yes — for Electronics, Electrical and Instrumentation programs. It demonstrates measurement instrumentation, embedded firmware, data logging and battery electrochemistry fundamentals in one build. Suitable for B.E./B.Tech final-year projects in Electronics and Communication, Electrical and Instrumentation.

Components & software requirements
  • Arduino Nano (ATmega328P)
  • Calibrated resistive load bank + N-channel MOSFET switch
  • INA219 current/voltage sensor module
  • 0.96-inch OLED display
  • SD-card module (CSV logging)
  • 18650 spring-loaded cell holder, fuse, thermistor
  • Arduino IDE (C/C++ firmware)
Delivery information

Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.

Support terms

Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.

Download free synopsis (PDF)

Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.

Get a quotation