Go Down

Topic: my first big project - BMS - is it possible? (Read 10 times) previous topic - next topic


Hi all,

You can scroll to the Essence if you want.

Short "me" story:
I'm a newly registered member, in a "trying to figure out arduino" status, being baffled about the possibilities.
My business is computers and Arduino seems a good way to break out of "the box".
I learned about "some" basics in electronics (I understand things like voltage, current, resistors, diodes, transistors, but that's about it) 
and about Java programming (a long time ago, so the Arduino environment looks *just* a bit familiar).
I essentially discovered and received an Arduino board a few weeks ago, and took some time to read the basics on the Arduino website (and successfully practiced some examples mostly by copying and adapting existing code).
I still have to discover a lot of the possibilities.

I also happen to posess an EV (a 2008 150V Nimh Vectrix (http://www.vectrix.com/products/vx-1, but older model); now with about 12000kms on it.) . This fact triggered my curiosity about battery technology, so I started to get into the matter (ie a lot of forum reading).
It seems my beloved vehicle has no battery management system, and one battery pack after another gets destroyed by unbalanced cells (mine survives still, but certainly won't last forever either).
The separate cells with a lower SOC (state of charge) tend to get "reversed charged" and die when the pack is drained beyond a certain point.
(there are other issues like temperature and systematic overcharging, but that aside)
The only system used for balancing is so called top-balancing, where systematic overcharging the whole pack should pull up the lower SOC cells.


Picture an Electric Vehicle with 102 Nimh cells @ 1,4V (when fully charged) and no "battery management system (BMS)"
I want to avoid that the cells get out of balance with each other.
My first thought was to connect all separate cells to an Arduino (with som I/O extenders?), measure the voltages, compare them and act upon differences. (ie. warn me or something)

I'm afraid that Arduino has a too limited number of Analog inputs to realise that.
So maybe I'll just have to compare groups of cells instead. (accuracy will go down)

I know this is vague, but I prefer to check the main story first. then go on with some details.
I also realize that this may be to big for me as a beginner, but I'm not scared to learn, and I'm not in a hurry.

Am I in any good direction?? Can such a thing be done, and how?

Any help or better ideas are welcome.




I'm no expert, but as faar as I know, theres ways of getting more digital and analog inputs, by buying certain chips. I've not gotten to the input part yet, but I will.
Right now I'm working on using several outputs. I figured out how to link shift registers and thereby use 3 digital ports to run 320+ outputs on 3 digital ports.

Your idea should be possible. Though I'm wondering what kind of output system you're thinking of having?
I recommend either LCD, or 7 segment displays.

I haven't gotten into LCD's yet, and i believe they're harder to set up and program.
7 segment, 4 digit displays are easier to manage then I thought. Just don't get stuck in the thought that
"I don't get the different digits to show different values".

If you just want a graph output, there's the led bars. Though, you'd probably need lots of outputs for these as well.


I already managed to control such a display. I pulled it from an old decoder, and got it to work with multiplexing. ( again by adapting existing code)
So yes I was planning to use it to show me what cell is failing and Soc data


There are special chips, design to do such things, like monitoring individual cell in the battery string, equalization, balancing. Arduino could be in this case a log/monitor Manager . :)
I'm not an expert in this area, but you can dig in web-sites maxim and I think, TI. Look through their application notes, sometimes it's really helpful for quick-learning.


There's no practical limit to the number of analogue inputs you can have if you add some external hardware.

However I assume these cells are wired in series? If so you have problems with measuring very high voltages and that probably means isolating the inputs which starts to get complicated.

Rob Gray aka the GRAYnomad www.robgray.com

Go Up