DIY Electric Car Forums banner
1 - 20 of 42 Posts

· Registered
Joined
·
482 Posts
Discussion Starter · #1 ·
Low cost parametric cell monitoring development update.

I have been developing an idea on how to make a low cost cell monitoring system. I would like to share some of my design requirements and progress to see if the product might meet the needs and desires of others. I am only at the prototyping stage of the cell circuits themselves and software control is very crude at the moment. I have only confirmed some of my design goals so far.

Design Goals and Strategy:

1. Voltage of each cell communicated to head controller for all control decisions, graphical display, and data logging. Control algorithms to include over and under cell voltage conditions at various loads and temperatures. Software development on Android tablet for cell voltage graphical display and data logging. Having the over and under voltage decisions made in software should have configurability advantages over solutions that use hardware trimming that must compromise when dealing with heavy current loads and very cold temperatures.

2. At least 2% cell voltage accuracy without software calibration, Better than 1% with software based correction files.

3. Average Less than $2.00 per cell circuit including PCBs. My current prototype is distributive in nature but groups 3 cells per circuit board. The PCB and surface mount components are less than $6.00 for 3 cells so on target with $2.00 average per cell goal. However, $1.00 per cell may be achievable in volume.

4. Less than 100micro amp quiescent current load on each cell. I don't want the distributive cell circuits to significantly discharge or imbalance the cells they are monitoring. I figure 10,000 hours to discharge the cell 1Ah is acceptable and any long term imbalance would only be a fraction of this low supply current.

5. Single wire daisy chain communication between cell circuits to reduce assembly efforts and cost. My current prototype uses two wires but I have ideas on making it a single wire.

My approach would be considered a digital solution but it is simply using a capacitor charge that sequentially propagates through the cell chain. Each cell circuit produces a digital pulse upon respective comparator voltage threshold crossings of the charging capacitor. This data pulse propagates to the end of line monitoring point which is opto isolated from the head controller board. The head board measures the time interval between data pulses to decode the voltage of each cell. My first prototype suffered from inaccuracies of resistor and capacitor values and their temperature coefficients. I since added an additional reference pulse for each cell group that allows the head board to cancel out these component value variations using the ratio of time intervals in software.

Future Cell Balancing Concept:
I also have ideas on how to make it have dissipative balancing using the same data bus to select and hold a bleed resistor for a particular cell for a period of time. For example if a single cell is always first to full SOC during charging then it may be desirable to bleed an Ah or so from it to bring it in line with the rest. This additional latching circuitry will be considered on the next version in order to keep the focus on low cost monitoring for now. This dissipative balancing concept is different from other shunting solutions that rely on shunting a portion of the charging current and thus need to use high wattage resistors. Also, having the balancing done in this case upon command might also provide a level of safety while being supervised.

Thanks
Jeff
 

· Registered
Joined
·
482 Posts
Discussion Starter · #2 ·
I got my PCBs in yesterday. The PCB in the picture can scan 24 cells when completed. Each of the 8 sub section does 3 cells. I plan to make smaller individual boards for each section daisy chained together eventually. I laid it out this way for now because ExpressPCB offered 3 prototype boards for $51 in their standard 2.5" x 3.8" and I know this won't be my last revision.

I populated two of the sections and did some testing.

I am very pleased with the accuracy of this approach. I am seeing better than +/-0.5% even with the heat gun on it.

In the scope screen shot you can see the 10us wide data pulses separated by milliseconds. The time between each pulse is related to the cells voltage. With the heat gun on it the intervals change but their ratio and calculated cell voltage stays the same with this new design.

I am using the MAX934 quad comparator with 1.182V reference. It only draws 25uA according to the spec sheet so my total circuit should be less than 50uA parasitic load on each cell.

Regards
Jeff
 

Attachments

· Registered
Joined
·
2,504 Posts
I think it's great. . . there just aren't enough monitoring options around, particularly low cost ones.

I think ppl with new batteries are a bit crazy to see what they are doing. . I know I was. It does wear off somewhat when u see that it is . . .well, a bit boring. lol

None the less, keep going!! good stuff. :)

