I have a NiMH battery pack that I would like to balance (charge discharge for 3 cycles.) I am doing a low charge/discharge current of 0.5 A while the battery capacity is 5 Ah. Since the pack consists of a number of cells I am worried that the weaker cells will be depleted and reverse charged while the better cells are still discharging

Will this cause damage to the weaker cells or will there not be major damge since I am discharging at a low current?

  • 3
    \$\begingroup\$ I’d suggest you measure the voltages across each cell regularly to avoid the situation you describe. Batteries don’t appreciate reverse charging. \$\endgroup\$
    – Kartman
    Commented Jun 9, 2022 at 6:44

3 Answers 3


You are right to be concerned. While a NiMH cell can be taken down to 0 V without damage, any reversal of polarity will cause irreversible damage to the cell.

If the battery doesn't contain too many cells in series, this is usually handled by setting as high as possible a voltage limit for discharge, say 1.0 V per cell. If we assume that the cells were reasonably balanced to start with, so the full ones will be about 1.2 V on discharge, that will protect the weakest cell from reverse charge up to about six cells in series.

If you have more series cells than that, or are concerned about the degree of balance in the pack, then you should monitor individual cells, or at least groups of no more than 6 cells.

Another way to anticipate pack exhaustion is to monitor the rate of the fall of battery output voltage. As the weakest cell becomes depleted, its terminal voltage will drop rapidly. You should be able to pick this up with constant voltage monitoring from a uC.

It's not too expensive in circuit terms to monitor all the cells in a battery with opamps (one opamp, one diode, and four resistors per cell). This is a circuit I've built to check my LiPos, illustrated here for a 3S battery, though it's trivial to extend it to any number of cells within the voltage handling of the op-amps. It selects the cell with the lowest voltage for output. You can see from the cell voltages that I was playing around in LTSpice, checking that it did indeed work to select the minimum.

While the checker does draw different sense currents from different cells, the unbalance is fairly insignificant compared to your 0.5 A discharge, and you can always increase the values of those resistors, or even add some large bleed resistors at the cells to cancel the unbalance.

Given your application, telling the difference between 1.0 V and 0 V, there's no need for great matching accuracy in the differential resistor networks, standard 1% resistors should be fine.

enter image description here

Amplifier inputs - Even the opamp monitoring the highest voltage cell is working with inputs at about half the battery voltage, so the input common mode does not need to extend to the positive rail.

Amplifier outputs - With a grounded Vout-ref, the amplifier output low and diode drop define how low Vout can go. With LiPos, that's not a problem.

With NiMH, Vout_ref as ground, with LM324, the circuit as drawn will only take the output voltage to just below 1 V. Switching to schottky diodes would get that to about 0.5 V, which should be enough for detecting end of discharge.

Use a Vout_ref higher than ground if you want to track the lowest cell voltage all the way to 0 V. It would also reduce slightly the unbalance in sense currents drawn from the battery.

I pass on a tip. I built this on stripboard, and found that a dual amplifier (I used LM358) was far easier to route than the quad LM324. However the 358 output only gets to 1 V above ground, which was still fine for LiPos, but would not work at all with a grounded Vout_ref for NiMHs. You would either have to find a dual amplifier that went to ground on its output (not difficult), or use a Vout_ref of a volt or two (probably worth doing anyway).

I can post the .asc file for that circuit. If anybody wants to play around with it without having to re-enter it, just comment.

  • \$\begingroup\$ Thank you very much for this amazing reply , i will try to use opamps as you mentioned , however since I might be doing the balancing soon , i was thinking of relying on the drop voltage of the battery , but to make sure I understood things correctly , when you mean by the pack drop voltage do you refer to the point when the weakest cell is being depleted this will case a sudden drop in the voltage right ? and is it possible to monitor the weakest cell and to rely on its voltages (probably the middle one in the pack ) ? \$\endgroup\$ Commented Jun 9, 2022 at 9:32
  • \$\begingroup\$ and if i used lower discharge current lets say 0.25A or less , will this be more helpful to me in reducing the risk of reverse charge ? and is there a certain lets say current that wont cause reverse charge ? \$\endgroup\$ Commented Jun 9, 2022 at 9:36
  • \$\begingroup\$ When being discharged at constant current, I would expect the rate of fall of battery voltage to increase rapidly as the first cell because exhausted. You would have to calibrate this with measurements on a discharging battery. The circuit I've shown selects for output the voltage of the lowest voltage cell. There is no logic to thinking that the middle one in the pack will be the weakest. Any discharge current will eventually reverse charge the weakest cell, you must terminate discharge before that happens. A lower current will give you more time to make measurements, and react. \$\endgroup\$
    – Neil_UK
    Commented Jun 9, 2022 at 9:36

It is good to avoid mismatched batteries in the first place, if you can. The worst offenders are the off brands you never heard of. I have lost many packs due to the lowest battery going empty first. An extreme example was a set of 6 CTA NIMH Ds I had. The 2 would not catch up to the rest no matter how I placed them in the charger. A smart charger will finish those 2 first and those 2 will be the first to go dead in a series configuration. I had those 2 get worse on a boombox until they lost so much capacity, they were useless. The others had about 30-40% charge left. The damage is cumulative, and continues to worsen until the pack or set fails. Using a series charger seems to worsen the problem, as the weak cell seems to 'block' a complete charge for that cell.


This seems like a perfect application for a microcontroller like an Arduino or PIC. For a three cell series pack, you can connect three ADCs to the three cells, and monitor the difference between each to read individual cells. Stop discharge when any cell drops below about 0.2V (or whatever you are comfortable with), and then start a charge cycle. The cells should quickly rise to 1 volt or so and may top out at about 1.3V. You can maintain the 0.5A charge for 10 hours or so, and then enter a discharge cycle for up to 10 hours, or until one cell goes below minimum. The entire process can be automated and monitored by the microcontroller. You can even set up a serial connection to a computer to perform datalogging and a fairly accurate charge/discharge curve. Many microcontrollers have at least eight ADC inputs but you will need to take care to add proper voltage dividers to read the voltages accurately and without excess load.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.