Let's Make Robots!

Max713 NiCad/NiMH smart charger.

I made a battery charger with some free samples of the maxim max713 chip.

Maxim home page.

Chip details.


Search for samples.

The 713 supports both NiMH and NiCad while the 712 is for NiMH. Both can fast charge up to 16 cells and support V/T, temperature and time out charge cut off. It can charge the battery while still powering the load. If you don`t need NiCad support get the 712, it`s better for charging NiMH safely because of the way it measures the cut off voltage.

The basic linear circuit is fairly easy to make up, you must use the formulas here to find the values for R1 and Rsense though. Do this with the biggest battery pack you want to use.

  1. Choose how many cells to charge. Minimum Input Voltage = Number of cells x 1.9 + 1.5
  2. Find out R1. R1 powers the chip. R1 in ohms = (Minimum Input Voltage - 5) / 0.005
  3. Decide on a fast charging current. Ifast in mA = Battery capacity in mA / Charge time in hours
  4. Find the Rsense resistor. Rsense in ohms = 0.25 / Ifast in A
  5. Set PG0 and PG1 to the cell number according to datasheet Table 2.
  6. Set PG2 and PG3 to set the cut off time according to datasheet Table 3. Cut off should be slightly higher than charge time.
  7. PNP power dissipation. PDpnp =(Maximum Input Voltage - Minimum Battery Voltage) x Charge current in A Check this against the PNP datasheet. This is wasted heat and depending on your cell count range you will need a heatsink and/or fan.

