ENNOID-BMS setup
Left: Master-LV, Middle : slave board LTC6811, Right: Master-HV |
I received several requests upon how to use ENNOID-BMS for monitoring lithium-ion battery packs. I will present here the basics and how to use ENNOID master & slave boards when building a custom battery pack.
Lithium ion basics
The purpose of a BMS is quite simple to understand once you know the basics of lithium-ion battery cells, their limitations and the danger of using them inappropriately. Lithium-ion cells are mainly used because they have one major advantage over all the other type of batteries available on the market : they can store more energy for a given space & weight. Despite this main advantage, they have many issues when not properly used. They tend to overheat and loose their capacity when discharged too fast. Their cycle life can get destroyed when their internal temperature gets above 60 degrees Celsius. They have performance issues when discharged with temperature below 0 Celsius and their cycle life get also destroyed if they are recharged while below 20 Celsius. They can explode if they are overcharged above 4.2V or discharged below 2.7V. They can also explode during the recharge process if they have been used outside of their operating range. On the other hand, they are very good batteries as long as they are used within their operating range. Their life cycle can be dramatically increased as well if they are not pushed above the limits specified in their respective datasheets.
Battery packs are generally built from many battery modules regrouping several cells connected in series & parallel to obtain the desired voltage & capacity. The main role of the BMS is to protect the cells inside of the battery pack from operating outside of their operating range and also to optimize their cycle life by monitoring them accurately (temperatures & voltages) while controlling the balancing, charging & discharging processes according to the predefined user settings.
Battery packs are generally built from many battery modules regrouping several cells connected in series & parallel to obtain the desired voltage & capacity. The main role of the BMS is to protect the cells inside of the battery pack from operating outside of their operating range and also to optimize their cycle life by monitoring them accurately (temperatures & voltages) while controlling the balancing, charging & discharging processes according to the predefined user settings.
BMS role
For most DIY projects like e-bike or e-scooters that require less than 5 kW of peak power, there are several BMS on the market that are "good enough" most of the time. When an application requires more than 5 kW of power, those "inexpensive" BMS are becoming insufficient at protecting the pack due to the facts that they do not allow their parameters to be adjusted (Fixed voltage, fixed balancing thresholds, no temperature monitoring & fixed current limits) and are using a solid state switch to disconnect the load from the battery pack in case of an emergency. The main problem with solid state switches is related to their nature of failing "closed" instead of failing "open" like relays or contactors.
A BMS is not meant to control the flow of charge or discharge in the battery pack. It is responsible of monitoring the cells voltages, monitoring the cell's temperatures and balancing series connected cells. The BMS can also communicate and inform external devices (Charger & motor controller) about the state of the battery pack, so they can react accordingly. The idea is to get all the battery pack data from the BMS so cell temperatures & cells voltage stays within their limits at all time during the charge & discharge processes. The last task of a BMS is to cut off the battery pack from the rest of the world when the operating conditions are not met.
ENNOID-BMS
ENNOID-BMS is oriented toward high power applications where the battery pack long term performance is critical. ENNOID-BMS is integrated with EVC500 main contactors directly bolted onto the main board and is equipped with an heavy duty PCB soldered current sensor good up to 500A continuous. Integrating all components on the same board reduce the amount of cabling required and simplify the installation process. ENNOID-BMS has a large set of parameters that can be precisely tuned by the user depending of the application. For instance, user can choose to limit the soft discharge and recharge voltages, thus improving cells durability. Other parameters such as MIN/MAX operating temperatures, balancing thresholds value, current limits and more options can be defined by the user through the ENNOID-BMS-Tool app.
For a functional ENNOID-BMS, a Master board & one or several slaves boards are needed.
ENNOID-BMS currently have two master board versions : Master-HV & Master-LV. Both have more or less the same functionalities but can operate at different voltage levels.
Connector for coil output is part # 70543-0001 + 50-57-9402 + 16-02-0103
Warning: Do not short-circuit the contactor coil outputs. Use contactor with built-in economizer.
ENNOID-BMS
ENNOID-BMS is oriented toward high power applications where the battery pack long term performance is critical. ENNOID-BMS is integrated with EVC500 main contactors directly bolted onto the main board and is equipped with an heavy duty PCB soldered current sensor good up to 500A continuous. Integrating all components on the same board reduce the amount of cabling required and simplify the installation process. ENNOID-BMS has a large set of parameters that can be precisely tuned by the user depending of the application. For instance, user can choose to limit the soft discharge and recharge voltages, thus improving cells durability. Other parameters such as MIN/MAX operating temperatures, balancing thresholds value, current limits and more options can be defined by the user through the ENNOID-BMS-Tool app.For a functional ENNOID-BMS, a Master board & one or several slaves boards are needed.
ENNOID-BMS currently have two master board versions : Master-HV & Master-LV. Both have more or less the same functionalities but can operate at different voltage levels.
- Master-HV is oriented toward high voltage applications where isolation between high voltage & control circuit are required. For this, isolation ICs and two main contactors are used in order to isolate high voltage circuits.
- Master-LV is oriented toward low voltage applications having nominal voltages of less than 150V. Being less expensive than Master-HV is mostly due to the lower safety requirement when operating at those voltage levels. Master-LV has no isolation ICs & has only one main contactor to disconnect the pack from the load or charger.
Slaves boards are offered in three different versions : LTC6811-12S, LTC6812-15S & LTC6813-18S. All three slave boards share the same built-in functionalities and have the same physical dimensions with similar pins layout. All versions are supported by the master board firmware and uneven cell numbers connected in series is possible. The choice of which version to use will depend of the pack physical layout and/or the internal modules arrangement.
Pack configuration examples:
Pack configuration examples:
- Master-LV monitoring 23S pack :
- 2 x LTC6811-12S : 12S + 11S ( Optimal)
- 2 x LTC6812-15S : 12S + 11S (Two slaves partially loaded)
- 2 x LTC6813-18S : 12S + 11S (Two slaves partially loaded)
- Master-LV monitoring 27S pack :
- 3 x LTC6811-12S: 9S + 9S + 9S (Three slaves partially loaded)
- 2 x LTC6812-15S: 14S + 13S (Optimal)
- 2 x LTC6813-18S: 14S + 13S (Two slaves partially loaded)
- Master-LV monitoring 29S pack :
- 3 x LTC6811-12S: 10S + 10S + 9S (Three slaves partially loaded)
- 2 x LTC6812-15S: 15S + 14S ( Optimal)
- 2 x LTC6813-18S: 15S + 14S (Two slaves partially loaded)
- Master-LV monitoring 30S pack :
- 3 x LTC6811-12S: 10S + 10S + 10S (Three slaves partially loaded)
- 2 x LTC6812-15S: 15S + 15S ( Optimal)
- 2 x LTC6813-18S: 15S + 15S (Two slaves partially loaded)
- Master-LV monitoring 35S pack :
- 3 x LTC6811-12S: 12S+12S+11S (Good)
- 3 x LTC6812-15S: 12S+12S+11S (Three slaves partially loaded)
- 2 x LTC6813-18S: 18S + 17S (Optimal choice)
Setting-up ENNOID-BMS hardware
Power cables :
BAT+ & LOAD+ must obviously be connected to the main contactor terminals. The BMS needs to be connected as well to those terminals, but only for monitoring battery pack & load voltages. As mentioned earlier, ENNOID-BMS Master board is designed around the main contactor and should normally be bolted directly over the main contactors terminals & over the cable lugs. Main contactor & associated cables lugs with M8 hole are not supplied with PCB orders, but are required.
Warning: Size of the cable lugs must be compatible with contactor terminals & power cables. EVC500, EV200, LEV200 & GV series contactors are compatibles with the PCB mounting pattern.
User can also choose to install the main contactor remotely. In this case, the contactor terminals must be connected to the board with small cables & round terminals connected in their respective mounting holes for enabling the battery pack & load voltage monitoring processes. Keep in mind, the main positive current path does not run through the BMS, but through the main contactor.
On the other hand, the main negative current path must run through BAT- & LOAD- in order to monitor the current going out of the battery pack. The large current shunt resistor is soldered directly underneath the PCB. M8 cable lugs + M8 bolts are required and must be connected directly to the shunt resistor from below.
The main contactor discharge coil outputs are labelled and located next to their respective mounting PCB pattern.
Warning: Size of the cable lugs must be compatible with contactor terminals & power cables. EVC500, EV200, LEV200 & GV series contactors are compatibles with the PCB mounting pattern.
User can also choose to install the main contactor remotely. In this case, the contactor terminals must be connected to the board with small cables & round terminals connected in their respective mounting holes for enabling the battery pack & load voltage monitoring processes. Keep in mind, the main positive current path does not run through the BMS, but through the main contactor.
On the other hand, the main negative current path must run through BAT- & LOAD- in order to monitor the current going out of the battery pack. The large current shunt resistor is soldered directly underneath the PCB. M8 cable lugs + M8 bolts are required and must be connected directly to the shunt resistor from below.
The main contactor discharge coil outputs are labelled and located next to their respective mounting PCB pattern.
Connector for coil output is part # 70543-0001 + 50-57-9402 + 16-02-0103
Warning: Do not short-circuit the contactor coil outputs. Use contactor with built-in economizer. 12V power input :
ENNOID-BMS require at minimum an external 12V power supply connected to the 12V connector input. The power supply must be powerful enough to supply the peak power required to close the main contactor and protected against short circuits.Connectors is part # 70543-0001 + 50-57-9402 + 16-02-0103
Upper green right connector output can be used to feed the power supply from the battery pack. Simple wire & ferrules can be used on this connector. Connector is part #: 30.102
Warning: Make sure to respect the 12V power supply polarity on the 12V connector input. Power supply must be protected against short circuits.
Communication
USB, serial (UART) & CAN connectors are available and can be used for communication purposes. At the code level, an abstraction layer provide equal functionalities & messages to be sent and received on each connector. Messages are normally broadcasted on USB, UART simultaneously & can also be sent over CAN channel. The implementation of message is similar & will be compatible to VESC motor controllers in the future.Connectors for UART & CAN are part # 70543-0004 + 50-57-9405 + 16-02-0103
See: Communicating with ENNOID-BMS using UART
See: Communicating with ENNOID-BMS using UART
Power button
Any switch or push button N.O. contact can be used. Common terminal from the switch should be connected to GND pin & N.O. to NOFor ENNOID-BMS, we normally use the following component: Button link
OLED
The OLED display output is using I2C protocol and the driver output for SSD1306 display is standard in the firmware. Pinout on Master board should be connected according to the corresponding pins on the display. Any other I2C compatible display can in theory be used.Many messages are shown on the display that can be helpful for troubleshooting or during main operation. Here is a list of displayed info:
- Operation:
- SOC
- Pack voltage
- Current
- Pack temperature min
- Pack temperature max
- Pack temperature average
- Precharge error
- Global error/fault
- Battery empty
- Battery charged
- YOLO mode
- Charging:
- SOC
- Balancing:
- SOC
Charger
Many different external charging scheme can be used with ENNOID-BMS depending on your needs. For onboard charger, the "Basic" method described below can be the easiest option to implement. When using an external AC-DC charger that needs to be connected & disconnected on a frequent basis, Standard & Basic+ methods can also be used for increased safety.Note: Schematics examples below all assume that the main contactor is used and mounted below the Master-LV board as recommended.
2 wires chargers/power supply that don't have communication channel with
the BMS must have an unloaded voltage equal or a bit above the fully
charged battery pack voltage. Power of the charger will depend on the
pack capacity. It is recommended to use a charger with a current rating in
"A" which is approx 1/5 to 1/10 of the pack capacity in "Ah". Example, a
22Ah pack with a 4A charger is a good choice. Higher power charger are
possible, but you will need communication between the charger & the BMS to reduce the current at high SOC. You can also use a 2 wires charger at higher current if you keep the SOC below 80% ,
otherwise the BMS will detect overvoltage before being fully charged due
to the cell reverse sagging when charging. Communication with the
charger is possible over CAN bus or serial, but is not fully implemented
and/or not supporting many high end chargers
at the moment. More to come on that topic in the future.The BMS is not yet compatible with public chargers or any associated protocols.
Basic method:
In some instances, when the charger & the controller can be connected together without problem or if using a single port for discharging & charging, the basic connection method is easy to implement and relatively safe. Inrush current when engaging the charger & when the load is connected can be problematic and can make this method unsafe in certain user cases (Depends on the charger & controller model used). Using this circuit will also make the Load/controller powered ON during the charging process. An optional simple power diode can be placed between the charger input & the load output to eliminate the presence of voltage on the disconnected charger plug when the load is enabled. Other option is to use single output, but will require the user to disconnect the controller for connecting the charger. The charger will be detected when there is presence of voltage coming from the charger on the Load/Controller output when the BMS is powered OFF. For this to work properly, the option "Allow charging during discharge" in ENNOID-BMS tool must be set to "true" otherwise, the BMS will stop discharging as soon as the load will be enabled. In this configuration, the charger detection signal input should beshortedMaster-LV Basic charger connection |
Standard method:
When the user wants the Load/Controller to be powered OFF during the charging process and wants additional protections, an external relay is needed.The charger detection signal input should be connected to the charger input as shown on the image below. Simple wire & ferrules can be used on this connector. Connector is part #: 30.102
Master-LV Standard charging scheme with external charger relay connected to battery |
Basic+ method:
Basic + charging method is a mix between Basic & Standard method. It will keep the Load/controller powered ON during the charging process & unlike Basic method, Basic + will offer protection against surge inrush current when the load is highly capacitive, but at the expense of requiring more components. Also, this method does not require a separate cable for charger detection. A power resistor sized for your application is required for operating properly and an optional diode can be used as well. As for Basic, the Basic+ method require the option "Allow charging during discharge" in ENNOID-BMS tool to be set "true" otherwise, the BMS will stop discharging as soon as the load will be enabled. In this configuration, the charger detection signal input should be shorted.Basic + Charging scheme with external charger relay connected to load |
Predischarge Load/controller output
ENNOID-BMS has a predischarge resistor mounted on the main PCB. The predischarge process is accomplished at the BMS initialization and the main contactor will be closed once the load terminal voltage has reached the "Minimal predischarge factor" which is pre-adjusted by the user with the ENNOID-BMS Tool. The load/controller should preferably stay connected at all time to prevent unwanted accidental connection when the BMS is powered. Connecting the load after the predischarge process is completed would cause a large inrush current that could potentially harm the load/controller.Warning: Predischarge "Enabled" option must be chosen in the ENNOID-BMS tool. Do not use "Forced" option unless you have a previous version of Master-HV without built-in predischarge circuit.
Transient voltage protection
Master-LV comes with built-in TVS diodes against surge protections rated each for 1500W MPN: smcjXXXa. The XXX value is chosen according to the planned maximum operating voltage of the BMS plus a minimum of 10%. (30% is recommended with max regen enabled). Customer can specify his preferred value when placing an order. Those TVS diodes are mounted directly on the PCB on each side of the contactor (1 on battery side & 2 on load side) and are normally sufficient for protecting the internal circuit in case of an emergency stop. For some very high power applications using an highly inductive load, it might be needed to add external transient protection.
Warning : User must specify the appropriate TVS clamping value at the purchase. Wrong TVS clamping values could lead to permanent damage to the Master and slave boards during voltage spikes.
Warning: The onboard 1500W TVS might not be sufficient in all cases. When the BMS is used with an highly inductive load, an additional external TVS is recommended between LOAD + & LOAD - terminals. External TVS is also recommended between BAT+ & BAT- terminals when the cables coming from the battery are highly inductive. Sizing of the TVS will depends on the user application.
Warning : User must specify the appropriate TVS clamping value at the purchase. Wrong TVS clamping values could lead to permanent damage to the Master and slave boards during voltage spikes.
Warning: The onboard 1500W TVS might not be sufficient in all cases. When the BMS is used with an highly inductive load, an additional external TVS is recommended between LOAD + & LOAD - terminals. External TVS is also recommended between BAT+ & BAT- terminals when the cables coming from the battery are highly inductive. Sizing of the TVS will depends on the user application.
Slaves boards power input
Slave boards are self powered by the cells they monitor, no external power is required. Slave boards will fall into sleep mode after a few seconds of inactivity. Master board is responsible to wake-up the slaves boards by automatically sending the appropriate signal over the ISOSPI line.ISOSPI
Master board ISOSPI must be connected with the first slave boards PA-MA terminal. Then, PB-MB from the first slave boards should be connected to the subsequent slave board PA-MA connector in a daisy-chained fashion until reaching the last slave PA-MA connector. The last slave board PB-MB port will stay unconnected. Polarity between terminals is important for allowing the communication in the daisy-chain to be established. Connectors are part # 70543-0001 + 50-57-9402 + 16-02-0103LTC6811-12S slave board |
Cell voltages
Cells voltages measurements are done between each pins on the cells monitoring connector. The 0 pin should always correspond to the lower voltage reference point in the monitored battery module and subsequent pins should correspond to the next cells voltage levels to be monitored. If not all measurement channel are required, connect remaining unused pins to the last used pin.Pin spacing is 2.54mm/100mil for all connectors on Slave boards.
Warning: Make sure to respect the proper cell order otherwise, the slave board will get damaged.
Warning: Make sure to respect the proper cell order otherwise, the slave board will get damaged.
Temperatures
When temperatures measurements are needed, 100k thermistors with 4250k beta factor should be used between each monitoring temp channels & their respective slave board GND connector.One thermistor is PCB mounted by default on each slave board. User can add external thermistors on the dedicated pins.
Pin spacing is 2.54mm/100mil for all connectors on Slave boards.
Temperature monitoring circuits on LTC6811-12S. Same pattern apply to other slave boards |
Can you please supply the dimensions of the Slave and LV Master boards including the hole spacing.
ReplyDeleteThanks for the board graphics, just excellent.
DeleteWill update the blog with this info, for now you can use the CAD files here:https://drive.google.com/folderview?id=1KAuy9atZglmjDRCIAQg0tqhNt_eAjVLt
DeleteHello, do you have current schema file?
DeleteYou can find the basic schematics on github.
DeleteI want to know if I can use this system to balance my 20s Lifepo4 configuration with 200ah for each cell. The balancing current is enough?
ReplyDeleteDepends on many factors and use case. Can't take position on that with only this info...
ReplyDeleteYou can do some tests/some maths on your side and try to estimate the balancing requirement.
The actual slaves boards design allow to be easily scaled up by paralleleing several 33 ohm discharge resistors, each one handling ~0.127A. This will definetely make the balance board a lot larger than the actual one... the discharge capacity for each discharge channel is only limited by the discharge mosfet max carrying current which can go in theory up to ~4A, see: https://www.mouser.com/datasheet/2/395/TSM2323_E10-254860.pdf
Hi,
ReplyDeleteI wanted to compile the code but couldn't find a feasible solution. Can you suggest the IDE and method to be followed to generate the .bin files?
Thank you.
Hi,
DeleteOpen source: stm32cube: https://www.st.com/en/ecosystems/stm32cube.html
Paid : Keil uVision
Many other IDE are supporting stm32 MCU
When will the enoid bms hardware setup video be provided?
ReplyDeleteI agree that a video is long overdue. I wanted to wait until ENNOID ESC & battery packs get available. So a complete setup can be shown.
DeleteMeanwhile the SS BMS lineup has been developped which is easier to setup than the master+slave configuration and fit most users needs. Master+slave board stays relevant for advanced users, so a video becomes less relevant.
Hello,
ReplyDeleteI am planning to design a project that contains a 7.8KW system. The configuration of battery pack is 23S18P. I am using two slave boards. I do have some questions related to the BMS
1: What type of charger is best suited for my system
2: Can I use a lead acid battery charger with this system?
3: I have connected the 0 balancing lead of first slave with overall negative of the battery. Should I connect the 0 balancing lead of second slave board with same negative terminal?
Use my email for technical questions.
Deletekevin.dionne@ennoid.me
Thank you
Hi, may I know where can I find the PCB file for the Slave & Master?
ReplyDelete