diy solar

diy solar

Summary of DIY BMS design and reflection

BiduleOhm

Electronics Sorcerer
Joined
Jan 30, 2020
Messages
2,004
Location
France
This thread is a summary of all the infos related to the BMS I'm currently designing; you can read the full version on this other thread.

If you want to ask some questions or make remarks please post on the other long and detailed thread instead of here to keep this thread as short and clean as possible.

Project status
Description
Features
Specs
Boards architecture
BMS board (BMSB)
Hardware protections board (HWPB)
Disconnect and precharge board (DPB)
Human machine interface board (HMIB)
Resistive balancer board (RBB)

NB: you can read it as a normal thread or click on the links above if you want to see one section in particular.
 
Last edited:
Project status

BMS board --> schematic: OK | PCB routing: OK | prototype: TODO | tests: TODO
Hardware protections board --> schematic: OK | PCB routing: OK | prototype: TODO | tests: TODO
Disconnect and precharge board --> schematic: OK | PCB routing: OK | prototype: TODO | tests: TODO
Human machine interface board --> schematic: OK | PCB routing: OK | prototype: TODO | tests: TODO
Resistive balancer board --> schematic: OK | PCB routing: OK | prototype: TODO | tests: TODO
Software --> code: TODO | tests: TODO
Production --> PnP, reflow oven, etc.: TODO | testing jig(s): TODO
 
Last edited:
Description

The goal of this BMS is to provide the best safety we can in a practical way, to provide as much features as possible and be easily configurable so it can fit almost all situations, and to provide as much accurate monitoring data as possible. The whole project is open hardware and open source software so you can easily change anything you don't like if you want.

It is compatible with 48 V systems using LFP cells (16s) and NMC cells (14s), and with 36 V systems using LTO cells (16s). It allows charge and discharge currents up to 300 A continuous without the need of active cooling.

To provide the best safety possible the software will follow the best practices and is backed up by an independent hardware watchdog timer and power monitor to reset the MCU in case it freezes or if there's any power supply brown-out who can lead to unstable operation. Additionally the most important protections are also implemented in totally independent hardware on a plug-in board. This board is optional but highly recommended as, in addition to the protections redundancy, it provides a short circuit protection fast enough to protect the BMS itself and it avoids blowing the battery main fuse which is often pretty expensive. It also vastly reduces the energy dissipated in the short which considerably lower the risk of fire or harm due to molten metal and heat.

The features and ease of configuration are provided both by highly modular hardware (5 boards, 3 of which are optional so you don't need to pay for some features you don't want) and by an user friendly web application (via a JSON API in case you want to write your own app or communicate with the BMS directly from another device; you can also use the SPI port instead of the ethernet port).

A high number of parameters are monitored so advanced features and protections become available. It's also useful to evaluate the battery health over time for example. High accuracy and high reliability are provided by a careful design and the use of high quality top tier components only.

I recommend reading the other sections below for more informations and details.
 
Last edited:
Features

- multi chemistries (LFP, NMC and LTO)
- high number of protections
- hardware redundant protections for the most important ones
- short circuit protection**
- fully independent hardware windowed watchdog timer + power monitor
- soft power-on/off (5 seconds power button press for safety)
- automatic precharging for capacitive loads
- low current charging while in LVP to recover an over-discharged battery
- selectable shunt voltage (50, 75 or 100 mV)
- dedicated hardware inputs/ouputs
- auxiliary temperature sensor input
- auxiliary voltage input**
- can count its own power consumption
- extensive monitoring
- very accurate, even accross its entire operating temperature range
- ethernet communication
- highly customizable parameters
- high current resistive balancer
- modular hardware architecture
- passively cooled
- high reliability
- real 300 A continuous current capability


Inputs:

- 3 battery temperature sensors
- 1 ambient temperature sensor
- 1 BMS temperature sensor
- 2 MOSFETs temperature sensors
- 1 auxiliary temperature sensor
- current shunt (50, 75 or 100 mV)
- auxiliary voltage input**
- power button
- hardware protections reset button
- emergency stop button


