How to properly charge NiMh batteries?

Hi all,

For a project I bought some NiMh batteries.
I put three of them in series (1.2 V each) to ideally replace a Li-Ion battery of 3.7 V.

To feed them I used a TP4056.

I tried a lot but I didn't succeed in keeping the circuit on for more than few minutes and I thought that there could be some issure with current consumption or voltage in the circuit itself.

Then I realized that TP4056 is for lithium batteries and not nichel ones.
Here you can see a video describing exactly what I was trying to do, this guy answered to my doubts about why my circuit was not working properly with those batteries.

Now my question is: how should I properly feed NiMh batteries?
Charging them externally is the only way or is there a board similar to the TP4056 that is suitable for NiMh batteries?

This is the first project I take out of the "development box", to be fed with batteries instead of direct supply by cables, so I'm pretty new about battery world.
I took NiMh ones because of their great reliability with respect to Lithium ones.

Thank you in advance.

I tried Google on "Charging NiMh" and got this: Charging NiMh battery - Bing

The Battery University website has lots of useful info.

...R

Thank you to both of you.
I've already seen both those sources, here I wanted some more practical hints, because I saw the theory behind those batteries but I didn't get how to practically realize all the theoretical tips in the sources.

I wanted also to know if there were some manager boards suitable for these kind of batteries.

Anyways thanks again for the answers!

All you need to charge a NiMh battery is a constant current source, which can be as simple as a power supply in series with a resistor. Either look at the manufacturer's specification or if you are not sure charge at no more than C/10. So for 1Ah battery charge at no more than 100mA. What is your application? Does the power supply have to supply the load as well as charge the batteries at the same time? Are the batteries charged in one place then connected to the load? Or what? If they are for standby use, as in, charging for months and months then used for maybe an hour or 2 I would charge at a much lower rate, maybe C/100.

To clear up some confusion that I occasionally read, although you've not mentioned it; the predecessors to NiMh, nickel cadmium batteries, had a memory problem (as do I, but that's something different...). If you only partially discharged them before charging then they remembered that they were only partially discharged and would lose the remaining capacity. The answer was to always make sure they were completely discharged before charging. This is NOT necessary with NiMh (or any other kind of battery).

Thank you for the answer.
My application is an Epaper typewriter, consisting in a lolin D32 pro (ESP32) connected to an Epaper screen and a USB host driving a mechanical keyboard.
The power consumption is around 180 mA as a peak at the start-up and 110 mA during normal use.

The batteries are used also during charging, it's not mandatory but they should.

They are 1100 mAh.

If I use a simple cable and a resistor how can I control the overcharge?
The voltage measurement using voltage dividers and analog reading on the esp32 is not so reliable to be safe in my opinion.

@PerryBebbington
Well written. If I remember, NiCad battories were charged using constant current, monitoring the voltage. When the voltage, during charging, decreased charging should be cut off.
What is the cut off criteria for NiMh as well as LiPo?

@OP
Is the load connected 24:7? In that case charging current needs to be the load current + charging current, some 200 mA. Is there a way You can know if the load is disconnected and then reduse the charging current?

Railroader:
@OP
Is the load connected 24:7? In that case charging current needs to be the load current + charging current, some 200 mA. Is there a way You can know if the load is disconnected and then reduse the charging current?

The load is connected only in use, I switch it off when not in use, so yes I can see when it's loading or not.
The fact is that if I need a voltage monitoring during charge I can't switch off the load because it must be active to check the voltage.

So if the voltage control should be done by the esp32 itself, during the charge the load is present and this is quite annoying.

That's why I was asking about the way to control overcharging.

I think that both You and I ask for charge the cut off criteria. I can't tell, for Your battory, whether constant C10 charge is okey or if it will shorten battory life.
Step in, You helpers knowing more!

There are NiMH battery charger chips, for example: http://www.ti.com/product/BQ24401
Since C/10 constant-current charging is so trivial, and unlikely to result in fire or explosions if misapplied, most designs don't get that complex. Bit I have heard that the C/10 CC is less-than-deal for modern NiMH cells. :frowning:

