my first big project - BMS - is it possible?

CrossRoads:
This is the system I was discussing.
The MAX6921 might be used, or the other demux chips discussed above.
Note how each battery is connected to nothing until a relay is closed.
A change is needed in the the Gnd for the battery WOULD NOT the GND for the Arduino, demux, & relay coils.
The two would be isolated so that the measuring electronics only connect to the battery under measurement +/- terminals.

I've been learning/reading some more, and after rereading this, this is what I think I can make of it:
The MAX6921 could be used just to directly control up to 20 relays that each isolate 1 cell and feedback its voltage to the arduino.
both circuits are completely separated, so no common ground.
The way this circuit is drawn, it seems like there wouldn't even need to be transistors or resistances around the MAX chip to control the relays, is that right?
are the outputs of the MAX chips (I think 40ma) enough to close a relay?

grtz
T

40mA is plenty for a small relay, but that circuit does not isolate the batteries from what I can see.

EDIT: I take that back, it does I think, but you have to change the GND for the relays and the MAX chip to be the same as the AVR.

ANOTHER EDIT: You have to be 110% certain you don't activate two relays at the same time. Do you plan to use software at any time in this project :astonished:


Rob

I have no idea how to instruct the MAX chip through the arduino, but I bet I'll find out.
haven't done much thinking about the programming yet, but it seems pretty straightforward to me;
open relay one
read voltage one
close relay one
(probably) delay (very short, to stabilize)
next relay and so on
compare voltages
report somehow

it seems pretty straightforward to me;

Yes it is, just be mindful of the consequences if for whatever reason you open one relay before closing the another.

For example how will you know that relay 1 has actually closed before you open relay 2?

What if there's a mechanical failure in relay 1 and it sticks open, if you then open relay 2 it's goodnight nurse to half your circuit and with the resultant fire maybe the vehicle as well.

Do you trust your coding ability to that extent?

If you use a 4514 decoder chip it's not possible to have > 1 output active at a time which at least takes your code out of the equation, not mechanical failure though.


Rob

Thanks for the advice.
I understand the concern, and it s certainly something Ill remember.
I could incorporate a check if voltage ==0 after opening the last and before closing the next relay.

For security reasons, i plan to test the system on a much smaller 20 cell nimh pack.

I have no idea what the 4514 decoder chip is/can do, but Ill look in to it.

I looked at the datasheet of the 4514 decoder chip http://media.digikey.com/pdf/Data%20Sheets/Fairchild%20PDFs/CD4514BC_4515BC.pdf
but it's too technical for me.
is this chip to replace the MAX chip, or what?
can you explain a little?

The chip will be a lot easier to use than the MAX chip and basically fool proof WRT only having a single output active.

You tie the latch pin to 5v and apply four signals to the A, B, C, and D inputs. The binary pattern applied to this inputs determines the active output.

Couldn't be simpler, and 0 chance of two outputs being active at the same time.

The 4515 only has 16 outputs and the MAX has 20, if you need > 16 you can use 2 or more 4515s.


Rob

ok, lets see if I got this right;

This chip turns 4 arduino outputs into 16 outputs on the chip, by combining different high/low inputs on the chip (4X4 combo's=16), right?

are these outputs strong enough to open/close small relays without an additional power source? I looked at the datasheet again, but there are just too many damn numbers :slight_smile:

are these outputs strong enough to open/close small relays without an additional power source?

Unfortunately no, there may be a version that does but the best thing would be to use a driver chip like the 2803.

This chip turns 4 arduino outputs into 16 outputs on the chip, by combining different high/low inputs on the chip (4X4 combo's=16), right?

Correct, but the equation is 2^4 = 16 (2 to the power of 4).


Rob

Hi gusy, anybody still tuned here? :slight_smile:

Could this work?

I'm in trouble finding MAX378 or similar unusual components, but I know where to buy two cheap HC4067 multiplexers:

Would my schematic prevent the MUXs from being connected to high voltage differentials if properly driven?

Is bottom battery is connected to GND?

If so then this won't work.

If the MUXes and Arduino are isolated from the batteries this sort of thing will work, but you aren't connecting to the negative of the lowest battery so you can't measure that one.

Also one of the MUXes needs to connect to GND, not another AN input.


Rob

Graynomad:
Is bottom battery is connected to GND?

Ignore it, just focus on the others, it's n example!I

Also one of the MUXes needs to connect to GND, not another AN input.


Rob
!

Why??
The reason for which i want to use 2 muxes is to AVOID connecting to gnd! I want to measure voltage difference amongst two pins,not w.r.t. gnd,to avoid "measuring" 16*4=64V in my system!

nt

Imagine MUX1:4 and MUX2:1 are selected, you have 12 volts between A0 and A1.

If the two systems are isolated (different GNDs, separate power supplies) and you can ensure that the correct MUX selections are made I think it's OK.

In this scenario one of the MUX outputs would be connected to the Arduino GND.


Rob

Yes!! it is possible to use the Max11068 connected to an Arduino to read any number of cells ( upto 120 ).
There is no problem except that the most negative part of the battery pack is connected to the maxim gnd. All the rest are floating and the 11068 mux handles this perfectly. I have a system for an ecar that uses this chip and uses 112 cells. Nearly 400 volts!!
No need for relays. The documentation for the 11068 and the eval board 11068eval kit explain most of what you need to do. How you connect to the Arduino via the SDA and SCL outputs on the lowest max11068 using Ic2 or SMB depends on how you want to handle the data stream and where you are displaying the data. . I will publish code when I have it thoroughly tested. If anyone in this forum has done this please let me know and we can compare notes.

I also found:
Analog Device AD7280
The AD7280A contains all the functions required for general-purpose monitoring of stacked lithium ion batteries as used in hybrid electric vehicles, battery backup applications, and power tools. The part has multiplexed cell voltage and auxiliary ADC measurement channels for up to six cells of battery management.
1-6 cells, stackable, 5.09$

Texas Instruments BQ76PL536a
The bq76PL536A is a stackable three to six series cell lithium-ion battery pack protector and analog front end (AFE) that incorporates a precision analog-to-digital converter (ADC); independent cell voltage and temperature protection; cell balancing, and a precision 5-V regulator to power user circuitry.
3-6 cells, stackable, all chemistries, SPI comm, 4.30$

Going back to the OPs first post, are you looking at building a battery management system that simply measures all the cell voltages
or a battery balancing system that both measures and then charge equalizes the cells.
The first one is fairly easy, the 2nd is a lot harder.

I have set up 112 cewlls using the Max11068 eval boards. Not cheap since each board for 24 cells costs $100, but it can do everything you want including having an I2C out that can connect and be read in an Arduino. I did start this in testing and found that one of the boards ( I have 5 total ) failed and Maxim are working on the problem, it might be a real problem with the chip isolation design... don't know yet but will post when I do. In the meantime I am going with a simple system using a shunt IC for balancing during charging and a low voltage monitor chip when discharging and a relay for isolation. Only problem is relay power comes from the batteries so not good if the batteries are left off charge for any length of time. To get over this requires a latching system and with 112 cells it adds up quickly to more $$$.

Only problem is relay power comes from the batteries so not good if the batteries are left off charge for any length of time.

Latching relay?


Rob

MarkT:
I've only skim-read this thread, but it strikes me the best approach is to split the battery into several banks, use an identical Arduino-based manager for every bank, and have them report back to a central controller via opto-isolators. That way each bank has sane/safe voltages and the system is modular and extensible.

I like this.

I'm in research phase- and why I'm reading these, wanting to build my own BMS- and not qualified to do it. Also the BMS I want hasn't been developed yet because it's too difficult for one person to do in a few years. Sucks to know what you want but not be able to make it, but know just enough to make you want to try.

My idea of BMS has very large scope of functionality- which is why I'll never be able to complete it.

  1. It would accept one to many battery 'modules', of any size within reason. I was thinking 4S 38120's for 12.8. Adding new modules easy as plug in another, or remove one, or turn one on/off via program software.
  2. It would support positive ID of the cell (would require some logic on battery, eeprom or something giving the module a unique guid). This adds a world of options, one can treat your favorite battery modules as gentle as a baby & hammer your old crappy modules hardest. I want my favorite module to work at .25C max, but my normal scenario might be 1C. (solar is my usage). If I unplug a module, and plug it in later, the system will recognize it. Another advantage you have extensive history on the entire life of your battery, and learn how to maximize life for power you need.
  3. It would disable problematic cell needing human intervention, but allow for override via the BMS control panel.

Maybe impossible. The idea of putting all the cells in series, I don't like it because the details are lost inside. Is it not wise (or possible) to use PWM to meter out (and in) power to the load or charger? Meter out the power into a big bucket that feeds the load, it sounds simple in theory but I'm sure my thinking is like that of a child- for the experts here.

Good stuff here. If anyone can point me towards a project closest to what I want, would be forever grateful. It takes a lot of time to find the right projects & which words to search to find them (when this isn't your first language).