FlexiBMS - 0.2 HW under work - Flexible configuration and charging BMS

I’m planning on putting the mounting holes of the same M5 screw terminal that DieBie uses into the terminal pads on the Switch-module, but also allowing the wires also to be soldered into the pads if the screw terminal isn’t fitted. You know, as an option. Those screw terminals aren’t exactly cheap. https://media.digikey.com/Photos/Wurth%20Electronics%20Photos/7460408_sml.jpg https://www.digikey.fi/product-detail/en/wurth-electronics-inc/7460408/732-3208-ND/2682499

IIRC, thos screw terminal need to be installed by pressing. So you need the specific tool for this process. That might complicate the manufacturing thus higher cost.

They are press fit, so as long as the footprint for them is designed properly (hole size correct with plating) and hasn’t been contaminated with solder they should work.

EDIT: There are also other options available from Wurth Surface-mount image https://www.digikey.fi/product-detail/en/wurth-electronics-inc/7466005R/732-10900-1-ND/6644306 Though-hole image https://www.digikey.fi/product-detail/en/wurth-electronics-inc/74650094R/732-10884-1-ND/6644295

But anyhow, I want at least to offer the possibility of using a screw terminal.

This new board is gonna be quite busy, not sure if I’m gonna have to increase size width wise, but current board outline is 65 x 35 mm. Will update more as this progresses.

2 Likes

Thanks, no worry’s, as @Pimousse said we are trying to make it work at least on basic, he already recoded a lot of stuff but I’m never messed with STM, so im trying to learn as we go

As soon as I got my hand on the BMS I will measure, it I’m not mistaken the height is the same or a little bit less than the Vedder anti spark

1 Like

Well I got everything on the board, haven’t routed anything yet though. There is still space for optimization (free space available as seen in the pictures around the MCU) and I need to re-wire some of the MCU pins around for better placement, but I don’t think the board is going to get smaller because the connectors can’t fit in.

Couple notes about the connectors: A: Battery connection. Solderable, fits a XT60-connector or 2 terminal quick connect (pictured below) B: Charger connection. Solderable or 3 terminal quick connect (pictured below,sizewise identical placeholder in the picture), can hookup both boost converter and bulk charge ports at the same time. (Bst_charger - GND - Blk_charger) C: Bridge connector to Switch-module, 16-pin. Will carry charging current (not regen current) when using switch module, so no need to connect battery to the Main-module, expect for the XH-balance connector. There is a key design decision to do with this connector that I will post about tomorrow for your guys’ thoughts. imageimage

2 Likes

Not sure about screw terminals. The board will be exposed to shocks and vibration that may lead to unscrew the non-locked terminals. In the industry we tend to replace them by spring terminal to lower the failure rate due to untighten screws. :slight_smile:

These are the particular terminals I was looking at using

It does say in it’s properties “Screw - Leaf Spring, Wire Guard”. I haven’t used a lot of screw terminals in my own projects and not in anything with vibration, so I can’t say if these would work? I’ll wait for your opinion on them.

I just didn’t like the terminal block (B) in my opinion is wasted space, to the sides and up, would be better if the BMS could be 18mm thick with wires to fit in thinnest of the enclosures

Also, what pitch are you using for the balance connector? Appears to be 2.54mm, the VESC uses 2mm and it makes a big difference with lots of pins

The B connector in the 3D PCB picture is just a placeholder that has roughly the same size (not in vertical) as the one I’m going to be using, as pictured below: image

It’s not very tall, in fact it’s pretty compact. You can still not fit it and solder your charge port wires on.

Balance connector is the standard Li-Po balance connector: JST’s XH-series, 2.5 mm pitch.

1 Like

What boost converter are you planning to use? What are the specs? Sounds interesting :slight_smile:

The overall setup is very similar to the Battman implementation, but having benchmarked it with thermal analysis (FLIR IR-camera) I found it to be running very hot. And that was with a lower max peak current, it would still easily reach over 100 Centigrade, sometimes even 140 C, not ideal longevity wise and having it in a closed battery enclosure next to the cells, didn’t jive with me.

So I decided to lower the losses with it, to make it run cooler and allow a bit more current also. Biggest losses were the inductor’s resistive losses and the diode loss. So I beefed up the inductor, that changed the nominal DC resistance of it from 74 mOhm -> 25.7 mOhm and changed the schottky diode from the 120V model to 60V model that has lower forward voltage at higher currents and also placed two of them side-by-side to spread the heat to a larger area to increase cooling.

Input and output capacitors were changed to electrolytic caps to reduce voltage ripple.

