• 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.
hi everyone, hi @BrunDog

Anyone knows if global or any another element can be made with transparent background?
Also, any news on next releases? It has been a while....mostly missing web access. :)
thank you
 
Does someone have starting PID parameters for flow control using a proportional valve through a RIMS tube?
There are lot of articles and theories :) this is what I used:

"
Very simple PID settings are all that is required. I would start around a Kp of 30, see where that gets you. If you have steady state error - i.e. you stabilize at some temperature less than your set point, increase Ki from 0 up to likely no more than 5. If you have overshoot, you could try increasing Kd.

Another way:
These were set via
1) setting I & D = 0 & increasing P until oscillation, then cutting P in half, then
2) increasing I until oscillation, then cutting in half.

"

Also, here is how my tuning process looked like, I started somewhere and with trial and error achieved quite good results . My RIMS PID is tuned at 6L/min.
Please note, I am not an expert, just a poor guy trying to make his BruControl work.
 

Attachments

  • RIMS Tuning.pdf
    1.2 MB
Does someone have starting PID parameters for flow control using a proportional valve through a RIMS tube?

Hmmm this is going to be really dependent on flow rate. You might be better with deadband or hysteresis. BUT, it's worth a try. You want to use a medium Proportion, low Integral, and aggressive Derivative. Maybe 10, .5, 50 to start?
 
I have fitted a DSB1820 to my SmartPid and this is a second sensor, the main one on the boiler and mash kettle is an NTC 100k.

I keep getting readings that are completely random ( probably not random) of correct temperature, -0.1 C or 2000 plus celsius.

Does anyone know if this is a recognised thing due to poor voltage, bad connection or bad connector?
The DSB1820 worked absolutely fine on my brewpiless although there is a resistor involved in that setup.
Sorry... are you asking a BruControl question, or a SmartPID question?
 
Sorry... are you asking a BruControl question, or a SmartPID question?
Well really a question about the DSB1820 sensor, it is attached to a smartpid but I was wondering if it something that someone had come across as a sensor problem rather than a PID problem. I did extend the wires to the sensor from one metre to two metres and maybe that has upset the readings.
I did see somewhere someone mentioned that an odd reading on an NTC sensor was due to undervoltage I think.
 
Hmmm this is going to be really dependent on flow rate. You might be better with deadband or hysteresis. BUT, it's worth a try. You want to use a medium Proportion, low Integral, and aggressive Derivative. Maybe 10, .5, 50 to start?
Feature request: add optional PID parameters to deadband device. This will enable smooth ramping, minimal overshoot, but not over control around the setpoint.
 
Can you not do math in an "if" statement? I was trying something like this and it ignored the 2. Do you need an intermediate variable?

If "MTVol" value == "strikeVol" value - 2
 
Well really a question about the DSB1820 sensor, it is attached to a smartpid but I was wondering if it something that someone had come across as a sensor problem rather than a PID problem. I did extend the wires to the sensor from one metre to two metres and maybe that has upset the readings.
I did see somewhere someone mentioned that an odd reading on an NTC sensor was due to undervoltage I think.
The DS18B20 is a digital sensor, not an NTC analog or passive one. No doubt performance will depend on the wire length and type. Shielded cable can help.
 
Feature request: add optional PID parameters to deadband device. This will enable smooth ramping, minimal overshoot, but not over control around the setpoint.
IMHO, a better request would be to have full-on/full off ranges added to the PID setup...

Side note - I spent YEARS trying to get PID to work with a proportional cooling valve, the issue was part my learning curve, and part the implementation of PID in BruControl not being like a discrete PID such as Auber or Sestos. (Sestos Integral is 'M50' is 0-9999 and higher number is a slower response, and the range is "useful" to me in a cooling application. Sestos also has a great unofficial tuning manual if by chance just fiddling does not work.) Auber is Similar, 0-9999, and higher number is slower response.... both of these work great to get a decent response and minimal overshoot, something that was unobtainable in BruControl... and working a PID controller into my system is what I left BCS for BruControl... I now use a script to do a "poor-man's PID"... it is a band-aid, but I gave up on BurControl PID ever acting like Sestos or Auber...

BruControl's 'Integral' implementation is 0.1-300 and a LOWER number is slower reacting... (And while entering 301 or higher in the keypad will warn you with RED digits that you are out of bounds, it lets you put in .001, but I think it is really just 0 to the BC system and I spent a LOT of time fighting it without realizing it was actually zero) 0.1 as Ki is still too large for me, and it would be really nice if the BruControl PID acted like a Sestos or Auber discrete PID, but I am not holding my breath....
 
