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

Instead of using the grey ribbon that is 28 awg you can use the colorful ones that is 24 and works just fine with most plugs

My current board I’m using 6 pins total in a ribbon to charge, by your test it might be a bit overkill, better safe than sorry. As soon as I get everything working I will give some long term feedback on how it handles the current with the heat from everything else plus being without air circulation inside the enclosure

I haven’t followed the whole topic, but it kinda looks like my BMS I am designing at the moment :wink: Just I will be using block mosfets, isolated CAN + USB and no boosting circuit as I don’t need it :slight_smile:

But overall good work :slight_smile: You work with KiCad? Because at first in 3D views I thought its Altium 18

I’m using KiCad. Moved to it from Eagle about a month ago, as the Autodesk acquisition with subsequent change to move into a subscription pay model didn’t jive with me well. Decided to try KiCad once more and it’s pretty darn good now and I much prefer it to Eagle now.

Are you going for what specific MOSFET for the discharge? FDBL86561-F085? https://www.digikey.fi/product-detail/en/on-semiconductor/FDBL86561-F085/FDBL86561-F085CT-ND/5209201

I will use case mounted MOSFET’s, much easier to deal on higher currents. Plus I will have some copper busbars connecting 16 x xt90 connectors so it makes everything much easier. It’s in SOT-227 case :slight_smile:

https://www.digikey.co.uk/product-detail/en/ixys/IXFN420N10T/IXFN420N10T-ND/2354436

In the beginning of my PCB design I used Eagle, and then tried out Altium with really high level of tolerance to learn and now it’s a bliss :smiley:

Accidentally? Once you know you have auto power-off (like your design will have and mine has) you don’t even care about turning it of. Once I arrive somewhere I just put my board somewhere and move on, it is so nice to never have to worry about turning off the board :grin:.

4 Likes

This is from another thread, but really case in point for the auto power off feature.

1 Like

Okay, thermal test results for the 28 AWG ribbon cable. IR-images are taken with a FLIR ONE.

Below is the test setup presented. Bench power supply is ran in constant current mode with wires leading to the ends of the ribbon cable (I painted the cable partially black with a marker to see if it changed it’s IR-emissivity, but it was unaffected).

I tested the performance on one end with a run-of-the-mill 100 mil pin header and the other end got a cannibalized IDC-male connector with the shroud removed so I can plug it in. This was done to test to see if there is any contact differences/problems with otherwise seemingly identical pin headers.

IMAG0864IMAG0865


Thermal pictures for 5 Amps current:

Cable temperature is no problem, only a very slight increase. Slight temp increase also at the contacts with the normal pin header running a bit hotter, which would lead me to assume a bit worse contact connection compared to the cannibalized IDC header. Maybe the 10 Amp test current will show a bigger difference.


Thermal pictures for 10 Amps current:

Now we are starting to warm up! Middle point of the cable is around 48~50 C and the difference in the contact quality at the ends is showing up quite clearly. Cannibalized IDC header is running roughly about 10 C cooler than the normal pin header at 66 C. Again not critical or extreme temps, but I would start to get worried about the performance over a longer time as the contacts heat cycle at each end…

Based on these tests, I conclude that 5 Amps current over 4 conductors is very doable and should last in use. Factoring in that the paired male and female headers from the same manufacturer will most likely also have a better fit overall.

3 Likes

After seeing all that, I would unsolder the header and solder the ribbon cable directly onto the PCB after I got it. So My vote is “I don’t care, A or B” :rofl:

Wow ! That’s a real scientific approach ! Thank you very much for these tests ! Also, I note that the heat really stays on the used wires and doesn’t spray into the whole ribbon cable (plastic is not really a heat conductor).

Just for science, would you mind redoing these tests with the ribbon layout I posted (separate Bat+ and GND at each end) to see if there is a difference with your layout ?

Based on the test, I would speculate that there wouldn’t be any real difference. I mean, I tested 4 side by side conductors and especially at the 5 Amp current the cable had no problem dissipating the heat. The warm zone was just around the current carrying conductors. So the results would otherwise be identical expect there would be another group of 4 conductors on the other side of the cable at the same temperature.

The insulation is also so thin between the conductors that it’s not going to transmit heat well to the next conductor. So the heat should stay quite well around the hot conductor.

Insulation thickness demonstrated by seeing my fingers through it against bright light.

I would say : Less thickness = less thermal resistance, right ? Anyway, with 5A, you’re fine and if in this “worst” thermal case it’s even good, it’s better than having lot’s of EM noises. :slight_smile:

So :

  • 5A current through Ribbon cable : checked :white_check_mark:

What’s next ?:smiley:

I guess at this point the next step is for me to do sanity checks on the schematic and layout and once they look okay to me, release the files for public review and if no critical mistakes or errors are found, move into ordering the PCBs and building the first iteration prototype.

3 Likes

Count me in for beta testing ! :slight_smile:

I would be interested in firmware, are you going to use some kind of Framework like mbed/arduino or just plain STM32Cube ?

I’m gonna go with a pretty simple state machine flow for the firmware. I’m gonna use at least the USB VCP driver from the CubeMX. I use AC6/STM32 workbench as the IDE.

I don’t see a need to use something like a RTOS, so I’m going to KISS it. I’m going to write my own libraries for the I2C-, USART- and SPI-buses.

1 Like

Ok, I am almost done with the sanity check on the project, but I found a pretty critical footprint mistake with the module interconnector. Not a fatal error and I have come up with a backup plan.

So what’s the problem? Well, I had been using a normal UNshrouded 2x8 100 mil pitch header as a placeholder on the board and going through all the footprints used on the board and checking their sizes I noticed the mistake I had done with the interconnector. It’s shroud takes up quite a big area around the pins, as shown below.

image

Solution? We’re going to use an unshrouded connector, just like in the picture above. I would have liked to use a shrouded connector, because it would have given the pins some protection mechanically and it was polarized so, you couldn’t plug in the ribbon cable connector the wrong way around. I can 3D-print a protective shroud for the connector, if it’s not used and I can add a silkscreen mark for the notch on the ribbon cable connector, but as you know, idiots usually find a way…

Male: https://www.digikey.fi/product-detail/en/sullins-connector-solutions/PREC008DAAN-RC/S2012EC-08-ND/2774886 Female: https://www.digikey.fi/product-detail/en/sullins-connector-solutions/PPTC082LFBN-RC/S7076-ND/810214 Ribbon: https://www.digikey.fi/product-detail/en/sullins-connector-solutions/SFH210-PPPC-D08-ID-BK/S9288-ND/2095297

You could fill one of the female up with epoxy and leave off one of the male pins to polarise the connector

Otherwise good idea, except all 16 pins are used

1 Like

IMHO, you’d better design an idiot-proof and reliable BMS. So loosing the coding system and the mechanical holding system seems to be quite away from both goals.

You may want also to avoid extra work on the PCB such as adding epoxy here, cut a pin there as it will increase your workload and potentially mistake (you add a human failure risk).

OR

This can wait the next iteration. Maybe after the first one, you’ll figure out that ribbon cables are not the way to go. :wink:

1 Like