diy solar

diy solar

BMS low-temperature disconnect using Arduino and a relay?

cdevidal

New Member
Joined
Sep 12, 2021
Messages
86
I noticed many BMS lack a low-temperature disconnect. Any issue if I just plug a temperature sensor into an Arduino and at 32F ambient cut out the battery using a beefy relay? Seems like a simple way to handle this.
 
Just to be more specific, it is charging below freezing that is damaging to lithium cells, discharging below freezing doesn't hurt them. Several charge controllers like Victron (used with external temp probe monitoring feature), can be set to stop charging below a specific temperature...

An Arduino or Raspberry Pi could easily do this with a relay wired in, to break the battery connection (stop the charging). On an AIO inverter, the whole unit will lose battery connection, so discharging will also be cut of course. Of course it is an ungraceful disconnect, but also considered a last line of defense.

A heating pad or heating blanket controlled by a thermostat would also be a good idea to help prevent the last line of defense from kicking in...
 
Maybe the Arduino could read the voltage to see when it's charging. I'm planning on getting an AIO, is unplugging it like unplugging a computer, can cause damage?
 
I'm just guessing here, but I wonder if there are AIO's where you could run a serial, UART, or CANBUS to connection them, and run a simple command to stop the charger, based on your Arduino or Raspberry Pi monitoring response.

As far as damage goes. Theoretically I guess it depends on the brand and quality of unit you are pulling the battery connection from. I know a lot of guys get paranoid about the reconnection process, where they will put a resistor in series to charge the caps back up slowly in the inverter, so they don't get a spark when they reconnect the battery leads.

But BMSs also cut power, via relays or other methods when they hit their volt limits or temp limits, so is this really something to be worried about? I guess if you are that worried about the spark, you could make it notify you if the battery disconnect happens, so you can go intervene and put your resistor in there to charge the caps before reconnection?

For me, I am more focused on methods of just keeping the batteries warm, and the relay disconnect is more of 'last line of defense', and theoretically I should never have to see it occur due to proper system design.
 
That's a good point about charging the caps. I'd prob make it like a circuit breaker, turn off and stay off until I can come and manually intervene with a resistor.
 
I'm just guessing here, but I wonder if there are AIO's where you could run a serial, UART, or CANBUS to connection them, and run a simple command to stop the charger, based on your Arduino or Raspberry Pi monitoring response.
It occurred to me that perhaps the inverter has this capability. I'm looking at a Growatt 5000es and per the user manual, there is a battery low temp cutoff. I like your idea though of also using warmers. So that's what I'm going to do instead of an Arduino circuit breaker.

It's odd that I live in Florida and am thinking of these things, but occasionally the temps do dip in this part of the state; But also, it's an RV and we may travel :)
 
Yeah there are threads on here where myself and others have posted pictures of thermostat boards and heat pads for our systems... Search around a bit, should be easy to find them...
 
Hmm no I just realized--the Growatt battery sensor prob only works with Growatt batteries. So I do still need to cobble together an Arduino cold weather circuit breaker. I'll have it store an internal flag when the breaker is tripped. At bootup, if flag = 0 and temp >= required and voltage < charge voltage, enable relay, which is normally open for safety. If temp < required and voltage >= charge voltage, disable relay, set flag. Have a push button to set the flag to 0 again, which is the manual reset. Pretty straightforward project.
 
I'd still also add a heating pad. I'm looking around at my options now.
 
Last edited:
You could even put in a push-button (or another relay with Arduino logic) for a hard-wired resistor circuit, so you just hold down the resistor button (or apply the circuit in code prior to resetting the main relay to closed) for 15 seconds to charge the caps, and then reset the main breaker/relay (if you wanted to get fancy hehe)...
 
Good call, and wouldn't add much complexity. I would probably just routinely always connect the resistor first at bootup. I am a startup small manufacturing firm; Given this scratches my itch, it might be something I make and sell to others later.
 
Why use an Arduino when they sell perfectly good thermostats for less than $10, I wonder.
I hate reinventing the wheel, do you mean just an ordinary wall thermostat for central air conditioners? Kindly link to one such unit.
 
https://www.amazon.co.uk/Europart-Universal-VC1-Refrigerator-Thermostat/dp/B013D9UCOI ?
Just search for fridge thermostat, wall thermostat would be difficult to find for low temperatures, or... if you find a thermostat that will open/close a contact at a certain temperature, and doesn't carry the amperage you need, just use a 12/24/whatever volt relay to do that.
Just wire it so it will open the contact (cut power from the panels) under a certain temperature.
You could use a two-way relay (most of them are) to divert the PV power to a coil under the batteries so it warms them instead of charging... until they're warm enough, and the relay switches.
 
https://www.amazon.co.uk/Europart-Universal-VC1-Refrigerator-Thermostat/dp/B013D9UCOI ?
Just search for fridge thermostat, wall thermostat would be difficult to find for low temperatures, or... if you find a thermostat that will open/close a contact at a certain temperature, and doesn't carry the amperage you need, just use a 12/24/whatever volt relay to do that.
Just wire it so it will open the contact (cut power from the panels) under a certain temperature.
You could use a two-way relay (most of them are) to divert the PV power to a coil under the batteries so it warms them instead of charging... until they're warm enough, and the relay switches.
How might a thermostat like that be able to sense the temperature directly from the battery? Seems like it'd only be watching ambient. Which is good for switching off, I'm just wondering about the heater you're talking about.
 
How might a thermostat like that be able to sense the temperature directly from the battery?

See the coil of metal around the unit in the picture? It's the "probe". :·)
You run that to wherever you want to measure the temperature. In your case, the battery.
Notice the end has a little "knob". Tape that to the battery case...
.
 
How would you know where to set the dial to cut off at the correct temperature?
 
Why use an Arduino when they sell perfectly good thermostats for less than $10, I wonder.
One good reason not to, @Samsonite801 mentioned: Reconnecting inverter without charging caps using a resistor can cause magic smoke. A thermostat would cycle off and on without doing any protective charge-up.

I work with microcontrollers as a hobby and already have the knowledge and equipment but others may perhaps go the thermostat route if they can work out how to charge the caps or maybe the thermostat can be configured as a breaker requiring manual intervention to re-enable.
 
How would you know where to set the dial to cut off at the correct temperature?

I guess by looking at a thermometer close to where you have the probe.
When it reaches, say, 2-3ºC, you rotate the dial until you hear a click, then fine-tune it so it clicks itself at that temperature - or just above, for safety. You'd probably have to play with it a bit, to get the hysteresis right.

Reconnecting inverter without charging caps using a resistor can cause magic smoke

But it wouldn't be the inverter to disconnect/reconnect, would it? It would be the solar controller...
 
Back
Top