Following that link I quickly found this: http://www.ti.com/lit/an/slua585/slua585.pdf
That circuit handles charging both with and without load. Look it up!

westfw:
There are NiMH battery charger chips, for example: http://www.ti.com/product/BQ24401
Since C/10 constant-current charging is so trivial, and unlikely to result in fire or explosions if misapplied, most designs don’t get that complex. Bit I have heard that the C/10 CC is less-than-deal for modern NiMH cells. :frowning:

So without getting complex with SMD such as chips like that (that I could consider in future developments), I’m wondering if I can keep it simple.
If I have a USB source (5V), can I drop it down to 4.2V (that is the max charging voltage of three 1.2 V cells) and charge at 110 mA that is C/10?
Not worrying about when the charge is finished?
I read on the link above that at C/10 the battery doesn’t care about overcharging but I don’t know. (Section “Overnight charge”).

110mA is good for both with or without load, because in load condition it is exactly providing the consumption of the circuit, so the battery should stay on its state of charge during use.

Charging NiMH batteries at C/10 is safe and they can be left on charge more or less indefinitely without any problems.

But as already said you want something approximating to a constant current source NOT a fixed voltage. A voltage source and a resistor works but 5V is a bit low to start from. Your battery voltage may vary from about 3V (empty) to over 4V (full). If you use a 20 Ohm resistor that will give you about 100mA when the battery is empty but that will reduce to less than 50mA as the battery fills up.

Steve

slipstick:
Charging NiMH batteries at C/10 is safe and they can be left on charge more or less indefinitely without any problems.

But as already said you want something approximating to a constant current source NOT a fixed voltage. A voltage source and a resistor works but 5V is a bit low to start from. Your battery voltage may vary from about 3V (empty) to over 4V (full). If you use a 20 Ohm resistor that will give you about 100mA when the battery is empty but that will reduce to less than 50mA as the battery fills up.

Steve

I got your point, so how can I obtain a constant current feeding?

Railroader:
I tried Google on "Charging NiMh" and got this: Charging NiMh battery - Bing

Interesting. You use Google and get a Bing link?

Bjack795:
I got your point, so how can I obtain a constant current feeding?

Lots of constant current circuits out here (that's an actual Google link :slight_smile: ). Easily done with two transistors and a sense resistor, for example. Or have a look at one of the many NiMH charger circuits.

wvmarle:
Interesting. You use Google and get a Bing link?

Lots of constant current circuits out here (that's an actual Google link :slight_smile: ). Easily done with two transistors and a sense resistor, for example. Or have a look at one of the many NiMH charger circuits.

Yup so that's the same answer given above, an SMD solution, because there are no Battery Management Systems ready to be bought (as the TP4056 that was the starting of the topic).

Bjack795:
So without getting complex with SMD such as chips like that (that I could consider in future developments), I'm wondering if I can keep it simple.

Then the answer is no.

Most of the circuits that are suggested in those Google searches can be built from through hole parts. But if you want to go fancy with full fledged integrated BMS... well, those I can imagine are SMD only.

Of course you can have the Arduino do basic battery management as well. It's easy enough to add a switch so the Arduino can switch on and off the charging current, likewise it's easy enough to have the Arduino measure the battery voltage. When the voltage goes over a certain point, switch off the power. You can even keep the Arduino in deep sleep during the process, just waking up every second to check the voltage while charging.

wvmarle:
Most of the circuits that are suggested in those Google searches can be built from through hole parts. But if you want to go fancy with full fledged integrated BMS... well, those I can imagine are SMD only.

Of course you can have the Arduino do basic battery management as well. It's easy enough to add a switch so the Arduino can switch on and off the charging current, likewise it's easy enough to have the Arduino measure the battery voltage. When the voltage goes over a certain point, switch off the power. You can even keep the Arduino in deep sleep during the process, just waking up every second to check the voltage while charging.

I will get deeper into those circuits, in any case the voltage measurement threshold can't be really used for two reasons.

The first reason is that voltage is not a reliable indicator of charge for NiMH since they are different from Lithium ones and the second reason is that Arduino (or in my case esp32) voltage measurement through voltage dividers is not so accurate to be used as watchdog for a safe battery management.