Poor man's 15 Amp battery charger?

Not sure, they don't make hardly any heat pushing 55a into a loadbank.
 
Any chance you could have a look at the amps / voltage characteristic on the battery while charging? I've heard the battery itself acts as a capacitor and the truth is that when charging, it takes some time a few seconds to get to a stable voltage. I mean maybe there is really no need for the stabilizing caps.
 
I would use a microprocessor to monitor the charging conditions and periodically turn off the current to get a good measurement. By using more than one solid state relay and capacitor combinations the micro could select between several different charging currents and slow the charge near the end of the cycle.
 
That's exactly what I'm about to do. For now I only have a SSR turning on and off. We need to know if the stabilizing caps are necessary. From what I see on my charger it looks like there is no need.
 
A big inductor in series with the output would help reduce the ripple current in the batteries. I think it would have to be really really big (heavy) to have much effect though.
 
Farfle when you have a moment could you please describe your end of charge shut-off system you use? Any photos or descriptions of your charger would be very welcome as well.
 
end of charge shutoff:

http://www.poolweb.com/Shop-On-Line/POOL-TIMERS/SPRING-WOUND-TIMER-220-VOLTS
 
I just found this thread yesterday, and after some thought (and reading) decided it’s a viable idea if carefully implemented. First off some comments.

If you are using ‘start’ caps, you are looking for trouble (IMHO). They are NOT continuous rated. They are only connected during the motors startup in their intended application. You should be looking for ‘run’ caps, which are almost never over 100uF, and for a given capacity are physically 4 to 10 times larger than a ‘start’ cap. Don’t trust ebay sellers who often list start caps as run caps. Buy from knowledgeable sellers! These are large (50uF) run caps:
http://www.ebay.com/itm/260880062973

The hair dryer in a link in an earlier post doesn’t have a GFCI in it. It would HAVE to have a ground connection to be one. <edit> Alan B pointed out to me that the last statement is untrue. :oops: GFCI can and do work with only 2 wires. <endedit> I would consider GFI to be essential for this circuit, so beware. They are commonly sold for heat tape (for water pipe), as here:
http://www.ebay.com/itm/320861725418

Here’s the circuit I’ve come up with to control one of these chargers. The LCD display interface isn’t included in the schematic and isn’t labeled on the board. RC4-7 are the data pins, and RB6&7 are the R/S and CS.
Poor man's chgr control sch.jpgPoor man's chgr control PC.jpg
I’ve included a convenient test point to measure the current ‘C’ which will give 1V/10A. There’s also provision for HVC shutdown. BV connects to the Batt+, and R1-6 are outputs for multiple SSR.

For SSRs, I personally just use a triac with an optoisolator soldered to it (I’m cheap). Optoisolators with zero crossing detection don’t cost much more than without.

In an effort to make it ‘fool proof’ I intend to glue a pin header, hardwired for the digital representation of the number of cells, to the battery’s charge connector. If I eliminate a cell from a pack I would reprogram (rewire) the header (removing bad cells tend to cause packs to ‘change’ from time to time which could lead we fools to connect them at the wrong voltage). It would allow the processor to determine the charge voltage needed and could also function as the start charge signal. Obviously the charger’s battery connector would have to have a matching connector. I would connect switches to the 2 least significant bits so the human could communicate with the processor (with the battery disconnected).
To use programmable current I would probably add another couple pins to the header on the charge connector to program the current. 6 bits for 'S', and 2 bits for 'P'.

My choice of processor is based on the fact that I have some, and the software to program it. I have 18F parts that would give more usable pins, but my newer programming SW is corrupted and I don’t feel like fooling with it just now. :) Also note that the PC board is designed to be hand built. If I had boards built I would redesign it (vias are really handy). I might even remember to include mounting holes. :wink: For the prototype I'll just etch it on an oversize board and drill holes wherever. :)

