diy solar

diy solar

DIY BMS design and reflection

Today I added the gate drivers and the mosfets for the disconnect (just 4 for now, I'll add the remaining 16 when I'm 100 % sure about the design of the gate circuit) and I chose the PTC for the recover/precharge circuit (only took 3 hours... yeah, PTCs are a PITA :p), it's this one if you're curious.
 

Attachments

  • BO_DPB_1630.pdf
    82.7 KB · Views: 16
Last edited:
Guess what? I changed the PTC... At least this time I knew exactly what I was looking for ?

I wanted a 3 A recovery current (used to charge the battery when in under-voltage protection mode) but that's just not gonna happen without big and costly power resistors (shared with the precharge circuit), I had to limit it to 2 A (and even then I had to use 4 10 W resistors).

I added the recovery and precharge circuit and the temperature sensors so there's only the power section of the main disconnect left to be finished.

But,

I've done some calculation about what kind of power the TVS protecting the mosfets will have to handle... the answer is almost 100 kW... but that's not the worst (I mean 10x 10 kW TVS can do the job), the real problem is that the clamping voltage would be 103 V for a 64 V TVS (lowest we can put on a 16s pack) and that's like more than 25 % over the voltage rating of the mosfets... I checked quickly and 100 V mosfets (still not ideal but I can manage the 3 V) would be 1.5 mOhm instead of 1.1 mOhm of Rdson (which would be somewhat ok actually) but they also are 30 % more expensive...

So yeah, 100 V mosfets aren't an option, so TVS aren't either. What I'm thinking about is some active circuit but I need something able to handle 10 kA at 65 to 80 V for about 1.2 ms.

All of this is based on a 10 kA current flowing into 2 m of 10 mm diameter cable (about 2.4 µH of inductance). That's 120 J stored in the cable.

Now that I think about it, seeing the time figure: if it takes 1.2 ms to unstore the energy it takes the same time to store it (more or less) and the BMS is capable to detect and interrupt an over current under 5 µs (actually 4.46 µs worst case calculated, need to confirm in real world of course) which is about 250 times faster, so that might just have saved my butt actually. I need to look more into that (arg, more maths, ...) but if the inductance doesn't have time to store a lot of energy before the current is interrupted then we're fine.

Any thoughts?
 

Attachments

  • BO_DPB_1630.pdf
    125.4 KB · Views: 17
Last edited:
Yeah I almost answered about that but since I'm not really designing a BMS like the majority of BMS I didn't.

The wires can be pretty small if you don't want balancing but if you add 3 balancing boards then that would need 20 AWG minimum, 18 recommended.
 
So as I'm a bit saturated by designing the mosfets protection(s) I started to route the hardware protections board (HWPB for short), didn't do much besides paving the way:

pcb.png

And yep, all that is on the right must fit in the rectangle on the left... fortunately the PCB has two sides, and I can add about 8 mm to the left if necessary but hopefully I'll not need to. The board is currently 67 * 50 mm BTW.
 
So as I'm a bit saturated by designing the mosfets protection(s) I started to route the hardware protections board (HWPB for short), didn't do much besides paving the way:

View attachment 9849

And yep, all that is on the right must fit in the rectangle on the left... fortunately the PCB has two sides, and I can add about 8 mm to the left if necessary but hopefully I'll not need to. The board is currently 67 * 50 mm BTW.
After seeing what you were able to accomplish on the main board, I’m confident you will find a way to make it fit! :LOL:
 
I will study this today and get back to you.

Well, most of it has already been done here as I had to bring the bigger big guns. Now the problem is more of designing the protection itself.

As I'm thinking about using 2x 9 mosfets (2x 8 would be a bit on the edge thermal wise) instead of 2x 10, I can use 2 mosfets for the protection without changing the cost so that's nice. Then it's a matter of turning them on the fastest possible to not overshoot past 80 V and to regulate to stay over 64 V (or else you just allow the short-circuit to continue...). I may use some BJT instead of FET for this but I'm not sure about the current capability, I need to look some datasheets.