I don't know if it is technically possible to have "no power draw" from the cells being monitored? . . but only from a separate source??? (12 volt accessory battery or DC/DC?) This would be the best, IMHO. ANY unbalanced parasitic load drives the eventual need for intervention, either manual or with circuitry and I think most ppl who would want this MAY be in the "no bms" camp ( I could be wrong. . ?) and if so, they really don't want to drive the need for balancing with the monitoring. Of course if the draw is exactly the same between all cells. . (possible??) there wouldn't be a worry.

Cheers,
Gary
 

· Registered
Joined
·
482 Posts
Discussion Starter · #4 ·
I think it's great. . . there just aren't enough monitoring options around, particularly low cost ones.

I think ppl with new batteries are a bit crazy to see what they are doing. . I know I was. It does wear off somewhat when u see that it is . . .well, a bit boring. lol

None the less, keep going!! good stuff. :)

I don't know if it is technically possible to have "no power draw" from the cells being monitored? . . but only from a separate source??? (12 volt accessory battery or DC/DC?) This would be the best, IMHO. ANY unbalanced parasitic load drives the eventual need for intervention, either manual or with circuitry and I think most ppl who would want this MAY be in the "no bms" camp ( I could be wrong. . ?) and if so, they really don't want to drive the need for balancing with the monitoring. Of course if the draw is exactly the same between all cells. . (possible??) there wouldn't be a worry.

Cheers,
Gary
Thank you for the feedback Gary that is why I am posting my efforts. I happen to be one of the new ones crazy to see what the batteries are doing and it might be pretty boring like you have experienced. I also do not have a vehicle on the road yet so I search posting of those that do. I have seen a couple of postings that refer to a rouge cell here and there but not much.

Kind of like in my job as a test engineer it feels that we are adding no value testing until something fails and everyone wants to know why. Then it gets exciting.

I kind of view the monitoring of cells as a way to gain test data in the field conditions. It has to be cheap, easy, and benign or few will do it. I have seen some but not a lot of data showing how cell capacity changes over the years.

I think it might take at a minimum of a monitoring system with high and low voltage cutoff to be able run a pack with mismatch cell capacities if you are put in that position towards the end of your pack life. Perhaps monitoring will provide more value as time goes on.

I have not figured out a zero parasitic load monitoring solution yet but still trying.

Thanks
Jeff
 

· Registered
Joined
·
482 Posts
Discussion Starter · #7 ·
I don't know if it is technically possible to have "no power draw" from the cells being monitored? . . but only from a separate source??? (12 volt accessory battery or DC/DC?) This would be the best, IMHO. ANY unbalanced parasitic load drives the eventual need for intervention, either manual or with circuitry and I think most ppl who would want this MAY be in the "no bms" camp ( I could be wrong. . ?) and if so, they really don't want to drive the need for balancing with the monitoring. Of course if the draw is exactly the same between all cells. . (possible??) there wouldn't be a worry.

Cheers,
Gary
Gary,

I misread one of my data sheets and it looks like my design (depending on final version) will draw around 20 uA per cell. That is 50,000 hrs or 5.7 years to drain the cell by 1Ah. Keep in mind that any imbalance would have to be a fraction of this supply current since all cells are loaded with their own monitoring circuit. So I guesstimate over a decade to imbalance the pack by 1Ah as a result of this continuous monitoring method worst case.

I saw in the CellLog8 data sheet that it draws 8mA which is 400 times greater than what I am targeting.

Regards
Jeff
 

· Registered
Joined
·
2,504 Posts
Gary,

I misread one of my data sheets and it looks like my design (depending on final version) will draw around 20 uA per cell. That is 50,000 hrs or 5.7 years to drain the cell by 1Ah. Keep in mind that any imbalance would have to be a fraction of this supply current since all cells are loaded with their own monitoring circuit. So I guesstimate over a decade to imbalance the pack by 1Ah as a result of this continuous monitoring method worst case.

I saw in the CellLog8 data sheet that it draws 8mA which is 400 times greater than what I am targeting.

Regards
Jeff
Thats pretty damn close to zero. I think good enough to not have to worry about it. Any issues should get picked up on a bi-annual inspection for non-BMS ppl and will be easily handled by balancing circuit for BMS users.
 

· Registered
Joined
·
482 Posts
Discussion Starter · #9 ·
I finished populating one of the prototype boards. It scans the voltage of 24 cells but is designed to be daisy chained to more boards to scan more cells.

