• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

BruControl: Brewery control & automation software

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
You can restore an old config file (e.g., yesterday's). But that'll undo any changes you made in BC since that file was created.

Alternatively, make a copy of the current default.brucfg version as a fresh backup, and then in the original file, search in for the code element. Make sure to remove all open and closing tags related to it.

Looking at mine, you'd likely want to start with the <Process> tag before that code and end at the </Process>.

You could also just resolve the issue by inserting "sleep 1000" for it to not do the spiral death loop (that gives you a 1 second delay), or use "wait" if it can be event-based.
@CDCTx I'll probably take your second suggestion and look through the config to remove the broken script (or add the delay like you mentioned).

I'm on a Windows host with a default install of Brucontrol...where are the configs saved? I have hidden files turned on and don't any cfg files...just a bunch of .dlls for Brucontrol.
 
@CDCTx I'll probably take your second suggestion and look through the config to remove the broken script (or add the delay like you mentioned).

I'm on a Windows host with a default install of Brucontrol...where are the configs saved? I have hidden files turned on and don't any cfg files...just a bunch of .dlls for Brucontrol.
Ah, look in your Documents folder. There should be a "Brucontrol" folder there. Then look for default.brucfg and go from there :)
 
You can restore an old config file (e.g., yesterday's
Easiest is to replace with a config file prior to your endless loop. A sleep us a good idea in a loop but you can also create a loop killer if statement


You need a global value. Such as “gblVLoopKiller”

In your loop put an if statement

If “glbVLoopKiller” value >= 1
stop “yourScriptname”
endif

I put this in all my loops. If I need to do a kill, I just manually change the value of my global.
 
There is a folder named BruControl

There is a sub folder named configBackup

You will find all the auto backups there. You need to copy the backup you want to the BruControl folder

You then need to change the name of the offending .brucfg file to something else or just delete it. Change the name of the backup file to what your config file was. Generally by getting rid of the backup extension. To be usable a config file must end with .brucfg
 
@oakbarn @CDCTx , you guys rock, thanks.

While I'm back online...(I turned off the autostart for the script)...I can't figure out why this script isn't running:

[Prime_Pump_1]
start "Prime_Pump_1"
print = "Starting Pump_1 prime cycle."
"Valve_11" State = on
sleep 4000
"Pump_1" State = on
"Valve_14" State = on
sleep 10000
print = "Prime complete, closing valves and shutting off pump."
"Valve_14" State = off
"Pump_1" State = off
"Valve_11" State = off
print = "Terminating Pump_1 prime cycle."
stop "Prime_Pump_1"

It just flips back-and-forth between start and the first print statement.

Any ideas?
 
@oakbarn @CDCTx , you guys rock, thanks.

While I'm back online...(I turned off the autostart for the script)...I can't figure out why this script isn't running:

[Prime_Pump_1]
start "Prime_Pump_1"
print = "Starting Pump_1 prime cycle."
"Valve_11" State = on
sleep 4000
"Pump_1" State = on
"Valve_14" State = on
sleep 10000
print = "Prime complete, closing valves and shutting off pump."
"Valve_14" State = off
"Pump_1" State = off
"Valve_11" State = off
print = "Terminating Pump_1 prime cycle."
stop "Prime_Pump_1"

It just flips back-and-forth between start and the first print statement.

Any ideas?
For 'start "Prime_Pump_1",' are you trying to start another script or some timer? It seems like this script is the pump 1 priming script, so just need to know what is being started
 
For 'start "Prime_Pump_1",' are you trying to start another script or some timer? It seems like this script is the pump 1 priming script, so just need to know what is being started
@CDCTx lol, I see why you say that now...I thought I needed start/stop for the script itself...now I see that start/stop are specific to Timers (RTFM) :)

Updated script:

[Prime_Pump_1]
print = "Starting Pump_1 prime cycle."
"Valve_11" State = on
sleep 4000
"Pump_1" State = on
"Valve_14" State = on
sleep 10000
print = "Prime complete, closing valves and shutting off pump."
"Valve_14" State = off
"Pump_1" State = off
"Valve_11" State = off
print = "Terminating Pump_1 prime cycle."
 
