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 have found that with count down timers

wait "Some Timer" value == 00:00:00

does not work. It never exactly hits 00:00:00 internally.

wait "Some Timer" value <= 00:00:00 works fine.

Correct... you should not expect an exact time to be achieved. Even though you see 0 seconds and that variable is 0, the computer has an internal timer will milliseconds (or beyond), so they will not line up. Always use greater than or less than, as you noted.
 
While I'm filling up the forum tonight (sorry for the slow responses above!)... I thought I'd let you know about a feature we are adding for the next update... Profiles. We will add a discreet element which can control parameters of other elements based upon conditions of other elements. In its simplest (and most likely used) implementation, you could have a PID which changes target when a timer passes certain time points. This will help with Mash and Fermentation profiles, saving you the need to do this via scripting only. It would also allow as many change points as you want. Also, you will be able to change multiple values at once, such as changing the PID target and the pump speed at the same time.

Working on getting this out in the next few weeks!
 
What is "gBrewStatus"? You need to keep everything in context. If you had an object, and you wanted to perform an action to it, they need to match. For example, if your object was "school" and your action was "eat" - this wouldn't work as you can't eat a school. But if your object were "apple", then it would make sense. In this case, this may be a particular element (we don't know what it is because you didn't say) which does not allow math to take place on it.


You got lost in the trees and did not see the forest.

new value gBS
gBS = "gBrewStatus" value
gBS += 1
"gBrewStatus" value = gBS
delete gBS

works but

"gBrewStatus" value += 1


throw an error!

Why does not the "gBrewStatus" value += 1 work?

gBrewStatus is a global element type value.

bBrewStatus is simply a global element value that is incrementally advance +1 when a switch (AllSwitch) is clicked and sometimes by a timer or temperature. I use a wait statement to advance my brew day script based on the value of gBrewStatus. it allows me to jump into the brew day script where I want when testing. It is simply something for my own use and may have no value to someone else. Just a different way to skin the cat.

in a running script
//gBrewStatus is a global value type element that is hidden. When testing it is visible allowing me to incrementally jump by manually changing the value similar to the Step in the Script Window, except that I can see the whole screen and not have the script pane open or by simply clicking the "AllSwitch"
if "AllSwitch" == true
new value gBS
gBS = "gBrewStatus" value
gBS += 1
"gBrewStatus" value = gBS
delete gBS
"AllSwitch" =false
end if

I can use the "AllSwitch" Switch Element to control the flow of my Brew Script regardless of where I am. I have a different global that serves as the Label for the switch. "AllSwitchDisplay" that is a string type global.

wait gBrewStatus == 1
//write some code to do something
wait gBrewStatus == 2
//jump here after "AllSwitch" is clicked and gBrewStatus is now 2
//write some code to do something
//wait on a Temp
if "MLT Temperature" value <= "Strike Setpoint" value
gBrewStatus = 3
wait gBrewStatus == 3
//write some code to do something like add grain

I find it very helpful when testing long scripts.

And I might want to eat the School. Just depends. I like thinking outside the box.
 
Last edited:
While I'm filling up the forum tonight (sorry for the slow responses above!)... I thought I'd let you know about a feature we are adding for the next update... Profiles. We will add a discreet element which can control parameters of other elements based upon conditions of other elements. In its simplest (and most likely used) implementation, you could have a PID which changes target when a timer passes certain time points. This will help with Mash and Fermentation profiles, saving you the need to do this via scripting only. It would also allow as many change points as you want. Also, you will be able to change multiple values at once, such as changing the PID target and the pump speed at the same time.

Working on getting this out in the next few weeks!

This made my day. So in my case, I plan to have a standard fermentation profile with user option for Manuel mode (is drest, cold crash). How will this workflow handle along with the profile feature?

Looking forward to trying this out!
 
bBrewStatus is simply a global element value that is incrementally advance +1 when a switch (AllSwitch) is clicked and sometimes by a timer or temperature. I use a wait statement to advance my brew day script based on the value of gBrewStatus. it allows me to jump into the brew day script where I want when testing. It is simply something for my own use and may have no value to someone else. Just a different way to skin the cat.