I did a quick test and each sub circuit that represents 3 cells is alive and creating an output that appears normal. I haven't made a wiring harness to connect 24 cells and see a simultaneous scan yet.

Next step is to write some Arduino software that uses the input capture functions to time the interval between the pulses and to decode the voltages.

If that goes well then I will try my luck at getting the decoded voltage data to an Android tablet for graphical display.

Jeff
 

Attachments

· Registered
Joined
·
3,221 Posts
Two potential problems:

1. 20uA implies a relatively high impedance circuit, and high impedance circuits are susceptible to electrostatic (E-field) noise. Make sure you test this BMS with a real, live controller (with as high an operating voltage as possible).

2. What will happen to your BMS if one of the jumpers between two cells comes loose? This invariably applies an inverted voltage (of n-1 cells in magnitude) across the BMS input.
 

· Registered
Joined
·
482 Posts
Discussion Starter · #11 ·
Two potential problems:

1. 20uA implies a relatively high impedance circuit, and high impedance circuits are susceptible to electrostatic (E-field) noise. Make sure you test this BMS with a real, live controller (with as high an operating voltage as possible).

2. What will happen to your BMS if one of the jumpers between two cells comes loose? This invariably applies an inverted voltage (of n-1 cells in magnitude) across the BMS input.
thanks for the heads up. The most electrostatic sensitive device would be the quad comparator IC that I am using. If it stops working then maybe it was due to static discharge. I will keep that in mind.

If one jumper comes loose question in confusing me. I thought I understood but then maybe I don't.
Connecting the data bus without having the cell potentials connected.
Plugging the daisy chain data bus in backwards may be another.
Reversing the cell connections.

I have not spent too much time trying to make it as robust as it will need to be if it were going to be marketed. I am sure there will be ways to blow it up that I will want to protect against.

Once I think I got something I will be looking to test it in as harsh an environment as possible.

Thanks
 