I’ll build the first prototype in the next few days and try to figure a way to test it (I haven't found suitable caps), so if you see an obvious error, please let me know. I just drew this this morning, so it’s POSSIBLE there’s a mistake. :D

Here’s a preliminary ‘outline’ of the program. How ‘steps’ are determined would depend on whether all the caps are the same, If you doubled the size of the cap for each SSR, it would be ‘digital’, With 10, 20, 40, and 80uF caps connected to 4 SSRs for example, you could control the current in 15 approximately equal steps:

Standby loop:

Display “ready”.

If either button held for > 1 sec, go to 'program setup'.

If battery connected, display cell count for n sec, then go to Main Loop, else go to 'Standby Loop'.

Main loop:

If cell count changes, shut down, display error message, and go to 'wait for disconnect'.

Energize least significant SSR. If current significantly less than setC (programmable), go up one step.

If controlled current goes above maxC (programmable), reduce 1 step.

If battery voltage > 4.25 (programmable) X cell count, reduce 1 step (and timeout next line so it runs).

Every n sec (programmable) shut down all SSR, and IF BattV > 4.2 (programmable) X cell count, display V, Wh, and/or Ah, and go to 'wait for disconnect'.

If HVC high, shutdown, display error message, go to 'wait for disconnect'.

Every n sec update display for BattV, time, current, and/or Wh (as programmed in setup).

Go to 'main loop'.


Wait for disconnect:

If display needs to change, call the display driver every n sec.

Loop (go to 'wait for disconnect') until cell select in = 0 (battery disconnected), then go to 'standby loop'.

I see I forgot to reconnect the processors Vpp the last redraw also. :lol: (fixed)(meant Vdd :roll: )
Bob
 
Your pics didn't show up unfortunatly (ie. schematic and PCB).

The 16F's I find are cheaper, and unless you need the speed and the extra pins...

The display refresh I usually do each program loop - and give a pause us (depending on what language you are programming in - I use picbasic pro) per loop for timing (less than perfect I know, but too lazy to use interrupts for timing).

Agreed with motor run vs start caps. Also - your +5v supply could be generated with a small transformer on the PCB. I used some switchmode ones that are great (myrra brand).
 
If the smallest cap is set to generate the "ending charge current" it makes the end of charge shutoff quite simple and right at the "full" point. Might want to space the caps out a bit more over the range, we don't need continuous current settings anyway. Attainable settings could be factors of two apart, for example.

Ground fault current detection does not require ground. GFCI outlets can be operated without ground.

Make sure to use watchdog timers and solid programming practices to avoid a "hung" processor causing overcharging. This needs to be bulletproof code. The watchdog needs to reboot to a safe state.
 
heathyoung said:
Your pics didn't show up unfortunatly (ie. schematic and PCB).
I was probably in the process of changing them.

If I keep track of Ahr and Whr, I'll need a time clock anyway. For a production version I would probably use a tiny 110/220v 50/60hz transformer (the inefficiency would hardly matter for this application). In that case the clock could be taken from the line and display update could be a counter on it as well.

I too use PBP, but don't want to admit it here. As down on PICs as a lot of ES folks are, I'd hate to think what they would say if they found out I used basic.

Alan B said:
If the smallest cap is set to generate the "ending charge current" it makes the end of charge shutoff quite simple and right at the "full" point. Might want to space the caps out a bit more over the range, we don't need continuous current settings anyway. Attainable settings could be factors of two apart, for example.
Good points, although the cap selection would be up to the end user, so the software should be able to accommodate a variety of arrangements.

Alan B said:
Ground fault current detection does not require ground. GFCI outlets can be operated without ground.
I don't see how (doesn't mean it isn't so :wink: ). I'll have to research that one. Thanks.
<edit> That's obvious once I see it. If there's a difference in current between the 2 wires, it's going somewhere. :oops: Duh.

Alan B said:
Make sure to use watchdog timers and solid programming practices to avoid a "hung" processor causing overcharging. This needs to be bulletproof code. The watchdog needs to reboot to a safe state.
Roger that!

B Allen (couldn't resist)
P. S. Does anyone have any ideas on how to let the processor know what size pack is plugged in other than what I suggest? 6 pins for cell count would allow up to 64s. The current programing could be 'programmable' so for example, depending on what you have you could set, 00-3A, 01=10A, 10=24A,and 11=60A. Could even be used to set it to a different chemistry, for example the 01 could be LiFePo.
 
Suggestions - the 'pot' command in PBP is pretty useful, as is the one for determining capacitance using the RT period (gotta look in my manual).

Nothing wrong with PBP - the lcdout (or is it lcdwrite?) command kicks ass (one line of code vs about 25 in other languages) as far as I am concerned, easy to implement PWMout - beats the snot out of assembly, and the availability of Long is great as well when you need some big numbers. Writing to its eeprom is easy, I built a water injector controller with a 3D map based on injector duty cycle that used PWM and user programmed EEPROM map points.

Just wish someone would implement a similar command for lcdout for graphical LCDs like the nokia 6110 units.

Its been a while since I have played with PBP though :p
 
I found a transformer in my parts stash which might be just right if you wanted to drive a fan (8v@30ma 220/110)(about $5 qty 1 at DigiKey), They also have one for $3.70 with the same footprint and something like 10ma. I probably will stick it on the prototype board along with 2 diodes and a cap. (The above prices have probably gone up, I didn’t check it online. Or try and find a cheaper source.) Looked it up. $577/1, $4.67/10, $3.54/50, for the one I have (and remember those are dk prices!).
http://search.digikey.com/scripts/dksearch/dksus.dll?vendor=0&keywords=3fd-316

Should I plan on a voltage reference for the ADC, or is the 5v regulator good enough if the voltage measurement is calibrateable? The problem is/might be, that the current to the SSRs draw from the 5v regulator (5ma ea with the optos I have) and could cause some variation. By using open collector transistors on the relay outputs, I could shift the load to the unregualted supply, but a dedicated reference would be better (1 more pin).

I would sure like to hear opinions about the idea of selecting batteries via a header that plugs in at the same time as the charge connector (epoxied to it). Cheap and simple.

A reasonable alternative would be a processor that stayed with the battery and put a capacitive coupled signal on the Batt+ line (programmable via a couple plug in buttons?). I would have to figure a supply for a vlp processor that only drew uAmps. 1 or 2 mA would be easy, but more than I would like. Could be disconnectable for long term storage. Would probably cost less than $1 per battery for parts. Then all I would have to do would be to capacitive couple the boards batt+ to the currently unused op amp, and get it’s output to a processor pin.

Any suggestions for program specifications would be appreciated. Even if I don’t include a subroutine in the prototype (which should start out as simple as possible) it’s best to keep all their likely needs in mind right from the start.

Things needed in the setup routine:

Calibrate the Batt+ voltage.

Calibrate the current reading (not so important, but good if measuring Ahr)

If using a current/chemistry select header, set the end and max voltages, and end and max currents, for each battery 'type'. I suppose we could consider NiCd/NiMh. Just a matter of including voltage drop routines.

Display cycle bit. (If I increment a register every cycle of a 60hz source, bit 5 would give ½ second, and bit 8, 4 seconds. 50hz just increased the time a little. Would anybody really need finer resolution than 2/1 per step)

Standard display when charging: Select 2 or more, current, voltage, amphours, watthours, cell count, caps selected, chemistry.

After charge display:Select 2 or more, voltage, amphours, watthours, cell count, chemistry.

50/60hz select.

Set the capacitor value for each relay?


Alan B said:
Might want to space the caps out a bit more over the range, we don't need continuous current settings anyway. Attainable settings could be factors of two apart, for example.

I was trying to think ‘everyman’ when I made provision for 6 relays. Someone might want to charge a 3Ah3s batt for their kid’s tricycle or a model, a 5Ah 34s for the lightweight speed demon, and a 40Ah for the commuter, all with the same charger. If we use all 6 SSR channels on the prototype, and double the capacity on each one we can have a 1/2/4/8/16/32 ‘current’ selection. 65 to 1 is a wide range, and doesn’t cost much more than putting it all on one or two ‘channels’. More spacing would be fine, and the program SHOULD allow for it (the low accuracy of these caps makes the lower bits irrelevant as far as accuracy of current setting when the higher ones are selected anyway. 6bit resolution with 3bit accuracy). Probably a 1/3/9/etc would be good. With all 6 channels that would give a 200/1 range…..

I would also point out that if you’re pulling more current than one outlet can supply, the largest cap/SSR could connect to a different cord (we would want an interlock and indicator so it doesn’t turn on (and so we know why)), if they're connected to opposite legs (IOW 220 in the US)). All you would need would be a normally closed relay that opened if there was voltage between the 2 hot leads, and an LED or bulb(s).

Bob
P. S. (edit) If I used the serial ID (like RFID only lower frequency) I could allow for an infinite number of cells, and an infinite number of battery types (current/chemistry combos) (ok, a large number then). It would be simpler if the ID chip just 'broadcast' a unique serial #, then the characteristics for that SN could be stored in the charger. Sound better?
 
I couldn't sleep last night for thinking about this, so I got up and drew it.
Batt SID circuit.jpg

This circuit should work from less than 10s to 24s, and would draw about 60uA from the 24s (obviously the resistor could be changed to optimize it).
Would wake up from sleep mode, transmit a 24(?)bit ID # (plus a sync string, start and stop characters, and CRC) at 100khz or so, then go back to sleep for 1/2 sec or so.
The processor is old and obsolete, but I have a bunch of them, and since the bulk of the power used goes into the transmitted signal, a more efficient one wouldn't reduce consumption much.

I haven't gotten any response about the whole battery ID idea. Does that mean I'm the ONLY person who has any fear of plugging a battery into the charger with the wrong setup, and/or wants the convenience of not having to 'tell' the charger the desired parameters every time?

HealthYoung, I agree with what you say, but I was looking for suggestions specific to this project. I like to use a pot on some projects to adjust parameters 'on the go' for experimentation, but for this project up and down buttons would suffice for setup.

Bob

P. S. I know that's not the symbol for a zener, but didn't feel like drawing my own. :|
P. P. S. Man I'm tired of winter. -28F right now! Coldest winter I've ever seen! :(
 
oldswamm said:
I haven't gotten any response about the whole battery ID idea. Does that mean I'm the ONLY person who has any fear of plugging a battery into the charger with the wrong setup, and/or wants the convenience of not having to 'tell' the charger the desired parameters every time?
I am interested but my opinion in electronics is useless. :D Hope few more knowledgeable members jump in soon.
 
A serial readout flash chip in the battery could be powered and read out by the charger and contain all the needed parameters and checksums to insure the data is valid. Serial protocols such as 1wire only take one cpu pin to interface, and 2-3 wires in the cabling. Some may have temperature sensors in the same chip so this could double as a battery temperature readout.
 
Actually the Dallas 1wire devices were the basis for the serial # idea, but part of what I was trying to do was avoid extra pins on the charge connector. If the current draw is kept under 60uA, even a 5Ahr battery will have a shelf life of 10 years or so. It did look more complicated on paper than when I was laying in bed though :wink: .

Excellent idea to add temp sensors. Thanks. I hadn't gotten around to thinking of that yet. :)
A thermistor or two could be added to unused pins on the circuit I drew for little more than their cost. They could also be used to lower charge voltages for cold packs (something I worry about).

<edit> I would also note that the 100khz I mentioned would be a poor frequency to use as there's lots of noise around that frequency from switched power supplies. I would probably use a slightly higher frequency.

<edit> P. S. a similar circuit could be installed in the controller, then another in the motor (the one in the controller would have to repeat it to the battery cable). We could then use the one in the controller to limit the throttle if anything got hot.

I'm also 'enlarging' the last drawing. Didn't realize how hard it was to 'see'.

Bob
 
Guys this is somewhat off the subject. This thread is about a charger, not a BMS.

I'm not saying that a BMS isn't needed for this type of charger, but maybe we should make a different thread for it.
 
Skippic said:
Guys this is somewhat off the subject. This thread is about a charger, not a BMS.

I'm not saying that a BMS isn't needed for this type of charger, but maybe we should make a different thread for it.

I'm not sure how to respond to this. Nobody's mentioned a BMS, or any of it's possible functions (monitoring and/or balancing cell voltages). The nearest thing I see to a BMS is having an HVC shutdown input, which would come from it. If you have a BMS, you would definitely want an HVC shutdown input!
If I started a new thread it would be called something like 'Safe and Versitile Poor Man's Battery Charger'. <edited for spelling>
I'm convinced this device won't be safe unless it's 'controlled'.
What were you intending to control with a microprocessor?
Bob
 
I've sent you a PM. What the charger needs is just a signal when to charge and when to turn off. The turning on/off is probably best controlled by a relay/SSR/triac.

From your posts I understood you wanted a circuit monitoring each cell.
 
As to 'What the charger needs', that depends on what you want from a versatile battery charger.

As to the latter, if you carefully read all my posts, and that's what you got, I've failed miserably in the communication department.
My only reference to 'cell', was wanting the charger to know how many. Useful info when deciding what voltage to charge to!

Bob
 
Just an idea since the simple charger we started with is ending up very complex.
Let's suppose that we want to charge a well balanced pack, probably equipped with a BMS taking care of balancing. Let's furthermore suppose that we know the given chemistry of the used cells and hence the cut off voltage when charging. Why don't we just monitor one series of paralleled cells? It would be enough to make two thin measuring wires over this one series of cells. Once the voltage reaches the high voltage value, the charger has to be switched off or the charging current has to step down. Since there are only three possible switch off voltage values (3.65, 4.1 and 4.2) the chemistry selection can be done by a selector switch. Since the working voltage is low, Arduino board could be used and some intelligence can easily be build in.
We need however, I think, one additional safety in case the BMS cuts off the charger. In that case, the BMS would be exposed to the maximum voltage, over 300V DC. Since this will be a fast increase of the voltage to a very high value, we could use the circuit proposed by Fechter on page 3 of this thread. It doesn't have to be very accurate.
Or is this approach too basic?
Filip
 
Back
Top