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.
Fair question. The tough part was to build a sensor for a home brew scale kettle. We can easily build sensors for higher pressure scales such as 100 mbar (40 in H2O). We’ll add them to the website at some point, but ping me if you need anything specific sooner.
 
I'm wiring up my panel now and have been following this thread closely over the past few days regarding the noise issues several people have been experiencing. What is the best way to hopefully prevent such issues? I realize that a specific cause has not been determined but what steps can I take to hopefully minimize this potential?

Currently I have my central "earth" ground feeding two wires. One goes to a terminal bank which bonds to the enclosure, wire shields, and high amp draw elements. The other wire goes to a second terminal bank which bonds to the DC(-) ground for both 12v and 24v power supplies which powers everything else. Is there a better way to wire this or am I on the right track as far as we know?
 
One thing I learned is the rtd cable shielding should only be grounded at one end.. the RC snubbers are also needed on my setup.. I removed and verified the intermittent spikes were still there though not as often without them (something to do with where the ac wave point is when the contactor is actuated). I still get a small spike like 1 out of 10 times when turning my main kettles on but they have been eliminated everywhere else.
 
Last edited:
Well I am happy to report that the Pt1000 probes and amplifier boards are in and working flawlessly. However, when I tried to put in the resistors reference value in my case 4300 Ohms the output was zero when I changed this to 430 Ohms as for a Pt100 board it worked fine. I checked the board to ensure that it had the correct reference resistor which it does (4300 Ohm). Am I missing something or what's going on here?
 
@HobbyBrauer: When you put in the reference resistor value of 430, does it read correctly? I think you said above that it does... I am just confirming. It will make sense if it does, as the math in BruControl assumes a nominal resistance of 100 ohms (Pt100). Since your nominal is 1000 ohms then the extra division by 10 is necessary to make the math neutralize (i.e. 430 / 100 is the same as 4300 / 1000).

We would need to put a switch to choose between 100 or 1000 in the calibration setting but for now go ahead and put in 430 as the reference resistor.
 
BTW here is a little script to trigger something in case of interface disconnect from BC:

Code:
[start]
new value errorcount
[loop]
wait "1-Wire Temp 1" connected == false
errorcount += 1
// do other stuff here like activate an alarm
wait "1-Wire Temp 1" connected == true
sleep 1000
goto loop

This script creates a counter that will increase every second due to the 'sleep' statement - this gives a a timer lookback to see when it happened for dirty work, or you could start a legit timer element. The device name in quotes can be any device element.
 
BrunDog,

This is exactly the sort of thing that makes me so excited about BruControl. Can you post your current brew script (or link to where they're posted) so that we can learn from it? I know you've posted some/all of your brew script in the past. If it's largely unchanged, I can just read that.

Thanks!
-Adam

Here it is. Sorry, forgot to post it couple of days ago.
 

Attachments

  • Brew Script_7-22-18.txt
    9.2 KB · Views: 58
@HobbyBrauer: When you put in the reference resistor value of 430, does it read correctly? I think you said above that it does... I am just confirming. It will make sense if it does, as the math in BruControl assumes a nominal resistance of 100 ohms (Pt100). Since your nominal is 1000 ohms then the extra division by 10 is necessary to make the math neutralize (i.e. 430 / 100 is the same as 4300 / 1000).

We would need to put a switch to choose between 100 or 1000 in the calibration setting but for now go ahead and put in 430 as the reference resistor.

So I had a little more time to play with it last night. Yes, when I use a reference resistor value of 430 it works perfectly when I change that to 4300 it reads zero. I will leave it as is since I also checked the probe calibration with a separate NIST probe in a temperature controlled bath. With brucontrol set to decimal places it was always within 0.01deg C of actual so no problems there!
 
@BrunDog: As my luck would have it while I was working on my panel last night I had a brief power outage which made me rethink about some form of UPS for the interface only. I am looking at the Adafruit Powerboost 500 Shields and was wondering if you had used them before? It is not clear if they will charge by the headers or only by the mini-usb connection. Obviously, I would like to have it charge via the headers so that I don't have to wire in another power supply and have an ugly mini-usb cable powering the interface. Any recommendations you would have would be great!
 
@BrunDog , quick q on the nice TC level sensors available on your site. What would happen if one we're to exceed the stated level limitation by 8 inches or so? Nuclear meltdown, or simply a loss in resolution?
 
The sensors can handle up to 200% of the rated pressure. Above that, they can become damaged. From 100% to 200%, the output voltage will remain at max (5V) to ensure no overload to the interface microcontroller.
 
Starting to do some diagnostics on the noise created from electro-mechanical relay switching inductive loads. Using a scope on a test bed system (MEGA w/Adafruit WINC1500 WiFi shield, 12VDC feed, 12V active-low relay board, large fan for load), I am able to confirm a bit of noise on the 5V pin (this feeds the microprocessor chip, albeit via a decoupling capacitor). There is noise when the inductive load is switched off. For example:
noMOV.png


Note the noise ranges from ~-2 to >10 VDC. This could/would certainly cause the CPU to freeze or reset. With a MOV (Metal Oxide Varistor) mounted inline with the load, at least with initial tests, the noise is greatly mitigated. @GParkins is testing these on his fermenter control system, and we should know more about their performance in a few days.
 
and we should know more about their performance in a few days.

Preliminary indications from the MOV are encouraging. As of now, my ferm system has been running for about nine hours without a single spike big enough to affect the 1-wire temp sensors. @BrunDog has the device log for today (about six hours' worth). It makes for a very boring read. As noted above, a few days without a spike would be close to ready to declare victory.
 
Very interesting... I am using a feather on my Fermentation. Maybe the voltage spikes ( above 5v) to this make it more susceptible? I have only had one episode where it froze since I moved the 120v over the SSr's, and this has been running a few weeks.

On a side note... On my brew rig I have a mega, and have found the "wall" of I/O for the serial device. I am sure @BrunDog can extrapolate on that. Luckily I wired the system with another mega right next to the main one. I have off loaded some I/O's to that to help.
 
The "wall" he speaks of is a situation where there is so much I/O being used, the MEGA serial buffer overloads. There is protection for this in firmware and we should have protections for this in the software, which I am checking on, but this is a rare circumstance when using ~45 I/O, and does not occur using network connected interfaces. @Die_Beerery fortunately had another MEGA mounted next to it, ready to use.
 
Couple of questions. When you say wire these in parallel do you mean on the high voltage (load) side or on the low voltage (control) side?

Second, I have a digital pressure sensor that I’m going to be using on my fermenter. I got it used for uber cheap and works great but it’s output is 0-10v which obviously isn’t plug and play with the Arduino. Can I simply use some combination of resistors To drop the voltage to the needed 0-5v?

Third, and a little divergent but perhaps someone has developed a solution to this is what if I wanted to I integrate a sensor which uses the MODBUS RTU communication (RS-485) protocol for communication? The sensor (a mass flow meter if it makes a difference) has a single 4-20mA output which I could use but that only gives me a single reading (flow, or density) where I would really like to collect all the data (density, flow, temperature, total flow, and device status/health/alarms etc). From research I have seen many Arduino’s be used as a MODBUS master device so my current rough plan is to use a separate Arduino to accomplish this. This Arduino would poll the data from sensor using published MODBUS libraries then send the data to the brucontrol Arduino via analog voltage or something. Any thoughts?
 
Hi @HobbyBrauer,

You can either wire them across the relay contacts or in parallel with the same lines that power the inductive load. That would be the motor or solenoid coil (AC only). I am not going to say high or low voltage, as the MOV or snubber needs to match the voltage and load being used. Obviously a bigger coil stores more energy so needs to be damped by a bigger device.

If using a low voltage coil which is DC, a standard rectifier diode like an 1N4001 can be used. We will update our schematics to demonstrate these but feel free to ping me with a specific application.

To handle the 10VDC analog output sensor, use a pair of 10k resistors to divide the voltage. The sensor output goes to one side of R1, tie R1/R2/Input together, then the other side or R2 goes to ground. This will divide the 0-10V in half to be 0-5V.

We will be adding an I2C element in BC. You could use the other Arduino to translate the modbus comms into I2C and feed it to the BC interface microcontroller.
 
My contractor is an Allen Bradley 24vDC coil so if I am understanding correctly I would use the 1N4001 across the DC coil. My pumps are all 24vDC brushless as well should I preemptively instal one here as well? And if so which line would I put in parallel with (I have three +24,com, and +5v control)?

Sounds awesome on the I2C interface will definitely rig up to communicate that way. What distance can I reasonably have via I2C I.e. if my sensor is 10ft of wire from the brucontrol mega would it better to have the RS-485 be 10ft or the I2C wires be 10ft?
 
My contractor is an Allen Bradley 24vDC coil so if I am understanding correctly I would use the 1N4001 across the DC coil. My pumps are all 24vDC brushless as well should I preemptively instal one here as well? And if so which line would I put in parallel with (I have three +24,com, and +5v control)?

Sounds awesome on the I2C interface will definitely rig up to communicate that way. What distance can I reasonably have via I2C I.e. if my sensor is 10ft of wire from the brucontrol mega would it better to have the RS-485 be 10ft or the I2C wires be 10ft?
I used 1n4002 (I had them onhand) across my bradley allen 24v coil contactors yesterday and they worked perfectly, you can hear the relays open and close softer

Ive had no issues with my 24v pumps ive been using with brucontrol for over a year.
 
My contractor is an Allen Bradley 24vDC coil so if I am understanding correctly I would use the 1N4001 across the DC coil. My pumps are all 24vDC brushless as well should I preemptively instal one here as well? And if so which line would I put in parallel with (I have three +24,com, and +5v control)?

Sounds awesome on the I2C interface will definitely rig up to communicate that way. What distance can I reasonably have via I2C I.e. if my sensor is 10ft of wire from the brucontrol mega would it better to have the RS-485 be 10ft or the I2C wires be 10ft?

Yes, wire the 1N4001 across the DC coil... reverse biased, meaning so current doesn't normally flow through it. Wire the band side of the diode to the positive side of the coil, as close to it as possible.

Absolutely the RS-485 would be the long length, and the I2C wires would be inches.
 
Yes, wire the 1N4001 across the DC coil... reverse biased, meaning so current doesn't normally flow through it. Wire the band side of the diode to the positive side of the coil, as close to it as possible.

Absolutely the RS-485 would be the long length, and the I2C wires would be inches.
sounds like they shouldnt have any effect over how hard the relay opens and closes but it does for some reason.
 
Oh they will definitely affect opening. As far as closing, I suppose they can though I’m not sure I understand why. Note that all the relay boards we have and use which have transistor front ends also have these flyback diodes onboard.
 
Will go ahead and order a few of those then and give it a shot. Do you happen to have a link @augiedoggy to the ones you purchased a quick scan of mouser yielded the typical 100s of options lol.
 
I have not seen anything like this as of yet (if there is I apologize). But I started adding some videos to my youtube on scripting and whatnot. It's pretty raw, and I did so because I wanted to screw up and troubleshoot as much as program ( since I screw up all the time and have to troubleshoot, I learn better).

Here are some recents. I will be adding more as I hope people looking into BC find them. I think BC is the best brewing software I have ever seen. I do some pretty whack stuff and BC has no problems with it, unlike everything else out there.

https://www.youtube.com/channel/UCx58Qq4GJheOAiyCoxBOfRQ?view_as=subscriber








Hope this helps
 
I really like seeing your videos of the scripting. I use craftbeerpi3 and do my own “step” coding currently but will be switch shortly to implement more flexible scripting and volume sensing.
 
I really like seeing your videos of the scripting. I use craftbeerpi3 and do my own “step” coding currently but will be switch shortly to implement more flexible scripting and volume sensing.

I am switching from CBPi3 to BruControl now also... my 'togglestep' list in CBPi3 scrolls off the bottom of the screen!
 
I just wanted to share that now that I switched the contactors and relay board my 3bbl panel has been rock solid without a single spike when turning things on and off.
I do have a question though, Is there a way to remove the initial climb of the temp sensors from the graph when I fire up the system so I can get more resolution without shortening the time scale on the graph? would disabling the graph before turning off the software accomplish this? I like to show the full hr of recirculation on the screen and that initial climb really messes things up I dont plan to leave the pc or software running at the brewery until the fermentation control portion is built.
 
I just wanted to share that now that I switched the contactors and relay board my 3bbl panel has been rock solid without a single spike when turning things on and off.
I do have a question though, Is there a way to remove the initial climb of the temp sensors from the graph when I fire up the system so I can get more resolution without shortening the time scale on the graph? would disabling the graph before turning off the software accomplish this? I like to show the full hr of recirculation on the screen and that initial climb really messes things up I dont plan to leave the pc or software running at the brewery until the fermentation control portion is built.

If you go into the settings for the graph, you can force the range displayed. By default, it's set to autorange. Set it for 130-160 and see how that works for you. Initially, it will be blank, but as the temp climbs into range, you'll see the track show up at the bottom of the graph.
 
@augiedoggy... I don’t understand your question. Please elaborate or post a pic of the graph.

Disabling the graph will not change the data behind it. The data is always recorded for enabled devices - that is why you can create a graph anytime and get historical data.
 
If you go into the settings for the graph, you can force the range displayed. By default, it's set to autorange. Set it for 130-160 and see how that works for you. Initially, it will be blank, but as the temp climbs into range, you'll see the track show up at the bottom of the graph.
Thanks thats a simple and good work around I should have thought of.
 
@augiedoggy... I don’t understand your question. Please elaborate or post a pic of the graph.

Disabling the graph will not change the data behind it. The data is always recorded for enabled devices - that is why you can create a graph anytime and get historical data.
when you start brucontrol the temp probes all climb to temp from a negative 412 as the system comes online.. That comes up on the graph and unless the graph time scale view is set to a short timeframe the gragh is basically zoomed out to show this huge range and when I recirculate I want to see the actual temps of the mash tun and rims which wont be high enough resolution while the initial powerup climb is still in view.
 
Back
Top