I also added an extra measure of security with a watchdog circuit that disables the boost circuit in case the MCU becomes unresponsive. Actually with the changes to the schematic that watchdog circuit would serve better at the charge FET to disable that in case the MCU becames unresponsive. This would then also protect in a case where the battery is being charged via a bulk charger… yea I’ll make that change.

I have also placed a NTC temperature measuring point next to the boost converter, so I can monitor it’s temperature in the MCU. Battman:

Mine:

I need to check one of the shunt resistor values at home before I can give any accurate performance numbers on my current prototype, but the charging test wtih my 10S5P battery pack indicated ~40 Watt average charging power with the 16V laptop charger as the input source.

EDIT: I just checked the Battman boost converters output capacitor, which is a 180µF, 50V, so it might actually go atmospheric if you were to try to charge a 12S pack to full voltage (50,4V). I’m using a 100µ, 63V cap.

4 Likes

I think that what they call leaf spring is the part in red below :

Capture

So the only tighten element is the screw. And for such high current, I wouldn’t rely on screw terminal. In industry, part of electrical maintenance is to tighten screw of terminals and check all connections with thermal vision (iFLIR often :smile: ) because an untighten screw of a power cable will heat a lot and sometimes ignite the whole cubicle (or melt everything around in the best case).

This is only my industrial point of view which may not comply with electronics project. If @JTAG chose this kind of component, I guess he knows the pros/cons and did this choice for good reasons. :slight_smile:

:open_mouth: :open_mouth: Wait… I’m not far to test my Battman FW with a 12S, including charging/balancing feature. Fu@$ ! That’s a bit strange though because he tested it (there is a video of balancing on his YT channel).

Thanks for pointing the weakness of the Battman anyway ! I’ve put lot’s of hope into it, I’m pretty disappointed. Mostly after tens and tens of hours spent (wasted ?) into it. :disappointed_relieved:

The terminals on the Main module are only used for charging so at max around 6 amps I would ball park. The terminal is rated for “Current 10A”, so it is in spec. A loose connection is a loose connection and that is user error at that point, but you can still order your BMS without the screw terminals and just solder your wires directly to the board. It’s just an option that I’m planning on, of course I’m going to test if they work and then based on the tests see if I continue supporting them or not.

Just put them in the package and let the user install them LoL

2 Likes

ARE YOU CALLING MY BMS TO BIG :sob::sob::sob::sob::sob::sob:? You are right, it is kinda big… maybe :sweat_smile:. Well, with the current functionality if you want to keep it single sided it is a challenge to make it smaller.

1 Like

I am not sure whether I overlooked it or not; what cell voltage monitor are you using? The LTC I use has a build in watchdog and has GPIO’s that reset (to a known state) when the uC stops communicating, I use this GPIO WD combination as an extra safety feature to disable / enable the charge / discharge ports (like you suggest to do as well).

@Pimousse from past hobby projects and bug fixing of other projects I found that these type of screw terminal (if bought cheap or just in general) tent to introduce PCB traces / pads to break right next to the point where they are soldered (due to the extreme high mechanical stresses from the screw driver action and the mounting method, it is only a single pin in a small hole), so make sure to make a really beefy solder pad for these terminals.

I use press fits just because they are really friendly during the assembly / disassembly process, also mechanically very very strong. But indeed, they are way to expensive xD.

2 Likes

Ah, I had completely forgotten about the battery stack monitor’s watchdog! The particular model I’m using is LTC6803-3. I need to check it’s watchdog pin functionality, I think it was open collector while active, so I could use it to pull down the gate of the activation FET for the charge FET. I could then ditch STWD100 watchdog IC.

Good to know. I’m gonna try them in the first iteration and if they feel/seem like complete nuggets I’m gonna abandon them and possibly look for another solution, but space is pretty limited.

I was attempting to explain it but it got lengthy and messy. If you look in my schematic it is the “SAFETY” wire. The LTC is pulling it low when everything is ok, when there is nothing communicating is resets and goes high.

And if high the fets wont allow the uC to enable the fet driver:

Stupid but simple, should never be used. It did save me a couple of times during bebugging when I put a breakpoint somewhere and the LTC protected me from overcharging :P.

2 Likes

in my case I can’t use the GPIO pin as the watchdog pin, because they float when logic high, which is the default state when reset or the watchdog runs out. I could replace the watchdog circuit with the WDTB pin from the LTC6803, so it pulls the gate low if the MCU hangs or doesn’t communicate with the LTC6803. I could then drive the gate otherwise with the LTC6803’s GPIO either on or off.