I'll also put a RC snubber to help absorb and spread the energy over time. The fact I don't want to use electrolytics isn't helping, oh well, that's not the first constraint I add to this project who isn't helping...?

After seeing what you were able to accomplish on the main board, I’m confident you will find a way to make it fit! :LOL:

I better be because it's not like I can extend the board forever, there's hard limits this time :rolleyes:
 
So, I'm back and started working again on the BMS ?

I had a lot of time to think about the mosfets protection and I came to the conclusion I was probably overthinking it as they are avalanche rated at well over the max energy they need to handle. So I got back to the 2x 10 mosfets design and added a few TVS. I don't think I'll add caps as big ceramic SMD ones are prone to mechanical failure and the required capacitance would be very high to have any positive impact.

I attached the current and probably final design of the DPB schematic. The only thing I might change is the e-stop input logic as right now it's designed for a NO contact but usually we prefer a NC contact for that usage as it's a bit more safe. If anyone has comments they are welcome ;)

I still have the HWPB to finish routing and, unless I modify the DPB schematic before, I'll start routing it too. It'll be a lot more fun to route than the other boards as I have less components to place and more real estate for once ? (but a lot more mechanical and thermal constraints tho...)
 

Attachments

  • BO_DPB_1630.pdf
    211.3 KB · Views: 10
+1 vote for NC e-stop input. Vermin are prone to chewing wires, and I’d rather have a nuisance trip if/when the loop unintentionally opened than the e-stop not work when needed.
 
I've changed the e-stop input to use a NC contact and started the routing (well, it's more rough components placing and lots of planning for now) :

pcb.png

The actual board size is 100x200 mm but it'll probably change in the future.

The main B- connection will be on the top roughly above Q160 and the main P- one will be on the bottom right, under Q159. There will be a copper busbar on the top and another one on the bottom, and similarly on the other side of the board there will be 2 heatsinks (hopefully not too big, something like 15-20 mm thick and not much bigger than the PCB). Lots of vias will conduct the heat from the mosfets to the heatsinks and ensure both PCB' copper layers share the current (also, a 2 oz/ft² PCB is mandatory because of the high current).

The 4 purple rectangles are the precharge and recovery power resistors and will be on the other side of the board on the left with some space between them and the board, so they don't really take board real estate even if they are big as I can put some components under them.
 

Attachments

  • BO_DPB_1630.pdf
    211.1 KB · Views: 6
Last edited:
To conserve space on the board, have you considered using Resistor packs? Multiple resistors in a single package.
 
For which resistors?

I looked at it for the ones on the diff amps of the BMSB but as I would need high precision ones it would be a lot more expensive.
 
I looked and on the DPB there's only 4x 470 k around IC410 so it's not worth it, and for the 47 k ones related to the mosfets, well, each one need to be very close to its associated mosfet because of the high current traces (well, more like zones at this point) so I can't use networks for thoses.

For the HWPB there's the 8x 47k for each of the 3 ICs who might be good candidates to be remplaced by resistor networks, I'll look at that when I go back to routing this board ;) (BTW the more I look at it and the more I think it'll not fit... well, I'll see...)

Where it might be very interesting to have networks is for the HMIB as it'll be almost only shift registers, LEDs and same values resistors but I haven't done the schematic yet so I'll see when I'm at this step ;)
 
So... let's just say it's useful to read back your notes on the others schematics of a project if it's a multi boards project... I forgot to add a few components to generate the Vprecharge_test voltage as I thought it was already done on the other board for some reason. Anyway, it's corrected and I attached the final (hopefully...) version of the schematic.

I also organized all the components and started the mosfets layout and routing:

pcb.png

More details:

pcb_details.png

I've done my best to keep the design as compact as possible and by pure coincidence there's exactly 2 mosfets per inch so 10 of them take 5". I also kept the gate circuitry as low inductance as possible while cutting as little as possible the future high current paths. And I now see I could have placed the components just a bit more to the right (not including the R13x) to cut a bit less in the high current paths... well, I'll do the modification tomorrow, it's almost 3:00 am here... :D
 

Attachments

  • BO_DPB_1630.pdf
    212.3 KB · Views: 2
Back
Top