BruControl: Brewery control & automation software

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
I’m not fully sure how an standard room air conditioner can get a room down to a very low temperature. Obviously a small room which is well insulated doesn’t take much to pump the heat out of it. But there are temperature differential limits that standard HVAC units can pump across - I don’t know what that range is. 40, 50, 60 degree differential max?
That said, we can automate it. The cool bot fakes the sensor which keeps the unit in tact. If that’s not a concern, it can be directly controlled by bypassing any limiting devices.
 
The coolbot has a resistor that you tape to the AC thermostat to trick it into thinking its warmer than it is. It also has a sensor inserted into the fins of the AC unit to detect icing. I've been running one for nearly a decade now, and can confirm with enough insulation and properly sized AC, you can run temps in the low 30's with no issue.

Edit: Should qualify that I'm not cooling an entire room, but it is cooling a 4x8x6 walk in.
 
I currently have a DIY coolbot so I am aware of the heater and the two probes. Im looking to have BC take the place of the two thermostats I currently have. Can I have two hysteresis elements controlling a single output?
 
When you say two thermostats, do you mean one temperature probe for fin temp and one for air temp?

To mimic the logic of the Coolbot, you would need to run a script. If I were doing it, I would use a hysteresis element reading the air temp to drive the heater (or direct drive the cooling unit), then use the fin temp in a script to change the hysteresis temperature setpoint. If the fin temp is too low, simply raise the hysteresis temp setpoint until the fin temp is in range, then set back to normal.
 
I’m not fully sure how an standard room air conditioner can get a room down to a very low temperature. Obviously a small room which is well insulated doesn’t take much to pump the heat out of it. But there are temperature differential limits that standard HVAC units can pump across - I don’t know what that range is. 40, 50, 60 degree differential max?
That said, we can automate it. The cool bot fakes the sensor which keeps the unit in tact. If that’s not a concern, it can be directly controlled by bypassing any limiting devices.
I had one in a room that was 12 x 13 with an exterior door. Just regular insulation plus a 1/2 aluminum coated foam panels. Easy to get to 50 degrees with a 5000 btu AC. As I said before, I changed to Gylcol Jacketed fermentors and could do Ales and Lagers at the same time. I had a 14.5 and a 27 gal non jacketed that used for ales I did have to keep the room about 5 degrees less than my desired ALE fermentaion temp. Would be great to Create a Process and parts list for BruControl.

You could create Lager Fermentation chamber, and Ale fermentation Chamber and a Kezzer all with cheap 5000 btu (for each)AC (that are a bargain in the fall)
 
When you say two thermostats, do you mean one temperature probe for fin temp and one for air temp?

To mimic the logic of the Coolbot, you would need to run a script. If I were doing it, I would use a hysteresis element reading the air temp to drive the heater (or direct drive the cooling unit), then use the fin temp in a script to change the hysteresis temperature setpoint. If the fin temp is too low, simply raise the hysteresis temp setpoint until the fin temp is in range, then set back to normal.
Fin probe is on Thermostat A. Room probe is on Thermostat B. Thermostat B is plugged into thermostat A. Thermostat B drives the heater. Naturally the controller I have takes 45sec to reinitiate, this helps with the additional time needed to defrost


Your proposal seems like a sound/simple approach the the addition of a timer would help with tuning defrost cycle. Maybe I'll give this a shot with a spare ESP32
 
Last edited:
Can the ESP32 drive a 10watt heater without intermediate driver?

If I took @clearwaterbrewer suggested approach and BC lost connection, would the cold storage continue to function?
 
Last edited:
Fin probe is on Thermostat A. Room probe is on Thermostat B. Thermostat B is plugged into thermostat A. Thermostat B drives the heater. Naturally the controller I have takes 45sec to reinitiate, this helps with the additional time needed to defrost


Your proposal seems like a sound/simple approach the the addition of a timer would help with tuning defrost cycle. Maybe I'll give this a shot with a spare ESP32

If you were worried about BC communication interruption, you could keep the process on the same board by using 2 temp probes, and 2 hysteresis elements controlling 2 SPDT relays. Wire the heater circuit through the NC on 'FIN' relay to the NO on the 'Air Temp' relay and you've created an interlock of sorts. This setup would require no direct communication to BC and should be able to run on its own at its last setpoints should BC comms drop out.
 
If you were worried about BC communication interruption, you could keep the process on the same board by using 2 temp probes, and 2 hysteresis elements controlling 2 SPDT relays. Wire the heater circuit through the NC on 'FIN' relay to the NO on the 'Air Temp' relay and you've created an interlock of sorts. This setup would require no direct communication to BC and should be able to run on its own at its last setpoints should BC comms drop out.
Brilliant
 
If you were worried about BC communication interruption, you could keep the process on the same board by using 2 temp probes, and 2 hysteresis elements controlling 2 SPDT relays. Wire the heater circuit through the NC on 'FIN' relay to the NO on the 'Air Temp' relay and you've created an interlock of sorts. This setup would require no direct communication to BC and should be able to run on its own at its last setpoints should BC comms drop out.
I'll give this a try thanks!
 
Feature request: Ability to click on a graph element (minimally sized) and maximize to a larger window. A minimize button will bring it back to its original state, similar to how Windows interface works with restore up and restore down.
 
If you were worried about BC communication interruption, you could keep the process on the same board by using 2 temp probes, and 2 hysteresis elements controlling 2 SPDT relays. Wire the heater circuit through the NC on 'FIN' relay to the NO on the 'Air Temp' relay and you've created an interlock of sorts. This setup would require no direct communication to BC and should be able to run on its own at its last setpoints should BC comms drop out.
As far as I know, you have to use a temp probe on the same board for a hysteresis element.
 
Hi, i finnally managed 1-wire sensors to work stable. IT was noise from the solenoid valves im my fermentors, i had probe wire close to solenoid wire. When i layed the wires far away from each other errors and disconnects stoped.
Using a solenoid valves for fermentation tanks was a bad idea anyway they last for about a week and they fail. Coils just burn when they energized for long period and make electrical noise.
Valves i had were from China, no good.
Also find a little bug which is little annoying.
I dont know if its just my tablet , but when i press stop to stop the script, BC calls for touch keyboard in my tablet and when i close keyboard BC stays half screen, have to minimize and maximize (sometimes few times) to make it back full screen.
 
If you were worried about BC communication interruption, you could keep the process on the same board by using 2 temp probes, and 2 hysteresis elements controlling 2 SPDT relays. Wire the heater circuit through the NC on 'FIN' relay to the NO on the 'Air Temp' relay and you've created an interlock of sorts. This setup would require no direct communication to BC and should be able to run on its own at its last setpoints should BC comms drop out.
Is there any way to incorporate a defrost timer to be used in the event BC loses connection?
 
I suppose you could create a separate hysteresis device that has a sensor which detects ice and disconnects the cooling power feed as a result.

That said, I would make sure your connectivity isn't lost. Admittedly we will never hit 100%, but should be able to get close. With quality Wi-Fi (most consumer grade Wi-Fi is crap) or Ethernet, your connection should be really solid. If you are having d/c's, as we have discussed, its likely a power or noise issue.
 
Happy Memorial Day all,

Posted version 1.2 RC build 21 (v1.1.0.21) today. Includes some minor bug fixes and additions:
  • Ability to inspect script's running in another script via 'state' and 'currentline' properties. For example:
    • Code:
      new string status
      if "Refrigeration Manager" state == "running"
      status = "Running on line: "
      status += "Refrigeration Manager" currentline
      else
      status = "Not running"
      endif
      print status
      stop "Script 16"
  • Ability to hide a workspace tab. There is a “Hide Workspace” button within the slide out menu. Using the show icon (eye) will unhide it again. Can show/hide from within a script as follows:
    • Code:
      hide workspace “Workspace 1”
      show workspace “Workspace 1”
  • Ability to edit the time span of a graph by clicking/touching it. User Control switch added to disable this when the application is locked.
 
I suppose you could create a separate hysteresis device that has a sensor which detects ice and disconnects the cooling power feed as a result.

That said, I would make sure your connectivity isn't lost. Admittedly we will never hit 100%, but should be able to get close. With quality Wi-Fi (most consumer grade Wi-Fi is crap) or Ethernet, your connection should be really solid. If you are having d/c's, as we have discussed, its likely a power or noise issue.
When you say ice detector are you referring to a thermometer or do you know of a sensor specifically designed to detect ice?
 
I think I found an issue with the graph time scaling recently added in 1.1.21. Adjusting the time scale from the configuration menu still works the same, so I know the data is there and accessible from the DB. I enable 'User Control' and attempt to change the time while locked. The graph adjusts the time, but doesn't appear to pull additional data. For instance, if the scale was set at 1 hour, and I set it for 2 from the User Control popup, I see 2 hours of time scale, but only 1 hour of data. This does this if I am locked or unlocked. I suspect its changing the time scale, but not updating the SQL query. I can pull SQL logs if needed.
Screenshot from 2021-06-02 08-50-39.png
 
What is the fundamental difference between how we traditionally use Arduino vs a PLC? In other words, why does this appear to not have been accomplished yet? Is it not just a computer carrying out a set of instructions?

I run a Unitronics PLC on our keg washer we have limited knowledge on making adjustments to code via ladder logic. Trying to understand why Arduino would struggle with this or what the challenge is here.
 
PLC devices and components are purpose built for I/O processing, typically using ladder logic or function block programming (though several others exist). In my experience with AB/Rockwell/Siemens PLCs, you operate within fairly strict confines of the PLC, meaning you can't just load any old code onto it. Arduino is exactly the opposite. Being an open platform, you are expected to roll your own code and auxiliary hardware to make it operate in the way you want it do. This product somewhat bridges the gap by having some of the hardware typically built into PLC I/O modules directly on board (4-20ma inputs, relays, 0-10v outputs, etc), as well as having what appears to be a more robust power supply.
 
Last edited:
So.... I am a big fan of itead.cc and the SonOff product line, as many of you know.. they released a new SonOff Dual R3, that is half the size, but not much information, so I snagged one on amazon for $19.99 and opened it up... it is ESP32 based, wooo! programming it might be a different story...

1623174960342.png

1623174974577.png

1623174994507.png

1623175011939.png

1623175024822.png
 
So.... I am a big fan of itead.cc and the SonOff product line, as many of you know.. they released a new SonOff Dual R3, that is half the size, but not much information, so I snagged one on amazon for $19.99 and opened it up... it is ESP32 based, wooo! programming it might be a different story...

View attachment 731677
View attachment 731678
View attachment 731679
View attachment 731680
View attachment 731681
I love sonoff too. I have them for several years and they are amazingly stable. However, I used with original FW so far.
I am guessing you would be using them for brewing with BC and custom FW? :) Was that the idea?
 
I love sonoff too. I have them for several years and they are amazingly stable. However, I used with original FW so far.
I am guessing you would be using them for brewing with BC and custom FW? :) Was that the idea?

oh, yes, I have a dozen of the ESP8285 based SonOff Dual units running different processes(fermentation recirculation pumps, heat exchanger pumps and fans for product condenser and reflus condenser, 1-wire probes, flowmeters, and a remote panel I use for a steam generator using a Kaggle and 3x 5500w elements. The ESP32 is a game changer since you can upgrade firmware OTA once programmed with BruControl Firmware.... The R3 is tiny, and has now added AC (120/240) level switch inputs, which might be useful, will have to see if any other GPIO are available to be micro-soldered to easily or have a unconnected pad. It does take some prying to get the cover off as there looks to be some melted plastic at the 4 clips, but it held itself together after re-assembly... Ideally, a reprogram OTA from SonOff to BruControl would the goal..

here is the 'product note' that brundog made that started it all for me: http://brucontrol.com/wp-content/up...ation-Note-Sonoff-Fermentation-Controller.pdf
 
My BruControl (the SQL process under BruControl, to be specific) is using 100% disk for 3-4 minutes before BC loads... is this normal and can I improve start time? disk is HDD, not SSD, but only 25% full... machine is a Core i7 with 32GB.. and FYI - I hate windows, I have cooked two ferments because automatic updates restarted the machine twice this week and turning them off gets harder and harder......
 
I'm assuming you are using the embedded SQL DB, is that correct? With a mechanical drive, yes, I would expect that the DB would take a decent amount of time to get loaded to RAM (heavily dependent on drive RPM). I'm not very familiar with the embedded SQL DB, but I would think one could still manage it with SSMS. If so, you should be able to adjust how much RAM the SQL server will consume, as it will try to consume nearly all available memory up to its table sizes. With 32GB of RAM, I'd imagine its trying to load at least the the full 10GB of table space into RAM. For comparison, I'm running BC in a VM with 2 cores and 12GB RAM on SSD storage with SQL 2019 on the same box, with 300ish elements enabled I load up in about 60 seconds. A SSD would be the most worthwhile upgrade, though I'm sure you already know that. Moving to a server level OS would help with your patch management issues, though I'm not aware of a direct upgrade path from Win10 to Server 2019.
 
yes, I know SSD is the way, I actually have the SSD for it sitting here, but it is a production box, and downtime that also gives me time to work on it is extremely limited. Hearing that more RAM slows it down somewhat pisses me off.... heck, I am still fighting mega RTD issues with 45O that happen on three different Megas that disconnect the mega as soon as either of my RP-3 boards are connected and keep it from connecting on powerup......

edit - I am not sure when it started taking this long, but it was not this way 3-4 months ago, maybe because it has more data stored now?
 
Understood about the production downtime, its my life as well. I'm not very familiar with your operation, but is there any reason you can't leave BC running 24/7?
 
Understood about the production downtime, its my life as well. I'm not very familiar with your operation, but is there any reason you can't leave BC running 24/7?
I want it to, but microsoft had different plans... they want to reboot every damn week... I went and used the gpedit.msc to at least turn it into just annoying me and not installing...
 
Ok, I'm following you now... coffee is finally kicking in. I was going to suggest trying to edit the local policy if you weren't in a domain, but it sounds like you've tried it already. Unfortunately, like many MS 'features' it sounds like it doesn't work.
 
Back
Top