in a running script
//gBrewStatus is a global value type element that is hidden. When testing it is visible allowing me to incrementally jump by manually changing the value similar to the Step in the Script Window, except that I can see the whole screen and not have the script pane open or by simply clicking the "AllSwitch"
if "AllSwitch" == true
new value gBS
gBS = "gBrewStatus" value
gBS += 1
"gBrewStatus" value = gBS
delete gBS
"AllSwitch" =false
end if

I can use the "AllSwitch" Switch Element to control the flow of my Brew Script regardless of where I am. I have a different global that serves as the Label for the switch. "AllSwitchDisplay" that is a string type global.

wait gBrewStatus == 1
//write some code to do something
wait gBrewStatus == 2
//jump here after "AllSwitch" is clicked and gBrewStatus is now 2
//write some code to do something
//wait on a Temp
if "MLT Temperature" value <= "Strike Setpoint" value
gBrewStatus = 3
wait gBrewStatus == 3
//write some code to do something like add grain

I find it very helpful when testing long scripts.

And I might want to eat the School. Just depends. I like thinking outside the box.

It's your world, but if you want your script to behave, or at least do what you expect, you need to stay very, very much inside the box. Like your example above: 'if "AllSwitch" == true' should not work, as there is no parameter such as 'state'. ('wait gBrewStatus == 1' is also syntactically incorrect).
 
You got lost in the trees and did not see the forest.

new value gBS
gBS = "gBrewStatus" value
gBS += 1
"gBrewStatus" value = gBS
delete gBS

works but

"gBrewStatus" value += 1


throw an error!

Why does not the "gBrewStatus" value += 1 work?

gBrewStatus is a global element type value.

bBrewStatus is simply a global element value that is incrementally advance +1 when a switch (AllSwitch) is clicked and sometimes by a timer or temperature. I use a wait statement to advance my brew day script based on the value of gBrewStatus. it allows me to jump into the brew day script where I want when testing. It is simply something for my own use and may have no value to someone else. Just a different way to skin the cat.

in a running script
//gBrewStatus is a global value type element that is hidden. When testing it is visible allowing me to incrementally jump by manually changing the value similar to the Step in the Script Window, except that I can see the whole screen and not have the script pane open or by simply clicking the "AllSwitch"
if "AllSwitch" == true
new value gBS
gBS = "gBrewStatus" value
gBS += 1
"gBrewStatus" value = gBS
delete gBS
"AllSwitch" =false
end if

I can use the "AllSwitch" Switch Element to control the flow of my Brew Script regardless of where I am. I have a different global that serves as the Label for the switch. "AllSwitchDisplay" that is a string type global.

wait gBrewStatus == 1
//write some code to do something
wait gBrewStatus == 2
//jump here after "AllSwitch" is clicked and gBrewStatus is now 2
//write some code to do something
//wait on a Temp
if "MLT Temperature" value <= "Strike Setpoint" value
gBrewStatus = 3
wait gBrewStatus == 3
//write some code to do something like add grain

I find it very helpful when testing long scripts.

And I might want to eat the School. Just depends. I like thinking outside the box.

I read somewhere earlier in this thread that global variables don’t like in line math. I assign my globals to inspectors and then I do the math.
 
You got lost in the trees and did not see the forest.

And I might want to eat the School. Just depends. I like thinking outside the box.


Thats totally how I ask folks for help too. I like to add some snarky/condescending comments. Even when the answer has already been posted, but you are too lazy to do some research... I find it totally helpful and thought provoking. If you are such a wizard why are you asking for basic scripting help?
 
Die_Brewery,
Thank you for posting the YouTube vid on importing a recipe into BC. It gave a good overview of the process. More complicated than I imagined, however, for a lowly non-coder or engineer. Between the enormous help and advice from BrunDog, RiverCityBrewer, Day_Tripper (and many others) I think I can push on to finalize a solution on the RPI. I have installed node red, pm2, chrome with the restlet extension. Sure could use more memory though. Continuing on with my experiment...
 
I suggest you draft and use a schematic enough! There is risk in interpretation when you discuss lines. You can power Vin with a higher voltage than the USB voltage - it will not be backfed. If you mean shield for "hat", the voltage is directly provided to the shield from the interface - no thinking required.

