Free and open source BMS requirements

If someone were to make an open-source BMS, for the benefit of the personal e-vehicle community, what would be the requirements? Maybe it could also be used for bikes, scooters, go-karts, motorcycles, and e-surf. I’ll start with this list:

180A current handling
6-16s
4x6” size
High side switched and sensed
2.7 Ohm, 50ms pre-charge circuit
Memory to record charge/discharge history and peaking events
Bluetooth
USB
On-board cell monitor and passive balancing
Isolated CAN
Parallelable or stackable with a single master
5mm threads or studs for power
BF1 style fuse
Battery temperature monitor inputs
UAVCAN option, CANOPEN option, J1939 option
$200 hardware sale price

Can you think of any more? Or are these requirements fucked?

Oh and if there is already a FOS BMS I can use that has CAN please let me know… save a lot of effort

3 Likes

16s at minimum. 18s would be money. It’s gonna happen. 12s isn’t even enough for alot of us anymore.

1 Like

There are 2 projects in our community.

METR supports diebiems via can.

I think perhaps the killer feature would be, instead of BAM you’re off because we’re in protection, do a gradual cutoff? Low passive drain is also important. And fault indicators. blinking lights or audible or both.

I’ve been arguing (mostly with myself) that the most important things are, in order:

  1. monitoring/alerting
  2. balancing
  3. protection
  4. cost
  5. size

Protection often gets traded for size, cost and safety (hard off can throw you off or leave you with no brakes), but it really should be higher priority.

Balancing isn’t even that important if you have good monitoring (healthy packs don’t need much balancing, unhealthy packs need more than just balancing).

Cost and size are important factors. DieBieMS gets left out of a lot of builds because of this (and the 12s limit, and sparse documentation).

Also, the Chinese smart bms has a lot of features in an affordable package, and a lot of people have been poking at it. I think there’s at least one open source firmware for it:

3 Likes

I’ve looked at DieBieMS quite closely, and I would totally use it! Would save a lot of effort! The only problems are it is 12s and is written all in C. New driver for BQ76PL455 or LTC6813 (16 or 18s pack) is easy enough. I think (could be wrong) that lib UAVCAN requires cpp, which might require some significant rework of DieBieMS firmware. I’d also like to add some memory so we can see voltage vs coulomb count over time.

FlexiBMS looks awesome! I cannot find the repo for software or hardware. Has the it been posted anywhere? I think they are planning on open sourcing it at some point. It sounds pretty good! It might save a lot of effort. Until I can look through it I don’t know what it does though.

That other one has no CAN bus :frowning:

2 Likes

Lol that was fast!

FlexiBMS I’m not of the open source status or intention. @Pimousse?

Here’s a nice summary of similar stuff (thanks @janpom)

I think smart bms is an implementation of the LTC6812 reference design, so might not be a bad starting place. But then again, I’m absolutely n00b at this stuff.

Oh there’s also this

But I believe it’s for powerwall applications, and no can bus. Big, modular, expensive, high power consumption. But might be useful for some ideas. Got the link from this:

My understanding is that size/heat will be a big factor, considering the size of enclosure on a typical esk8.

That being said, no such thing as too much choice and a high discharge bms we dont have as yet, maybe a sandwich :sandwich: and look at the cooling @shaman’s up to

1 Like

I think another big seller would be a higher balance current. Some active balancers have huge balance currents (1a upward). BMS’ rarely are over 150ma. If you could make a CAN configurable, high balance current, up to 18s bms, you’d be right in the game

Are we serious about 18s and 1A balance currents? A 10p pack would have around 100-150Wh per s. To passive balance 3% of 150Wh with 1A@4V would take about an hour. I guess that makes sense.

18s though? 66.6V pack? The LTC6813 is much less available than the BQ76PL455…

