Free and open source BMS requirements

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:

Theres a lot to like about DieBieMS. The hardware is awesome. The software has almost everything. Almost. It doesnt have a cpp wrapper and doesnt have uavcan.

I guess I could just fork it and add uavcan. But since 90% of the code comes from cubemx, 90% of the work is in adding the cpp wrapper and uavcan, so I may as well start over.

By comparison, the pcb will only take me 2 weekends once I know what to make.

3 Likes

Here is a proposed block diagram. I think this covers most of the vehicular use cases. The trade-off that I am making vs most bmses is that I have a second switch to tell the pack that it is in “Charge mode”. Charge mode allows the processor to disconnect the main switch for balancing, and when the charge is complete. In discharge mode (pack enable = on, charge mode = off) the processor cannot disconnect the switch, like when regen braking.

1 Like

Main reason i mentioned these 2 things is to broaden your audience. People making ebikes are getting their voltages higher and higher, and people making esk8s are making packs bigger and bigger (higher capacity). Therefore if you of configure the balance current on an App or whatever, but had the potential to get up to those currents, you’d have a larger clientele

1 Like