Not quite true, the cells are actually quite a bit better than they used to be. But, yes, short stroking packs helps an awful lot without much range loss.
What would you pay for such a unit? I’ve talked with a few people about building such things, but I don’t know if there’s an actual market for high end, $150-$200 BMS boards that can do all that sort of stuff.
I’d pay $50-100 for a good BMS, but something in the hobby/small robot range. Ex. 2-6S, maybe 1-2P configurations.
My idea was: so much of these circuits is basically reused “library” type components. 3.3V regulator here, ST Microcontroller there, current sense circuit there, FETs + Driver of various sorts. Yet, most circuits get made from the ground up using cumbersome graphical editors. Why not make it code based, so you can get the benefits of abstraction and reusability, and the benefits of open-source development.
Step 1 could be to generate the netlists and BOMs in some domain specific programming language that supported libraries, functions, code reuse, and maybe some basic labeling of net characteristics. (tag a net with current flow, impedances, etc, so routing would be easier)
Step 2 could be an ML based auto router and auto placement tool
Step 3 could integrate on the software side of the micro controller too.
@Vertiginous has done an awful lot more PCB work than I have and can likely speak to that with much more authority. But $50 isn’t going to happen short of large scale production of thousands of units, $100 probably won’t either. There’s a lot that goes into a BMS, and a small scale, sophisticated BMS just isn’t going to be cheap in volumes of 50-100.
None of what you’ve suggested is remotely easy and trying to build a toolchain to even do a half-assed job of what you suggest is vastly more work than just building the BMS using the current EDA tools like KiCad. If it was profitable and better, it would have been done by now, EDA tooling is impressively complicated and can charge vast amounts for a good license (look at the cost of Altium sometime) so if this was a doable solution on an open-source project it would definitely have been done commercially by now in one of the major EDA packages.
Onto BMS design itself - it’s not actually very modular at all. Every single design has specific tolerances, component choices, layout considerations, etc. etc. that need to be considered on a case-by-case basis for everything from high side differential voltage sensing to a variety of necessary safety mechanisms and considerations. There’s a reason there are various dedicated chips to try to help solve some of these problems (the TI BQ796xx series are a good example) and in case you haven’t taken a look at current semiconductor and manufacturing prices, @Syonyk is absolutely correct - things are through the roof right now and a tremendous selection of parts have more than 56-week lead times currently, or insane pricing (10-100x the 2019 baseline is not atypical for specialized ICs and some MCUs).
If you think you can do it, by all means don’t let me stop you. But I’ve got a 6s and 10s programmable BMS design laid out and costed (well, costed six months or so ago) that priced out to ~$200 each at 1k+ quantities, IIRC. I’d expect that to be at least 50-100% more now, if we can even get the parts (which I’m almost certain we cannot, given the state of our other quotes).
I guess my point is that the super cheapy BMS that you can get today are for things like a usb phone power pack; no data is exported. Phones and laptops have most of what I want, such as exporting the data like estimated pack capacity, % remaining, some ability to customize the charging profile (i.e. stop charging at 90%), or even “I know I’m going to put you on the charger and not need you for 8 hours while I sleep; please charge slowly to keep the waste heat down to also improve battery longevity”. This last one I “fix” by having a 1A charger by the bed only, and faster chargers elsewhere. Exporting the data, even if it’s read-only ttl serial, that would be a big improvement. I figure this will come eventually, i.e. <$1 8-bit microcontrollers today vs 20 yrs ago are astonishingly configurable and have so many peripherals.
What you’re talking about now is more into smart charger and battery monitoring than battery management, really. The BMS complexity is the per-cell balancing and measurement, etc. in the analogue and A/D conversion section. I posted a link in the Dewalt thread about an open source BMS that’s out there you might consider if you need an actual BMS, but it’s not a charger (and no BMS that I’m aware of provides charging features, charging and BMS are separate roles, although some units may combine them into the same chassis). If you don’t need to manage per-cell balance, then just look at the variety of open-source chargers that are out there, I don’t have any links handy but I know there are several, and there may be programmable ones from China that use amp-counting or something else and have an RS232 API or better.
Ah! I hadn’t considered that the 3 things were separate (charging, monitoring, BMS); I had just assumed that at some point the chipsets just all fused together into one thing (well, the monitoring, BMS portions). Yes, BMS I don’t care much about, it’s control over the charging and monitoring I want. But I see what you mean now, thanks for pointing that out!
Without delving into the internal architecture of the RC hobby chargers, it’s hard to say… but I will say that they don’t do bulk charging over the high current leads and then balance over the balance leads. They actually charge over the (fairly large gauge for what most consider reasonable) balance leads.
A typical RC hobby pack (of terrifying terror, really - they’re soft sided LiCoO2, and if that doesn’t make your heart skip a beat, go look up where that chemistry enters runaway) will be a 2-6S pack, with some fat (8-10AWG) leads coming off it for main power output. The device will just have a bulk low voltage cutoff - you don’t hook up the balance leads to the car/airplane/quad/etc. Don’t abuse it. Then it will be recharged from the balance leads, which are a lead for each voltage region, and it’ll be top balanced at the end of charge if needed.
I mean, you could use one of the MingHe DPS6015s for that. They just don’t exist anymore, and, no, I’m not selling my small collection of them.
The charger (for lithium) only needs two things: A current limit, and a voltage limit. Anything else is just complexity that need not be there. Shove X amps into the battery, until you hit Y voltage, then hold Y voltage as the amps taper off. A basic lab power supply with voltage and current limits is actually perfect.
If you’re going to count amp-hours in and out, that should be in the BMS.
Not really. The BMS chips I’m familiar with (same as Vertiginous) export useful things you can use to monitor, but they’re fundamentally analog frontends - “They talk to the battery so the microcontroller doesn’t have to.” The BMS chip controls the balance bleeds, and will typically do overcurrent protection - if the shunt voltage exceeds some threshold, slam the FETs closed. Anything else is going to be on the microcontroller that drives it, but the BMS chip will handle basic safety. They usually have the over voltage charge termination and undervoltage discharge termination handled internally as well. Once programmed, the BMS chip should protect the pack from blowing up, even if the microcontroller has halted.
That’s presuming there’s a decent BMS in the pack that properly handles balancing/etc, right? Or for a single cell (although I’d still want a proper PCB low/high voltage cut-off).
I was wondering if you’ve considered these server rack Lifepo4 batteries that are all the rage now. They use grade A cells and a pretty good bms with low temp cut off, and communication. Not safety listed but for an off grid scenario they are great deal. Paired with an all in one off grid unit like this and some used panels, could have a nice solar shed.
I’ve been considering a setup like this in my detached garage for winter storm backup.
Not too related, but battery related, for a low clearance wire along several cells, would something like this flat 16awg speaker wire probably work fine? Probably would cut along the middle to create 2 single conductors, basically function as a somewhat flexible bus bar type deal. And then reveal enough and solder over to the battery tabs, and then end up covering the whole thing in some heatshrink, and use some 3D printed spacers between cells ends (18650), probably stacking them + to +, - to - to avoid possible putting of them in series, to keep them in parallel. Basically creating a long ‘stick’ battery pack.
It is a bit thinner than I’d like. My other plan was for 20awg solid core wire otherwise. Thickness is definitely at a premium. I wanted to find/use some of this loop wire, but it’s basically impossible to find for regular ordering, since it’s meant for commercial system installs and the like. Fully insulated, no adhesive around, and with a clear amp spec (I’ll stay at least 2-3 under max).
And just as I was trying to find that link, I came across this and this one which is bloody expensive though. The 18mm vs 10mm obviously can handle a good bit more power. The 18mm says ~18a, the 10mm says 11a.
Looking at the one I linked above, it’s basically this sewell product, which is 0.325" (~9.5mm) and says it can handle 10a, just like the more expensive one I just linked above which is actually 10mm wide.
Really would be better to go with some kind of serial + parallel to get higher voltages rather than amps. But that complicates the PCB a lot more wiring and such. In which case the thickness starts getting back up into the much more challenging side of wiring it up.
Run some boost to 5v for a music reactive arduino-based platform, and then some number (3-6, haven’t decided) 45 pixel WS2811 RGB strips. What I really just need to do is hook it all up with a single strip of 45 pixels and measure actual power usage, as well as max using a variety of settings/music. I suspect it’s going to be a LOT less than the ~70W or so max if I use all 6 strips (plus the boost + arduino).
Doesn’t really do pure white for the light, and generally won’t have on all pixels in most settings, but do need to just run to get some solid estimates. I’m hoping each strip will generally be at most 400-500mA, because the little tiny boost boards I got are max 1a, but I don’t want to run them more than 700-800mA continuous. Busy rest of the week/weekend, so I’ll have to look into setting that up next week to get a solid estimate.
Hm, for anyone looking to do a fairly large size off-grid solar, these LiFePO4 12v batteries (min order 8) seem like a pretty fair deal. Used, but tested to +/- 100Ah per battery, down from ~138Ah new, so ~27% decrease in capacity. Seems like a solid deal.
Ah, hm. That’s a point. Although if you’re limiting the amount of power you pull from them to well below their rated, shouldn’t resistance be less of an issue? Says discharge of 150a, so if you limit to 50a for each battery, for relatively smaller scale things, wouldn’t that be acceptable?