• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

Help develop the perfect BMS, suggestions encouraged

JJJJ

Aspiring apprentice
Joined
Feb 25, 2021
Messages
1,592
OK. Not a new idea by any means. And I am sure that ideas will contradict each other at times due to experience and technical background.

For example, some will support passive, active, or other method of balancing. Some may want integration with the web, others stand alone. Bluetooth may be preferred and or the ability to monitor it via laptop, desktop or other technology; or both.

This is a dream in a sense. In other words it is hoped that a BMS company gets wind of this discussion and develops a product that benefits us all because it is included in both ready made batteries and is available and affordable for the DIY market as well.

If you support a brand, that is OK. The purpose of this thread however is NOT to debate one model versus another. Instead, please indicate the "features" of the BMS that you most appreciate.

On the other hand, if there features you would like to see added in a "perfect" product please share those as well.

OK, I will start. I would like to see a BMS that has a view screen available for each battery pack. It would allow me to view and change settings from the screen without a phone or computer. If I upgraded the software on the BMS it would preserve my previous settings. It would be available for the DIY market and sell for a reasonable price. It could be interconnected with other batteries and the combined settings could be viewed on another device such as a computer. It would easily handle 300 amp plus cells and would work with 12v, 24v and 48v. It would integrate with both AIO and modular inverters such as the Victron or other models. The balancing method would be robust enough to handle the occasional stray cell due to resistance, weather or other constaints.

I am sure I will think of addition features. I open up the floor to members. Please be kind. We are trying to work together towards an ideal product. There is no right or wrong here. Just the sharing of ideas.
 
Last edited:
I've thought about creating a BMS as a kind of reverse engineering effort for the JK one. I made some back of a napkin calculation on engineering time and cost to do this from scratch. Let's just say that $100 sales price is not feasible - you're looking at around $300 minimum to be able to reasonably recover the expenses doing it, and that's assuming decent sales (at least 1000 units to make the BOM worth it). This is just the reality of not having cheap labor and something like a Shenzhen Electronics Market for components etc.

I look forward however to see the final 'wish list' and I'll use that as a starting point to make a cost estimate. Let's see if it can make sense.
 
FWIW, we're in the process of designing a new BMS, and I solicited feedback from the community as well a while back - you can check it out and the progress here, plus maybe see what ideas were presented there that you like:

We'll be ordering up the first proto boards towards the end of this month/beginning of next, but at least for our board it's definitely nowhere close to the $100 price point - I think our BOM alone is in the $150 neighborhood, but we're using all reputable/name-brand IC's and components. To get to really the sub $100 or $200 range, you're going to be getting something done in mainland China, and using primarily Chinese-originated components. Not that it's necessarily a bad thing, just it's those components are may times not available in the US, or have other restrictions/limitations that don't make them viable. When you're doing things entirely in China, you can get some crazy price compression - there's dev boards that I can get shipped to my door that cost less than than what I can buy the components at (at quantity 1000 or so).

Ultimately the more BMS options people have, the better IMO. There really is no one-size-fits-all, and everyone has their own specialized set of features/requirements to meet their needs.
 
we're in the process of designing a new BMS
A nice discussion of your proposed product. If I understood the discussion properly this would be a web based product? There will be a lot of support for that.

On the other hand, the ability to operate off the web would be great to have as well. Perhaps some emulation software on a stand along computer for those who want it? Instead of automated updates for everyone, the option to perform batch updates who prefer this approach.

Also saw some votes for a display screen for each battery. A great idea.

Forgive my oversight. Will this be for 48v or include other voltage configurations? I know the standard is now 48v but there are still a lot of smaller systems out there.

Edit: Was impressed with the ability to roll back to a previous software version if needed.

From the sound of things you are using something similar in the medical community. That says a lot. That is a very demanding setting.
 
Last edited:
A nice discussion of your proposed product. If I understood the discussion properly this would be a web based product? There will be a lot of support for that.

On the other hand, the ability to operate off the web would be great to have as well. Perhaps some emulation software on a stand along computer for those who want it? Instead of automated updates for everyone, the option to perform batch updates who prefer this approach.

Also saw some votes for a display screen for each battery. A great idea.

Forgive my oversight. Will this be for 48v or include other voltage configurations? I know the standard is now 48v but there are still a lot of smaller systems out there.

Edit: Was impressed with the ability to roll back to a previous software version if needed.

From the sound of things you are using something similar in the medical community. That says a lot. That is a very demanding setting.
In terms of the UI, yes - it's web-primary, but for batch operations it can trivially be done using the web API endpoints and curl or any other tool that can send standard rest/json commands (which is probably the most common way to do web API's these days). And we'll have detailed docs for the API - no having to guess or reverse engineer anything. And we also have a master/slave system, where you can basically link devices (via IP), and when you make a change to the master it will be pushed to the slaves - so if you've got like 8 batteries each with a BMS, you can just use the one to manage all the rest (and it doesn't replicate all the values, so things like their individual names won't be replaced, just the centrally managed values).

We actually have two standalone displays we made a while back but aren't on the product roadmap at the moment, but they would probably check the box for display's. One is more 'featureful' and is a 7" color IPS touchscreen, and the other is a 3" epaper display (with atm-style buttons on the left and right)... The only big distinction with both of them is that they're IP based, and as of now they're both POE or USB powered (although we picked epaper to ultimate see about making it battery-operated). So the plus is that you can basically put them where-ever you want, but the downside being that if your network is down, they're not going to display anything (unlike a hardwired device would). The biggest reason we didn't really do much with them is it's so cheap to buy some android tablet and just point the browser to our live dashboard - and that basically checks the box for most people. I think once it's in people's hands and they have a chance to use the web UI, we'll see how much appetite people have for one - but I doubt we would ever do device configuration through it, as it would be a ton of work for very little upside, because we'd have to create all of the configuration controls and dialogs in the native UI. Right now it's more just for giving you views into things, live charts, bar graphs, status indicators, etc.

In terms of supported voltage, we'll be able to do 12v to 72v (basically 4-24 cells), we avoided going higher than that just to avoid getting into the (more) dangerous range of voltages, and many of the components need to be different when getting above around 100v. For our use case, we end up needing a whole range of configurations, so even though it's a bit overkill for a 12v system, it makes sense for us - and if you're and end user, the cool thing is you could still use the same BMS as you upgrade your cells, going from 12v to 24v, and up to 48v.
 
Downside is no MOSFETs

That's the big one for me. I have no issues with contactor based systems in e.g. vehicles or large installations, but for my home battery system I want MOSFETs. I want the independent charge/discharge options it delivers out of the box and I don't want yet more wires and connectors plugging critical things together.
 
Heat bus for operation in colder climates.
Ability to add heating pads so that BMS triggers heating when temperature sensors read below set temperature. Can be tricky due to different operation types. If system is cycled daily (PV charging), one might want to have temperature some degrees above freezing 24/7, consuming more energy on heating.

In an other scenario, say UPS, that is seldom cycled, constant heating might be considered wasteful. In case UPS is needed, startup current is throttled until temperature value is reached. (Even step vise.) True, such UPS is limited, the time you actually need it. But I am sure there are more than two various situations that would prefer different operation patterns of such heating option.

Maybe even time perimeters? Heating starts not only when set temperature value is reached, but also only during set time frame. Example. Why heating all night in vain, if it is more than enough to start heating say 1 hour before sunrise in a PV charging system.
 
A perfect system has to be a modular one.

The perfect BMS of my dreams would be the feature sets of a JBD or JK (those are already very much feature complete) with an integrated ESP32 .
I want my BMS to just do basic battery management things. Protect battery from over/under charge, discharge, temp, current, voltage ...
Everything else regarding interfacing of the battery to the outer world is better with the ESP platform.

The only additional feature I would want is a USER configurable balancing trigger. Whether it is by sending a wire command or just some pin that I have to pull high/low. That is a must for any new BMS player to implement.
 
One advantage to the JK Inverter model is the ability to mount it easily on a holding plate. There are 6 holes, 3 top, 3 bottom that easily mount in a case. So having this ability would be a plus.

Offering a 4.3 inch screen would enable other BMS owners (e.g. JK) to trade over. There have been a lot of battery cases sold for this size screen. I suspect there might be the possibility that users of the older model might be tempted to upgrade and owners of the inverter model trade over. The screen features I mentioned earlier would be nice but might add a fair bit to the cost, perhaps a later update option?

System design would support the off grid as well as the web enabled user.
 
To get to really the sub $100 or $200 range, you're going to be getting something done in mainland China, and using primarily Chinese-originated components.
And then you'll find yourself competing with your Chinese manufacturer setting your BMS on Ali* or eBay or Amazon for less than your cost.
 
Personally I would prefer a stand alone product. However this is a group discussion. Looking for a free exchange of ideas.
 
Do you mean 'has a website, so I can do everything at 192.168.1.90', or 'connects through a cloud-based website so I have to trust mybms.somerandomaws.com'?
In our case, everything is done through a local web interface - it's all meant to be able to be run offline with no Internet - and it can be either hard wired cat5 (preferred) or via WiFi. We have a cloud component, but honestly it's more focused towards enterprise and customer service, you can get everything just using the local UI. I'm a big fan of Home Assistant, and one of my main goals is to have everything run local in my house - I don't mind if something uses the cloud, I just don't want to have to rely on it.
And then you'll find yourself competing with your Chinese manufacturer setting your BMS on Ali* or eBay or Amazon for less than your cost.
Yeah, we have the luxury that we're developing this for our internal use - I just figured "Hey, if we're making this anyway, maybe some others will want it as well." :)
 
I've thought about creating a BMS as a kind of reverse engineering effort for the JK one.
This is a model that has quite a few years of usage under its belt. I remember your discussions about the inner workings of it in an earlier thread. Would be also be intrigued at the chance to test run a model if the chance ever presented itself.
 
I don't have any feature requests really. For me I would like reliability. I'm on BMS #4 for the same pack and one of them I physically broke using stiff wire, but the other 3 were either DOA or had bugs.
 
In the early 80s I worked as a computer programmer. At that time computers were still under development and a "portable" computer weighed a ton.

One feature that intrigued many was the opportunity for plug in components, either in hardware or software. I think one of the challenges of BMS technology is that it can be difficult to talk to all the different standards out there. This can make the code rather cumbersome as it tries to cope with all of the manufacturers, often running the risk of breaking one thing while correcting another. I don't know if this is possible, but perhaps the option to develop the software in modules. The starting model would be basic BMS capability that could talk via bluetooth or cable to a computer if wanted for basic tracking like state of charge, cell voltages, temperature, etc.

The basic BMS would operate as is. There would be "hooks" in the code that could pass a variety of parameters to a communication module that could talk to different inverters such as Victron, Midnite, Eg4 etc. The modules themselves could be open source and might come "as is". The provider of the BMS might offer their own communication packages (eg. Victron or EG4, or xxx) for a price. If an outside vendor wanted to pursue this they could. Again, it would not be trying to be all things to all devices. Instead it would utilize the basic system plus the additional communication package needed for their particular need.
 
In the early 80s I worked as a computer programmer. At that time computers were still under development and a "portable" computer weighed a ton.

One feature that intrigued many was the opportunity for plug in components, either in hardware or software. I think one of the challenges of BMS technology is that it can be difficult to talk to all the different standards out there. This can make the code rather cumbersome as it tries to cope with all of the manufacturers, often running the risk of breaking one thing while correcting another. I don't know if this is possible, but perhaps the option to develop the software in modules. The starting model would be basic BMS capability that could talk via bluetooth or cable to a computer if wanted for basic tracking like state of charge, cell voltages, temperature, etc.

The basic BMS would operate as is. There would be "hooks" in the code that could pass a variety of parameters to a communication module that could talk to different inverters such as Victron, Midnite, Eg4 etc. The modules themselves could be open source and might come "as is". The provider of the BMS might offer their own communication packages (eg. Victron or EG4, or xxx) for a price. If an outside vendor wanted to pursue this they could. Again, it would not be trying to be all things to all devices. Instead it would utilize the basic system plus the additional communication package needed for their particular need.
That is way beyond what I'm wanting. I've never used anything outside the mobile app. I want minimal basics that just work.
 
Please keep in mind that while this might have seen like a good idea, not sure if it is possible or feasible in todays market. It was a thought.
 
Big open source fan here. Did anything come of this?

Also, what does BMS hardware typically entail? Is there is a very open ended set of hardware configurations for how the cells are connected and what other electronics are in the system?
 
Also, what does BMS hardware typically entail? Is there is a very open ended set of hardware configurations for how the cells are connected and what other electronics are in the system?

It's very simple in essence: it's a switch. It switches the battery on or off based on conditions that endanger the cells. In practice, this means voltage monitoring per cell, current monitoring in and out of the pack, and temperature monitoring.

When you use MOSFETs, you can enable/disable current for charging and discharging individually, I wrote that down here:

All the rest is just extra's: communication, bluetooth, app support, etc.
 

diy solar

diy solar
Back
Top