DIY Electric Car Forums banner

NG3 chargers can't current limit on lithium batteries?

60322 Views 144 Replies 21 Participants Last post by  jollmo
We've been using an NG3 charger for the last several years to charge our lead acid pack. We originally had Electric Conversions install an optional low current mode switch on the NG3 so that we could charge on a standard 15 amp outlet while at work.

We're in the process now of upgrading our pack to lithium. Before we purchased the new batteries we had contacted Electric Conversions regarding modifying our NG3 to handle the lithium batteries. They said they would be able to modify the charging profile for our configuration.

Now, after just receiving the charger back from Electric Conversions we noticed that the low power option had been removed from our unit. They failed to mention this little detail to us. I contacted them and all I was told was we can't current limit on lithium batteries and it would take to much time to do. If you can current limit on lead acid why not lithium? If the hardware of the NG3 supports current limiting on lead acid it should be just as capable of current limiting on lithium. I realize that it might require a separate charging profile or something but it can be done.

My plan now is to figure out the profile programming of the NG3 and modify it myself. I have a lot of professional experience in reverse engineering electronic systems and feel that it can be done. I know a lot of people have been down this path before on here and have found some decent information. If anyone has information about the NG3 charger that would help speed up the process it would be appreciated.

Two lessons here, NG3s don't currently have a current limiting capability on lithium and avoid Electric Conversions. After reading some of the other posts on here, I'm not the only one to have problems with this company.
1 - 7 of 145 Posts

FWIW, Attached are photos of the logic boards in my 115V NG1 and 230V NG3 both with the same programming. The paper work says it is the ZV curve #7 but the sticker on the chip says ZV6, in any case it is set for 69.3V Saturation and the current just tapers down close to zero until the timer during the "yellow" phase times out.
Here is the NG1 115V control board:

Here is the NG3 230V control board:
Do you by any chance have a picture of the power board of the NG3?

There seems to be resistor(s) labeled R20 and R21 close to the battery input of the power board that control the voltage level of the charger.

I have one charger rated output of 144V with a 560K resistor in R20 and a 120V output with a 470K resistor. The ratio is 120/144. (Oddly the 120V output has two identical resistors, the 144V output only one).

I suspect that the output of that divider goes into Pin 12 of the control board (I read 1.95V there when I apply 105V to the 120V charger). That's then compared with the magical 1.954V so frequently referenced and this difference is the input to the A/D on the board (pin 18).

In this case, the control boards (and the programming?) would stay constant across the various voltage outputs (presumably within reason - the limits of the components on the power board). Changing a 120V to a 96V or a 72V would just involve changing the R20/R21 resistor.


See less See more
I think we're looking at this wrong. This is unverified, although the voltage measurements and the comments in the thread seem to suggest it's true. Update - everything seems to be correct. I have yet to go through a whole charge cycle, waiting for better weather, but the voltages seem to be correct.

If you assume that there is only one control board, which seems reasonable since they're surface mount and so being produced in some quantity somewhere, then the whole problem simplifies.

Now you have to not read the manual so that you never hear the concept of "cell tension". That's just a red herring introduced by Zivan to throw Dave off the track.

If the control boards are all the same, then the change is on the power board. The only one I've seen is the resistor near the input.

We now have two variables, the power board resistor and the setting of the U-Pot.

// value in K ohms of the resistor(s) on the power board - my board

// the value of the U POT - easiest plan is to leave it at one end (zero) or the other (2).

// given the power board resistor value and the resistance of the pot
// we have two components of the voltage divider that gets us the max
// and min voltage readings for this controller.
// The remaining component is the 6.8K (R9) on the NG3 schematic which is
// in series with the 0-2k pot.
// Lets say the resistance on the power board is Rp and on the control
// board the sum of 6.8k and the pot is Rc
// The minimum voltage we can read is when the output of the voltage divider
// is the same as the 1.954V reference.
// This is given by (Rp + Rc)/Rc*Vout
// Vout is 1.954 so:

float rc = 6.8 + U_POT_RESISTANCE;

float minVoltage = (POWER_BOARD_RESISTOR + rc)/rc*1.954;

// Now Dave as stated an inverse gain of 100k/15k
// 0.15
// suspiciously, given an A/D range of 5V 5*0.15 = 0.75V
// 1.954 + 0.75 = 2.704 which is remarkably close to the 2.71V input to U11A
// on the NG3 schematic
// For the sake of argument, let's assume that the max voltage, the point
// where the A/D will read 5V is at 2.71V.
// Repeating the calculation above:
float maxVoltage = (POWER_BOARD_RESISTOR + rc)/rc*2.71;