Last edited:
I have a mess of wires coming from my brew rig to my uniflex v2 system. 2 elements, 3 probes, 2 pumps, 10 automatic ball valves, 1 proportional ball valve, 1 volume sensor, 1 float switch, 1 24v external power, the 30a power to uniflex, the 15-P plug to uniflex. That's 23 wired devices.

Any specific combinations that I should be worried about for interference? eg. keep probe wires away from 30a? volume sensor away from things? other?

How do folks manage the cords? I have quick disconnects wired into the uniflex pin connector and the devices and then run quick disconnect extensions between the two and take apart or put together as needed between brews.

Thinking I will create a few different bundles and zip tie them together. Also thinking label maker so that can easily put disconnects back together if taken apart.

Thx for the advice, Swan
 
Ha! This is a true art - not science! Lots of ways to cut it. Ideally, you have a separate enclosure where all the wires come from the UF, then has panel disconnects to wire to your external devices. Power supply, terminal blocks, and wires inside. Other than that, keep high voltage away from low voltage (this is why the I/O comes out the front while the high voltage stuff comes out of the back).
 
The DS18B20 is a digital sensor, not an NTC analog or passive one. No doubt performance will depend on the wire length and type. Shielded cable can help.
Thank you for the information, I'll remake it with the minimum length shielded cable and check the connections again.
If no joy I'll replace with ntc 100k which is an alternative. I don't suppose that I can add a resistor somehow to my many spare ntc 10k sensors to make it 100k?
Further question I had the recognised melt of my Fotek, probably due to bad positioning as the side that melted was close to the upper edge of the space it was in . It was still working.
I ordered a proper one pictured below but it didn't work when wired in. I have contacted supplier but wondered if I can test it in any way with a multimeter ?
Brewday was salvaged by bailing out the brew system and replacing the non working new one with the old melted one.
This was mounted out of the prior box, with proper heat transfer paste and a fan to cool the heatsink and coped with the brewday. Thanks IMG_20220507_184543.jpgIMG_20220507_181036.jpgIMG_20220507_180827.jpgIMG_20220425_135929.jpgIMG-20211212-WA0004.jpg
 
Can you not do math in an "if" statement? I was trying something like this and it ignored the 2. Do you need an intermediate variable?

If "MTVol" value == "strikeVol" value - 2
I think you need to create a variable and test against it.

new value vVStrikeMinus2
"vVStrikeMinus2" = "strikeVol" value - 2
If "MTVol" value == "vVStrikeMinus2"
 
I have a mess of wires coming from my brew rig to my uniflex v2 system. 2 elements, 3 probes, 2 pumps, 10 automatic ball valves, 1 proportional ball valve, 1 volume sensor, 1 float switch, 1 24v external power, the 30a power to uniflex, the 15-P plug to uniflex. That's 23 wired devices.

Any specific combinations that I should be worried about for interference? eg. keep probe wires away from 30a? volume sensor away from things? other?

How do folks manage the cords? I have quick disconnects wired into the uniflex pin connector and the devices and then run quick disconnect extensions between the two and take apart or put together as needed between brews.

Thinking I will create a few different bundles and zip tie them together. Also thinking label maker so that can easily put disconnects back together if taken apart.

Thx for the advice, Swan
You can run "like" wires in a conduit. For example, the ball valve signals can all run in the same conduit. For those, plastic is fine. I run my temp sensor wires in a metal conduit. I do have separate boxes for my Transformers, another for my Contactors, another for proportional controllers and SSRs. And a box for the interfaces and associated things like Analog Amps and RTD. All these boxes are metal. All of my AC Power is in amorite conduit.

The only exception is that I have 12 vdc Contactors (110 vac output) for my two ignitors. They are normally on only once for 7 seconds, so any interference is short lived.

I always home run the grounds to each sensor as well.

I use colored heat shrink to identify wires. Just cut a small piece and make your colored stripes on both sides of the QD.
 
Thank you for the information, I'll remake it with the minimum length shielded cable and check the connections again.
If no joy I'll replace with ntc 100k which is an alternative. I don't suppose that I can add a resistor somehow to my many spare ntc 10k sensors to make it 100k?
Further question I had the recognised melt of my Fotek, probably due to bad positioning as the side that melted was close to the upper edge of the space it was in . It was still working.
I ordered a proper one pictured below but it didn't work when wired in. I have contacted supplier but wondered if I can test it in any way with a multimeter ?
Brewday was salvaged by bailing out the brew system and replacing the non working new one with the old melted one.
This was mounted out of the prior box, with proper heat transfer paste and a fan to cool the heatsink and coped with the brewday. ThanksView attachment 768462View attachment 768463View attachment 768464View attachment 768465View attachment 768466
Never had a perfect Brew day. Always having to deal with something!:agressive:
 
Never had a perfect Brew day. Always having to deal with something!:agressive:
and it was so going to be, completely organised, grains crushed, salts, hops etc all ready the night before. Equipment set up as well ( just not tested ) what a fool. Have found out this am that no 40A ssr in stock in NZ or Australia so they are on back order. Nervous for next brew day now .
 
You can run "like" wires in a conduit. For example, the ball valve signals can all run in the same conduit. For those, plastic is fine. I run my temp sensor wires in a metal conduit.
Thanks @oakbarn Any Amazon suggestions for conduit? This type of thing work for the plattic?
I have 10 ball valves so figure I will run two conduits. One between HLT and MT and the other between MT and BK with 5 each. 1/2" probably big enough for 5 two wire cables?

What metal conduit do you suggest for the probes? I have 3 probes.
 
Thanks @oakbarn Any Amazon suggestions for conduit? This type of thing work for the plattic?
I have 10 ball valves so figure I will run two conduits. One between HLT and MT and the other between MT and BK with 5 each. 1/2" probably big enough for 5 two wire cables?

What metal conduit do you suggest for the probes? I have 3 probes.
That is fine but be sure to keep away from any flames or hot surfaces. I like rigid conduit until I get to my brew stand but flexible works to keep it more tidy as well. I like to use standard 3/4" or 1" electrical conduit. I also use twisted pairs for the sensor wire (ethernet Cat5 wire is good. Just remember that any join (including solders) can cause issues. If possible use the sensor wire that came with the sensor. If you need to make a join, make only one rather than several. If your runs are longer than your attached wire, I like to run a non joined cable to a QD and have a short pigtail to the sensor withs it QD.

the conduit is like this but you can find at Home Depot or Lowes

 
Thank you for the information, I'll remake it with the minimum length shielded cable and check the connections again.
If no joy I'll replace with ntc 100k which is an alternative. I don't suppose that I can add a resistor somehow to my many spare ntc 10k sensors to make it 100k?
Further question I had the recognised melt of my Fotek, probably due to bad positioning as the side that melted was close to the upper edge of the space it was in . It was still working.
I ordered a proper one pictured below but it didn't work when wired in. I have contacted supplier but wondered if I can test it in any way with a multimeter ?
Brewday was salvaged by bailing out the brew system and replacing the non working new one with the old melted one.
This was mounted out of the prior box, with proper heat transfer paste and a fan to cool the heatsink and coped with the brewday. ThanksView attachment 768462View attachment 768463View attachment 768464View attachment 768465View attachment 768466
Your controller needs to be compatible with DS18B20 or NTC sensors - they are not interchangeable. No you can’t add 90k to a 10k NTC sensors to make it 100k. You can but will get inaccurate readings.

FOTEK SSRs are notoriously fake and overheat. Could be internal or from resistance in the high voltage side terminal, but this looks internal. Also be careful of those heatsinks -‘they aren’t very flat so heat transfer suffers a bit. If the heatsink is really hot during operation, then it’s working ok.
 
@BrunDog
Thanks again. The controller accepts 2 wire NTC 100k or DSB1820 3 wire and then a menu selection so PID controller knows which one you have fitted.
Didn't really think that a bit more resistance would work.
I noticed the heatsink didn't give great contact on fit side so I used some thermal tape when I fitted it.
After I'd noticed the melting problem I noticed the packet said not for CPU or GPU use and it was only transferring 0.7 ( cant remember the units), changed to a silver filled heat paste for the refit / replacement saga and that was able to transmit 10x as much heat. With the added fan blowing cool air in and the heatsink attached to the metal body of the brew unit it should be a lot cooler. I have a replacement RS components SSR now on back order and will order a cheap ( likely fake ) fotek as a backup for the melted one/ swap over. RS components thought it could be a few months before stock arrived.
I declined a refund as likely when the stock arrives the price will have gone up by a margin the way things are going at the moment.
A 40A SSR is okay for a 3000w element on 240V at 50Hz ( checked the voltage and Hz the other day)? It's on a dedicated sole use 15A supply with 30 amp cable to RCD.
 
Returning to the PID questions. Thanks @clearwaterbrewer for the info. I have had some success this week and now have a couple PID loops working, although they are not ideal. I can set my sparge so that the HLT flow to the MT and the Wort flow to the BK are both set to 1gpm. I was able to get a PID working for my plate chiller to adjust flow to the fermentor based on chiller outlet temp. I have some ideas, but will need @BrunDog to validate my assumptions and ultimately it is likely feature requests to make this more robust.
1) like Swimlan, my PID parameters are very low for my proportional valve, like 0.4, 0.008 and 0.0008. Based on my tests, I believe that Brucontrol is using these low values. I can't manually enter 0.0008, but if I do it in a script, it will load it. When I adjust my "I" to something like 0.02, it does make a big difference. I had a great idea, what if you use the calibration feature in the PID device to scale it so you could use larger PID parameters? Well, this does not work. I am guessing the PID is working off of raw values. The target is the only thing that scales.
2) One of the things with PID's is they are assuming linear responses, meaning if you change a valve from 10% to 20% and the flow increase 1L/min, then you will also get a 1L/min increase if you go from 50% to 60%. This is not the case with my proportional valves as you can see by this graph.
1652462802312.png

I had another great idea, what if you use the calibration function in the PID device with a lookup table to make this linear? Well, this does not work for the same reason as above, the PID does not seem to be using calibrated values.
3) Here is a shot of my flow control. I am using a script to apply a deadband. Basically, when it gets within 0.1gpm of my target, I set the PID parameters to zero, effectively shutting off the control. If it drifts out of this deadband range, it loads the PID parameters back in. It is fairly slow, but fine for my needs. It takes 30-60seconds to stabilize. I was able to get this type of control for recirculation the mash and also for the sparge with two pumps and two proportional valves holding the same flowrate to keep the MT volume constant.
1652463459921.png

4) To my shock and pleasant surprise, I was able to get a PID working for my plate chiller on the first test, controlling the wort flow based on outlet temperature (I set the cold water manually and adjust the wort flow to get the correct temp). I didn't capture a graph, but I think this was pure luck as I guessed at parameters based on my sparge PID.

I think having the ability to calibrate the PID device and the input parameter and have PID control use the calibrated values would open up more possibilities for these devices to be robust.

Edited, tagged the wrong person above
 
Last edited:
Based on my tests, I believe that Brucontrol is using these low values. I can't manually enter 0.0008, but if I do it in a script, it will load it.
Interesting, I will have to try that... there is a debug you can use to have the interface spit out the PID component and total output values to the terminal every calculation period. This was how I eventually was able to see if it was actually incrementing the Ki value as time increased.
 
I am planning to add manual control of my propane solenoid valves.

Generally they will be controlled by a Mega 2560 on a Unishield. (Port 24 in the diagram)

In addition I want an Emergency Electrical Cutoff and a Total Manual way of opening the solenoid valves. I think I can do this with two maintained push button switches.
gas valves.png


I have these maintained push button switches that I want to use. In practice with just a power supply, the circuit seems to work (without the diode as I have not received them) logically.

Is putting a diode a good practice for not back feeding Port 24 (12 v output) on the Unishield?

is a 1N5406, 3A the correct type diode to use?
 
Very frustrating. Once again Elements are moving on their own. I was trying to edit a Script and had the script pane open. This seems to be a pattern when I have this issue. About 8 or so Elements moved seemingly on their own. Since some were stacked , it is a real PITA to get them back in position.

EDIT:

Setting the Minimum Move Distance in Environment Settings may help. It does without the Script Pane up and I will try to remember to set it to 100 when I am done moving things back.

enviroment.png
 
Last edited:
Returning to the PID questions. Thanks @clearwaterbrewer for the info. I have had some success this week and now have a couple PID loops working, although they are not ideal. I can set my sparge so that the HLT flow to the MT and the Wort flow to the BK are both set to 1gpm. I was able to get a PID working for my plate chiller to adjust flow to the fermentor based on chiller outlet temp. I have some ideas, but will need @BrunDog to validate my assumptions and ultimately it is likely feature requests to make this more robust.
@BrunDog can you unveil some mysteries behind how the pid is implemented in Brucontrol? What values is it using in the calculations for input and output variables? For example if I have two analog signals, is it using the 10 or 12 bit value? What about rtd's running on the digital bus? Is there anyway to condition/calibrate the signals prior to the calculations? This is needed to account for non linearity.
 
Back
Top