@CDCTx lol, I see why you say that now...I thought I needed start/stop for the script itself...now I see that start/stop are specific to Timers (RTFM) :)

Updated script:

[Prime_Pump_1]
print = "Starting Pump_1 prime cycle."
"Valve_11" State = on
sleep 4000
"Pump_1" State = on
"Valve_14" State = on
sleep 10000
print = "Prime complete, closing valves and shutting off pump."
"Valve_14" State = off
"Pump_1" State = off
"Valve_11" State = off
print = "Terminating Pump_1 prime cycle."
Does it play nice now?

And yeah, the start/stop statements are used for other scripts or timers. I have an "overall" script for each fermenter that, based on the respective "Ferm Status" being true or false, either starts all my associated scripts and enables devices or stops/disables. That script is always running (using a wait statement).

So in your case, you may want a script that enables and disables this script based on certain conditions, or you may want to add a button or switch to your interface, and the script can watch for them to be set to true before doing a thing
 
There is a folder named BruControl

There is a sub folder named configBackup

You will find all the auto backups there. You need to copy the backup you want to the BruControl folder

You then need to change the name of the offending .brucfg file to something else or just delete it. Change the name of the backup file to what your config file was. Generally by getting rid of the backup extension. To be usable a config file must end with .brucfg
 

Attachments

  • Backup and Restoring from a Backup..pdf
    597.8 KB
//Prime_Pump_1
//Starting Pump_1 prime cycle.
"Valve_11" State = on
sleep 4000
"Pump_1" State = on
"Valve_14" State = on
sleep 10000
// Prime complete, closing valves and shutting off pump.
"Valve_14" State = off
"Pump_1" State = off
"Valve_11" State = off
// Terminating Pump_1 prime cycle.
stop Prime_Pump_1


I would use CamelCode for the Element Names

I ilke to give them somewhat meaningful names

as an example for your pump

Lets say it in on you Main Brewery Interface (Audrino) a digital out on port 40 and it is on my Main Brewery Workspace

I would name it
MB_40_do_Pump_1_Main and use a display name of Pump 1 or what ever you like,

MB - Main Brewery Inteface
_40 = port 40

do_= digital out
Pump_1+ is plain what it is

Main is the workspace This realy helps to find it on the screen~!

use the display name for the screen appearance.


I have found this very helpful and insures a unique name and no conflicts in scripts beween a name an an object (like an element).
 
Does it play nice now?

And yeah, the start/stop statements are used for other scripts or timers. I have an "overall" script for each fermenter that, based on the respective "Ferm Status" being true or false, either starts all my associated scripts and enables devices or stops/disables. That script is always running (using a wait statement).

So in your case, you may want a script that enables and disables this script based on certain conditions, or you may want to add a button or switch to your interface, and the script can watch for them to be set to true before doing a thing
@CDCTx it is playing nice.

It was literally my first script...just trying to open a few valves ,run the pump for a few seconds to avoid cavitation, and shut everything back down...and of course I broke it.

Thanks for the advice on everything so far...I'm sure I'll be back.
 
//Prime_Pump_1
//Starting Pump_1 prime cycle.
"Valve_11" State = on
sleep 4000
"Pump_1" State = on
"Valve_14" State = on
sleep 10000
// Prime complete, closing valves and shutting off pump.
"Valve_14" State = off
"Pump_1" State = off
"Valve_11" State = off
// Terminating Pump_1 prime cycle.
stop Prime_Pump_1


I would use CamelCode for the Element Names

I ilke to give them somewhat meaningful names

as an example for your pump

Lets say it in on you Main Brewery Interface (Audrino) a digital out on port 40 and it is on my Main Brewery Workspace

I would name it
MB_40_do_Pump_1_Main and use a display name of Pump 1 or what ever you like,

MB - Main Brewery Inteface
_40 = port 40

do_= digital out
Pump_1+ is plain what it is

Main is the workspace This realy helps to find it on the screen~!

use the display name for the screen appearance.


I have found this very helpful and insures a unique name and no conflicts in scripts beween a name an an object (like an element).
@oakbarn noted...I'll certainly implement this sort of naming convention to keep everything straight and easy to locate...I have seen lots of other people's scripts in this forum and was always perplexed at the cryptic names people used...now it makes sense :)
 
@CDCTx it is playing nice.

It was literally my first script...just trying to open a few valves ,run the pump for a few seconds to avoid cavitation, and shut everything back down...and of course I broke it.

Thanks for the advice on everything so far...I'm sure I'll be back.

@oakbarn noted...I'll certainly implement this sort of naming convention to keep everything straight and easy to locate...I have seen lots of other people's scripts in this forum and was always perplexed at the cryptic names people used...now it makes sense :)
Awesome! It was a good learning experience, clearly, and now you see the app's config structure. The documentation is very helpful, and you can get creative with the very simple script language.

For naming, yes, it's interesting to see the variation. I use BC for the cold side only. Each workspace is the fermenter name (Spike 1, BrewBuilt 1, Fermzilla 1), and everything is then based on abbreviations of those. So on the Spike 1 (SP1) workspace, I have SP1 Tilt, SP1 Temperature, SP1 PSI, etc. Since I have the same control setup across all fermenters, when I make a script to manage some fermentation aspect, I can write a script for one fermenter, test it, then copy that code into new scripts for the other fermenters (using Ctrl + H to replace, e.g., SP1 with BB1). Script names also use the abbreviations, but to keep them from clashing with element/global names, I always add "Script" at the end of the script name.
 
Hi All,

Been away from the brewhouse for a while and on to a new automation project before re-starting the brewery. Not sure where to post this query as it is not related to brewing, but it is linked to Brucontrol (Mega 2560)- I am working on automating a diesel irrigation pump. I am building a small scale simulator for now and I need to read an RPM value by measuring gear tooth via a Hall Effect sensor (data sheet attached). This sensor should provide a square wave digital output. It has 3 wires - ground, Vdc In (5 Vdc supplied) and signal. I connected the signal to pin A1 (port55) as an Analog Input and I read 4.36 V with a metal target far, and 0.0V with metallic target near.

I get a reading on my related Brucontrol Element, but it seems like the refresh rate is too slow - there's an delay which makes the reading unusable when moving the target in and out of range - by hand - my Element essentially always shows target far unless I slow down the movement dramatically.

Any suggestion on how to obtain a reading fast enough to count gear teeth on a rotating flywheel with my Brucontrol?
 

Attachments

  • Hall Effect Sens.pdf
    292.9 KB
I am trying to figure out dead band elements.

I cannot get a the dead band element to be enabled via a script

"my Dead Band Element" enabled = true

No error, but Element is not emabled.
 
Hi All,

Been away from the brewhouse for a while and on to a new automation project before re-starting the brewery. Not sure where to post this query as it is not related to brewing, but it is linked to Brucontrol (Mega 2560)- I am working on automating a diesel irrigation pump. I am building a small scale simulator for now and I need to read an RPM value by measuring gear tooth via a Hall Effect sensor (data sheet attached). This sensor should provide a square wave digital output. It has 3 wires - ground, Vdc In (5 Vdc supplied) and signal. I connected the signal to pin A1 (port55) as an Analog Input and I read 4.36 V with a metal target far, and 0.0V with metallic target near.

I get a reading on my related Brucontrol Element, but it seems like the refresh rate is too slow - there's an delay which makes the reading unusable when moving the target in and out of range - by hand - my Element essentially always shows target far unless I slow down the movement dramatically.

Any suggestion on how to obtain a reading fast enough to count gear teeth on a rotating flywheel with my Brucontrol?
I am not familiar with the Mega 2560. My system can handle up 7kHz at its input, but I use a simple approach any system should handle. One pulse per revolution is all I look for to tell me my grain mill is alive and turning.
 

Attachments

  • 100_9618.JPG
    100_9618.JPG
    1.9 MB
  • 100_9450.JPG
    100_9450.JPG
    2.3 MB
Use an edge triggered interrupt?

I use a Mega2560 as the heart of my Reverse Osmosis controller which needs to count flow meter pulses at a rather slow pace given the ~4 GPH flow rate. I used edge triggered interrupts and it's been working great for years...

Cheers!
 
I am not familiar with the Mega 2560. My system can handle up 7kHz at its input, but I use a simple approach any system should handle. One pulse per revolution is all I look for to tell me my grain mill is alive and turning.
Nice setup. Seems like my project would be easier using a magnet or some other kind of marking on one single flywheel tooth - which I believe is the concept you are using for your motor. Not really possible with my flywheel - all tooth are identical..
 
Use an edge triggered interrupt?

I use a Mega2560 as the heart of my Reverse Osmosis controller which needs to count flow meter pulses at a rather slow pace given the ~4 GPH flow rate. I used edge triggered interrupts and it's been working great for years...

Cheers!
can an edge triggered interrupt be used on a digital input on Brucontrol?
 
can an edge triggered interrupt be used on a digital input on Brucontrol?

can an edge triggered interrupt be used on a digital input on Brucontrol?
Figured it out - I am using Counter Input function. My de Walt hand drill with 1/2 drill bit spins at 3600 RPM per spec sheet, and my Counter Input Element is showing 3650. Wonderful. Thanks to all!!
 
Nice setup. Seems like my project would be easier using a magnet or some other kind of marking on one single flywheel tooth - which I believe is the concept you are using for your motor. Not really possible with my flywheel - all tooth are identical..
My setup uses an inductive proximity sensor which gets triggered by the sprocket's mounting set screw once per revolution.
The red tape is a visual indicator and a simple gap adjustment gauge for the sensor.
 
One Wire:

I know you can have mutiple 1-Wire DS18B20 probe off One Pin.
I know that cable lenght can limit the 1-Wire DS18B20 probes.

Is it possible to use more than one PIN/Port for 1 Wire?

I know they are addressed virtually.
 
Whew... Finally made it through all 8000 posts on this thread. I'm planning to move to electric from gas, and Brucontrol looks like the hands-down best option out there. I'd love to start my build with the latest tech for futureproofing, starting with the esp32-s3. From what I can gather, there is still only a beta version of that out there, is that correct? Should I be concerned that we still don't have a published firmware for it a year out from beta? I noticed a distinct drop-off of brunDog's activity recently, and no posts in the last 7 months. I don't want to sound pessimistic but just making sure the product hasn't reached end-of-life before I jump in with both feet. Is it more a case of the product has reached a maturity level that the community can support it on it's own without BrunDog's help?

So I have been out of the hobby for a while and I'm finally getting back to it and am about to start putting some energy and effort into some sort of control panel and Brucontrol just hit my radar.

I started out looking into e-brew in 2015 or so and as I'm just getting back into it I've been looking to see what's changed as I go about putting my electric brewery together and finally get away from propane. I've been pulled in a million different directions since I started looking at this, my own indecisiveness is to blame!
I have a BCS-462 that I never put together, I have parts for a ebrewsupply control panel to go with it sitting in storage, that I have again yet to put together. I also have a now obsolete Brewboss controller that I picked up. I've also got pretty much everything pulled together for Kal's electric brewery. All of which I can sell, repurpose or just use as originally planned. Nothing is really off the table including selling it all and starting over. I was hoping to move towards some of the advancements made in my absence to the hobby which led me to Brucontrol.

I like the flexibility I have been reading about with Brucontrol, but I have some of the same concerns that enzedBru mentioned.
Is it worth me vesting energy into Brucontrol with BrunDog seemingly now missing? Is Brucontrol DOA for me at this point or is it still viable? Is there a different option that has a level of support outside of the community?
Should I just go back to the electric brewery with lots of off the shelf components and old reliable technology and a more manual process or is this automation worth the risk of it being potentially EOL?

Would you start putting together a Brucontrol system today if you were about to start down this journey?
 
Would you start putting together a Brucontrol system today if you were about to start down this journey?
I think the question you need to ask yourself is what level of automation is right for you. I started with an Ebrewsupply panel and BCS 462 and found it to be sufficient for my basic system at the time. As time went by and limited by the level of automation it offered I soon realised I had maxed out my options with that system. I made the jump to Brucontrol (basic) at first then onto (professional edition) later and this opened up for me anyways seemingly endless possibilities. Also I should mention that with more automation it translates into more $$$ invested in your system. My own personal opinion would be if starting out all over again I wouldn't hesitate to start with Brucontrol.
 