Currently I am using USB, which I assume provides 5V to the MEGA. So I should not have to wire 5V to Vin? Here is my power supply diagram. I did a bit of reading, and it seems the Arduino can autoswitch from the jack to the 5V connection provided that the jack voltage is over 7.5V. It also said that the 5V should not be connected to a 5V source when powered via USB. LOL. Now I am more confused. I am hoping there is some isolation between the USB connection and the 5V incoming power.

From the Arduino.cc site:
  • "The Mega 2560 can be powered via the USB connection or with an external power supply. The power source is selected automatically."
  • "The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may become unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts."
  • "5V. This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it." LOL but supplying 12V to the regulator isnt advised either is it?

gLljoWy.png


Is there a way to edit some backend file to switch to Ethernet from USB?
 
Last edited:
Die_Brewery,
Thank you for posting the YouTube vid on importing a recipe into BC. It gave a good overview of the process. More complicated than I imagined, however, for a lowly non-coder or engineer. Between the enormous help and advice from BrunDog, RiverCityBrewer, Day_Tripper (and many others) I think I can push on to finalize a solution on the RPI. I have installed node red, pm2, chrome with the restlet extension. Sure could use more memory though. Continuing on with my experiment...

Are you running on a Pi3 or have you picked up a Pi4 with 4gb ram?
 
Currently, Win10 can't boot on the RPI 4. When that work is done - and work is being done on that - it will solve the 1 meg memory limitation (and latency) of using BC on the RPI. I am trying to work through the use of BC, scripting and recipe import (which I don't have the the knowledge to do without the kind assistance of the people mentioned on this forum) in the meantime with the 3B+.
 
Currently I am using USB, which I assume provides 5V to the MEGA. So I should not have to wire 5V to Vin? Here is my power supply diagram. I did a bit of reading, and it seems the Arduino can autoswitch from the jack to the 5V connection provided that the jack voltage is over 7.5V. It also said that the 5V should not be connected to a 5V source when powered via USB. LOL. Now I am more confused. I am hoping there is some isolation between the USB connection and the 5V incoming power.

From the Arduino.cc site:
  • "The Mega 2560 can be powered via the USB connection or with an external power supply. The power source is selected automatically."
  • "The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may become unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts."
  • "5V. This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it." LOL but supplying 12V to the regulator isnt advised either is it?

gLljoWy.png


Is there a way to edit some backend file to switch to Ethernet from USB?

Yes this can be confusing. I would advise against using the computer’s 5V via USB as the sole power supply.

Yes, the power inputs are auto switching. What can be confusing is the 5V pin is the output of the regulator and powers the rest of the board. So this can be used as an output (5V after the regulator) or as an input to power the board. that last line about “we don’t recommend it” is really a warning that you need to use a quality power supply here (low noise, ripple, etc.).

Nowhere does it say you can’t power with 12V. It says higher than that can overheat it. Some have had some experience saying 12V will overheat it, but my bet is this is manufacturer dependent. I’d suggest putting a stick-on heat sink on the regulator and/or the thermal pad underneath it.

I suggest you power the board via the VIn pin or jack with a voltage between 7 and 12V. The jack has a diode on it, so if powering the board with 12V there will drop to 11.3V before reaching the regulator. Vin voltage will go straight to the regulator, so if using the jack will take some of the pressure off the regulator.

To answer your questions... do not wire 5V to Vin - it’s not enough due to the drop in the regulator. The lowest voltage via Vin would be 6V and via the jack would be 7V.

Make sense?
 
Currently I am using USB, which I assume provides 5V to the MEGA. So I should not have to wire 5V to Vin? Here is my power supply diagram. I did a bit of reading, and it seems the Arduino can autoswitch from the jack to the 5V connection provided that the jack voltage is over 7.5V. It also said that the 5V should not be connected to a 5V source when powered via USB. LOL. Now I am more confused. I am hoping there is some isolation between the USB connection and the 5V incoming power.

From the Arduino.cc site:
  • "The Mega 2560 can be powered via the USB connection or with an external power supply. The power source is selected automatically."
  • "The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may become unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts."
  • "5V. This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it." LOL but supplying 12V to the regulator isnt advised either is it?

gLljoWy.png


Is there a way to edit some backend file to switch to Ethernet from USB?

What software is this? Looking for a good free wiring diagram software
 