For my charger I chose up to 6 cells (the picture shows jumpers up to 8 cells but it`s not wired up yet). Fast charge current and Rsense aren`t set in stone because they can change if you charge different capacity battery packs.

  1. Minimum input voltage = 6 x 1.9 + 1.5 = 12.9v
  2. R1 = (12.9 - 5) / 0.005 = 1600. I picked the next lowest resistor at 1.2k.
  3. Ifast = 2500mAh / 2 hours = 1250mA.
  4. Rsense = 0.25v / 1.25A = 0.2 ohms.
  5. PG1 and PG0 both unconnected.
  6. PG2 connected to BATT-, PG3 connected to REF pin. With a charge time of 2 hours, the timeout is the next highest at 132 minutes. There will be losses through heat so it`s fine. Also voltage slope cut off is enabled to turn off automagically when the voltage stops rising.
  7. PDpnp = (13 - 4) x 1.25A = 11.25W. 2N6109 maximum PD is 40W but it gets lower as it gets hotter. For every degree C above 25 minus 0.32W from 40. If I think it could get up to 60 degrees.. 40W - (60-25) x 0.32 = 28.8W max power dissipation. Well over 11.25W.


Actual charge current above is about 900mA because the fan sucks up a bunch. The jumpers and resistors are really fiddly, I still have to get around to putting the temperature probes on it, changing the jumpers to dip switches or rotary switches, adding 8 cell battery support, and mounting it in a box. The current charge labels on the right are only accurate for a 1000mAh battery but it gives me an idea of what kind of charge rate to expect.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Once again, this is a great walk-through... I noticed on your mock-up you have a yellow and red LED. Are these charge/trickle indicators? If so, or not, is there a way to include some kind of indication that the main charge cycle is over?

Gday Chris. The red one is just a power indicator and the yellow one lights up when fast charge starts then goes out when it switches over to trickle charge. They are just the same circuits as in the datasheet. Instead of running LEDs you could easily have 2 digital input pins to your micro. The output with the red LED could tell your brain when it has successfully docked and is getting power, and the yellow can tell you when fast charge terminates and you can undock.

BTW when do we see a Walter update? :)

Yup, I found it... All the way almost to the bottom of the datasheet. I was looking for the led on the main schematic at the top. Thanks again.

 As for Walter -soon, promise.

Is the "Charge time in hours" for the fast charge decided by me or by something elts?

Fast charge time is indirectly decided by you. If you change Rsense, the current changes, which then changes how long the charge lasts until the battery is full.

You can also limit the charging so it will cut off after a certain period of time which is important in case something goes wrong.

If you would be so kind, I am sketching up my PCB's for my new on-board chargers and would really appreciate it if you would check my math here... I am using a 7.2V 3800ma RC car pack, NiMH. I am using the 712 chip.

Min input voltage = 6 * 1.9 + 1.5 = 12.9

R1 = (12.9-5) / .005 = 1580 = 1.6k (you noted using a 1.2k here)

IFast = 3800 / 3 hours = 1267 ma

Rsense = .25 / 1.26 A = .198 = .2 ohms

PGM0 = open (nothing connected)

PGM1 = open (nothing connected)

PGM2 = ref (connected to pin 16)

PGM3 = Batt - (connected to pin 12)

"Charging" LED connected to V+ and FASTCHG via a 470 ohm resistor. (figure 18)

"On" LED --Actually, I don't undestand this one... DC in (13 volts or so) on one leg and V+ on the other? Huh? Explain this, please.

The current going throught the PNP seems to be about what is going through yours... I will run a heat sink and fan. I will run the fan off of the main input power. Can I switch the fan on and off with a big NPN switching transistor turned on and off by the FASTCHG pin?

I really don't want to mess with any temp sensors, is this ok? I checked the specs on the battery packs and thier "standard" charge is one hour. If they don't get too hot doing that, I should be fine with a 3-hour charge, right?


Is there anything I am missing here? I mean, once I draw up this PCB, everything is sorta set-in-stone. I want to be sure I have everything solid before I send out my Gerbers and Drill files!


Thanks again for your help.

Hey Chris,

How are you going to power the charger? Finding a 13v plug pack could be impossible. I think 15v laptop adapters are pretty common though and can deliver good current.

IFast C/3 sounds good. It can be changed easily later if you think it takes too long.

PGM0 & 1 is good.

PGM2 and PGM3 for a 3hr timeout might be a bit tight. If it`s charging a dead flat battery it may not reach full charge at a C/3 rate within 3 hrs just because of inefficiencies. If you made the charge time 2.5hrs, which bumps up the charge current to 1.52A and Rsense to .16 it should fully charge in 3 hours. 6 parallel 1 ohm resistors makes a nice .16 ohm too.

V+ is where the chip draws power so current will go through the LED too. Don`t worry it works :)

An automatic fan should be fine from the fASTCHG pin. I don`t completely understand why people choose PNP or NPN but the pin gets pulled to GND when fast charging.

I guess if you`re only going to charge the 1 pack you should be safe without any temp sensors. I melted the shit out of a 4AAA pack because my timer is on 3hrs to be able to charge larger packs. Plus the 712 is more sensitive to full charge for NiMH than my 713s.

I think I just need a little more explaination on the (6) 1ohm resistors in parallel to get .16ohm. I guess there is not a .2ohm resistor made, is there? Do I really have to stack-up 6 resistors side-by-side? That is a lot of pcb space, is there a simpler way? Oh, and what is the math on that? How do I calculate resistors in parallel and why do they go down in resistance? -It seems they would just handle more current at the same resistance.

One more quick one, do you have a guess on a value for the resistor on the "On" LED? I will be taking your advice on the 15v as an input.


To calculate the total resistance of a set of parallel resistors you take the inverse of the sum of the inverses of the resistances. Not that the explanation helps much, so here's an example =D

Let's say you have four resistors in parallel, with resistances equal to R1, R2, R3 and R4. The total resistance across the parallel resistor array will be 1/((1/R1)+(1/R2)+(1/R3)+(1/R4)). Another way of writing it using powers/exponents is (R1^(-1)+R2^(-1)+R3^(-1)+R4^(-1))^(-1). This works no matter how many resistors are in parallel.

For your case, 6 x 1Ω works out like this:
= 1/((1/1)+(1/1)+(1/1)+(1/1)+(1/1)+(1/1))
= 1/(1+1+1+1+1+1)
= 1/6, or 0.166666Ω.
When a voltage is applied to the resistor 'bundle', the current flowing through it is calculated as if there was just one resistor of value 1/6Ω. However, the current is split between the resistors, and since they're all 1Ω, they get an equal share, or 1/6th of the total current. If the total current through the bundle is 1.52A, then each resistor is only carrying 0.2533A.

As for why the resistance goes down when you place more resistors in parallel, think of it this way: each resistor is like a water pipe, and the lower the resistance of that 'pipe' the more easily it carries electrical current, in the same way as a wide, smooth pipe carries water more easily than a thin, rough pipe. If you bundle several pipes together, then you're opening up a larger overall path for the current to flow, so there's less restricting it - in other words the total resistance has deceased.

Now, that's what I call an answer! Awesome! The full concept and math is solid in my head. I love learning new stuff. Thank you.