I wrote in
this story about my home-built two stage dump controller. The notion was that it had a float mode and an automatic charge mode, though because it has no notion of what the batteries' state of charge is, it doesn't really known when the batteries need a charge or when they only needed to be floated. My notion was that the "stupid" auto-charge mode was better than nothing because it would always charge the battery more than just a float charge and nearly everyone agrees (!) that just float-charging shortens battery life.
The biggest problem, it seems, with making a "real" charge controller is that electronics can't really determine the state of charge. In discussion on that thread, Samoa suggested...
SamoaPower wrote:
Another possibility is to measure Amp-Hours in and out of the battery and simply replace what's used, allowing for charge efficiency, which requires 10-15% more put in than is removed. I would also go beyond this to give a moderate overcharge - sort of like a mini-equalization charge on every cycle.
elt wrote:
I like the notion of recording amps [hours] out and putting them back in (plus a little more for the efficiency factor) though, again, I'm not sure how to tell in general whether a battery is fully charged. The notion of doing what should be a slight overcharge every time solves that as eventually after a few or many cycles the battery would become fully charged.
Wonderful! The problem now is just determining the charge efficiency... whether the batteries really got charged after a charge cycle. I suggest that that can be done the old fashion way (measuring specific gravity of the electrolyte) until you zero in on the number and then you can walk away, perhaps checking on the batteries periodically to see if the numbers are changing though the life cycle of the battery.
Now the charge controller is as simple as counting amp-hours in and amp-hours out and switching the dump controller from float and charge modes as needed.
Here's an overview of what I'm thinking of -

The controller uses two analog to digital converters to sense the (current dependent) voltage drop across two battery cables or shunts. Since most systems have battery cables in them anyway, you can use them for free. The only technical requirement here is that the system wiring needs to be split into separate "source" and "load" sides and the controller's ground needs to be on the "load" side (so that the ADC inputs are always positive with respect to the controller's ground; I don't know of any microprocessors that can measure negative voltages.)
Based on the accumulated amps-hours in and amp-hours out, the controller will signal the dump load to switch from float mode to charge mode.
Note that if battery cables on both the source and load sides are the same, you don't need to do any calibrations since the scale of "x millivolts drop per amp" will be the same on both sides, you only need to subtract or add the ADC readings to get the net charge (or discharge.) If you use different sizes or lengths of battery cables then you will need some sort of "user interface" on the controller to program the relative values of the ADC readings on each cable.
Working with other dump controllers:
I've only really seen two other systems.
- There's Amanda's multistage dumper; it already has two stages and uses a count down timer to select which stage is being used. Instead of using the counter to switch between modes, the float/charge signal from the charge controller could be used to select the charge mode.
- There's the op amp based controller in Hugh's book and other places... I'm not an "analog guy" so someone else is better suited to suggest what changes to make; however, I have used digital signals to switch resistors in and out to make a pseudo- digital to analog converter so I'm pretty sure it wouldn't involve more than two resistors per op amp to turn the controller into a two stage controller... it would just take me a long time to figure it out.
Practical circuit:
I like the tinyAVR chips from Atmel. Two things they have (on some chips) that really help in this case are the built in 20x gain amplifiers on the inputs of the ADCs, useful because the voltage drops on the battery cables or shunts are pretty low and prescaling them will give much more accurate readings, and the built in temperature measurement that can be used for temperature compensation.
My favorite little 8 pin device (the ATTINY85) is a few pins short of handling the all the inputs and outputs needed for this application but the 14 pin equivalent, the ATTINY84 has plenty to do the job and enough memory to add a serial port data logging function as well.
So, the entire charge controller might consisted of the tiny84 (about $3 USD), a voltage regulator, a button and a LED (for the "user interface" and a board to put the parts on... probably cost between $5 and $10 depending on whether you have to buy a switch and if you want to put an RS232 driver on it for data logging.
Rather using an external temperature sensor to measure the temp of thee battery itself, I'd mount the microcontroller chip on the back of the circuit board and use silicone glue to glue it directly to a battery case.
... as always, input or suggestions are appreciated!
- Ed.