Yes this can be confusing. I would advise against using the computer’s 5V via USB as the sole power supply.

Yes, the power inputs are auto switching. What can be confusing is the 5V pin is the output of the regulator and powers the rest of the board. So this can be used as an output (5V after the regulator) or as an input to power the board. that last line about “we don’t recommend it” is really a warning that you need to use a quality power supply here (low noise, ripple, etc.).

Nowhere does it say you can’t power with 12V. It says higher than that can overheat it. Some have had some experience saying 12V will overheat it, but my bet is this is manufacturer dependent. I’d suggest putting a stick-on heat sink on the regulator and/or the thermal pad underneath it.

I suggest you power the board via the VIn pin or jack with a voltage between 7 and 12V. The jack has a diode on it, so if powering the board with 12V there will drop to 11.3V before reaching the regulator. Vin voltage will go straight to the regulator, so if using the jack will take some of the pressure off the regulator.

To answer your questions... do not wire 5V to Vin - it’s not enough due to the drop in the regulator. The lowest voltage via Vin would be 6V and via the jack would be 7V.

Make sense?

Assuming I have a quality supply, I can just use 5V into the 5V pin and I also have the option to put 7-12V into the Vin. Gotcha! Thanks for the breakdown man!

What software is this? Looking for a good free wiring diagram software

Man I'm sorry, its AutoCAD Electrical 2018. $2k/year license...
 
Assuming I have a quality supply, I can just use 5V into the 5V pin and I also have the option to put 7-12V into the Vin. Gotcha! Thanks for the breakdown man!



Man I'm sorry, its AutoCAD Electrical 2018. $2k/year license...

I actually have 2016 Autocad Electrical. It came in the Product Design Suite. Totally forgot- I’ll be firing this up tonight
 
I was changing from one interface to another (serial vs TCP). I had some Elements that I needed to create and setup on the new interface. I simply renamed them on the old interface (serial) and create the new ones with the script used name on the new interface (TCP). When I created a Hysteresis Element and went to select the Input from the Input Device PullDown menu, only Inputs from the same interface (TCP) populated the choice(s). Does the Input Device for a Hysteresis Element need to be from the same Interface as the Hysteresis Element?

I also created a Deadband Element and PID Element and the Input Device needed to be from the same interface for them as well. Is this normal or am I doing something wrong?
 
I was changing from one interface to another (serial vs TCP). I had some Elements that I needed to create and setup on the new interface. I simply renamed them on the old interface (serial) and create the new ones with the script used name on the new interface (TCP). When I created a Hysteresis Element and went to select the Input from the Input Device PullDown menu, only Inputs from the same interface (TCP) populated the choice(s). Does the Input Device for a Hysteresis Element need to be from the same Interface as the Hysteresis Element?

I also created a Deadband Element and PID Element and the Input Device needed to be from the same interface for them as well. Is this normal or am I doing something wrong?
These type of feedback control loops are fully implemented in the MCUs firmware. The MCU will read the input sensor, calculate the new output value and apply it without having to communicate back to the BruControl software. The software only sends new setpoint changes after the device is enabled in software. This allows for things like fermentation control to keep working without any hickups if the BruControl PC goes down for one reason or another.
 
Very basic question for the group. If I want to add the capability to measure and report dissolved oxygen, I simply need a probe and a transmitter, right? Same goes for inline pH measurement, probe to measure and transmitter to get the signal to BC.

Trying to get a basic understanding of the principles to avoid plopping down cash on something useless.
 
Very basic question for the group. If I want to add the capability to measure and report dissolved oxygen, I simply need a probe and a transmitter, right? Same goes for inline pH measurement, probe to measure and transmitter to get the signal to BC.

Trying to get a basic understanding of the principles to avoid plopping down cash on something useless.

Are you talking about something like the Rosemount or Micromotion stuff that DieBeerery has? If its industrial you likely need a sensor AND transmitter. Just make sure to read the technical documentation and make sure the two are compatible!
 
I have 4 wire 12mm panel mounts for RTD and solenoid valves. From what I understand each of these only need 3 wires. Any reason to preserve the 4th wire? Perhaps a ground on RTD?
 
BTW, the Robotshop Mega: Post #3369
https://www.robotshop.com/media/files/pdf/datasheet-ethermega.pdf

is a Freetronics EtherMega:

https://www.freetronics.com.au/prod...compatible-with-onboard-ethernet#.XZyyyPlKiCo

There is a DIN switch to switch between the DC IN and the USB power. It does have the warning about not connecting power to the 5 vdc pin as per a normal board when you have power from a wall wart. This is something you need to remember if flashing a new firmware. The DIN switch is via a connector that needs to be moved and not accessible under a screw shield.

It will connect with the USB, but you will need a wall wart to update the firmware.

I also had to add some long headers as the Ethernet RJ45 jack would not fit with a screw shield.

It can take up to a 28 vdc input.

The microusb looks slightly better connected but I would have preferred a bigger one as they do not seem as flimsy. That being said, it is better than the Robodyn USB connector.

It flashed fine with 45c.

It took the network setup as per normal. It works!

The Roboshop one is less $$
 
Should I wire in any fuses to this build? I have (3) DIN mount fuse holders
 
Should I wire in any fuses to this build? I have (3) DIN mount fuse holders

My panel is sort of a hybrid, High Voltage is old school with manual switching protected with circuit breakers, everything else automated Brucontrol. All my end devices both 120VAC an DC are fuse protected, everything from the LED panel lights to automated valves,pressure sensors,flow meters,pumps... etc.
Overkill possibly, but dont want to risk a current spike, over voltage situation, or a malfunctioning device taking out half my panel, so both downstream wiring and devices are protected with upstream fusing.
If you already have the DIN Fuse holders why not use them?
As @RiverCityBrewer mentions its about how much you value the equipment at the end of each circuit.

.Fuse Terminal HV AC .jpg Fuse Terminals.jpg
 
Last edited:
The answer depends entirely on how much you value the equipment that would be protected by the fuse.

How does one determine which size fuse to use for the equipment needing protection?

The components I have in mind is like to protect are..

1. ARDUINO mega
2. 24v DC Power
3. 12v DC Power
4. Salon Relay Board
5. PT100 RTD amplifier board
 
Check your power supplies, some already have a breaker "reset" button on them... you may have to look at the datasheet to see if they have this feature. The datasheet should also tell you how much current they should pull at max load, that would be the number you would want to size the fuse for. The arduino would be a good candidate for a protection fuse. I believe the max load through the entire board is somewhere in the ballpark of 200 milliamps (depending on your input voltage), so a fast blow fuse of that size or slightly lower rating would be sufficient to protect the equipment. Rinse and repeat that strategy for your other boards and you'll be in good shape.
 
Check your power supplies, some already have a breaker "reset" button on them... you may have to look at the datasheet to see if they have this feature. The datasheet should also tell you how much current they should pull at max load, that would be the number you would want to size the fuse for. The arduino would be a good candidate for a protection fuse. I believe the max load through the entire board is somewhere in the ballpark of 200 milliamps (depending on your input voltage), so a fast blow fuse of that size or slightly lower rating would be sufficient to protect the equipment. Rinse and repeat that strategy for your other boards and you'll be in good shape.
Awesome, thankyou!
 
Ive got the hardware side of things pretty much squared away...In an effort to learn, I'm starting with manipulating this script and getting it to interact with GUI as I would like.

I'd like to nail down the following...
1. To show variable day counter using global, cant seem to get this to show. Ive tried adding "daycounter" to string value in global properties.
2. Add a switch to run the script rather than rely on enabling via script run command. Can't get the code below to work in red. Also, why are there sometimes (2) "=" signs and others just a single "=" sign?
3. Have background change when fermenter is actively running. Ill probably put this in its own script later on. See code in blue.
4. To have Graph show Actual and Target temp over time. I currently have primary source showing RTD input temp, id like the secondary source to show target temp from a hysteresis control. The primary is working but not secondary. I believe the secondary may be showing the actual temp and not the target temp causing an overlap on display.


[START SWITCH]
wait "FV-1 START" State = false // an attempt to start script using switch
if “FV-1 START” State == true
endif



[BACKGROUND CHANGE]
if "FV-1 START" State == ON // attempt to change background when FV is active
"FV-1 CONTROL" Background = 2
else // removed the rest since if it’s not ON it can only be OFF
if "FV-1 START" State == OFF
"FV-1 CONTROL" Background = 3
else
"FV-1 CONTROL" Background = 1
endif
endif
sleep 1000
goto loop

[FERMENTATION PROFILE]

"FV-1 TEMP" Enabled = true // enables fermenter temp sensor device
"FV-1 CONTROL" Enabled = true // enables fermenter hysteresis device

new value daycounter // creates a new variable named daycounter
reset "FV-1 TIMER" // reset the timer (to its default of 0:00:00)
start "FV-1 TIMER" // start the timer running
daycounter = 0 // set the variable daycounter to zero
"FV-1 CONTROL" Target = 64 // set the starting fermentation temperature

[loop]
wait "FV-1 TIMER" Value >= 00:00:02 // wait (2sec) for a day to elapse
reset "FV-1 TIMER" // reset the timer (to default of 0:00:00)
daycounter += 1 // increase the variable daycounter by 1
if daycounter == 7 // if the 7th day, change the fermentation temp
"FV-1 CONTROL" Target = 66 // increase for diacetyl rest
endif
if daycounter == 8 // if the 8th day, change the fermentation temp
"FV-1 CONTROL" Target = 67 // increase for diacetyl rest
endif
if daycounter == 9 // if the 9th day, change the fermentation temp
"FV-1 CONTROL" Target = 69 // increase for diacetyl rest
endif
if daycounter == 14 // if the 14th day, change the fermentation temp
"FV-1 CONTROL" Target = 33 // decrease for cold crash
endif
goto loop // go back to loop and wait again

Anyone willing to help me through this? I plan to u
 
I use a UPS Battery for any 110 vac power. Hopefully that will protect from ac line surges and is also handy when I lose power. My DC Transformers and the Wall Wart for the Mega's are plugged into the UPS Battery. I do not have the 110 vac Plate Ignigtors or Heating Elements on the UPS Battery but they are fairly dumb electronics.
 
wait and if endif require the == to be used.

You must use the following with both

equal ==
not equal !=
less than <
greater than >
less than or equal <=
greater than or equal >=

page 86-87 of the manual:

"The valid comparison operators are ‘==’, ‘!=’ , ‘>=’, ‘>’, ‘<=’, ‘<’ for equals, not equals, greater than or equals, greater than, less than or equals, and less than respectively. Note that equals requires double equals signs"


Times Values cannot use the == as the internal clock may never exactly equal what you set as the criteria. Use <= or >= for Time comparisons.

I have not played with the DateTime yet but I am going to do the same if I move the fermentation from a BCS.
 
I use a UPS Battery for any 110 vac power. Hopefully that will protect from ac line surges and is also handy when I lose power. My DC Transformers and the Wall Wart for the Mega's are plugged into the UPS Battery. I do not have the 110 vac Plate Ignigtors or Heating Elements on the UPS Battery but they are fairly dumb electronics.

I’d like to incorporate something like this as well. What keeps the battery charged?
 
I'd like to nail down the following...
1. To show variable day counter using global, cant seem to get this to show. Ive tried adding "daycounter" to string value in global properties.
2. Add a switch to run the script rather than rely on enabling via script run command. Can't get the code below to work in red. Also, why are there sometimes (2) "=" signs and others just a single "=" sign?
3. Have background change when fermenter is actively running. Ill probably put this in its own script later on. See code in blue.
4. To have Graph show Actual and Target temp over time. I currently have primary source showing RTD input temp, id like the secondary source to show target temp from a hysteresis control. The primary is working but not secondary. I believe the secondary may be showing the actual temp and not the target temp causing an overlap on display.

I figured out Item 1. Had to use inspector rather than global....

How do i set the resolution of an inspector element?
 
Last edited:
Currently, Win10 can't boot on the RPI 4. When that work is done - and work is being done on that - it will solve the 1 meg memory limitation (and latency) of using BC on the RPI. I am trying to work through the use of BC, scripting and recipe import (which I don't have the the knowledge to do without the kind assistance of the people mentioned on this forum) in the meantime with the 3B+.

I would be happy if someone made a script/tutorial/.reg that slimmed down win10 specifically for brucontrol so that running it on a 10 year old 2ghz/4GB machine was fast...
 
Back
Top