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.
1606076936968.png
 
This is something new? Or after an upgrade?
I have something similar going on with my esp32s, haven't gotten around to chasing up a fix myself or details to pass onto you yet though. It first started six months ago when I was testing, so probably an earlier firmware than 45N at the time, but that's what it's on now. I'll try to chase up some details over the next few days when I can spend some time in the shed.
 
It is possible it dropped a packet which causes BC to timeout, but then can be successfully pinged. You might run an infinite ping along side BC and see if it ever drops.

Also, can you connect a computer, put it in debug and see what signal strength it is reporting?

I don't think there is an issue with WiFi on ESP32. Running 45O on a test bench, which (to the best of my knowledge) does not have anything different with respect to radio compared to 45N. Occasionally the libraries are updated which has known to break things. You can upgrade to 45O it if you like - it is in the package on the website. On my test bench ESP32, the RSSI is running -55 to -60, which is not that strong.
 
Ok so to clarify, The ESP32 can power the RP-3 directly using one of the 3.3V pins?
I have 2 RP-3 connected to a single ESP32 this way, and sometimes on power-up I have to disconnect one before the ESP becomes reachable, then connect it and all works fine... the ESP32 is powered via USB, and I need to ensure I am using the 3.3v pin... multiple other ESP32 variants with single RP-3 are working fine...
 
Could you post a Part's List and where you got them?

It has been some time since I put this together but it was an Uno R3, 1602 LCD Keypad shield, MCP4725 DAC, HX711 load cell amplifier, your choice of controller mount, power supply, wiring, enclosure, etc. I got most of this off of Amazon except for the spark fun load cell amplifiers. One can get more than one HX711 on an Uno but I didn't bother to work it out as I wanted two continuous local displays and this stuff isn't terribly expensive. The analog output over to the BC controller is a bit of a brute force mechanism given the way it goes back and forth through analog/digital/analog conversions in the signal path but it does work. There are other mechanisms now with the ability to bring data values in to BC as per methods described in this thread. In that case, you would eliminate the MCP4725 and need to add an ethernet shield presumably to get the data over to BC.
 
Last edited:
Not sure if this is the place for this, but I just recently bought a copy of BC. I was a former Craftbeerpi user. My 3 bbl setup has just basic PID control and I'd like to add more user friendly options. I have the basics/ manual portion of BC down. I think it may take me some time to get the scripting down. If i could just get an example of attaching a switch and LED to say a pump using PWM or to a PID this would help a lot. I need something practical that I can use and branch off of. ANY help would be greatly appreciated. I'm assuming said script is fairly short and sweet??
 

I'm definitely not a computer guru, but I think the N series is for mobile applications (power saving) whereas the J series uses more power, and is therefore faster. So I would look for J4125 or better. I think there are several in the price range you are posting (like this one I bought a couple months ago on a lightning deal: https://www.amazon.com/dp/B0899N2L6T/)
 
Not sure if this is the place for this, but I just recently bought a copy of BC. I was a former Craftbeerpi user. My 3 bbl setup has just basic PID control and I'd like to add more user friendly options. I have the basics/ manual portion of BC down. I think it may take me some time to get the scripting down. If i could just get an example of attaching a switch and LED to say a pump using PWM or to a PID this would help a lot. I need something practical that I can use and branch off of. ANY help would be greatly appreciated. I'm assuming said script is fairly short and sweet??

I can try help, but I'm not clear on what you have so far and what you are looking to do. Did you create a PID Device Element to control your device? Is that working manually?

Now, what do you want to do? You don't need a switch to control it, because you can control it directly in the workspace. Perhaps more details and/or pics could give us some direction. Thanks!
 
I can try help, but I'm not clear on what you have so far and what you are looking to do. Did you create a PID Device Element to control your device? Is that working manually?

Now, what do you want to do? You don't need a switch to control it, because you can control it directly in the workspace. Perhaps more details and/or pics could give us some direction. Thanks!
So I have created a PID to operate elements, Hysteresis for my fermentation and a 0 to 100 PWM for pumps. I know I can Enable and turn them off/down from the control, but I really like having an "on/off" switch with LED indicator for my elements and pumps. I like to set my pumps to say 25% and just turn an and off at that percent and then adjust as needed. Plus it's a faster way to disable the element or pump if needed. For fermentation id like the switch to turn off the Hysteresis so that my solenoid doesn't kick on say when I'm running CIP. This way I wouldn't have to turn the temp up or disable the PID it's self (which is totally doable, but I like the simplicity of "on/off" switch). So I am hoping with one script example I can modify it to do these similar things and get my feet wet a bit on this whole scripting thing. Let me know if this makes sense? I've added an example of the fermentation setup up and how I would like to link the switch to the temp control with an LED indicator. It would then be similar to that of the pump control and element PID.
FV screen shot.jpg
 
I have a Digital Input Element on a Mega that is not wired yet to any equipment. It is cycling "On" and "Off". There are no scripts running. Is this because I do not have anything wired to the Port?
 
So I have created a PID to operate elements, Hysteresis for my fermentation and a 0 to 100 PWM for pumps. I know I can Enable and turn them off/down from the control, but I really like having an "on/off" switch with LED indicator for my elements and pumps. I like to set my pumps to say 25% and just turn an and off at that percent and then adjust as needed. Plus it's a faster way to disable the element or pump if needed. For fermentation id like the switch to turn off the Hysteresis so that my solenoid doesn't kick on say when I'm running CIP. This way I wouldn't have to turn the temp up or disable the PID it's self (which is totally doable, but I like the simplicity of "on/off" switch). So I am hoping with one script example I can modify it to do these similar things and get my feet wet a bit on this whole scripting thing. Let me know if this makes sense? I've added an example of the fermentation setup up and how I would like to link the switch to the temp control with an LED indicator. It would then be similar to that of the pump control and element PID.View attachment 707787