Outputs:

- disconnected (battery has been disconnected due to a fault)
- fire (any of the battery, ambient, BMS or MOSFETs temperature sensors measures 120 °C or more)
- heat or cool output (useful in hot or cold climates to regulate the battery temperature), can also be used for any other purpose similarly to the auxiliary output
- auxiliary output (triggerable from a wide range of events/conditions like SoC, temperature, currents, voltages, ...)


Protections:

- fire*
- battery over temperature*
- battery low temperature*
- system (= BMS and ambient) over temperature*
- MOSFETs over temperature*
- temperature mismatch
- battery over voltage*
- battery low voltage*
- cell over voltage
- cell low voltage
- long term over charge current*
- long term over discharge current*
- short term over charge current*
- short term over discharge current*
- short circuit**
- high resistance cell to cell connection
- high resistance balancing wire connection
- cells voltages delta
- battery voltage to cells voltages sum mismatch
- balancing MOSFETs and resistors integrity
- windowed watchdog timer and power monitor
- EEPROM checksumming


Checks before closing the MOSFETs:

- recovery circuit integrity***
- precharge circuit integrity***
- battery voltage mismatch (battery vs system)***
- cell voltage mismatch (one or more cell voltage doesn't make sense)***


Monitoring:
- all protections status (excepted for the protection(s) followed by '**' just above)
- battery state (off, disconnected, recovering, precharging, on)
- battery temperature average
- battery temperature A
- battery temperature B
- battery temperature C
- ambient temperature
- BMS temperature
- MOSFETs temperature A
- MOSFETs temperature B
- auxiliary temperature
- SoC
- time to empty/full
- power (both directions)
- current (both directions)
- voltage
- internal resistance
- total energy in
- total energy out
- total cycles count (total energy in + out divided by battery nominal energy)
- each cell calculated operating capacity
- each cell SoC for the nominal capacity
- each cell SoC for the operating capacity
- each cell internal resistance
- each cell voltage
- each cell energy in
- each cell energy out
- each cell current electric charge
- each cell cycles count (very useful to detect a weak cell)
- cells calculated operating capacities delta
- cells internal resistances delta
- cells voltages delta
- POH
- auxiliary voltage**


Customizable parameters:
- battery temperature A offset
- battery temperature B offset
- battery temperature C offset
- ambient temperature offset
- BMS temperature offset
- MOSFETs temperature A offset
- MOSFETs temperature B offset
- auxiliary temperature offset
- current offset
- current gain
- battery voltage offset
- battery voltage gain
- each cell voltage offset
- each cell voltage gain
- auxiliary voltage offset**
- auxiliary voltage gain**
- chemistry (LFP, NMC or LTO)***²
- shunt voltage (50, 75 or 100 mV)**²
- cell nominal capacity
- cell operating capacity
- fire temperature threshold*²
- battery over temperature threshold*²
- battery low temperature threshold***²
- system (BMS and ambient) over temperature threshold*²
- MOSFETs over temperature threshold*²
- temperature mismatch threshold
- battery over voltage threshold*²
- battery low voltage threshold*²
- cell over voltage threshold
- cell low voltage threshold
- long term over charge current threshold*²
- long term over discharge current threshold*²
- short term over charge current threshold*²
- short term over discharge current threshold*²
- high resistance cell to cell connection threshold
- high resistance balancing wire connection threshold
- cells voltages maximum delta threshold
- battery voltage to cells voltages sum maximum delta threshold
- balancing MOSFETs and resistors integrity high resistance threshold
- balancing MOSFETs and resistors integrity low resistance threshold


* = the hardware protections board provides hardware redundancy for this protection.
** = only available if the hardware protections board is present.
*** = can be by-passed by a very long power button press (20 seconds), not recommended to use in normal conditions, use only if you really need power in case of emergency for example.

*² = only changes the software parameter (hardware parameter can't be changed)
**² = only changes the hardware parameter (no software parameter to be changed)
***² = you need to change both the software and hardware parameters
 
Last edited:
Specs

All values are valid over the recommended operating ambient temperature range (unless otherwise noted).

All voltages are expressed relative to GNDREF (unless otherwise noted) which is directly connected to the battery negative terminal.

NB: some of the values are calculated from datasheet values so a few of them might change a little once real world testing is done.


Quick reference, Operating conditions

MINMAXUNIT
Operating ambient temperature-3050°C
Switch current (continuous), (B-) - (P-)-300300A
Switch current (peak, 20 sec max), (B-) - (P-)-400400A
Switch voltage, (P-) - (B-)-6161V
Cell voltage, LFP (16s configuration)2.503.65V
Cell voltage, LTO (16s configuration)1.502.90V
Cell voltage, NMC (14s configuration)3.004.10V
Outputs current250mA


Quick reference, Specifications

MINTYPMAXUNIT
Cell voltage resolution0.063mV
Cell voltage accuracy (C0 to C7)+/- 2.4+/- 8.2mV
Cell voltage accuracy (C8 to C15)+/- 4.0+/- 14.5mV
Battery voltage range, 16s configuration (LFP or LTO)065.5V
Battery voltage range, 14s configuration (NMC)057.3V
Battery voltage resolution1.0mV
Battery voltage accuracy+/- 12.9+/- 30.5mV
Battery current range-500500A
Battery current resolution15.3mA
Battery current accuracy (values don't include shunt accuracy)+/- 162+/- 445mA
Temperature range-40125°C
Temperature resolution0.006°C
Temperature accuracy (values include sensor accuracy)+/- 2+/- 4°C
Vaux input* voltage range-2.042.04V
Vaux input* voltage resolution0.063mV
Vaux input* voltage accuracy+/- 1.1+/- 2.8mV
Vaux input* impedance200kOhms

* = only available if the hardware protections board is present.


Absolute maximum ratings
MINMAXUNIT
Operating ambient temperature-4060°C
Storage ambient temperature-5085°C
Switch current, (B-) - (P-)-1000010000A
Switch voltage, (P-) - (B-)-6464V
Switch offset voltage, (B-) - (GNDPWR)-610V
Supply voltage, (+BATT) - (-BATT)1864V
Top section supply voltage, (C15) - (C6)1036V
Bottom section supply voltage, (C8) - (GNDREF)1036V
Cell voltage, 16s configuration (LFP or LTO)1.253.80V
Cell voltage, 14s configuration (NMC)2.804.20V
Current shunt input differential voltage, (Vshunt+) - (Vshunt-)-1212V
Current shunt input common mode voltage-1212V
Temperature sensor supply current0.1mA
Temperature sensor input voltage05V
Buttons inputs voltage05V
Outputs differential voltage, DC-5050V
Outputs differential voltage, AC35Vrms
Outputs common mode voltage-600600V
Outputs current300mA
Vaux input* differential voltage, (Vaux+) - (Vaux-)-1212V
Vaux input* common mode voltage-1212V

These are stress ratings only and functional operation of the BMS at these ratings is not implied.
Operating near or at these ratings for extended periods may reduce the BMS lifetime.
Operating beyond these ratings for any amount of time may damage the BMS permanently.
* = only available if the hardware protections board is present.


Recommended operating conditions
MINMAXUNIT
Operating ambient temperature-3050°C
Switch current (continuous), (B-) - (P-)-300300A
Switch current (peak, 20 sec max), (B-) - (P-)-400400A
Switch voltage, (P-) - (B-)-6161V
Switch offset voltage, (B-) - (GNDPWR)-0.50.5V
Supply voltage, (+BATT) - (-BATT)2061V
Top section supply voltage, (C15) - (C6)1135V
Bottom section supply voltage, (C8) - (GNDREF)1135V
Cell voltage, LFP (16s configuration)2.503.65V
Cell voltage, LTO (16s configuration)1.502.90V
Cell voltage, NMC (14s configuration)3.004.10V
Current shunt input differential voltage, (Vshunt+) - (Vshunt-)-100100mV
Current shunt input common mode voltage-2020mV
Temperature sensor input voltage0.14.0V
Outputs differential voltage, DC-4848V
Outputs differential voltage, AC34Vrms
Outputs common mode voltage-500500V
Outputs current250mA
Vaux input* differential voltage, (Vaux+) - (Vaux-)-2.042.04V
Vaux input* common mode voltage-8.58.5V

Operating beyond these values may reduce the BMS performances.
* = only available if the hardware protections board is present.
 
Last edited:
(continuation of the previous post; I ran into the characters count limit per post...)


BMS board (BMSB) Specifications
MINTYPMAXUNIT
Total thermal power dissipatedTODO3.5W
Cell voltage range04.09V
Cell voltage resolution0.063mV
Cell voltage accuracy (C0 to C7)+/- 2.4+/- 8.2mV
Cell voltage accuracy (C8 to C15)+/- 4.0+/- 14.5mV
Cell voltage accuracy (C0 to C7), Ta = 25 °C+/- 1.8+/- 6.7mV
Cell voltage accuracy (C8 to C15), Ta = 25 °C+/- 3.4+/- 13mV
Battery voltage range, 16s configuration (LFP or LTO)065.5V
Battery voltage range, 14s configuration (NMC)057.3V
Battery voltage resolution1.0mV
Battery voltage accuracy+/- 12.9+/- 30.5mV
Battery voltage accuracy, Ta = 25 °C+/- 4.3+/- 6.3mV
Battery current range-500500A
Battery current resolution15.3mA
Battery current accuracy (values don't include shunt accuracy)+/- 162+/- 445mA
Battery current accuracy (values don't include shunt accuracy), Ta = 25 °C+/- 30.5+/- 61mA
Temperature range-40125°C
Temperature resolution0.006°C
Temperature accuracy (values include sensor accuracy)+/- 2+/- 4°C
Outputs OFF-state leakage current, voltage = 48 V1µA
Outputs ON-state resistance12Ohms


Hardware protections board (HWPB) Specifications
MINTYPMAXUNIT
Total thermal power dissipatedTODO177.5mW
Vaux input voltage range-2.042.04V
Vaux input voltage resolution0.063mV
Vaux input voltage accuracy+/- 1.1+/- 2.8mV
Vaux input voltage accuracy, Ta = 25 °C+/- 0.5+/- 1.2mV
Vaux input impedance200kOhms
Battery over voltage trigger voltage (average per cell), LFP3.563.643.72V
Battery over voltage reset voltage (average per cell), LFP3.523.603.68V
Battery over voltage trigger voltage (average per cell), LTO2.953.023.08V
Battery over voltage reset voltage (average per cell), LTO2.922.983.05V
Battery over voltage trigger voltage (average per cell), NMC4.054.144.23V
Battery over voltage reset voltage (average per cell), NMC4.014.094.18V
Battery low voltage trigger voltage (average per cell), LFP2.422.472.53V
Battery low voltage reset voltage (average per cell), LFP2.472.532.58V
Battery low voltage trigger voltage (average per cell), LTO1.461.501.53V
Battery low voltage reset voltage (average per cell), LTO1.511.551.59V
Battery low voltage trigger voltage (average per cell), NMC2.983.053.11V
Battery low voltage reset voltage (average per cell), NMC3.043.103.17V
Short term over charge current trigger current472482492A
Short term over charge current reset current462472482A
Short term over discharge current trigger current-1013-990-967A
Short term over discharge current reset current-995-973-951A
Long term over charge current trigger current300307314A
Long term over charge current reset current297304311A
Long term over discharge current trigger current299308317A
Long term over discharge current reset current295303311A
Fire temperature trigger temperature117121125°C
Fire temperature reset temperature110114118°C
Battery over temperature trigger temperature50.252.955.6°C
Battery over temperature reset temperature48.951.554.1°C
Battery low temperature trigger temperature, LFP or NMC1.73.45.1°C
Battery low temperature reset temperature, LFP or NMC3.65.37.0°C
Battery low temperature trigger temperature, LTO-30.9-29.9-28.9°C
Battery low temperature reset temperature, LTO-29.0-28-27°C
System (BMS and ambient) over temperature trigger temperature60.263.166°C
System (BMS and ambient) over temperature reset temperature58.761.564.3°C
MOSFETs over temperature trigger temperature96.9100.5104.1°C
MOSFETs over temperature reset temperature94.498101.6°C


Disconnect and precharge board (DPB) Specifications
MINTYPMAXUNIT
Total thermal power dissipated, I = 0 A0.050.10W
Total thermal power dissipated, I = 50 A1.01.3W
Total thermal power dissipated, I = 100 A3.94.9W
Total thermal power dissipated, I = 200 A1519W
Total thermal power dissipated, I = 300 A3444W
Total thermal power dissipated, I = 400 A6177W
Switch current (continuous), (B-) - (P-)-300300A
Switch current (peak, 20 sec max), (B-) - (P-)-400400A
Switch voltage, (P-) - (B-)-6161V
Precharge current (peak), (B-) - (P-)-78-56-18A
Precharge time, Cload = 10000 µF394756ms
Precharge time, Cload = 47000 µF184223264ms
Precharge time, Cload = 100000 µF391474561ms
Precharge time, Cload = 470000 µF183822282637ms
Recovery current1.52.02.8A


Human machine interface board (HMIB) Specifications

TODO


Resistive balancer board (RBB) Specifications

TODO
 
Last edited:
Boards architecture

Overview.png

As you can see the BMS is highly modular and has 5 different boards:

- The BMS board (BMSB)
- The hardware protections board (HWPB)
- The disconnect and precharge board (DPB)
- The human machine interface board (HMIB)
- The resistive balancer board (RBB) (stackable up to 3 boards)

The BMSB is the main board. It is basically the brain and the central hub for everything else.

The HWPB offers hardware redundancy to the software protections (excepted for the short circuit one which is only available if you have this board as software is far too slow for this feature). It is an optional board but it's highly recommended to have it given the safety it adds.

The DPB handles all the high current switching, and the precharge and recovery features.

The HMIB has LEDs annunciators for all the warnings and faults (both software and hardware), the main status, and charge/discharge current and SoC bargraphs. All of this (excepted the hardware warnings and faults) and the other data is accessible via the ethernet (or SPI) port. This board is optional as you have access to everything via ethernet/SPI but it is always nice to have to see all the statuses at a quick glance with a very clear and high contrast interface.

The RBB is a resistive balancer, stackable up to 3 boards for 4.5 A of total balancing current. It is optional.
 
Last edited:
BMS board (BMSB)

This is the main board of the BMS. It hosts the MCU (an Arduino Nano Every), the cells voltages and current measurement circuits, the various input/outputs, and the interconnections with the other boards.

The cells voltages measurement circuit is based around two 8:1 dual multiplexers and a few op-amps configured as differential amplifiers to cancel the common mode voltages.

The current measurement circuit is an op-amp configured as a differential amplifier with a selectable gain to be able to support 50, 75, and 100 mV shunts.

Those signals and a few others go through a multiplexer and are then sent to a 16 bits ADC with an external voltage reference so the MCU can read any of those values with very good accuracy and resolution.

The MCU is protected against software freezes and power supply brown-outs via a hardware windowed watchdog timer and power monitor totally external to the MCU.

There's also quite a few connectors for the external inputs and outputs, and to be able to power and communicate with the other boards.

The main interface is an ethernet port with a JSON API. You can also omit the ethernet module and use the SPI port directly.

The outputs are totally isolated (up to 500 V) SSRs who can handle up to 48 V DC (34 V AC) and 250 mA.

To provide maximum safety and reliability the software will be developed with the defensive programming paradigm (http://en.wikipedia.org/wiki/Defensive_programming) wich attempts to handle all possible errors, and the fail-fast paradigm (http://en.wikipedia.org/wiki/Fail-fast) wich ensure to immediately stop normal operation if any failure, or condition which is likely to lead to failure, occurs.
 

Attachments

  • BO_BMSB_16.pdf
    402.1 KB · Views: 8
  • BO_BMSB_16-PCB.pdf
    618 KB · Views: 4
Last edited:
Hardware protections board (HWPB)

It's a small daughter board who plugs directly on the front of the BMSB and provides hardware redundancy for all the important protections plus a few others. It also adds the short circuit protection which is fast enough (< to 3.3 µs) to act as an e-fuse and save the MOSFETs plus your main battery fuse (usually it's a class T or MRBF one and they're expensive) while greatly reducing the energy dissipated in the short (less heat, less flying molten metal, etc...).

The protections on this board are totally independent of the software ones and are fully implemented in hardware.

It uses comparators to detect the abnormal conditions, and some AND gates configured as special SR latches to memorise any fault who might have occured.

It also provides an auxiliary analog differential voltage input who accept voltages from -2.04 V to 2.04 V with a maximum common mode voltage of -8.5 V to +8.5 V, with a 200 kOhms input impedance.

This board is optional but given the improved safety of having it, plus the additional short circuit protection, it is highly recommended to have it.

HWPB_PCB_Layout.png

HWPB_PCB_Front.png

HWPB_PCB_Back.png
 

Attachments

  • BO_HWPB_30.pdf
    214.5 KB · Views: 40
Last edited:
Disconnect and precharge board (DPB)

This is the board in charge of connecting and disconnecting the battery from the charger, inverter, loads, etc. It can handle 300 A continuously and peaks up to 400 A for a short duration (around 20 seconds max).

The main switch is made of 10x two back to back N type MOSFETs for a total Rdson (at highest operating temp) of 0.38 mOhms, which are driven by two isolated gate drivers powered by an isolated DC/DC converter. The board is passively cooled by two heatsinks on the back.

A tremendous amount of care was taken on the gate circuitry design to allow a very fast turn-off time while preventing dynamic turn-on due to high dV/dT, as well as for current capability and sharing: there is properly sized copper busbars on top of the PCB and the high current connections are two M8 (or 5/16") bolts.

The precharge feature is very useful with inverters (and other highly capacitive loads) to charge their capacitors via a few high power resistors so there isn't a big current spike when the main MOSFETs closes to connect the battery to the system.

There's also a recovery feature to be able to charge the battery with a low current (2 A or less) in case it is over-discharged. A PTC and some power resistors handle the current limiting.

The board is connected to the BMSB via a simple ribbon cable so it can be put some distance away if needed.

It also has provision to connect an emergency stop button (or any other NC dry contact) which by-passes any BMS orders and directly open the MOSFETS.

DPB_PCB_Layout.png

DPB_PCB_Front.png

DPB_PCB_Back.png
 

Attachments

  • BO_DPB_1630.pdf
    219 KB · Views: 60
Last edited:
Human machine interface board (HMIB)

This board is not the main human machine interface of the BMS but a secondary high contrast one to display only the most important informations in a clear and fast to read way.

There's one annunciator per warning/fault plus one as a master warning, another one as a master fault, and a few others to display the main status. The general color code is: red = fault, orange = warning, yellow = not normal but ok, green = ok and blue = off.

A triple press of the power button will reset the software alarms and a press on the HWP reset button will reset the hardware ones.

The charge/discharge current and the state of charge are displayed via dedicated bargraphs (only for a few seconds after a short press of the power button in order to save power).

It also has a beeper (you can easily disable it if you don't like beeps...) to warn you in an audible way about any warning/fault.

Finally, since this board integrates the power and the HWP reset buttons, you're not obligated (but still can if you want to of course) to connect external buttons to the BMSB.

On the technical side each hardware alarm has a dedicated wire and all the software ones are sent serially from the BMS board (32 bits per frame) to greatly reduce the number of wires needed, a few shift registers handle the serial to parallel conversion. There is a also a few logic gates to generate the main status and the master annunciators signals. A 555 timer is used to detect a loss of communication and another one is used to pulse the beeper.

This board is optional and is connected to the BMSB via a simple ribbon cable so it can be put some distance away if needed.

Spacer:

HMIB_Spacer_PCB_Layout.png

HMIB_Spacer_PCB_Front.png


Front Panel:

HMIB_Front_Panel_PCB_Layout.png

HMIB_Front_Panel_PCB_Front.png

First comes the HMI board, then two spacers on top (probably 2.4 mm and 2 mm, but it depends on the exact height of the push-buttons; 4.3 mm in the datasheet...), then the front panel, and finally a translucent overlay with the texts and everything (probably made with vellum paper and self-adhesive transparent plastic to protect it).
 

Attachments

  • BO_HMIB.pdf
    305.7 KB · Views: 4
  • BO_HMIB-PCB.pdf
    621.4 KB · Views: 2
Last edited:
Resistive balancer board (RBB)

This board is a 1.5 A resistive balancer and uses resistors controlled by MOSFETs to dissipate energy from the highest SoC cells.

The exact algorithm is to be designed but I plan to include true SoC based balancing as well as full time balancing (using the real individual cell capacities) with 8 slots times divided into 4 slots for the highest SoC cell, 2 slots for the second highest cell and 1 and 1 slots for the two next highest cells.

Up to 3 boards are stackable to increase the balancing current to a total of up to 4.5 A.

The data is sent serially from the BMS board (8 bits per frame) and a shift register handles the serial to parallel conversion. Then, a 4 to 16 decoder allow to turn-on the MOSFET via an opto-coupler to lower the SoC of the selected cell. As in the HMIB, a 555 timer is used to detect a loss of communication and force all the MOSFETs to open in that case.

This board is optional and can be plugged directly on the back of the BMSB (like the HWPB but on the other side), as well as being put somewhere else using some ribbon cable.
 

Attachments

  • BO_RBB_16.pdf
    218.6 KB · Views: 3
  • BO_RBB_16-PCB.pdf
    348.9 KB · Views: 2
Last edited:
Disconnect and precharge board (DPB)

This is the board in charge of connecting and disconnecting the battery from the charger, inverter, loads, etc. It can handle 300 A continuously and peaks up to 400 A for a short duration (around 20 seconds max).

The main switch is made of 10x two back to back N type MOSFETs for a total Rdson (at highest operating temp) of 0.38 mOhms, which are driven by two isolated gate drivers powered by an isolated DC/DC converter. The board is passively cooled by two heatsinks on the back.

A tremendous amount of care was taken on the gate circuitry design to allow a very fast turn-off time while preventing dynamic turn-on due to high dVds/dT, as well as for current capability and sharing: there is properly sized copper busbars on top of the PCB and the high current connections are two M8 (or 5/16") bolts.

The precharge feature is very useful with inverters (and other highly capacitive loads) to charge their capacitors via a few high power resistors so there isn't a big current spike when the main MOSFETs closes to connect the battery to the system.

There's also a recovery feature to be able to charge the battery with a low current (2 A or less) in case it is over-discharged. A PTC and some power resistors handle the current limiting.

The board is connected to the BMSB via a simple ribbon cable so it can be put some distance away if needed.

It also has provision to connect an emergency stop button (or any other NC dry contact) which by-passes any BMS orders and directly open the MOSFETS.

Hi,

I need to understand, how mosfet is selected for BMS application.
It will be helpful if you share the equations you used to select mosfet for voltage. SC current, Temperature etc.
 
Hello! I have a question regarding the short circuit scenario in case of bigger battery capacities at 48V, thus bigger short circuit currents (i.e. 2000A, 3000A etc.). Have you tested the short circuit capability of your hardware (i.e. maximum current until the MOSFETs get damaged)?
 
Back
Top