Battery cycler project.

Chat about all things battery in here.
Need to know what type to use or size or capacity then again place your thoughts here
GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Battery cycler project.

Postby GregsGarage » Sun Sep 13, 2009 10:59 pm

I have been working on a device to carry out discharge tests on batteries, a battery cycler. The original inspiration for this project is here;
http://www3.telus.net/nook/balancerland/cycler/index.htm
It is a analog circuit designed by Lee Hart. I have laid out the circuit on a breadboard and made a start on trouble shooting faults, mostly my mistakes. :? Anyway, I had to put this aside for a while and started thinking about an alternative approach. What I have come up with is a device based on an Arduino board (http://arduino.cc/).
I have tried to follow Lee's design concept and reading it will help in understanding how my cycler should work. Lee's design uses lots of inexpensive components but requires a bit of time to assemble. Also it has lots of adjustments that have to be set by the end user for their particular battery that they wish to test. My device uses fewer components, but is still reasonably priced. The Arduino is an open source project, I am actually using a clone, Freeduino. The user inputs all the setup information with a single pot and push button. So a very simple user interface. The display is any television or monitor, NTSC and PAL are both supported. This is achieved with a TellyMate shield(.http://www.batsocks.co.uk/products/Shields/TellyMate%20Shield.htm). For those not familiar with Arduino's, shields are small pcb's that stack on top of arduinos. On top of that I have stacked a protoshield.Image

At the moment it can read battery voltage and current, work still needs to be done to calibrate it though. It then controls 2 IGBTs to charge and discharge the battery, have a look at Lee's schematic in the first link above. I tried to directly control them from the arduinos pmw outputs, but they require more than 5 volt. However the Arduino did manage to barely turn on the discharge IGBT and control it as best it could, so it is looking promising.

A screen shot;Image

A schematic and the arduino sketch (program) can be found here;
http://www.go-ev.co.uk/projects/batteryCycler/

Still lots of work to do, but so far looks promising. Any comments, tips, etc., welcome.

Greg

EDIT 9 Jan '10: Fixed broken link to Lee Harts battery balancer project
Last edited by GregsGarage on Sat Jan 09, 2010 12:42 am, edited 3 times in total.
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

User avatar
retepsnikrep
Posts: 1387
Joined: Sat May 26, 2007 4:50 pm
Location: North Yorkshire England
Contact:

Postby retepsnikrep » Mon Sep 14, 2009 12:24 am

Greg.

That's nice.

What pack/battery/specs are you cycling?

Tellymate looks good. Can we have a better pic of the screen.

Might be an idea to do 10x oversampling on the analog readings then take an average to reduce chance of a glitch.

You probably need an IGBT driver stage, perhaps a simple transistor driver will do with a hard pull/up or down to hold it off.

Peter
Regards Peter

Two MK1 Honda Insight's. One running 20ah A123 Lithium pack. One 8ah BetterBattery Nimh pack.
One HCH1 Civic Hybrid running 60ah A123 Lithium pack.

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Postby GregsGarage » Mon Sep 14, 2009 11:04 am

retepsnikrep wrote:What pack/battery/specs are you cycling?

The voltage range is 1-15 volts. This will allow testing of 6, 8 and 12 volt lead acid and also nicad, nihm, and lithium chemistries. It should even be able to test 2v lead acid cells. The current range in the software is 0-100 amps. Actual current handling will depend on the IGBT and heat sink. Trying to discharge a 12 volt battery at 100 amps would mean dissipating 1.2kw of heat safely! :shock: Lee's version shows a additional load resistor in series with the IGBT to dissipate this heat. Regarding heat, 2 temp sensors are used, the first mounted to measure both IGBT's heat and a second mounted on the battery to monitor it's temperature. This is on my list of thing to do, might use the LM335Z sensors or a MCP9701A.

Tellymate looks good. Can we have a better pic of the screen.

I'll post some better pics once I clean up the display some more. The bottom section is all the parameters that have to be entered for your particular battery. Most of them don't do anything yet! The top row is showing battery voltage (/10), battery amps and the pwm value of the arduino (range 0-255). It was controlling the IGBT but was hovering at its max value of 255 due to only 5 volts going to the IGBT. I am using a small 12ah gellcel for testing and briefly connected a headlamp bulb to drop the battery voltage and make the program finish, that's why it shows 10.3 volts (103), couldn't wait for it to get to 12 volts on its own.

Might be an idea to do 10x oversampling on the analog readings then take an average to reduce chance of a glitch.
Agreed, its on my list of things to do.

You probably need an IGBT driver stage, perhaps a simple transistor driver will do with a hard pull/up or down to hold it off.
I thought I probably would as well, but wanted to try it directly first and see what happened. I have been powereing the arduino from the usb socket, but if I power it through the power plug with 9 or 12 volts, I then have that voltage available on my proto shield for the IGBT driver, so that will be next on the list. I have drawn in on the schematic, just have to add it to the board.

Peter[/quote]
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Postby GregsGarage » Sat Sep 19, 2009 2:16 pm

I have made some progress on the cycler software. It now has a amp hour counter, well actually a amp/second counter. I will convert to amp/hours after a cycle has finished. For the ah counter I am using a library called MsTimer2. The MsTimer2 is used to call a "ampcounter" function once a second. This calculates amp seconds and also outputs to the display. It will also generate a data log to a sd card, eventually.

I have changed the screen shot of the display so far for a better one in the 1st post. It is still very rough. The top line shows battery voltage, current, output to discharge IGBT and amp/seconds. The bottom half are the setup parameters, all inputed by the user.

I will run through the parameters, at the moment only Discharge Amps and Ending Voltage actually do anything.

Cycler Mode: This will select the cycler operation, Discharge only, Charge only and Automatic (discharge + recharge)
Discharge Amps: Constant current discharge rate.
Ending voltage: Battery voltage to finish discharge at.
Max Charging time: A safety timer, switchs off charging after set time. Regardless of any other parameters this timer will stop the charing proccess when it runs out.
Charging Amps: Constant current charge rate.
Charging voltage: Constant voltage value, start decreasing current when battery reaches this voltage.
Current to start timer: Final stage of charging, once current drops below this level, start the Constant Volt Timer for the final charging stage.
Constant Volt Timer: Finish charging when this timer runs out. Hopefully this will allow repeatable results.

Next on the list of things to do is to get the IGBT driver working and perform actual discharge tests. Then get the amps calibrated and the amp/hour counter fully functional. Then add temp sensors for safety. Then write the charge routine. Then get datalogging to a SD card working, or alternatively simply connect it to a PC and log directly to it.

Some links below;
http://www.arduino.cc/playground/Main/MsTimer2
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

User avatar
retepsnikrep
Posts: 1387
Joined: Sat May 26, 2007 4:50 pm
Location: North Yorkshire England
Contact:

Postby retepsnikrep » Sat Sep 19, 2009 3:02 pm

GregsGarage wrote:
Next on the list of things to do is to get the IGBT driver working and perform actual discharge tests. Then get the amps calibrated and the amp/hour counter fully functional. Then add temp sensors for safety. Then write the charge routine. Then get datalogging to a SD card working, or alternatively simply connect it to a PC and log directly to it.


Not much to do there then!!!! :shock: I know this feeling I reckon about 100 hours should be about right :lol:
Regards Peter

Two MK1 Honda Insight's. One running 20ah A123 Lithium pack. One 8ah BetterBattery Nimh pack.
One HCH1 Civic Hybrid running 60ah A123 Lithium pack.

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Postby GregsGarage » Mon Sep 21, 2009 3:00 pm

The IGBT driver stages have been giving me some grief, so I am trying a different approach. I have ordered a pair of photovoltaic isolators. These are a type of opto isolator that have a number of photo diodes connected in series. One feature of diodes is that they will generate a small voltage when exposed to light. This device has the photo diodes connected in series so it can generate enough voltage to drive the gate of a IGBT or MOSFET. 8) Well that's the theory, :roll: if it works it will mean a simple driver and also I won't need 12 volts to my arduino board to drive the IGBTs. Have also ordered some temp sensors for the next phase of the project.
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Working IGBT driver.

Postby GregsGarage » Thu Sep 24, 2009 9:49 am

Another small step, I now have a working IGBT driver. :) The photovoltaic isolator did the trick. The output from the isolator is connected directly to the IGBT. I will update the schematic when time permits to show this. The PWM output from the arduino is connected to the isolator input through a 100 ohm current limiting resistor. This should mean a maximum current draw of around 36ma from the Arduino with the output fully on. It was running around 80-85% during my test, so around 30ma from the Arduino. Max current rating for the Arduino is 40ma.