Gotcha... that's easy. Here is a script example of the switch controlling the fermenter element:

Code:
[setup]
new bool toggle
toggle = false

[loop]
if "Switch 1" state == true
    if toggle == true
        "Fermenter 1" enabled = true
        toggle = false
    endif
else
        "Fermenter 1" enabled = false
        toggle = true
endif
sleep 100
goto loop

I used a toggle flag to limit the repeat enablement of the fermenter element, though in truth BruControl will not resend to repeat command to the device element, so it isn't really necessary.

Code:
[loop]
if "Switch 1" state == true
        "Fermenter 1" enabled = true
else
        "Fermenter 1" enabled = false
endif
sleep 100
goto loop
 
Last edited:
Is there a way to replicate the whole workspace1 to workspace2?
I mean all the elements and their positions, properties. In that process, I would change the names so there are no duplicates of course.
it would be fgreat to be able to do that.
 
Gotcha... that's easy. Here is a script example of the switch controlling the fermenter element:

Code:
[setup]
new bool toggle
toggle = false

[loop]
if "Switch 1" state == true
    if toggle == true
        "Fermenter 1" enabled = true
        toggle = false
    endif
else
        "Fermenter 1" enabled = false
        toggle = true
endif
sleep 100
goto loop

I used a toggle flag to limit the repeat enablement of the fermenter element, though in truth BruControl will not resend to repeat command to the device element, so it isn't really necessary.

Code:
[loop]
if "Switch 1" state == true
        "Fermenter 1" enabled = true
else
        "Fermenter 1" enabled = false
endif
sleep 100
goto loop
Thank you that works great, I was able to apply this to all the elements that I wanted to be able to turn on and off? I did try to incorporate the LED indicator with no luck. I tried both a global and inspector. Global being boolean (true/false) and inspector having the ability to add a script to it but was not successful? Any ideas?
 
Thank you that works great, I was able to apply this to all the elements that I wanted to be able to turn on and off? I did try to incorporate the LED indicator with no luck. I tried both a global and inspector. Global being boolean (true/false) and inspector having the ability to add a script to it but was not successful? Any ideas?
Update: Appears I just needed another go at it! I was able to use global with led. My problem was I was not "enabling" the element rather than changing the "value" of it to true/false. Makes sense, I just couldn't find the term I needed to communicate this to the element but some digging got it done.

Thanks again for all the help. Feels good to figure it out on my own lol
 
I have a some looping Scripts that constantly Run to check the status of switches and set backgrounds depending on the state of elements. All use if endif code sometimes with some nested ifs.

As an example, my ScrAutoSwitch has 442 lines while the ScrWhitePump only has 8 lines (has more but others are comments.) Both run a constant Loop.

Some switches control other Elements in the big Loop (ScrAutoSwitch).

Just as a general concept, would it be better to only have One Looping Script constantly running? It does not seem to make any perceptible difference when combined.

I have two pumps that are controlled from different WorkSpaces.

My "White Pump" is controlled by a looping Script (ScrWhitePump)I got a lot of help from Nate using a boolen variable. This small script loops.

I also have a "Yellow Pump" that is controlled in the Larger Script (ScrAutoSwitch) by a few lines and a separate Script that is run when either control is changed. The separate Script is also very short 12 lines but has a wait statement, but stops when the Yellow Pump is turned off.

The only advantage I see of having separate Scripts is a smaller Script is easier to edit and find errors and to modify.

I am thinking that having only one looping Script (ScrAutoSwitch) would be better for "overhead" unless it got too big where it might delay an action rather than have several smaller looping scripts.
 
This is my layout so far, still needs polishing but I feel like I am heading in the direction I was hoping for. Still need to add more scripting for automated processes but that will come. Any suggestions?
screen shot of BC .jpg
 
Not sure if this has been mentioned yet, but I just upgraded to v1.1.0.9 and see all the new element enable switches. It doesn't look like there is an option to disable that from the default element setup. Is the only way to do this currently by disabling it in each element? I've got a lot of elements. :yes:
 
Not sure if this has been mentioned yet, but I just upgraded to v1.1.0.9 and see all the new element enable switches. It doesn't look like there is an option to disable that from the default element setup. Is the only way to do this currently by disabling it in each element? I've got a lot of elements. :yes:
I did report this. PITA!

 
Last edited:
Update: Appears I just needed another go at it! I was able to use global with led. My problem was I was not "enabling" the element rather than changing the "value" of it to true/false. Makes sense, I just couldn't find the term I needed to communicate this to the element but some digging got it done.

Thanks again for all the help. Feels good to figure it out on my own lol
I have a Mega that is not wired so I can create "Elements" that act like the real thing. I can control a different real Element on a different Workspace with my "Psuedo" Element, with the exact look and feel of the real Element.
 
This is kinda cool: https://www.digikey.com/short/zvh7dr (manufacturer link: ESP32-EVB - Open Source Hardware Board).

ESP-32, external Wi-Fi antenna, ethernet, 2x 10A relays, LiPo battery interface, 5V power jack, all I/O accessible, enclosure. Add a 1-wire temperature probe and some power cords and you have a pretty nice fermentation controller with Tilt reading capability too.

1606883680557.png
 
Last edited:
The CAN interface is interesting... really interesting.... IR interface also... the relays are not powered when on battery, which is OK, I guess... whatever you were going to switch with them would not have power anyway... the external antenna and full GPIO make my ESP8285 SonOff Duals very jealous.... if it weren't for their built in 100-240vac power and connections and $10 price point....
 
Back
Top