Hi,
I have started with the implementation of phase 1 where I only have battery protection and with wireless connectivity for monitoring and parameter programming.
Just to remind, my system will be 24V 100A.
For this purpose I have set the following requirements (from the big picture):
- Over/undervoltage protection
- Over/undercurrent protection
- Over/undertemperature protection
- Battery disconect capability
- Current, voltage, temperature monitoring
- Wireless connectivity
Starting with the first 4 requirements I would really priorize hardware control loops where every protection mechanism is not related to a firmware in a microcontroller.
For monitoring my targets are
Cell voltage accuracy: +-5mV per cell. I think more than 2 decimals is more than enough for me.
Pack current: +-5mA. I do not feel useful measuring currents lower than 10mA.
Temperature: +-0.5C. I am not caring about temperature accuracy.
For the wireless connectivity my main candidate is Wi-fi. I feel that it is the most useful wireless comunication. It can be integrated in a home system. Functionalities like hosting a web server or dumping data to the cloud will be decided later. Bluetooth can be nice for configuring when you are close to the device but I think wifi can also cover that part generating a hotspot. The last nice to have connectivity could be GSM for places without wifi. In the beginning I am not planning to implement it.
Talking about battery disconeciton I will go with mosfets. Contactors are other option but there are tradeoffs. Mosfets are cheaper and smaller but have some voltage drop. Contactors are expensive, bulky but have nearly 0 drop. About reliability I think it is the same.
I have check most of the components in the market. Only the dedicated ones. I could implement ADCs with analog frontends but I do not see any advantadge.
As I have discussed before I think bq76952 is the best option for me. The reasons are:
- Voltage, current and temperature fault detection and protection firing is completely done by hardware. I do not want to have lines of protection in the code of my MCU. I want to be sure that whatever I do in firmware will not affect protection. I would not like to, by error, put a bug in protection code and only discover it when a catastrophic event occurs.
- It meets my accuracy targets (I am not talking about precision):
- Voltage: it is in the limit as accuracy is +-5mV and my target is +-5mV (I am talking about accuracy, resolution is 1mV)
- Current: (using a 100A/50mV shunt) target is +-5mA. Resolution of this device is 4mA. After calibration a accuracy is lower than resolution so I am fine. Temperature drift is also small. 0.015mA/C. Actually they claim that the best characteristic of this product is the current measurement.
- Temperature: I do not care
I will need to take a look for precision.
The device uses 2 delta sigma 16 bit ADCs. One is multiplexed for measuring the 16 cell voltages with a sample time of 3ms. The other one is only for current measurement with a sample time of 250ms.
I have evalated other options in the market. For example Linear Technologies does awesome monitors but all of the are only monitors. I need to implement software loops for protections. For this reason in the step of protection they are excluded.
If we talk about the fure where I will need very accurate/precise measurements maybe (I need to discover if really needed) I will need to add in paralell better monitors. Yes, in parallel. Many BMSs in the market they have 2 monitors. One for protection by hardware and another one for measuring. One current monitor that looks very nice is
LTC2949 with a 20bit adc. Another option for a fully integrated fuel gauge that I have experience (I already developed a device) is BQ34Z100. As far as I know it is the fuel gauge used in pylontech.
For the MCU I will use ESP32. I do not like it, but it is handy. It includes wifi and bluetooth. In my opninion it consumes too much power.
If you want to know my progress, currently I am designing the schematic. BQ and ESP32 are fully implemented. The only part is missing is the mosfet switch. That is the reason I am here now. I have seen that many people talking about charging current when battery is discharged down to 2.5V/cell. Should I implement a precharge system to limit the charging current? is it really dangerous charging at high current in this circumnstance?
I know this is not a big deal compared to BMSs in the market. This is the platform for implementing the additional features like active balancing or fuel gauge. At this point a BMS with temperature protection that you can configure exactly every parameter for voltage and current and connect it though wifi without paying a fortune, is enough justification for me.