· Registered
Joined
·
3,221 Posts
thanks for the heads up. The most electrostatic sensitive device would be the quad comparator IC that I am using. If it stops working then maybe it was due to static discharge. I will keep that in mind.
Oops - wrong electrostatic... though your interpretation of the word is technically correct while I somewhat abused it; the correct phrasing would be "electric field", but I try to avoid that mainly because it sounds hokey... At any rate, in the near field (q.v. - Maxwell's equations), the battery cables primarily radiate magnetic ("H") fields as the current flowing through them is rapidly changing; the motor cables, in contrast, mainly radiate electric ("E") fields as they experience rapidly changing voltage levels (ie - from PWM).

E-field noise is relatively easy to block with metal shielding and circuit susceptibility is improved by reducing loop impedance as much as possible. H-field noise is more difficult to block, as it requires metal shielding with a high-permeability (e.g. - "mu metal"), so one usually attempts to reduce circuit susceptibility by minimizing loop area and increasing loop impedance (note conflicting requirement with above!). This implies the use of multilayer boards (ie - two or more) with one layer devoted to circuit "ground".

If one jumper comes loose question in confusing me. I thought I understood but then maybe I don't....
Nope, this hash-up is all your own! :D

Whether you intend to sell it or not, you probably don't want to start a fire in the vicinity of your battery pack because of a loose/high resistance cell-to-cell jumper. And by the latter I mean the short piece of braid/strap/cable that connects the positive terminal of one cell to the negative of the next (and which your BMS will connect to as well).

Draw a series connection of cells and then use a resistor across the whole "pack" to simulate the motor controller. Now, put a meter across any of the cells and see what happens when you disconnect a jumper from one cell to the next such that pack current must then flow through the BMS wiring to complete the external circuit (which, of course, it can't do... not for long, anyway).

Note that serious problems can occur just from the cell connection becoming somewhat high resistance (from, e.g., incipient corrosion at the time the terminals were fastened becoming worse over time) - this will result in a much higher voltage being presented to the BMS when high current is flowing than it would otherwise see from the cell potential alone.

Good engineering is not just making a product work right, it is making a product gracefully handle as many foreseen, and even unforeseen, failures as possible.
 

· Registered
Joined
·
482 Posts
Discussion Starter · #13 ·
Oops - wrong electrostatic... though your interpretation of the word is technically correct while I somewhat abused it; the correct phrasing would be "electric field", but I try to avoid that mainly because it sounds hokey... At any rate, in the near field (q.v. - Maxwell's equations), the battery cables primarily radiate magnetic ("H") fields as the current flowing through them is rapidly changing; the motor cables, in contrast, mainly radiate electric ("E") fields as they experience rapidly changing voltage levels (ie - from PWM).

E-field noise is relatively easy to block with metal shielding and circuit susceptibility is improved by reducing loop impedance as much as possible. H-field noise is more difficult to block, as it requires metal shielding with a high-permeability (e.g. - "mu metal"), so one usually attempts to reduce circuit susceptibility by minimizing loop area and increasing loop impedance (note conflicting requirement with above!). This implies the use of multilayer boards (ie - two or more) with one layer devoted to circuit "ground".



Nope, this hash-up is all your own! :D

Whether you intend to sell it or not, you probably don't want to start a fire in the vicinity of your battery pack because of a loose/high resistance cell-to-cell jumper. And by the latter I mean the short piece of braid/strap/cable that connects the positive terminal of one cell to the negative of the next (and which your BMS will connect to as well).

Draw a series connection of cells and then use a resistor across the whole "pack" to simulate the motor controller. Now, put a meter across any of the cells and see what happens when you disconnect a jumper from one cell to the next such that pack current must then flow through the BMS wiring to complete the external circuit (which, of course, it can't do... not for long, anyway).

Note that serious problems can occur just from the cell connection becoming somewhat high resistance (from, e.g., incipient corrosion at the time the terminals were fastened becoming worse over time) - this will result in a much higher voltage being presented to the BMS when high current is flowing than it would otherwise see from the cell potential alone.

Good engineering is not just making a product work right, it is making a product gracefully handle as many foreseen, and even unforeseen, failures as possible.
Ok I will keep the E-field in mind.
I assume ( but don't know) the change in voltage related to the PWM in proximity to a single cell is much lower than at the motor which is seeing full battery voltage on off really fast.

As far as being able to tolerate full -pack voltage with a cell strap opening up, I am pretty sure something is going fry. Perhaps I could consider some type of fusing in this case to avoid a fire. I guess that I would have to have some reliance on being able to see increased cell connection resistance reflected in a low cell voltage under load and then react to it before it became catastrophic.

Internal resistance is one of the calculations that I would want to be able to track by combining cell voltage with pack current measurement.

This is good input. Thanks for making me think.
 

· Registered
Joined
·
362 Posts
You might want to check out the Digital BMS thread. I'd especially appreciate feedback on why it won't work/what we're doing wrong.

The plan for balancing is a standard single cell charger ($37) and two MOSFETs per cell.

Once you have the Arduino collecting data and the Android tablet storing it, you can start to get some fun instrumentation. We have an accelerometer, so should be able to get power vs. incline. The Android tablet has GPS and therefore speed, so power vs. speed.

Since we're hand soldering the circuits on prototype boards (board fab, indeed most of electronics, is out of my league) it's taking a while. I'm intrigued to know what accuracy we'll be able to get. The OpAmp difference circuit is inherently noise tolerant and the Arduino should be able to take data fast enough for a digital filter, but I don't suppose we'll really know until it's on the car.

I'd really like to be able to pick up aerodynamic differences, the effect of synthetic transmission oil, etc. Since the Android can store years of data these may show up more a long term trends.
 

· Registered
Joined
·
3,221 Posts
..As far as being able to tolerate full -pack voltage with a cell strap opening up, I am pretty sure something is going fry. ...
If the strap breaks in the middle between two cells that's a benign failure; it's if a bolt attaching a strap to a cell terminal comes loose that real havoc ensues. Fortunately, the voltage impressed across the BMS is effectively inverted, so easy to block with a series diode, back-to-back MOSFETs, etc... The best approach to take will depend on whether the BMS will also do shunting, and, of course, how much you want to spend per cell, both in dollars and in quiescent current drain.

Internal resistance is one of the calculations that I would want to be able to track by combining cell voltage with pack current measurement.....
Possibly one of the most valuable measurements to make... just remember that you need to compare cell voltage at two non-zero currents; if one voltage is taken at 0A then the calculated internal resistance* will be way too high.



* - internal resistance is technically a misnomer here... some of the resistance in an electrochemical cell is true resistance - ie, it is Ohmic in nature - but the bulk of it comes from transporting ions and the intercalation of lithium into and out of the graphite anode, for LFP cells in particular.
 

· Registered
Joined
·
482 Posts
Discussion Starter · #16 ·
If the strap breaks in the middle between two cells that's a benign failure; it's if a bolt attaching a strap to a cell terminal comes loose that real havoc ensues. Fortunately, the voltage impressed across the BMS is effectively inverted, so easy to block with a series diode, back-to-back MOSFETs, etc... The best approach to take will depend on whether the BMS will also do shunting, and, of course, how much you want to spend per cell, both in dollars and in quiescent current drain.



Possibly one of the most valuable measurements to make... just remember that you need to compare cell voltage at two non-zero currents; if one voltage is taken at 0A then the calculated internal resistance* will be way too high.



* - internal resistance is technically a misnomer here... some of the resistance in an electrochemical cell is true resistance - ie, it is Ohmic in nature - but the bulk of it comes from transporting ions and the intercalation of lithium into and out of the graphite anode, for LFP cells in particular.
Just by you telling me to consider the full reversal of pack voltage being seen by my circuit and how it is a plausible occurrence helps me. I will search for the best way for me to add this protection. Dollars and quiescent current are precision to this endeavor so I may need to get creative on how to block the voltage reversal.

The voltage to current relationship (internal resistance) is really why I am attempting to get the cell voltage. I think it will give me a lot of insight into the health of my cells and connections. It seems to be the name of the game as far as I can tell. Balancing is not so important to me right now. Knowing that I need to balance, repair a connection, or replace a bad cell is important to me.

I am enjoying the challenge of trying to come up with a low cost and hopefully benign way of doing it.

Regards
Jeff
 

· Registered
Joined
·
333 Posts
Jeff,
As a bottom balancer, I am very interested in what you are doing, and for the same reasons. I don't have your technical skills, but I am interested in your application. I would like to be able to evaluate each of my cells easily and inexpensively. I'm happy to fix the problem manually. I'd just like to know if and when I have that problem.

So keep on it! You're building what I want!
Mike
 

· Registered
Joined
·
482 Posts
Discussion Starter · #18 ·
I got the Arduino measuring the intervals that my ramp and compare circuit is generating. I put the values in excel for decoding the voltages and created a chart. I plugged the 3 cells into each of the 8 sub circuits one at a time.

The cyan line is the average voltage of the 3 cell group. This shows me the amount of absolute error that each circuit has. This error is expected since I only have a 2% voltage reference.

The other 3 lines show me the relative combination of each cell within its group. The axis is normalized to 1/3. The relative comparison looks pretty reproducible even if the absolute value is not as much. Calibrating for the absolute reference voltage offset should be pretty simple.

I intentionally picked a lower than the other cells for cell2 (pink line).
Cell 1 and 3 are at about 3.29volts and Cell 2 is at 3.17volts

Even though it is working I think there is some room for improvement with the accuracy and repeatability. However these changes may increase the parasitic current draw.

I am not going to optimize anything quite yet.

Next step is to try and get the information from the Arduino to an Android Application that can continuously display a bar graph of a whole string of cells.

Thanks
Jeff
 

Attachments

· Registered
Joined
·
482 Posts
Discussion Starter · #19 ·
Jeff,
As a bottom balancer, I am very interested in what you are doing, and for the same reasons. I don't have your technical skills, but I am interested in your application. I would like to be able to evaluate each of my cells easily and inexpensively. I'm happy to fix the problem manually. I'd just like to know if and when I have that problem.

So keep on it! You're building what I want!
Mike
Very good. If you have any specific requirements feel free to share.
Thanks
Jeff
 

· Registered
Joined
·
362 Posts
Jeff,

Are you using a voltage divider on each circuit to avoid the problem of high (120V+) common mode?

Next step is to try and get the information from the Arduino to an Android Application that can continuously display a bar graph of a whole string of cells.
I've just sent you a PM offering an Android App-builder. It's beta and so I don't want to just publish the link, but if anyone else is interested, feel free to PM me. It should do more than you need, including "real-time", historical data and charting. You can use bars, meters, etc. etc.

The bluetooth app in the digital BMS thread represents a couple of hours work (the displays could be bars, instead of text boxes).

Let me know if I can help.
 
1 - 20 of 42 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top