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.
It'd be nice to be able to 'nudge' the elements in the workspace using the arrow keys on a keyboard. Alignment of the elements has been quite tricky. I need a coarse grid to get the inputs workspace to line up easily, but I need a fine grid to get the elements to line up with my background in my brewery workspace. And when I switch grid spacing, the brewery workspace elements shift around.

Another workaround would be to allow different grid spacing in each workspace, but that seems like it'd be trickier to implement.

My exact thoughts completely regarding this topic.
 
Is it a very old/slow computer?

this version will have a database back end and we turned off logging by default. We are also adding the ability to store data by refresh multiple rather than every interval. Let’s see if those help at all. If not we can look at other solutions.
Sounds good
 
Hey @BrunDog
It'd be nice to be able to 'nudge' the elements in the workspace using the arrow keys on a keyboard. Alignment of the elements has been quite tricky. I need a coarse grid to get the inputs workspace to line up easily, but I need a fine grid to get the elements to line up with my background in my brewery workspace (screenshots below). And when I switch grid spacing, the brewery workspace elements shift around.
I’ve thought about this on multiple occasions. +1
 
I had a recent issue with Brucontrol that BrunDog was able to help resolve. Wanted to share the issue and the resolution.

I have been using brucontrol for a while now, pretty close since the beginning of the release. All existing devices within my interface were working properly. I recently replaced my rtd board (RP-3) as the existing one was working fine. At that time I also added 2 more 3 wire ports to my sainsmart board to control ball valves.

I was running 1.1 Build 1 (What I had left out of my communications was that it was upgraded from version 1)

When I go to add a new device, it shows my MEGA 2560 controller but shows "No Available Ports" for Interface Port.

Existing Ball Valve objects still work, communications with the MEGA 2560 are working. Also plugged in the 4 RTD probes and those are working.

BrunDog responded quickly, he recommended I tried to upgrade to latest version. He also wanted me to send the default.brucfg file from Documents\Brucontrol if the upgrade did not work.

I had already downloaded the latest version, so extracted that one and I still had the same issue. I reported back the results and the file.

A little bit later and BrunDog found the issue and supplied an updated default.brucfg file that was fixed.

The issue was with the migration from version 1 to 1.1. I am using RTD sensors, and the “With RTD” wiring map was removed from version 1.1, this created a disconnected between my configuration and the wiring map.

Responses were quick throughout this troubleshooting process. I had e-mail originally a bit later at night before crashing on the couch. When I got up the next morning there was already a response. When I did the checks and responded back, responses back to me were within a couple of hours. Oh, this was Friday night and Saturday morning \ afternoon.

So the few times I have had to rely on support, it has always been quick with responses, even on weekends!

Thanks again @BrunDog!!!
 
I'd like to use Google Docs (instead of Notepad) for creating and organizing my scripts, as shown below with bookmarks and links for ease of navigation. But the quotation marks in Google Docs seem to disagree with the BruControl script editor. If I delete the pasted quotations and retype them directly in the script editor, then it's happy.

I remember some time ago that BruControl was updatd to strip formatting from scripts when the text is pasted. Any ideas what might be going on or suggestions for workarounds?

upload_2020-4-19_12-32-0.png
 
There are multiple types of quotes. There are generic ones (BC likes) and then open and close quotes (BC no likey). Many editors, in an effort to be helpful, and not realizing they are editing code which needs to be very literal, change pairs of quotes to open and closed formatting. This is where the problem occurs. Dumb editors like notepad don’t bother so it is a safe place to edit.

You might be able to tell Google the type of document you are editing and have it comply.
 
There are multiple types of quotes. There are generic ones (BC likes) and then open and close quotes (BC no likey). Many editors, in an effort to be helpful, and not realizing they are editing code which needs to be very literal, change pairs of quotes to open and closed formatting. This is where the problem occurs. Dumb editors like notepad don’t bother so it is a safe place to edit.

You might be able to tell Google the type of document you are editing and have it comply.

Thank you for that tip. For anyone else using Google Docs, it's under Tools > Preferences > Use Smart Quotes
upload_2020-4-20_14-0-48.png
 
Unfortunately my Barn and Brewery totally burned down. Had nothing to do with my Brewery but a lawn mower. My old BCS setup and the new BruControl panel were totally destroyed. The Barn burnt to the ground with nothing left. All my vessels were also destroyed. If I rebuild (I did have insurance), I will have the opportunity to build the wiring from the get go and replace somethings with better. I will be monitoring the thread and may join in on occasion, but for now I am dead in the water.
 
Man that sucks. Wish you luck with the rebuilding of both the barn and BC panel. I bet you have alot of improvements in mind with a new slate
 
Im still struggling with network issues even with the installation of the adafruit power boost as main power.

As of yesterday (prior to power boost installation), the only way I could connect was to re configure Mega to the same parameters as previously set and then I would get a connection. Typically when I first plug in ethernet to router no lights show up on the router near its corresponding ethernet port, when I reconfigure the lights start blinking and Ill get connection.

As of today (with or without Adafruit power boost), I cannot get a connection. The lights are blinking as if I have connection but BC does not see theconnection . In an attempt to diagnose the issue Ive tried various IP address to no avail. I login to the router and the router sees the port as active but is not sending or receiving any packets. Again this is only after re configuring the settings via termite. Either the Mega is losing the settings or my router is not configured properly.

I perform the following in termite.
%0&15;
y to enter setup
MAC 2C:F7:F1:8:27:1A
IP 192.168.1.97 (I have confirmed this to match IP in BC configuration)
GW 192.168.1.1 (I have confirmed this to be my router IP)
SN: 255.255.255.0
y to save settings

Perhaps I should try DHCP
 
Last edited:
Keep it connected to termite and the internet, and turn on debug. You can also start a ping and write it to a text file.
 
I doubt the addressing is the issue (either IP number or using static vs dynamic). Offhand I don't recall your previous issues. Please email us with all the details of your system/setup. We'll get you right if we can.
 
I doubt the addressing is the issue (either IP number or using static vs dynamic). Offhand I don't recall your previous issues. Please email us with all the details of your system/setup. We'll get you right if we can.
Thanks. Can you send e-mail address?
 
OMG man... so sorry!!! That’s horrible! hope nobody was injured and you didn’t lose anything unreplaceable.
Lots of personal stuff from 49 years of marriage and kids. Not sure what I will do, but I suspect some brewery is in my future. I had just finished wiring my panel internally and was just about to attach it to the Brewery Wiring. I was quite proud of the way my panel looked as I have gotten neater over the years. I did save the computer with all the scripts.
 
Searched the thread but didn't see this discussed anywhere. I have hall effect flow meters that I want to use to provide input for controlling proportional valves. The valves will be controlled by the built-in PID control algorithm in BC. However, the flow meters are not listed as an option for the PID input. I'm guessing the reason for this lies somewhere in the limitations of counter inputs.

Anyone know how I make the instantaneous rate from the flow meters (counter inputs) control my proportional valves?
 
We have been thinking about adding counters as a potential input... we are about to start some FW re-writes (to pave the way for future stuff and efficiencies) and this will get looped in. T

That said I think you are asking for trouble since PID can generate very dramatic swings. I would recommend creating a deadband in script. Here is an example from my personal rig. This script is used for on demand fly sparging... raising and lowering the temp and opening and closing the incoming valve (P1) as needed to maintain flow rate and adjusting the outgoing valve (P2) to maintain mash level. For P1, the comparitor 'MaxFlowRate' and 'MinFlowRate' are numbers that create a range. If the flow is above the top, close the valve a little... if it is below the bottom, open it a little.

Code:
[sparge]
Status = "Sparge"
restart "Step"
new value SpargeLoop
new bool FlowOK
new bool RIMSOff
SpargeLoop = 0
RIMSOff = false
"Pump 1" State = on
"Pump 2" State = on
sleep 5000
"RIMS Heat Duty" DutyCycle = 55
"RIMS Heat Duty" Enabled = true

[sparge_loop]
if "RIMS Temp" Value > 185
    "RIMS Heat Duty" Enabled = false
    RIMSOff = true
else
    if RIMSOff == true
        "RIMS Heat Duty" Enabled = true
        RIMSOff = false
    endif
endif
if "Flowmeter 1" Value >= SpargeVol
    goto drain
endif
if "Mash Level" Value > MashTopLevel
    "Valve P2" Value += 1
endif
if "Mash Level" Value < MashBottomLevel
    "Valve P2" Value -= 1
endif
if SpargeLoop >= 10
    FlowOK = true
    if "Flowmeter 1" Rate > MaxFlowRate
        "Valve P1" Value -= 1
        FlowOK = false
    endif
    if "Flowmeter 1" Rate < MinFlowRate
        "Valve P1" Value += 1
        FlowOK = false
    endif
    if FlowOK == true
        if "RIMS Temp" Value > 175
            "RIMS Heat Duty" DutyCycle -= 1
        endif
        if "RIMS Temp" Value < 165
            "RIMS Heat Duty" DutyCycle += 1
        endif
    endif
    SpargeLoop = 0
endif
sleep 1000
SpargeLoop += 1
goto sparge_loop
 
We have been thinking about adding counters as a potential input... we are about to start some FW re-writes (to pave the way for future stuff and efficiencies) and this will get looped in. T

That said I think you are asking for trouble since PID can generate very dramatic swings. I would recommend creating a deadband in script. Here is an example from my personal rig. This script is used for on demand fly sparging... raising and lowering the temp and opening and closing the incoming valve (P1) as needed to maintain flow rate and adjusting the outgoing valve (P2) to maintain mash level. For P1, the comparitor 'MaxFlowRate' and 'MinFlowRate' are numbers that create a range. If the flow is above the top, close the valve a little... if it is below the bottom, open it a little.

Code:
[sparge]
Status = "Sparge"
restart "Step"
new value SpargeLoop
new bool FlowOK
new bool RIMSOff
SpargeLoop = 0
RIMSOff = false
"Pump 1" State = on
"Pump 2" State = on
sleep 5000
"RIMS Heat Duty" DutyCycle = 55
"RIMS Heat Duty" Enabled = true

[sparge_loop]
if "RIMS Temp" Value > 185
    "RIMS Heat Duty" Enabled = false
    RIMSOff = true
else
    if RIMSOff == true
        "RIMS Heat Duty" Enabled = true
        RIMSOff = false
    endif
endif
if "Flowmeter 1" Value >= SpargeVol
    goto drain
endif
if "Mash Level" Value > MashTopLevel
    "Valve P2" Value += 1
endif
if "Mash Level" Value < MashBottomLevel
    "Valve P2" Value -= 1
endif
if SpargeLoop >= 10
    FlowOK = true
    if "Flowmeter 1" Rate > MaxFlowRate
        "Valve P1" Value -= 1
        FlowOK = false
    endif
    if "Flowmeter 1" Rate < MinFlowRate
        "Valve P1" Value += 1
        FlowOK = false
    endif
    if FlowOK == true
        if "RIMS Temp" Value > 175
            "RIMS Heat Duty" DutyCycle -= 1
        endif
        if "RIMS Temp" Value < 165
            "RIMS Heat Duty" DutyCycle += 1
        endif
    endif
    SpargeLoop = 0
endif
sleep 1000
SpargeLoop += 1
goto sparge_loop

This is exactly what I thought my path forward would be if the counters couldn't be used as PID inputs. I'll define the rates I want in the workspace as a global and create the acceptable min/mix deviations in the script.

Couple of questions. I take it that you find a 1-second feedback loop to result in adequate control? Also, the value adjustment for the valves is 1. Is this 1/255?
 
Yes. In fact, you can see a "if SpargeLoop >= 10" conditional... that is there to prevent the evaluation from happening but once every 10 loops (10 seconds) because I want a slow response. It takes a bit of time for the valve adjustment to take hold and a new steady state to be achieved. Otherwise the valve would be swinging all over the place like a dog chasing its tail.
 
I have searched and found reference to this, but I am looking to change the inputportid of a pid. I have two spi sensors that I want to change via script. When I use port 16 as a string, I get an error saying 16 is not a valid port. Any ideas what I am doing wrong?
 
I have searched and found reference to this, but I am looking to change the inputportid of a pid. I have two spi sensors that I want to change via script. When I use port 16 as a string, I get an error saying 16 is not a valid port. Any ideas what I am doing wrong?

Can you post the script that is failing? It should look like this:

Code:
"PID" InputPortID = "SPI Sensor" ID

Where the 'SPI Sensor' device represents the probe you want the 'PID' to review.
 
Can you post the script that is failing? It should look like this:

Code:
"PID" InputPortID = "SPI Sensor" ID

Where the 'SPI Sensor' device represents the probe you want the 'PID' to review.
Sure it’s “HLT PID” InputPortID = “16”. Looking at your syntax, I see where my mistake was. I do not remember seeing id under spi sensor. I will try this out and let you know. Thanks!
 
A little quiet in here...

Given DIY isn't for everyone, we're proud to offer our first turn-key controller... the UniFlex.

View attachment 678196

Details, specs, and pricing to follow soon. Available starting May 15th.

While I'm definitely a DIY type of guy, that sure is a good looking compact design.
 
I haven’t tried it and we haven’t made a firmware for it. We didn’t see a need since the WiFi works so well.

I’d propose a regular M0 Feather with Ethernet – we have the FW posted for this combo.
Cheers brundog. I'm looking to use one of my ESP32 feathers in the base of an all-in-one brewery (a Brewzilla, similar to a Guten or Grainfather) which I'm sceptical wifi will penetrate very well. Alternative is to have the feather in a seperate adaptable box with an umbilical connection to the vessel.
 
Has anyone tried to integrate an iSpindle with Brucontrol? I know nothing about how they work except that they're basically a wifi, DIY equivalent of a Tilt. Being wifi I've got no idea whether Brucontrol would be able to talk to them or not.
 
Has anyone tried to integrate an iSpindle with Brucontrol? I know nothing about how they work except that they're basically a wifi, DIY equivalent of a Tilt. Being wifi I've got no idea whether Brucontrol would be able to talk to them or not.

We don't read them natively right now. Can be done via Data Exchange though.
 
You already have that Feather? You may be right... Wi-Fi in a metal enclosure may not work too well. I would check with Adafruit that their Ethernet featherwing will work with it. We can cut you a firmware to test it.
That would be awesome thanks Brundog. I've actually already got the Ethernet wing as well, I bought it assuming it would just be plug and play before it occurred to me I should probably have asked you first... 😝
 
A little quiet in here...

Given DIY isn't for everyone, we're proud to offer our first turn-key controller... the UniFlex.

View attachment 678196

Details, specs, and pricing to follow soon. Available starting May 15th.
I will be in the market soon. While I can DYI, I like and enclose better where the wiring is easy to just unplug. I was adding terminal bars to mine where it was not a input so it would have been easier to work with, What's inside? UNI with Ethernet?
 
Back
Top