So I have been out of the hobby for a while and I'm finally getting back to it and am about to start putting some energy and effort into some sort of control panel and Brucontrol just hit my radar.

I started out looking into e-brew in 2015 or so and as I'm just getting back into it I've been looking to see what's changed as I go about putting my electric brewery together and finally get away from propane. I've been pulled in a million different directions since I started looking at this, my own indecisiveness is to blame!
I have a BCS-462 that I never put together, I have parts for a ebrewsupply control panel to go with it sitting in storage, that I have again yet to put together. I also have a now obsolete Brewboss controller that I picked up. I've also got pretty much everything pulled together for Kal's electric brewery. All of which I can sell, repurpose or just use as originally planned. Nothing is really off the table including selling it all and starting over. I was hoping to move towards some of the advancements made in my absence to the hobby which led me to Brucontrol.

I like the flexibility I have been reading about with Brucontrol, but I have some of the same concerns that enzedBru mentioned.
Is it worth me vesting energy into Brucontrol with BrunDog seemingly now missing? Is Brucontrol DOA for me at this point or is it still viable? Is there a different option that has a level of support outside of the community?
Should I just go back to the electric brewery with lots of off the shelf components and old reliable technology and a more manual process or is this automation worth the risk of it being potentially EOL?

Would you start putting together a Brucontrol system today if you were about to start down this journey?
 
I would as it is a fairly mature system. I am also concerned that @ Brundog has been absent from the forum but the website is still up and you can order things. I also started with a BCS 462?and moved to a 482 ( not really any improvement)

You were limited in I/o and had only 64 avaiable steps.

Also no 4-20 ma with the BCS. I think that is a dead horse now.

BruControl adds a lot including as many branching steps as you want . And with many more I/o s

The scripting is a steep curve but the forum is active
 
So I have been out of the hobby for a while and I'm finally getting back to it and am about to start putting some energy and effort into some sort of control panel and Brucontrol just hit my radar.

I started out looking into e-brew in 2015 or so and as I'm just getting back into it I've been looking to see what's changed as I go about putting my electric brewery together and finally get away from propane. I've been pulled in a million different directions since I started looking at this, my own indecisiveness is to blame!
I have a BCS-462 that I never put together, I have parts for a ebrewsupply control panel to go with it sitting in storage, that I have again yet to put together. I also have a now obsolete Brewboss controller that I picked up. I've also got pretty much everything pulled together for Kal's electric brewery. All of which I can sell, repurpose or just use as originally planned. Nothing is really off the table including selling it all and starting over. I was hoping to move towards some of the advancements made in my absence to the hobby which led me to Brucontrol.

I like the flexibility I have been reading about with Brucontrol, but I have some of the same concerns that enzedBru mentioned.
Is it worth me vesting energy into Brucontrol with BrunDog seemingly now missing? Is Brucontrol DOA for me at this point or is it still viable? Is there a different option that has a level of support outside of the community?
Should I just go back to the electric brewery with lots of off the shelf components and old reliable technology and a more manual process or is this automation worth the risk of it being potentially EOL?

Would you start putting together a Brucontrol system today if you were about to start down this journey?
BruControl has been great. I've even advanced to having Node/Node-RED take over a lot of automation (fermentation steps and such), but BruControl w/ its globals and scripting work great as the ultimate backend for it. You are limited by your own imagination (and willingness to learn new coding things...or use ChatGPT?) with the advanced version.

That said, I'd reach out to BC's site to see if you get a reply and ensure it is all good to go. BrunDog's absence from here (and from the BC forum) is notable. He may just he taking a well-deserved break from things, but make sure someone is on top of subscription management.
 
BruControl has been great. I've even advanced to having Node/Node-RED take over a lot of automation (fermentation steps and such), but BruControl w/ its globals and scripting work great as the ultimate backend for it. You are limited by your own imagination (and willingness to learn new coding things...or use ChatGPT?) with the advanced version.

That said, I'd reach out to BC's site to see if you get a reply and ensure it is all good to go. BrunDog's absence from here (and from the BC forum) is notable. He may just he taking a well-deserved break from things, but make sure someone is on top of subscription management.
Thanks everyone! I'm reading through the entire thread and have an email over to BruControl to find out some answers prior to pulling the trigger.
 
Back
Top