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.
Single Li-ion cell in the spring-loaded holder; open-circuit voltage read first.
Follow the working sequence
How it works
- 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.
- The Arduino switches the calibrated MOSFET load onto the cell, starting a constant-resistance discharge at approximately the selected current.
- Voltage and current are sampled (approximately 4 Hz) and charge is integrated over time — the running Coulomb count is the delivered capacity.
- The OLED shows live voltage, current, elapsed mAh and elapsed time while samples are appended to the SD-card CSV log.
- 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.
- 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.