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 just purchased the BC Pro upgrade. I currently have Node.js v12.16 running (on Windows) which looks somewhat like DOS. I'm attempting to install XML2JSON from this website...

https://www.npmjs.com/package/xml2json
I believe i need to install the (3) dependencies for XML2JSON.
I attempted to install node-expat and pasted the code "npm i node-expat" into Node.js software. Node.js reports "npm should be run outside of the node repl, in your normal shell."

Can someone push me in the right direction?
 
I'm not as familiar with NPM for Windows, but I believe it is telling you that you need to run the commands in the cmd.exe prompt vs inside the node.js prompt. As is typical for windows, make sure you are running cmd.exe with administrative rights.
 
I'm not as familiar with NPM for Windows, but I believe it is telling you that you need to run the commands in the cmd.exe prompt vs inside the node.js prompt. As is typical for windows, make sure you are running cmd.exe with administrative rights.
OK when i did that I got some errors. Am i supposed to download some file and put in a directory prior to sending the command?
 
I'm not near my system right now to verify this, but try 'state' instead.

Edit: I found a script and I had used value == 0 or 1 with a hysteresis device
Sorry, try

if "HLT RAMP" value == 1
Still struggling with having a hysteresis enable a global LED. The code runs without syntax errors but the LED wont change. Ive tried both boolean element (using true and false lines and element value using 1 and 0.

Code:
[Loop]
if "HLT RAMP-1" value == 1
    "HLT INDICATE-2" value = true
endif
if "HLT RAMP-1" value == 0
    "HLT INDICATE-2" value = false
endif
goto "Loop"
 
Still struggling with having a hysteresis enable a global LED. The code runs without syntax errors but the LED wont change. Ive tried both boolean element (using true and false lines and element value using 1 and 0.

Code:
[Loop]
if "HLT RAMP-1" value == 1
    "HLT INDICATE-2" value = true
endif
if "HLT RAMP-1" value == 0
    "HLT INDICATE-2" value = false
endif
goto "Loop"

Hmm, I just built a test script and it works for me, you aren't overlapping names anywhere, are you? I created a global as a boolean and it changed states as I expected.
 
Hmm, I just built a test script and it works for me, you aren't overlapping names anywhere, are you? I created a global as a boolean and it changed states as I expected.
As i was looking for overlapping names I realized I was changing the wrong global for testing. ISSUE SOLVED. Thanks for the help.
 
The following code is designed to change one hysteresis set point (HLT RAMP) when another changes (HLT) but with a delta of 6.

Code:
[Setup]
"HLT RAMP" target = "HLT" target - 6
sleep 1000

[Loop]
if "HLT" target == "HLT RAMP" target
    goto "Loop"
else 
    goto "Setup"
endif
sleep 1000

The relay that is associated with HLT RAMP pulses continuously. I think the issue is due to the code repeatedly defining HLT RAMP. I can slow the pulse by increasing the sleep. The reason I am continually defining HLT RAMP is because If user changes HLT target I want HLT RAMP to update. Would this be a scenario for an iterative loop? If so how would I go about cleaning this up?
 
Your HLT target is likely never going to exactly == your HLT ramp, so the logic is going to setup every cycle and updating your target. Use a <= or >= comparison depending on your use case.

As for cleaning it up, I would test if the new target is different from the previous target, if so then update, else sleep for some time then check again.
 
Your HLT target is likely never going to exactly == your HLT ramp, so the logic is going to setup every cycle and updating your target. Use a <= or >= comparison depending on your use case.

As for cleaning it up, I would test if the new target is different from the previous target, if so then update, else sleep for some time then check again.
Would you perform this with a variable to store the previous target then check against that variable?
 
I haven't been been on the thread in a while, the last time I was on this thread the page number was in the 70's. So I have taken the time to read and catch up. There has been tons of new developments, and I have enjoyed watching the creativity of the members. The software/system seems to have really grown in great ways. I finally have some time to get back into it, and I wanted to ask a question that hopefully has not already been covered. Is it possible to use a multiple monitor setup? Can I have different workspaces open on different monitors? It would be nice not to have to setup multiple computers at multiple locations throughout my setup, and remote in. Thanks great job guys!
 
As of now, you cannot display more than one workspace at a time. You can display the same workspace on multiple monitors, but that requires multiple computers where the computers not running BruControl would remote desktop/VNC/teamviewer/etc. to display/control the remote computer running BruControl. I do this where I have BruControl running on a small PC mounted to the back of my monitor on my office. I have an additional small PC running in the Garage with a touch screen monitor. I use tightVCN to display/control BruControl from the Garage.
 
I know some small format touch screens exist. I wanted to do the same thing but had trouble finding Linux ARM driver support from various manufacturers for larger panels. It's been a few years since I looked so perhaps there is better driver support now with the pi 4.
 
Apparantly there is an issue with InputPortID. It should work... we'll fix it.

Resurrecting this old issue again. I just tried this same approach on my new build to no avail.

I assume this was fixed in the software a long time ago, so does anyone here know what I might be doing wrong?
 
Hi HBT,

On this day of remembrance for people who unselfishly gave, I would like to thank you and this community for helping BruControl grow in experience and knowledge!

A few weeks ago (BruControl: Brewery control & automation software) we announced the UniFlex brew controller... and we are happy to share more details and announce its release.

Features include:
  1. 240VAC / 30A single or dual vessel brew controller running BruControl
  2. ESP32 based interface with Wi-Fi communications
  3. Compact size, free of limited and dedicated hardware controls
  4. High quality components: for example, Crydom SSR’s are exclusively used
  5. Safety integration: positive vessel output electrical interlocks
  6. Flexible configuration:
    • Single or dual vessel heating (BK, HLT, RIMs, etc.)
    • Single or dual pump/accessory control
    • Standard (duty cycle) or variable (proportional) SSR heating control
    • Passive (external heat-sink) or active (internally fan-cooled) option
    • Choice of power/plugs: NEMA 14-30P, 6-30P, or 10-30P
    • 1-wire universal temperature probes, 10 feet – up to 10 simultaneous probes
    • Optional integrated I/O: 17 I/O: 12 high current outputs, 1 analog output (0-5VDC), and 4 inputs (digital or 12-bit analog) with external power connector
    • Optional DIN rail mount
    • Optional BruControl application, ‘Advanced’ license
  7. The first and only modular & upgradeable design:
    • Upgrade single to dual vessel
    • Upgrade single to dual pump/accessory
    • Upgrade to integrated I/O
    • Upgrade to DIN rail mount
    • Add temperature probes as needed
  8. Full BruControl implementation:
    • Device Elements including PID, Hysteresis, Deadband, Digital Outputs & Inputs, PWM/Analog Outputs, Counters, etc.
    • Elements including Timers, Alarms, Graphs, Profiles, etc.
    • Workspaces to create fully customizable digital interface (includes two pre-created configurations)
    • Scripts to automate any or all of the brewing process including basics such start timing, step mashing, sparging, boil-over prevention, variables manipulation, conditional controls, data exchange, profiles, etc.
    • Advanced License provides unlimited expansion to control the brewery: fermentation, dispensing, cleaning, etc.
IMG_9461_ds.jpg IMG_9437_ds.jpg IMG_9468_ds.jpg IMG_9432_ds.jpg

Full details on the website, and I am happy to address any questions or concerns.
 
Last edited:
The Uni Flex 30 amp brew controller, I will be watching for information as I am getting ready to put a new control panel together. Was planning on a 50 or 60 amp panel that could fire two 5500 watt elements at the same time. Seems like I would need two of the Uni Flex units to do this. Would be nice to put data on a screen and have historical graphs with the Flex system.
 
You could theoretically have two of these on parallel breakers to run two elements, but I don't think this is the most efficient way to do it. We are looking at a 50A version of the UniFlex... it will require some key differences given the need for discrete 25 or 30A breakers. I would recommend the more traditional enclosure for 50A at this time. We have a demo of the build process of one of these in the near term.
 
Looks great @BrunDog! Off topic somewhat, what's the antenna arrangement? I'm really keen to add external antennas to my ESP32s but haven't turned up a solution yet.

Cheers
 
I'm planning out my control box now and basing it on the BruControl schematic. I'm having some difficulty figuring out what to buy for the 30A DP 120V Coil. Is something like this sufficient? Also is this supposed to be switched on and off by a 12V source? It says discrete relay board or on multi below, I'm assuming that means a 12VDC relay board.
 
I'm planning out my control box now and basing it on the BruControl schematic. I'm having some difficulty figuring out what to buy for the 30A DP 120V Coil. Is something like this sufficient? Also is this supposed to be switched on and off by a 12V source? It says discrete relay board or on multi below, I'm assuming that means a 12VDC relay board.

That one will work. It is 63A rated, but that actually makes sense if you ever wanted to upgrade your panel to 50A. This relay (contactor) is the MAIN POWER switch. It is a dual pole, single throw configuration (dual pole contactor). It is turned on by the key switch, which is switching 120VAC in this application.

The relay which says discrete relay is a different relay - that one is a single pole, dual throw, which diverts power to either of the 30A element contactors. It should be switched by the interface (with an appropriate transistorized front end, of course).
 
That one will work. It is 63A rated, but that actually makes sense if you ever wanted to upgrade your panel to 50A. This relay (contactor) is the MAIN POWER switch. It is a dual pole, single throw configuration (dual pole contactor). It is turned on by the key switch, which is switching 120VAC in this application.

The relay which says discrete relay is a different relay - that one is a single pole, dual throw, which diverts power to either of the 30A element contactors. It should be switched by the interface (with an appropriate transistorized front end, of course).
Could you send a link to the proper relay that should be used for this, I'm having a hard time finding one.
 
Well, it depends on your inteface. If you are using a MEGA alone, then this one will work: Vogurtime 4 Channel 5V Relay Module with Optocoupler Isolation Support High and Low Level Trigger Relay Red Board:Amazon:Computers & Accessories. It has four relays on one bank and needs 5V to power the coils. If you want more or less relays or want to power them with 12V, then we need to go a different way.

If you are using a UniShield, then any relay without the front end will work, such as this style (24VDC): uxcell A14071800ux0297 35mm DIN Rail DPDT 8P General Purpose Power Relay AC 24V Coil W Socket:Amazon:Industrial & Scientific

or these are my favorite since they take up very little room, but are more $: ASI ASI328002 ASIPLCREL24Vdc Pluggable SPDT Relay with DIN Rail Mount Screw Clamp Terminal Block Base, 6 amp, 250 VAC Rating, 24 VDC Coil:Amazon:Home Improvement
 
Hi HBT,

On this day of remembrance for people who unselfishly gave, I would like to thank you and this community for helping BruControl grow in experience and knowledge!

A few weeks ago (BruControl: Brewery control & automation software) we announced the UniFlex brew controller... and we are happy to share more details and announce its release.

Features include:
  1. 240VAC / 30A single or dual vessel brew controller running BruControl
  2. ESP32 based interface with Wi-Fi communications
  3. Compact size, free of limited and dedicated hardware controls
  4. High quality components: for example, Crydom SSR’s are exclusively used
  5. Safety integration: positive vessel output electrical interlocks
  6. Flexible configuration:
    • Single or dual vessel heating (BK, HLT, RIMs, etc.)
    • Single or dual pump/accessory control
    • Standard (duty cycle) or variable (proportional) SSR heating control
    • Passive (external heat-sink) or active (internally fan-cooled) option
    • Choice of power/plugs: NEMA 14-30P, 6-30P, or 10-30P
    • 1-wire universal temperature probes, 10 feet – up to 10 simultaneous probes
    • Optional integrated I/O: 17 I/O: 12 high current outputs, 1 analog output (0-5VDC), and 4 inputs (digital or 12-bit analog) with external power connector
    • Optional DIN rail mount
    • Optional BruControl application, ‘Advanced’ license
  7. The first and only modular & upgradeable design:
    • Upgrade single to dual vessel
    • Upgrade single to dual pump/accessory
    • Upgrade to integrated I/O
    • Upgrade to DIN rail mount
    • Add temperature probes as needed
  8. Full BruControl implementation:
    • Device Elements including PID, Hysteresis, Deadband, Digital Outputs & Inputs, PWM/Analog Outputs, Counters, etc.
    • Elements including Timers, Alarms, Graphs, Profiles, etc.
    • Workspaces to create fully customizable digital interface (includes two pre-created configurations)
    • Scripts to automate any or all of the brewing process including basics such start timing, step mashing, sparging, boil-over prevention, variables manipulation, conditional controls, data exchange, profiles, etc.
    • Advanced License provides unlimited expansion to control the brewery: fermentation, dispensing, cleaning, etc.
View attachment 682171 View attachment 682172 View attachment 682221 View attachment 682173

Full details on the website, and I am happy to address any questions or concerns.
Hi HBT,

On this day of remembrance for people who unselfishly gave, I would like to thank you and this community for helping BruControl grow in experience and knowledge!

A few weeks ago (BruControl: Brewery control & automation software) we announced the UniFlex brew controller... and we are happy to share more details and announce its release.

Features include:
  1. 240VAC / 30A single or dual vessel brew controller running BruControl
  2. ESP32 based interface with Wi-Fi communications
  3. Compact size, free of limited and dedicated hardware controls
  4. High quality components: for example, Crydom SSR’s are exclusively used
  5. Safety integration: positive vessel output electrical interlocks
  6. Flexible configuration:
    • Single or dual vessel heating (BK, HLT, RIMs, etc.)
    • Single or dual pump/accessory control
    • Standard (duty cycle) or variable (proportional) SSR heating control
    • Passive (external heat-sink) or active (internally fan-cooled) option
    • Choice of power/plugs: NEMA 14-30P, 6-30P, or 10-30P
    • 1-wire universal temperature probes, 10 feet – up to 10 simultaneous probes
    • Optional integrated I/O: 17 I/O: 12 high current outputs, 1 analog output (0-5VDC), and 4 inputs (digital or 12-bit analog) with external power connector
    • Optional DIN rail mount
    • Optional BruControl application, ‘Advanced’ license
  7. The first and only modular & upgradeable design:
    • Upgrade single to dual vessel
    • Upgrade single to dual pump/accessory
    • Upgrade to integrated I/O
    • Upgrade to DIN rail mount
    • Add temperature probes as needed
  8. Full BruControl implementation:
    • Device Elements including PID, Hysteresis, Deadband, Digital Outputs & Inputs, PWM/Analog Outputs, Counters, etc.
    • Elements including Timers, Alarms, Graphs, Profiles, etc.
    • Workspaces to create fully customizable digital interface (includes two pre-created configurations)
    • Scripts to automate any or all of the brewing process including basics such start timing, step mashing, sparging, boil-over prevention, variables manipulation, conditional controls, data exchange, profiles, etc.
    • Advanced License provides unlimited expansion to control the brewery: fermentation, dispensing, cleaning, etc.
View attachment 682171 View attachment 682172 View attachment 682221 View attachment 682173

Full details on the website, and I am happy to address any questions or concerns.
Impressive! What led to use the ESP32 instead of Mega, size?
 
I noticed there is only a few pins/ports that are different between the Grand Central and the Mega 2560. (port 12/14/15/46/48). They generally deal with PWM. Is there a reason for this difference? When I rebuild, I am thinking about the Grand Central but since there is no utility to migrate from one type to another, this would require a lot of work on my part. This could be a future problem if they stop making the Mega.
 
The reason for the difference is these are based on completely different chips. The MEGA format was originally made as an extension to the Arduino UNO and to accommodate the 2560 micro. The GC was made to be compliant with that physical format, so they tried to line up the pins, but it is not always possible 100%. If a board was made from scratch on the GC's chip (SAMD51), it would be radically different, I am sure. In fact, I would like to see a MFG step up and make a high-density, small size pinned board as a new standard. The Feather standard achieved this somewhat, but that is limited in I/O compared to what we like.

We can move your configuration file from MEGA to GC manually for you. I can't say there is a reason today to make that switch, but maybe in the future. The GC is less forgiving due to 3.3V, per pin-current output, and likely reduced noise immunity.
 
I noticed there is only a few pins/ports that are different between the Grand Central and the Mega 2560. (port 12/14/15/46/48). They generally deal with PWM. Is there a reason for this difference? When I rebuild, I am thinking about the Grand Central but since there is no utility to migrate from one type to another, this would require a lot of work on my part. This could be a future problem if they stop making the Mega.

Thus far, going back and forth between the MEGA and the Grand Central has been as simple as changing the controller type in the interface setup. I have not seen a difference between doing that and a setup that was a native GC but I assume there are some quirks I am missing. That said, the firmware for the GC still has a number of bugs within it that have frustratingly been around since I previously tested one in May of 2019. Some of the pins labelled as PWM in the wiring diagram do not actually produce a PWM signal (even though you can create a device) and half of the analog inputs simply do not work at all (A8-A15). Considering the age and future limitations of the MEGA, I find it surprising more are not using the GC controller. It is a 3.3V logic controller and that is a bit more annoying to work with but there are many relays and relay boards that work. Of course, the UniShield works fine with that logic level voltage.

These work real well with a GC and as they are very slim (~0.24" wide), they allow for a high density of IO in a small space.
3.3V compliant slim DIN mount relays
 
Last edited:
What is it that needs to change manually in the configuration that the interface change in the setup would not do? Sounds like I should be doing that.

We would edit the configuration file such that your MEGA pins/ports carry over. I think it is always much safer to start from zero, though I realize this is a major effort if you have a lot of I/O populated.
 
We would edit the configuration file such that your MEGA pins/ports carry over. I think it is always much safer to start from zero, though I realize this is a major effort if you have a lot of I/O populated.
So I have been poking around in the MEGA/GC wiring maps and BruControl configurations for these controllers and I can't seem to find much of a difference between the two that would require manual reworking when going from the MEGA to the GC. Sure the analog MaxValue is different because of the 12 bit depth of the GC and most of the ports have the added device capability of PWM on the GC but pins 12, 14, 15, 46, 48 are otherwise mapped the same. It is not clear what pin mappings are potentially incorrect. What am I missing?
 
Last edited:
Hi HBT,

On this day of remembrance for people who unselfishly gave, I would like to thank you and this community for helping BruControl grow in experience and knowledge!

A few weeks ago (BruControl: Brewery control & automation software) we announced the UniFlex brew controller... and we are happy to share more details and announce its release.

Features include:
  1. 240VAC / 30A single or dual vessel brew controller running BruControl
  2. ESP32 based interface with Wi-Fi communications
  3. Compact size, free of limited and dedicated hardware controls
  4. High quality components: for example, Crydom SSR’s are exclusively used
  5. Safety integration: positive vessel output electrical interlocks
  6. Flexible configuration:
    • Single or dual vessel heating (BK, HLT, RIMs, etc.)
    • Single or dual pump/accessory control
    • Standard (duty cycle) or variable (proportional) SSR heating control
    • Passive (external heat-sink) or active (internally fan-cooled) option
    • Choice of power/plugs: NEMA 14-30P, 6-30P, or 10-30P
    • 1-wire universal temperature probes, 10 feet – up to 10 simultaneous probes
    • Optional integrated I/O: 17 I/O: 12 high current outputs, 1 analog output (0-5VDC), and 4 inputs (digital or 12-bit analog) with external power connector
    • Optional DIN rail mount
    • Optional BruControl application, ‘Advanced’ license
  7. The first and only modular & upgradeable design:
    • Upgrade single to dual vessel
    • Upgrade single to dual pump/accessory
    • Upgrade to integrated I/O
    • Upgrade to DIN rail mount
    • Add temperature probes as needed
  8. Full BruControl implementation:
    • Device Elements including PID, Hysteresis, Deadband, Digital Outputs & Inputs, PWM/Analog Outputs, Counters, etc.
    • Elements including Timers, Alarms, Graphs, Profiles, etc.
    • Workspaces to create fully customizable digital interface (includes two pre-created configurations)
    • Scripts to automate any or all of the brewing process including basics such start timing, step mashing, sparging, boil-over prevention, variables manipulation, conditional controls, data exchange, profiles, etc.
    • Advanced License provides unlimited expansion to control the brewery: fermentation, dispensing, cleaning, etc.
View attachment 682171 View attachment 682172 View attachment 682221 View attachment 682173

Full details on the website, and I am happy to address any questions or concerns.

Looks like for an extra $220 you get I/O integration, what exactly is that?
 
This adds in-controller I/O for you to use as you see fit. For example, if you wanted to drive some valves on your brew rig, or if you wanted to read the output of a flowmeter, etc., this gives you that ability. There are 12 high-current outputs, 4 inputs, and 1 analog output. The high current outputs to can drive DC devices directly, such as a small pump. The two connectors on the front break out the I/O and the power for it (see below - to the right of the power switch is the middle power input and to the right of it is the 20 pin I/O connecter). You can choose to use up to 1A @ 12VDC of the on-board power supply, or you can provide your own power (9 - 24 VDC) and have the drivers switch that power. The mating connectors are included.

IMG_9461_crop.jpg
 
Back
Top