Tuesday, November 18, 2008

A123 Lithium Battery Testing (DC9280)

Last night I decided to start testing my lithium batteries in preparation of building a battery pack for the Twike. I have a RC Electronics Watts Up Meter and a West Mountain Radio Computerized Battery Analyzer. I previously found a way to purchase A123 M1 cells (new) in dewalt packs for $6.50/cell so I have 120 cells to build my first pack. I'm going to go with 112 batteries per pack in series (112s1p) to best match the voltage requirements of the Twike, and then parallel multiple packs to get range. The old setup with NiCad batteries was 280 cells in series. That gave a lower voltage cutoff of 280 volts (1.0v/cell) and a upper charge limit of 420 volts (1.5 * 280). In my case, the A123 cells wants a upper charge limit of 3.64 volts so my 112 cells will need to reach 408 volts to fully charge. The low voltage cutoff for a A123 cells is 2.5 volts so this works out to 280 (which happens to match NiCad). So, that is my design target. I took apart my first pack of 8 cells using a T10 security bit (get a long skinny one or drill part of the case). I clipped off the two black wires and one red wire to the internal BMS which I am not going to use. After disconnecting the per cell balancing connectors, I could extract the cells. I had charged them once on the standard Dewalt charger so I knew the cells were all reasonably ok. It will detect and fail to charge a pack if any cell is below 2.5 volts (a possibly harmful condition for a cell if that way for long). A quick check with a meter showed them all pretty close in voltage. I did a 3 amp discharge down to 20 volts (2.5 * 8) to measure cell capacity and see if I had any bad cells. Came out to 2.1 Ah (and 52.8 Wh) which is fine given I did not have it on the charger for several weeks. Both CBA and the Watts UP meter gave the same numbers for Ah and Wh delivered from the pack. I then measured each cells voltage and found them pretty close. No need to do more balancing. I then used a regulated supply to charge the pack back up to 29.12 volts (8 * 3.64) at 3 amps. Took 58.4 Wh (2.156 Ah) to charge it back up. Looks good to me. Now on to pack and BMS design and purchasing more lithium packs. NOTE: I figure the Twike uses about 80Wh/mile so that one pack of 112 cells gives me about 10 mile range (and weights about 17 lbs). I'd like to get to 40 miles range to cover 98 % of my daily trips so I can use it to commute daily to work so I'm looking at building 4 packs (with 448 cells).

Twike BMS emulation in Software

It's been a while since I have posted, but I have not been idle. I have just about given up with trying to get the old BMS boards working (looks like a marginal design when exposed to the elements of the batteries). I'm not sure I have any working boards out of the 5 I have. But, because I must get 2 BMS boards (or something that looks like them) to get the Twike controller firmware happy, I decided to play to my strengths and write a software emulation of the BMS. Documentation of the protocol is non existent from the manufacturer but I found a german open source project doing some of the same things to support running Lithium-Ion battery packs. Armed with a RS485 converter, the knowledge of the fact it runs at 2400 baud and a reference code base to answer some of the hard questions, I coded up a program that allows me to emulate all the operations of the firmware based BMS. I should test it this week now that I am done coding it. If this works, I will be able to try putting a partial charge on one of the battery packs and drive the car around the block. Also, I can verify all the electrical devices and switches and see which need more attention. Also, I have the twike service program (version 3.6) which is a DOS application that does all kinds of magic in talking to the BMS. To debug my program, I installed vmware server and booted DOS 6.22 on a floppy image. I installed the service program to the floppy image and could then run the service program in a window talking to a COM port. Next, I downloaded a trial version of "Virtual Serial Port Driver". This program creates pairs of COM ports connected via a virtual null modem. This lets me connect the Twike DOS service program to my C# BMS emulation program. Very cool. When I was done, the service program was completely happy so I hope the controller in the Twike will be also. Highly recommended technique.