dmwahl wrote:I'll share some my experience as one of the people who has done this in the past...
Developing a digital BMS, regardless of the specific architecture, is orders of magnitude more complicated than an analog one. Most of the AFEs out there are designed to be used in a single configuration (ie 4S, 16S, etc) and aren't well suited to a design that will be configured after build. My suggestion would be to figure out what you need for your own use first, and then if you want to, offer it to the outside world. I'll warn you that while there's often a lot of initial enthusiasm for something like this, once you figure out what the price has to be the enthusiasm dies down quite a bit. I suspect that's why a lot of the threads just kind of disappear. It's a great learning experience, and I'd completely recommend you go ahead with it, but just be ready for it to get complicated quickly. ES user circuit has a bms for sale, and if you ask me was wise in that he just made something that would work for many people, but didn't try to make it applicable to 100% of people.
I'm not trying to dissuade you from doing this, just want you to know why some of the other projects seem inactive. My thread may be quiet, but the design is still ongoing. I've been fortunate enough to get connected with several companies doing commercial systems, and got to design several different BMS products for them that I wouldn't have been able to had I not done it on my own first. It's fun work, but a lot of work. I'll be happy to give any advice I can to help with your project as well.
Thanks for your comments.
I have read through the MAX14921 datasheet lots of times and it appears it will work with anything from 3S to 16S and all that needs to change is the unused inputs should be shorted together (which can be done via switches or solder bridges). I looked at pretty much all the AFEs available before settling on the MAX14921. The reason I want to use the MAX14921 is for for availability, price and simplicity. The communication is pretty simple, no programming required. It's 16S so I only need one AFE, one ADC etc. It allows me to use a single more expensive and accurate ADC/reference. The Maxim documentation is as always very easy to follow and there are good white papers and evaluation kit datasheets available. It has integrated FET drivers for balancing, a 5V LDO which may be able to power the logic and low power consumption.
You make a good point about designing for my own use first - trouble is I have lots of ebikes and want a very flexible BMS
I am designing this mainly for myself as I'm unlikely to make much money from selling it. There will probably be (almost?) no circuitry on board for features others may want such as an external LCD. It will just have some I/O lines and power broken out which things like that could be attached to.
All the expensive components can be had for free through sampling programs so the bigger development costs are going to be the PCB prototypes (~$100 NZD each for a 4 layer board). There's a very good PCB manufacturer
near me in Auckland where I will be getting those done.
I'm certainly susceptible to losing interest in projects after a while. Usually it's because I overthink things and try to get everything exactly right before starting. I tend to work much better just diving in and getting to work. That's why I'll be doing the first prototypes on a breadboard. I already have the Maxim components mounted on breakouts although I need to redo the MAX14921 on a breadboard compatible inline breakout.
I'm planning to use the same PCB layout and very similar components to what Maxim use for the AFE portion of their evaluation kit which should make the circuit and PCB design much easier. The Rigado BMD-300 module has practically all supporting components needed for the nRF52832 on board which will also help.
My current BMS (one of them anyway) is a 14S model from Greentime. It seems to work fine but it has no feedback so I would have no idea if it failed. The important features I want over this are:
- High accuracy state of charge estimation (coulomb counting)
- Charge time estimation
- Ability to see battery/power stats on my phone while riding via Bluetooth/easy pairing and launching of app via NFC
- Self tests/feedback to check it's working properly.
- Audible alarm for certain events
- High efficiency FETs (paralleled) or none at all and disable controller.
- Use controller shunt for higher efficiency?
- Easily adjust max/min cell voltage and balance voltage for long life. Based on accurate voltage measurement.
- Battery history/statistics
- Communication with charger
- Battery temperature monitoring. My battery occasionally gets pretty hot when charging outside in the sun.
- Reasonably splashproof (will often be used in the rain but will usually be inside a battery case)
I actually linked to circuit's BMS in my post above. It looks good and it's very similar to what I want to create. It has 10mv accuracy which is the minimum I would like (I'm interested in which AFE/ADC/reference combination he's using to achieve that). The main difference is that I want to use the nRF52832 with it's BLE/NFC capabilities and low power consumption. I'm not sure if the software is open source - I really want to be be able to change it. It would probably work just fine for me but I like to do things myself - that's why I have DIY ebikes rather than a store bought one.
I'll post some questions up here soon. The areas which I haven't specced out yet are the current monitoring - I'm thinking LTC2050 so I can make use of the high accuracy MAX11163 - and how that will work with differing ground potentials under load. The other main thing is the charge/discharge control FETs and drivers. I haven't looked at how much power they require but I'd like to make the whole board run off the 10mA MAX14921 LDO if possible.