From my understanding most people(including me) here bypass discharge for a heap of different reasons. I’ve actually been thinking about removing the BMS both of my boards and having a splittable 12s battery. Then I just use my dual 6s hobby charger which can push up to 15A to each channel for charging at whatever rate I prefer. The annoying this is sorting out the connectors.

Do you mean for balancing reasons? Or because the bms is bad at balancing or slow?

It’s because there is the chance that the BMS can cut power whilst riding and most of the people I know would rather kill their battery than injure themselves.

1 Like

Now here’s what and I’ll tell ya. The purpose of a BMS is:

  • to prevent overcharging of the battery causing fire
  • to manage the balance of the battery and prevent cell overcharge causing a fire
  • and to report state of charge of the battery for the operator to make intelligent decisions

No computer will ever make a determination of when riding or flying time is done, not if I am writing the code.

1 Like

I don’t think this is necessary at all if balancing can be turned on arbitrarily, and more important, status is visible. I don’t think people would mind waiting if they knew what was happening and could see progress.

This is honestly very close to fullfilning all my requirements in terms of bms except I cannot get the precharge switch to work properly (needs to be unplugged). 200a smart BMS - ANT

I feel like there’s way more potential under the hood to currently don’t have the time nor experience to dive into it.

But it’s got a good form factor and a loud buzzer that you’ll hear through the casing.

It goes into a low power sleep mode when not in use and needs to be connected to a charger or a switch (which I haven’t figured out yet) for the ble module to wake up.

I’ve also used some other smart BMS’s on discharge for a couple years now with no issues (the precharge switch works and the smart features are decent) but the voltage wasn’t configurable and its footprint was huge.

I got one of those 200A units from aliexpress. Mine says E&J Technology on it. Its not bad. It does its job. But I have nicky-nitpicks:

  • Doesn’t have CAN, but I guess most people don’t need that.
  • no usb. What if I want to use a PC config app or flash it with a USB bootloader?
  • Soldered leads tend to break in high-vibe environments, and thermal runaway to melt the solder in high current applications. We have both here. Bolt holes or studs are needed.
  • It has low side switching, so that’s good for making it cheap but not as clean as high side switching for activating all the regulators and power domains at the same time.
  • 7x2 back-to-back D2paks on there! This stack is 3x6x1", literally 2x the size it needs to be.
  • 7 fets are necessary because the fets are cooling through their cases and a .020" thermal pad. (This complaint will bite me in the ass when I get to layout)
  • soldered 2x #10’s coming off each end, there’s no mounting holes, and the screws aren’t flush with the panels on each end. This is not convenient for mounting into an enclosure or cooling.
  • The balance resistors are also covered by a foam thing which takes the .25" space between them and the Aluminum panel. They may as well have just left the resistors in air, not that it balances fast enough for a 10p battery anyway.
  • I don’t think the aluminum panels will do anything in this configuration. Convective cooling would probably be better than this. Why are there no mounting holes?
  • No fuse. BMS should have a fuse in case you try and arc weld with it.

I like that it has bluetooth, a piezo. I will add a piezo.

I was thinking of recording coulomb count vs voltage so you can see the battery degrading over time. Need usb to download all that data.

2 Likes

200 bucks for a bms is crazy…

Perhaps you meant @SimosMCmuffin ?
:slight_smile:

Indeed time to go to 100v batterypacks. Just like EUC. They use a much higher voltage

1 Like

Omg sorry major brain fart lol

1 Like

I kind-of feel like both flexbms and diebiems do all of this except 18s and larger balance currents. Not only that I don’t see why then both couldn’t run in tandem over CAN to do up to 24s or more with some tweeks in software. Both are(or soon will be) compatible with the metr app as well.

I guess what I’m saying is that there already is, or soon will be products that do exactly what you already want to make -except for huge discharge values which a large percentage of eskate builders don’t want/need. What will your design do that will give it the competitive edge over the other two?

PS: It’s awesome that you want to put the time into this, I just want to make sure you are filled in on what will already be available :slightly_smiling_face: