BruControl Uniflex v2: Adding Devices

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.
1. The interlock element is a Digital Output. Use the ‘state’ property (set it true/false)

2. This is probably happening via the interlock safety script that is running in the background. I think you are stating it’s operation backwards though? We include it by default in the default configuration. It’s there to make sure the ielement is disabled before switching the interlock. This is good practice to ensure the relay doesn’t have to break the full current of the heating element.

3. Let me look at the manual myself and get back to you.
 
Thx @BrunDog and @swimIan #1 is now solved. The state = true vs. state = false is flipping it back and forth. I did not realize that Element Interlock was a digital output device....thought it was something unique that was separately coded by Pete.

For #2 I have setup a test script. I tried running it with the element interlock as true and as false. Same behaviour both ways. In first two seconds the HLT duty cycle device indicates it is on, but no heat coming from element because interlock is disabled. Next two secs Interlock turns on, but the HLT device is disabled. Final two secs BK device enables, but that disables the interlock so still no heat coming from anywhere. The only way that I can get heat in my system is by setting the interlock appropriately and enabling the single PID device.

// set everything to disabled to start from scratch
"PID Control" Enabled = false
"Element Interlock" Enabled = false
"HLT Heat Duty" Enabled = false
"BK Heat Duty" Enabled = false

sleep 2000
// try turning on the HLT element without the interlock
"BK Heat Duty" Enabled = false
"HLT Heat Duty" DutyCycle = 100
"HLT Heat Duty" Enabled = true

sleep 2000
// turn on the interlock and put it in one state or the other
"Element Interlock" Enabled = true
"Element Interlock" state = false // I also tried with true

sleep 2000
// try turning on the BK element
"HLT Heat Duty" Enabled = false
"BK Heat Duty" DutyCycle = 100
"BK Heat Duty" Enabled = true

wait "HLT Temp" Value > 150


For #3 the "PID" InputPortID = 200 does not seem to work. I also tried "200" and that did not work either. I tried that before my original posting because it it is listed as a property of the PID device. I also just tried "PID" InputPortID = "HLT Temp" PortID in case the string expected was some behind the scenes value. But, the term "PortID" also does not seem to be recognized by the execution engine. It is listed as "Port ID" in the manual. I tried both ways and the execution window threw an error on both.
 
I should also note that my Element Interlock is port 26 at true and port 27 at false. I have the "HLT Heat Duty" pointing to 26 and the "BK Heat Duty" pointing to 27. I believe that is the correct way to configure, but thought i should explicitly say it in case my assumption is incorrect.

I also turned off all other scripts while I was running my test script.
 
"PID" InputPortID = string (per BC manual pg. 87)

I would assume that string is the temp probe’s name. It looks like you tried this already but with quotes though. Make sure you are using the same spelling in the script as the temp probe’s name.

@BrunDog might know more how to work this out though.
 
Yes, "string" leaves room for a number of different options.

I have tried the device name: "HLT Temp" both in and out of quotes as well as the port ID: 200 both in and out of quotes. The device is a 1-wire analog input device that works fine in the scripting when accessing it as "HLT Temp" value.

Error when using "PID Control" InputPortID = "HLT Temp" is "object reference not set to an instance of an object"

The error is what made me think of trying "PID" InputPortID = "HLT Temp" PortID but that did not work either.
 
Last edited:
Did some testing. I think the pic will solve your problem.
A0F4387A-6691-4F7B-8117-05210FB326B6.jpeg
 
Sweet! @swimIan , you rock! Confirmed that works. Problem #3 solved. You have better creative troubleshooting skills than me, that is for sure.

@BrunDog it is definitely confusing that the naming of the Input calls for "InputPortID" while the value passed to it is just "ID" given that there is also a "PortID" parameter. A little note in the PID section of the scripting would probably be helpful to users.

Just problem #2 remaining now. Namely, how to get the Duty Cycle output to turn on the element rather than the PID

But, I can at least proceed with my script testing now that I can control the heat sources via the PID
 
Yes, you are correct - we need to document this in the manual. It is actually documented in the main BC thread, but that is not really helpful unless you specifically search for it!

I should also note that my Element Interlock is port 26 at true and port 27 at false. I have the "HLT Heat Duty" pointing to 26 and the "BK Heat Duty" pointing to 27. I believe that is the correct way to configure, but thought i should explicitly say it in case my assumption is incorrect.

I also turned off all other scripts while I was running my test script.
This isn't correct. The Digital Output has a "dual-throw" mode to simulate a dual-throw relay. It is associated with ports 26 and 27 as the two interlock relays. The dual-throw (with delay) mode ensure they are not both on at the same time.

Your heating modes (duty and/or PID) should not reference these relays - they should reference the SSR on port 33.
 
Your heating modes (duty and/or PID) should not reference these relays - they should reference the SSR on port 33.
Yessssss. That was the problem. #2 solved. I am fully back into script debug mode. Funny how you really need to think about simplification in order to test the script elements and then work back up to a more simulated dress rehearsal water brew once the scripts are mostly functional.

My system is set up to re-circ the mash through a sparge bar back into the mash tun. This is because there is only one inlet. It seems like I am losing a lot of heat with the water dripping through the air inside an uninsulated mashtun. Thinking I might switch to one of those sparge hoses with the links.
 
Hmmm, shouldn't lose a lot of heat here. If the lid is closed, the whole tun should be at a similar temp.
I put some metal bubble wrap around the MLT and the BK. Even if it is not helping much, I figured for $10 it would help to limit the heat in the garage in summer and may make a bigger difference in winter. Will probably pay for itself in saved electricity at some point. With the HERMS, HLT just requires too many cut outs to wrap: HERMS in, HERMS out, main in, main out, 2 handles, electric element, thermoprobe :)

Note: I have a hood fan above the BK (homemade from upside-down giant kitchen bowl and duct fan) and I box fan blow air in through the garage doors. Of course, I would wait until the heat of summer to finally get this system ready for prime time. :( #maryland
 
@BrunDog I just changed my plumbing configuration to allow for cooling during whirlpool. Had to add two more moto-ball valves maxing my uniflex out with 11 digital outputs. When I went into software to add the last one on port 0, it is not appearing in my list of available ports. Is it possible that I created a device at some point and it is invisible? I clicked the "eye" at the top of the screen and nothing appeared. I tried moving devices around to see if one was concealed and nothing seemed to be underneath.

I have clicked the "i" on each of my existing devices and confirmed none are on port 0. I have all the wires coming from my physical devices labelled with tape with the port number and none are labelled "0". Thoughts?
 
ruh-roh. I was hoping to use all the digital outs. Pin 17 indicates that it uses port 0.
 
Back
Top