A screen shot is below. The top row shows volts/10, amps (not yet scaled to actual amps), pwm output from Arduino (0-255 range), and finally amp/seconds. At the moment only the Discharge Amps, and Ending Voltage actually do anything in the software. Also need to add some smoothing to the analog read functions to try and keep the output from jumping around so much.

Image

Next step will be to work on the code and redo the layout on the proto shield.
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191

martinwinlow
Posts: 79
Joined: Mon Jun 11, 2007 9:35 am
Location: Herts, UK

Re: Battery cycler project.

Postby martinwinlow » Sun Oct 31, 2010 2:19 pm

Hi Greg,

Anymore progress on this project? I'd like to cycle all my LFP160's now they have done 8k miles just to see how they are holding up.

Regards, Martin.
Regards, Martin Winlow
Herts, UK
http://www.evalbum.com/2092
www.winlow.co.uk

GregsGarage
Posts: 870
Joined: Tue Apr 01, 2008 5:27 pm
Location: Galashiels, Scottish Borders
Contact:

Re: Battery cycler project.

Postby GregsGarage » Tue Nov 02, 2010 9:29 am

Martin,

I have put the project on the back burner for the moment, so no more progress. Trying to clear a backlog of "things to do".

Greg
Greg Fordyce

Daewoo Matiz
http://www.evalbum.com/4191


Return to “All things battery related”

Who is online

Users browsing this forum: No registered users and 8 guests