// The voltage range - a minor optimization
float voltageRange = maxVoltage - minVoltage;

Now, the digital pot just scales linearly:

// the digital pot bits scale linearly
digital_pot_bits = (unsigned char)(constant_voltage-minVoltage)/voltageRange*256;

And the voltage from the A/D just falls out from all of this:

// now the voltage can be calculated from the A/D readings...
voltage = ((float) voltage_bits)/1024*voltageRange + minVoltage;

So, what's up with the current? Is it the same on a 115V and 230V charger, or is it different?
See less See more
"Do you by any chance have a picture of the power board of the NG3?"

NG3 96v View attachment 18934 NG3 144v View attachment 18935
One of those resistors is 390K (I think) which would be about the right ratio:

390K ohm - 96V
470K - 120V
560K - 144V

However you labelled that as the 144V which, if true, blows the theory completely. It it's the 96V then it confirms the theory. The resistor on the other board (which doesn't look original) seems to be 300K. Is that the board where the 2K was also replaced? The 144V I have seems to be 560K.

A little mod that EEC put in instead of the 2k pot View attachment 18933
Did they explain the function of the extra board?

What is the function of the left hand pot on the power board ?
Something to do with the current output. I haven't made it that far yet.

The approach seems to be to put a clamp meter on the input (or output) and turn the pot until you reach the desired current level.
See less See more
390K ohm - 96V
470K - 120V
560K - 144V

60V seems to be 220k but, it has two of them. It seems that sometime's it's one and sometimes two, but I don't really understand why. They also seem to be 5% (rather than most of the others which seem to be 1%). Not sure that matters since the idea seems to always be to make a final adjustment with mechanical pot.

The 120VAC/104VDC(now) charger has been run through a few charging cycles. All seems well. I have not got the current limiting digital pot to work (considering it's the topic of the thread maybe I should spend a little time to figure that out) but the mechanical pot still controls the current.

It occurs to me that I should check the components on the power boards of the various systems and make sure that the components on the 60V are rated for the 120V I'm hoping the change this to...
Need to capture this information somewhere...

R20 on the power board goes to pin 12 on the control board. (This is the whole voltage divider circuit that lets you control the output of the controller). This is in the middle of page 1 of the control board schematic linked earlier in this thread.

R21 on the power board, which is not always populated, but when it is, seems to be populated with the same resistance as R20, goes to pin 15 on the control board. This is middle-left of page three.
What's the level of interest in this project? I'm considering (no promises) rebuilding the boards - basically the same design but shuffling pins so that the serial port can be brought out (I want BlueTooth).

If there's interest, I might be willing to post gerbers and how to turn those into boards and a BOM and the source code that I'm currently using (or perhaps a link to a repository). I'm not interested or willing to produce pre-programmed boards. Is anyone interested in doing that?

The problem with the current design is that the programmer is relatively expensive (~$30). On the other hand, programming is quite simple and reliable (download the IDE, load the project and hit go) - with a decent document it could be fairly fool proof.

There should really only be three parameters that need to be changed - the value of the resistor (R20) on the power board, the number of cells and the capacity (Ah) of the cells. It's possible these could be programmed from a GUI so the on-board code is always the same.

I really like these boards and the flexibility they allow for the end user to control the NG3. Lead to Lithium, change the profile, change the voltage, use the same charger on multiple vehicles, all without returning to the manufacture for changes.

Anyone have any thoughts or feedback.
See less See more
If you're using this mod I think that you are probably overcharging your pack.

A long discussion resulted in this post:

Which links to the BestGo manufacturing specs that says the cut-off current in the CV phase should be C/20, so 5A for 100Ah cells. The default in the software seems to be 0.2A - 200mA.

The change should just be a matter of changing the MIN_AMPS for the profile you are using (or all of them), eg

#define MAX_VOLTS_1 158.5
#define MAX_AMPS_1 11.0
#define MIN_AMPS_1 5

I haven't yet made and tested the change.

In my case the charger was constantly resetting. This seems to be because of the PIC watchdog timer (not the charger watch dog). Fix looks about like this (at the end of the main loop):

     WDO = 1;         
     WDO = 0; 
     Clear_WDT();  // clear the PIC watchdog timers.  Without this, there are periodic resets of the controller. 
   } /////END OF WHILE 


 // clear the 18F watch dog timer.  Put in function to avoid optimization issues: 
//  [URL][/URL]  
void Clear_WDT (void) { 
See less See more
1 - 7 of 145 Posts