I've created a BMS and am looking for feedback. I am trying to figure out what to do with this.
What should I call this? Do I provide the stuff as a DIY? Do I do some more to make proper packaging and sell it, or both? How can I improve the connectors and mounting and what additional features are wanted? Is there any demand for this solution? Do people want to contribute? Maybe some would like to use it to experiment with batteries (Will Prowse?).
Overview:
1) This will do balancing for real, not like the other options. See the details below.
2) Like Stuart Pittaway's DIYBMS, it consists of as many cell monitoring boards as you have cells, each with an attiny chip. These are opto isolated and strung in series to send their data to an ESP32 based controller. You can string any number of these in series to deal with any battery voltage. The controller monitors the info from the cell monitoring boards and controls relays. Each draws very little power.
3) Like the Electrodacus SMBS0 and unlike the DIYBMS, it will measure 2 different shunt voltages. One is used to measure the whole pack current and provide a state of charge. The second is used to provide the solar current reading.
4) Unlike the Daly and others, no current flows through this BMS. I don't see the point of having umpteen different Amp rated versions of a BMS especially when many applications can directly control the loads and chargers with the relays.
5) Communication with the device is via WiFi. It always has an access point live, so you can connect your phone to that wifi network and see the status. It will also be a client on your existing wifi network. There is no LCD.
Background:
Chargers and inverters all have their own cut offs, but of course they have no information about the cells. This was all fine when we had only lead-acid batteries. With Lithium, the BMS was created to protect the cells from over charge or under charge. This resulted in the sort of goofy situation where some will argue that the BMS is there to protect the cells but the solar controller controls charging. This line of thinking overlooks the fact that Lithium doesn't really need any charge controlling, except to shut off at your desired State Of Charge (SOC). As long as your charger cannot deliver more than 1C of A, then it makes no difference what V you set your charger at. It won't achieve that V until the batteries are full. Your BMS has to be there to shut that off when one cell gets to the knee (e.g. 3.6V for LiFePo4). Whether it shuts that off to protect the cells or whether it is shutting it because it is the charge controller is a semantic, thus pointless, difference.
I want to shut off charging at say 90% just like you do with a Tesla. Tesla recommends you set the charger to stop at say 90% and only run it up to full if you've got some long distance to go. None of these lead-acid based chargers are capable of shutting of charge at some % SOC, because that was lousy for lead-acid batteries. You cannot determine state of charge with lithium by measuring voltage, unless you are at the knee of the curve, which is basically 100% anyway (or you shut off all current and let the batteries rest).
In short, the MPPT controllers and inverter/chargers are rather useless for "controlling" the charge with lithium. They don't provide any "charge curve", they have no cell info, or state of charge info.
Note also that MPPT is just a pointless heat producer if you match your solar panels to your LiFePo4 cells. A 12V LiFePo4 pack mated with 30cell solar panels is usually at the Max Power Point, so an MPPT is just a waste of your money and your PV juice in the form of heat. All you need is a diode, to prevent current from running backwards at night and a relay so the controller can shut of charging (this is exactly what the Electrodacus DSSR20 is and I highly recommend them). (the typical and cheapest 60 cell panels mate nicely with a 24v pack (8s LiFePo4)).
Details:
Charging: The controller will monitor the shunt and thus will keep track of the SOC. It will shut of charging and loads at whatever % you choose. Of course, just like the Tesla, after some time it will accumulate error in that measurement. In order to clear that error, it will periodically run the charge up to the point where a cell hits the knee of the curve (e.g. 3.6V) to reset its SOC counter to 100%.
If you allow the batteries to drain to bottom so that the controller shuts off the loads (e.g. 2.8V), the controller will compute your capacity, otherwise it uses your setting to know the pack capacity. Of course the various cut-off voltages, the state of charge cut-offs, pack capacity, number of cells, how often it runs it up to 100%, are all adjustable settings.
Balancing: All the other BMSs that I am aware of will bleed power off of the cells that reach some limit voltage. None can handle any significant amount of amps. The DIYBMS will drain at most .8A, but only if that heat can be drawn off the cell board. The amount of balancing that these will do is next to nothing because as soon as the cell hits that voltage, the BMS should shut the charging off. This drives everyone to focus on balancing their cells before they install them. My BMS will make a note of which cell reached the cut off first, shut off charging, then send a command to that cell board to start dumping some amps through a 50Ohm resistor. This will burn about .23W, but the controller can do this for an arbitrary amount of time. I have not implemented the algorithm yet, but the idea is to drain that cell below the others so that the same cell is not reaching the limit first every time.
Controlling Stuff: It has 6 optoisolators that the controller uses to turn on/off the various chargers and load. Each can handle .5A, which is probably more than any control signal needs. For example, my WZRELB inverter power switch has the inverter's LED display in series with the switch and thus it draws somewhere around .1A. My Victron Orion 24/75 DC/DC converter, Meanwell rsp-750-27 charger, the Electrodacus DSSR20 solar relays, and 2 Fotek SSR-25DA round out the other 5 things I control in my setup, and all draw a lot less than that. The SMBS0 can only handle 50mA for it's 4 relays. The DIYBMS does not include the relays, you buy them separately.
In the settings you provide a name for each of the devices and specify whether they are a load or a charge. You can tell the controller to use SOC to control any of these. For example, I have the typical gas/electric refrigerator and water heater found in a lot of RVs. Using an SSR on the AC input to these, my controller is set to send juice to these when we have more than 90% SOC and shut off the juice when we drop below 50%. They won't turn back on until the batteries are above 90%.
Of course the controller shuts off all loads (or chargers) when any one cell reaches the lower knee (e.g. 2.8V) and of course the same for chargers at the top, which is the typical safety role most BMSs are doing.
Temperatures:
Each cell monitor not only measures the cell voltage, but you can also plop a thermistor onto each cell and this temperature reading is reported back to the controller.
The controller can take input from 2 temperature thermistors. The first is the main one that must be present and placed near the pack so that the BMS can be sure to not charge when the temperature is near freezing. The second is there just because it was almost no cost to add another. I figure I will stick that one in the interior of my RV so I have an interior thermometer, but I can imagine updating the software to turn on the A/C when it has plenty of SOC and the interior is hot.
FSR:
I have also wired it so that I can place a Force Sense Resistor (FSR) at the end of my pack and get information regarding how these cells expand at the top/bottom of the SOC. I have a steel cage with a plate at the end where I have 4 bolts that will compress the cells. I will put the FSR between 1 bolt and the plate. I figure that reaching the point where the cells start to expand is not great on the cells. Who knows what I will find.
No LCD:
I have no desire to pack a complicated UI onto a small screen and a few buttons. A webpage is much better for that, so the UI is entirely on a web page. Plus you mount this thing wherever you like.
Wiring and Mechanical stuff:
(see next post)
What should I call this? Do I provide the stuff as a DIY? Do I do some more to make proper packaging and sell it, or both? How can I improve the connectors and mounting and what additional features are wanted? Is there any demand for this solution? Do people want to contribute? Maybe some would like to use it to experiment with batteries (Will Prowse?).
Overview:
1) This will do balancing for real, not like the other options. See the details below.
2) Like Stuart Pittaway's DIYBMS, it consists of as many cell monitoring boards as you have cells, each with an attiny chip. These are opto isolated and strung in series to send their data to an ESP32 based controller. You can string any number of these in series to deal with any battery voltage. The controller monitors the info from the cell monitoring boards and controls relays. Each draws very little power.
3) Like the Electrodacus SMBS0 and unlike the DIYBMS, it will measure 2 different shunt voltages. One is used to measure the whole pack current and provide a state of charge. The second is used to provide the solar current reading.
4) Unlike the Daly and others, no current flows through this BMS. I don't see the point of having umpteen different Amp rated versions of a BMS especially when many applications can directly control the loads and chargers with the relays.
5) Communication with the device is via WiFi. It always has an access point live, so you can connect your phone to that wifi network and see the status. It will also be a client on your existing wifi network. There is no LCD.
Background:
Chargers and inverters all have their own cut offs, but of course they have no information about the cells. This was all fine when we had only lead-acid batteries. With Lithium, the BMS was created to protect the cells from over charge or under charge. This resulted in the sort of goofy situation where some will argue that the BMS is there to protect the cells but the solar controller controls charging. This line of thinking overlooks the fact that Lithium doesn't really need any charge controlling, except to shut off at your desired State Of Charge (SOC). As long as your charger cannot deliver more than 1C of A, then it makes no difference what V you set your charger at. It won't achieve that V until the batteries are full. Your BMS has to be there to shut that off when one cell gets to the knee (e.g. 3.6V for LiFePo4). Whether it shuts that off to protect the cells or whether it is shutting it because it is the charge controller is a semantic, thus pointless, difference.
I want to shut off charging at say 90% just like you do with a Tesla. Tesla recommends you set the charger to stop at say 90% and only run it up to full if you've got some long distance to go. None of these lead-acid based chargers are capable of shutting of charge at some % SOC, because that was lousy for lead-acid batteries. You cannot determine state of charge with lithium by measuring voltage, unless you are at the knee of the curve, which is basically 100% anyway (or you shut off all current and let the batteries rest).
In short, the MPPT controllers and inverter/chargers are rather useless for "controlling" the charge with lithium. They don't provide any "charge curve", they have no cell info, or state of charge info.
Note also that MPPT is just a pointless heat producer if you match your solar panels to your LiFePo4 cells. A 12V LiFePo4 pack mated with 30cell solar panels is usually at the Max Power Point, so an MPPT is just a waste of your money and your PV juice in the form of heat. All you need is a diode, to prevent current from running backwards at night and a relay so the controller can shut of charging (this is exactly what the Electrodacus DSSR20 is and I highly recommend them). (the typical and cheapest 60 cell panels mate nicely with a 24v pack (8s LiFePo4)).
Details:
Charging: The controller will monitor the shunt and thus will keep track of the SOC. It will shut of charging and loads at whatever % you choose. Of course, just like the Tesla, after some time it will accumulate error in that measurement. In order to clear that error, it will periodically run the charge up to the point where a cell hits the knee of the curve (e.g. 3.6V) to reset its SOC counter to 100%.
If you allow the batteries to drain to bottom so that the controller shuts off the loads (e.g. 2.8V), the controller will compute your capacity, otherwise it uses your setting to know the pack capacity. Of course the various cut-off voltages, the state of charge cut-offs, pack capacity, number of cells, how often it runs it up to 100%, are all adjustable settings.
Balancing: All the other BMSs that I am aware of will bleed power off of the cells that reach some limit voltage. None can handle any significant amount of amps. The DIYBMS will drain at most .8A, but only if that heat can be drawn off the cell board. The amount of balancing that these will do is next to nothing because as soon as the cell hits that voltage, the BMS should shut the charging off. This drives everyone to focus on balancing their cells before they install them. My BMS will make a note of which cell reached the cut off first, shut off charging, then send a command to that cell board to start dumping some amps through a 50Ohm resistor. This will burn about .23W, but the controller can do this for an arbitrary amount of time. I have not implemented the algorithm yet, but the idea is to drain that cell below the others so that the same cell is not reaching the limit first every time.
Controlling Stuff: It has 6 optoisolators that the controller uses to turn on/off the various chargers and load. Each can handle .5A, which is probably more than any control signal needs. For example, my WZRELB inverter power switch has the inverter's LED display in series with the switch and thus it draws somewhere around .1A. My Victron Orion 24/75 DC/DC converter, Meanwell rsp-750-27 charger, the Electrodacus DSSR20 solar relays, and 2 Fotek SSR-25DA round out the other 5 things I control in my setup, and all draw a lot less than that. The SMBS0 can only handle 50mA for it's 4 relays. The DIYBMS does not include the relays, you buy them separately.
In the settings you provide a name for each of the devices and specify whether they are a load or a charge. You can tell the controller to use SOC to control any of these. For example, I have the typical gas/electric refrigerator and water heater found in a lot of RVs. Using an SSR on the AC input to these, my controller is set to send juice to these when we have more than 90% SOC and shut off the juice when we drop below 50%. They won't turn back on until the batteries are above 90%.
Of course the controller shuts off all loads (or chargers) when any one cell reaches the lower knee (e.g. 2.8V) and of course the same for chargers at the top, which is the typical safety role most BMSs are doing.
Temperatures:
Each cell monitor not only measures the cell voltage, but you can also plop a thermistor onto each cell and this temperature reading is reported back to the controller.
The controller can take input from 2 temperature thermistors. The first is the main one that must be present and placed near the pack so that the BMS can be sure to not charge when the temperature is near freezing. The second is there just because it was almost no cost to add another. I figure I will stick that one in the interior of my RV so I have an interior thermometer, but I can imagine updating the software to turn on the A/C when it has plenty of SOC and the interior is hot.
FSR:
I have also wired it so that I can place a Force Sense Resistor (FSR) at the end of my pack and get information regarding how these cells expand at the top/bottom of the SOC. I have a steel cage with a plate at the end where I have 4 bolts that will compress the cells. I will put the FSR between 1 bolt and the plate. I figure that reaching the point where the cells start to expand is not great on the cells. Who knows what I will find.
No LCD:
I have no desire to pack a complicated UI onto a small screen and a few buttons. A webpage is much better for that, so the UI is entirely on a web page. Plus you mount this thing wherever you like.
Wiring and Mechanical stuff:
(see next post)
Last edited: