Raspberry Pi Brew Controller

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.

tob77

Well-Known Member
Joined
Sep 11, 2012
Messages
70
Reaction score
12
Location
Napa
I have recently retrofitted the controls of my old rusty brew rig that I put together back in 2002. I am now using a Raspberry Pi to control my propane BIAB rig. The gpio on the rpi is used to monitor the temperature via a DS18B20 probe and control the burner output via a servo motor attached to the propane regulator valve. The main program is written in python and uses WebPy to serve up the html5 interface. I designed the interface to be optimized for my phone and tablet. It works on my laptop too, but it doesn't auto scale for different screen sizes. At this time, the program controls the temperature during the mash including provisions for multi step mashes, as well as timers for both the mash and boil. I also added some logic to assist chilling including temperature and timer setpoints for hop stands. All temperature and timer setpoints can be configured using the html interface. My rpi program was written around my specific hardware and is not that flexible with other hardware configurations. However, I tried to write the code in a modular manner, so it can probably be tweaked to work with other configurations with a bit of work.

I am by no means a programming expert. In fact, this has been my first time programming with python, html, and javascript. As a result, I have employed the use of some dirty hackery (especially in the javascript), and borrowed heavily from all over the web. Here are some of the main sources that I used throughout my programming:

Python Code Structure - steve71's RasPiBrew python code was used extensively for the early development.
https://github.com/steve71/RasPiBrew

Servo Motor Control - richardghirst's servo blaster software is used to operate the servo motor.
https://github.com/richardghirst/PiBits/tree/master/ServoBlaster

16x2 LCD - Adafruit's python LCD code is used to update the lcd using gpio.
https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/tree/master/Adafruit_CharLCD

DS18B20 Temperature Sensor - Adafruit's python DS18B20 code is used to monitor the temperature sensor.
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-11-ds18b20-temperature-sensing/overview

HTML5 Widgets - The JMWidgets library was used extensively to develop the html interface.
http://www.jmwidgets.com/

All of my source code can be found here:
https://github.com/tob77/BrewNpi

Screenshot_1.png

Screenshot_2.png

Screenshot_3.png

Screenshot_4.png

BIAB%20Rig.jpg

Servo.jpg
 
Tob... This looks great! Pretty much what I want to do to automate my Blichmann burner to accomplish better control over my BIAB mash temps. I have a couple of questions...

1. How do you control ignition? I would imagine that the burner may need to turn down so low as to turn off the gas flow to the point where it would need to be reignited. How is this accomplished? I'd really like the ability to "set and forget" temp control during the mash, but this would need there to be some way to control ignition when the temp was near or exceeded the target temp. Turning the burner back on would require either a pilot light or some sort of igniter if I didn't want to babysit the burner during the mash. I retrofitted my Blichmann burner with a BBQ spark igniter that I could use for refiring the burner (along with a relay and some logic for this), but I am wondering about your thinking along these lines.

2. Does your program allow for control of burner output during boiling?

3. How linear does the output of the gas valve vs. heat output need to be in order for the PID loop to work? It would seem that this could be an issue, but your results suggest that your PID tuning is giving quite a reasonable level of precision without overshooting the target mash temp.

4. What are you using for a servo? I would imagine you need a pretty hefty servo, and one that can rotate more than 180 degrees.

Overall, a great build! Thanks for the info and for uploading your code. This should be fodder for some interesting experiments.
 
Tob... another question if you don't mind. How is the volume in the mash affecting the PID tuning? In my current setup, I use a DTC temp monitor (DTQ450Q) to track the temp, and find that this is too slow to be effective. For example, if I have a 152 mash temp and the current temp drops to 149, turning the burner back on leads to a considerable lag before I see a temp increase. I usually recirculate the mash, and while this should in theory lead to better heat distribution, I still have a strong likelihood to overshoot the target temp. This has led to a couple of times where the mash temp was considerably over the desired target, and has resulted in reduced attenuation during fermentation, an issue I've concluded was due to denaturing the alpha and beta amylases. How does your system give such tight control over mash temp, and is this impacted if you do a larger mash volume?
 
Okay.. one last question (for now):

Do you have a schematic or some info regarding the GPIO pin assignments or schematic to show how you wired all of this up? I have been very much considering eBIAB, but love the portability of propane. Plus, I really don't want to cut another hole in my nice 20g kettle, so this would be the perfect option. Your efforts could be really helpful to many of us! Thanks for all of the great work and inspiration.
 
1. How do you control ignition? I would imagine that the burner may need to turn down so low as to turn off the gas flow to the point where it would need to be reignited. How is this accomplished? I'd really like the ability to "set and forget" temp control during the mash, but this would need there to be some way to control ignition when the temp was near or exceeded the target temp. Turning the burner back on would require either a pilot light or some sort of igniter if I didn't want to babysit the burner during the mash. I retrofitted my Blichmann burner with a BBQ spark igniter that I could use for refiring the burner (along with a relay and some logic for this), but I am wondering about your thinking along these lines.
I am using a spark module from a gas range for ignition. The spark module is energized by a relay that is linked to the rpi gpio. I do not have a thermocouple on the burner right now so the rpi has no way of knowing if the flame goes out. My burner makes an audible pop whenever the flame goes out so I know when I need to hit the manual ignition button. I always stay in earshot while brewing just in case it goes out. I have programmed an adjustable minimum burner setting that I set each brew day according to the wind to prevent the burner from going out on me and I have an automatic burner shutoff temperature setpoint to automatically turn off and on the burner if it gets too far above the PID setpoint. This has worked out good so far. The burner stays lit and maintains temperature within +-0.4 deg F (depending on the wind) as long as I leave the lid off my keggle during the mash.

2. Does your program allow for control of burner output during boiling?
Yes, I have a setpoint that allows me to set the burner output during the boil. However, it is static and doesn't automatically change.

3. How linear does the output of the gas valve vs. heat output need to be in order for the PID loop to work? It would seem that this could be an issue, but your results suggest that your PID tuning is giving quite a reasonable level of precision without overshooting the target mash temp.
I think this is an important detail because the output of the gas valve is not linear at all. My solution was to linearize the valve output by recording the rate of change of the temperature as it increased past 120 deg F for multiple tests throughout the span of the valve. The output to the valve is then adjusted according to the linearization data so that it appears linear to the PID.

4. What are you using for a servo? I would imagine you need a pretty hefty servo, and one that can rotate more than 180 degrees.
I am using a HiTec HS-645MG servo. The servo only travels 180 degrees but that's all I need for my valve. There are some servos that can travel up to 3.5 turns. Take a look at jrubins thread for more info and to see where I originally got my inspiration for the servo from: https://www.homebrewtalk.com/f235/any-interest-starting-new-open-source-automated-brewing-project-propane-380624/

Tob... another question if you don't mind. How is the volume in the mash affecting the PID tuning? In my current setup, I use a DTC temp monitor (DTQ450Q) to track the temp, and find that this is too slow to be effective. For example, if I have a 152 mash temp and the current temp drops to 149, turning the burner back on leads to a considerable lag before I see a temp increase. I usually recirculate the mash, and while this should in theory lead to better heat distribution, I still have a strong likelihood to overshoot the target temp. This has led to a couple of times where the mash temp was considerably over the desired target, and has resulted in reduced attenuation during fermentation, an issue I've concluded was due to denaturing the alpha and beta amylases. How does your system give such tight control over mash temp, and is this impacted if you do a larger mash volume?
My recirc pump pulls from under a small false bottom so it is always moving the hottest wort from the bottom to the top. The chance of overshooting is minimized because the PID is always looking at the hottest wort. The lag is fairly short because the temperature doesn't necessarily reflect the entire kettle, only the hottest part. The wort returning from the recirc pump seems to be about 1 degree hotter than the wort at the top of the kettle so there is a little temperature gradient from the top to middle to bottom. I'm sure a bigger pump or a motorized mixer might help minimize this but I'm not sweating it for now. I haven't played with different sized mash volumes so I can't comment on that one but I don't anticipate any big issues.
Inside%20Keggle.jpg


Okay.. one last question (for now):

Do you have a schematic or some info regarding the GPIO pin assignments or schematic to show how you wired all of this up?
I don't have a schematic but the gpio pin assignments are detailed in the begining of the main python program (brewNpi.py). I am using a 3.3v to 5v level shifter to connect the rpi's gpio with a 5v relay board.
http://www.adafruit.com/products/735
http://www.amazon.com/Kootek-Channel-Module-Arduino-Raspberry/dp/B00C8O9KHA/ref=sr_1_1?ie=UTF8&qid=1388821655&sr=8-1&keywords=relay+board

I have been very much considering eBIAB, but love the portability of propane. Plus, I really don't want to cut another hole in my nice 20g kettle, so this would be the perfect option. Your efforts could be really helpful to many of us! Thanks for all of the great work and inspiration.
No problem, I'm glad to help where I can. So far so good with my rig, but I have to add a word of caution. I have burnt quite a few hours getting all of this together. Be prepared to invest a bit of time building , programming and tuning the system if you go down this path. I think that an electric setup would be easier to tune, and you wouldn't have to worry about the whole burner ignition and blowout issue. However, I enjoy brewing outside with the option of brewing in my garage in poor weather so propane is my fuel of choice. Not to mention that I reused all of my propane equipment saving a few bucks.
 
Last edited by a moderator:
Tob:

Okay, thanks for the clarification and pictures. I'll read your Python files for more info about the GPIO pins used and can pretty much figure out the hardware from there. I've also considered using a thermocouple to control the spark ignitor circuit. I outfitted my burner with a Brinkmann electronic igniter kit (http://www.amazon.com/dp/B007VAXQF8/?tag=skimlinks_replacement-20). I could easily modify the circuit in this to allow for external control from a 5V relay. I will also need to use level shifters, or accomplish switching functions (e.g. pump, igniter) using 1-wire switches (e.g. DS2408 or DS2413), the latter of which have the advantage of using a single 1-wire bus and thus fewer GPIO pins.

Regarding flame sensing, there are 1-wire thermocouple drivers (MAX31850) that could work for this application. Blichmann apparently uses a different method. From what I gather by looking at their TOP Control Module, they appear to somehow detect heating of the spark igniter via a single high voltage cable. I'm not sure how this works, though I guess that they must be measuring changes in the ignitor's resistance due to heating. I think I'll just stick with the thermocouple method.

I think your method of testing the temp from the bottom of the kettle makes the most sense to avoid overshoot. I will have to come up with a way to do this on my rig. I am not so concerned about overall heat distribution, but want to avoid overshooting the target temp. It seems that the most difficult part of the build is getting the gas valve to respond reasonably linearly to the PID output. Are you using a lookup table or linear regression calculation for this? Also, your readme file mentions a gas solenoid valve, which appears to be plumbed right before the input to the burner. What is the purpose of this, since you already have a servo valve to control gas flow?
 
Last edited by a moderator:
Tob:
I outfitted my burner with a Brinkmann electronic igniter kit (http://www.amazon.com/dp/B007VAXQF8/?tag=skimlinks_replacement-20). I could easily modify the circuit in this to allow for external control from a 5V relay.
The only problem with spark modules is that they produce a lot of electromagnetic interference. I have spent quite a bit of time trying to shield my system from the problems it introduces. Try to keep the spark gap as small as possible. I have found that less EMI is produced with smaller spark gaps. I have also found that for whatever reason that some of the electric outlets in my house are grounded better than others. I can not brew off of one of the outlets in my garage because of the poor grounding and resultant EMI from the spark module. As it is, I still get some problems with my LCD on my control panel from time to time when the spark module fires. To counter this I have programmed an initialization command to the LCD after the spark module has been automatically fired. For what it's worth, the rpi has never been reset due to EMI. The only problems I have seen were in the 1-wire comms and the LCD display.

Regarding flame sensing, there are 1-wire thermocouple drivers (MAX31850) that could work for this application.
Thanks for pointing out the MAX31850, I haven't seen that before. I'll probably look into this sometime in the future. I'd have to figure out somewhere to place the thermocouple that wouldn't burn up. Usually the thermocouples are placed on pilot lights. I could probably get away with putting one close to the flame but not in the flame but idk. Do you have any thoughts on this?

Are you using a lookup table or linear regression calculation for this?
The data that I got from my linearization tests wasn't the best. I think it had to do with poor mixing, and other environmental changes between tests (not all of the tests were taken on the same day). I plotted all of the data that I had in excel and created a curve in excel that best fit my data. The python program uses linear interpolation to linearize the output based on the data from the curve.

Also, your readme file mentions a gas solenoid valve, which appears to be plumbed right before the input to the burner. What is the purpose of this, since you already have a servo valve to control gas flow?
I already had the propane solenoid valve from my previous configuration so I kept in in the loop. It has the added bonus of being my gas on/off so I don't need to close the regulator valve with the servo all the way tight. This means that my servo never has to deal with the high torque necessary to clamp the valve shut even though I think that it has plenty of torque for the job.
 
Last edited by a moderator:
Nice work, tob77, that is really impressive.
I wonder if you could post some more info on your sparker setup and how you are using it - manually, through code, etc. I'd also really like to see the inside of your control box. Finally, I don't see a pump on your recirculation arm, so I'm curious as to how you are siphoning the wort from bottom to top.

I see you're in the North Bay, do you ever come south? I'd love to hang out and talk beer/kit. :mug: I'm going to try hanging out at the Silicon Valley Sudzers meetup this Friday in Los Altos.
 
I wonder if you could post some more info on your sparker setup and how you are using it - manually, through code, etc..
The spark module can either be energized automatically or by a manual push button on my control panel. It gets energized for about 3 seconds every time the program turns the burner on. The burner is turned on and off several times throughout the brew program. For example, I programmed it to turn off during dough in, grain bag removal, and a high temp shut off. The burner will then automatically relight by pressing the next step button (dough in, and bag removal) or when the temperature drops to an acceptable level. The spark module is another leftover from my original configuration that I built back in 2002. I might use a pilot light if I was starting over again to avoid the EMI, but then again a pilot might blow out in gusty wind so...

I'd also really like to see the inside of your control box.
No you don't, it's a disaster. I fabricated the control panel back when I had access to my schools metal shop, and I didn't build it with accessibility in mind. As a result, it is very cramped and extremely difficult to install and wire components. All of the components are securely mounted, but there is an ugly tangle of wires connecting everything.

Finally, I don't see a pump on your recirculation arm, so I'm curious as to how you are siphoning the wort from bottom to top.
Get your magnifying glass out:) I'm using one of the cheap tan 12vdc pumps from ebay:https://www.homebrewtalk.com/f11/cheap-compact-wort-pump-375904/ It works good enough as long as you don't get any turb stuck in it. I'm sure a bigger pump would be a lot more reliable and be better at mixing the mash. I'll probably get a better pump if/when this $22 pump gives out.

I see you're in the North Bay, do you ever come south? I'd love to hang out and talk beer/kit. :mug: I'm going to try hanging out at the Silicon Valley Sudzers meetup this Friday in Los Altos
Sadly, I don't get out much. Between work and family I don't have much spare time these days (except after the kids go to bed which is when I did all my programming). My kids are finally getting old enough to not need constant attention, but...I've now got another one coming in a couple of months:eek: I fear the new born will put a damper on my brewing for a few months.:mug:
 
The only problem with spark modules is that they produce a lot of electromagnetic interference. I have spent quite a bit of time trying to shield my system from the problems it introduces. Try to keep the spark gap as small as possible. I have found that less EMI is produced with smaller spark gaps. I have also found that for whatever reason that some of the electric outlets in my house are grounded better than others. I can not brew off of one of the outlets in my garage because of the poor grounding and resultant EMI from the spark module. As it is, I still get some problems with my LCD on my control panel from time to time when the spark module fires. To counter this I have programmed an initialization command to the LCD after the spark module has been automatically fired. For what it's worth, the rpi has never been reset due to EMI. The only problems I have seen were in the 1-wire comms and the LCD display.

Thanks for pointing out the MAX31850, I haven't seen that before. I'll probably look into this sometime in the future. I'd have to figure out somewhere to place the thermocouple that wouldn't burn up. Usually the thermocouples are placed on pilot lights. I could probably get away with putting one close to the flame but not in the flame but idk. Do you have any thoughts on this?

Hmm, I hadn't thought of EMI, but those sparker circuits are likely several kV, so I guess that could indeed be a problem. I guess a solution would be to go with a hot surface ignitor. I plan to build mine completely headless, so I wonder if it would be a problem? As for flame sensing, there are really two simple methods, thermocouple and flame rectification. For the former, it should be relatively simple to connect an off-the-shelf furnace thermocouple from McMaster-Carr to the MAX31850 (or MAX31851). The thermocouple produces a small voltage when hot, which is then amplified and converted to a digital 1-wire signal by the MAX31851. Precision is not important, as it should be easy to distinguish flame or no flame irrespective of the furnace thermocouple used. More recent furnaces, dryers, etc use electronic flame sensors that use something called flame rectification. Basically, an AC signal is sent through the flame sensor, and if flame exists, the sensor acts as a diode. It would be fairly straightforward to develop a circuit to detect rectification of an AC signal, and thus the presence of flame. Both approaches are viable, but the thermocouple method would likely be cheaper and easier to implement.
 
Sadly, I don't get out much. Between work and family I don't have much spare time these days (except after the kids go to bed which is when I did all my programming). My kids are finally getting old enough to not need constant attention, but...I've now got another one coming in a couple of months:eek: I fear the new born will put a damper on my brewing for a few months.:mug:

Hence the need for automation :)

I'm in much the same boat, myself, but now that the baby is in full-on toddlerhood, I'm regaining some semblance of personhood

Good luck with the new one on the way! Your project really is looking great, and I'm hoping your inspiration will push me to take mine to the next level :rockin:
 
To eliminate the interference from the spark module you should try running a simple ground wire to the frame or burner. A simple wire to a steel tent stake you can insert into the ground should do the trick and keep it mobile :)
 
Why not just use a burner pilot instead of the igniter. Lets say a valve to the pilot that you open and light at the beginning of the brew. I think that would simplify your issue. This is how I would handle it..also you would get a faster ignition of the flame. Just make sure to shield it from the wind if its used out side.
 
To eliminate the interference from the spark module you should try running a simple ground wire to the frame or burner. A simple wire to a steel tent stake you can insert into the ground should do the trick and keep it mobile :)

On my burner, I run one of the ignitor controller terminals to the frame of the burner. Would running this to an actual ground electrode eliminate EMI? What about just using equipment ground from a control panel?
 
Why not just use a burner pilot instead of the igniter. Lets say a valve to the pilot that you open and light at the beginning of the brew. I think that would simplify your issue. This is how I would handle it..also you would get a faster ignition of the flame. Just make sure to shield it from the wind if its used out side.

I think the issue is wind, and I'm not sure it would be possible to shield the pilot enough without preventing exhaust fumes from exiting the burner properly. You might be able to eliminate most problems, but the potential loss of the pilot flame due to a gust of wind could make things go boom. This is really only an issue if you truly want the burner to be hands off. But part of the reason for automating a burner would be to avoid having to babysit it during the mash.
 
I guess a solution would be to go with a hot surface ignitor. I plan to build mine completely headless, so I wonder if it would be a problem?
I like this idea, I might go the hot surface ignitor if I was to do it again. The EMI mostly causes issues with low current signal lines. Like I said before, I have only seen issues on my LCD and 1-wire bus. The 1-wire bus is no longer an issue since I narrowed the spark gap, and stopped using the one badly grounded outlet in my garage. Additionally, I added some code to filter out any bad readings from the DS18B20. The DS18B20 will return a reading of 185 deg F if it is reset. I filter this out by looking at the previous value to determine if it has instantaneously jumped to 185 degrees. The LCD completely goes crazy when it gets hit with the EMI. However, a quick init command quickly fixes the problem. There are a few other places that you could potentially see issues even with a headless setup. All of the gpio are low current lines so they could potentially be affected. Keeping all of the wires associated with the gpio as short as possible should minimize any potential problems.

As for flame sensing, there are really two simple methods, thermocouple and flame rectification. For the former, it should be relatively simple to connect an off-the-shelf furnace thermocouple from McMaster-Carr to the MAX31850 (or MAX31851). The thermocouple produces a small voltage when hot, which is then amplified and converted to a digital 1-wire signal by the MAX31851. Precision is not important, as it should be easy to distinguish flame or no flame irrespective of the furnace thermocouple used. More recent furnaces, dryers, etc use electronic flame sensors that use something called flame rectification. Basically, an AC signal is sent through the flame sensor, and if flame exists, the sensor acts as a diode. It would be fairly straightforward to develop a circuit to detect rectification of an AC signal, and thus the presence of flame. Both approaches are viable, but the thermocouple method would likely be cheaper and easier to implement.
Where would you put the thermocouple? Do you think that they could withstand the prolonged exposure to the burner? I am not familiar with flame rectification. This might be an interesting option if it can withstand the high temps from the burner. Are these used in pilotless applications?

To eliminate the interference from the spark module you should try running a simple ground wire to the frame or burner. A simple wire to a steel tent stake you can insert into the ground should do the trick and keep it mobile :)
Not a bad idea, I might have to try the stake idea sometime. all of my equipment is grounded to the house ground right now but a more direct route to the earth might work a little better.

Why not just use a burner pilot instead of the igniter. Lets say a valve to the pilot that you open and light at the beginning of the brew. I think that would simplify your issue. This is how I would handle it..also you would get a faster ignition of the flame. Just make sure to shield it from the wind if its used out side.
I like the simplicity of the pilot but I'd be worried about the wind blowing it out. I would absolutely not use a pilot unless a thermocouple was used with it. I think I've seen a few threads where people use some Honeywell pilot valves off the shelf. Some of these might even have electric ignition for the pilot.
 
You could use a thermopile - which is a device that generates electric current when exposed to heat. http://www.amazon.com/dp/B005DUUKY8/?tag=skimlinks_replacement-20

In fact, my brinkmann turkey burner came with one as part of the "safety" equipment.

Many pilot light systems for gas fireplaces and furnaces combine a thermopile, pilot, and spark ignitor, e.g. http://www.amazon.com/dp/B00CQDP27U/?tag=skimlinks_replacement-20

They are designed to be exposed to high heat for long periods of time.
 
Last edited by a moderator:
In fact, my brinkmann turkey burner came with one as part of the "safety" equipment. ..They are designed to be exposed to high heat for long periods of time.
Where is the thermopile mounted on your brinkmann? Is it directly in the flame?
 
Where is the thermopile mounted on your brinkmann? Is it directly in the flame?

Yes, it's in the flame, it's a little copper pencil shaped thingie (see picture)

Turkey-Fryer-(815-4001-S)---Brinkmann.png


In the case of the turkey fryer, it's there to energize a small coil that allows the gas safety valve to stay open. So, no flame the coil de-energizes, allowing the valve to close, that's why you have to hold the red button to light it for 30 seconds or so.
 
I like this idea, I might go the hot surface ignitor if I was to do it again. The EMI mostly causes issues with low current signal lines. Like I said before, I have only seen issues on my LCD and 1-wire bus. The 1-wire bus is no longer an issue since I narrowed the spark gap, and stopped using the one badly grounded outlet in my garage. Additionally, I added some code to filter out any bad readings from the DS18B20. The DS18B20 will return a reading of 185 deg F if it is reset. I filter this out by looking at the previous value to determine if it has instantaneously jumped to 185 degrees. The LCD completely goes crazy when it gets hit with the EMI. However, a quick init command quickly fixes the problem. There are a few other places that you could potentially see issues even with a headless setup. All of the gpio are low current lines so they could potentially be affected. Keeping all of the wires associated with the gpio as short as possible should minimize any potential problems.


Where would you put the thermocouple? Do you think that they could withstand the prolonged exposure to the burner? I am not familiar with flame rectification. This might be an interesting option if it can withstand the high temps from the burner. Are these used in pilotless applications?


Not a bad idea, I might have to try the stake idea sometime. all of my equipment is grounded to the house ground right now but a more direct route to the earth might work a little better.


I like the simplicity of the pilot but I'd be worried about the wind blowing it out. I would absolutely not use a pilot unless a thermocouple was used with it. I think I've seen a few threads where people use some Honeywell pilot valves off the shelf. Some of these might even have electric ignition for the pilot.

I think any standard furnace thermocouple could be used to sense the flame. They are rated for continuous sensing of the pilot flame, so I think they could work for sensing flame from the burner as well. McMaster and other vendors sell K type thermocouples rated for very high temperature that could also be used, but the off-the-shelf furnace thermocouples would work and would be cheaper. You could source them from your local big box hardware store.

The hot surface ignitors are used in modern furnaces and gas dryers. They are a bit more expensive than sparkers, but would not have the EMI issues. They are designed to withstand the heat, and are often used in combination with a flame rectifier/flame sensor. I think this would be the best way forward.
 
I think any standard furnace thermocouple could be used to sense the flame. They are rated for continuous sensing of the pilot flame, so I think they could work for sensing flame from the burner as well. McMaster and other vendors sell K type thermocouples rated for very high temperature that could also be used, but the off-the-shelf furnace thermocouples would work and would be cheaper. You could source them from your local big box hardware store.

The hot surface ignitors are used in modern furnaces and gas dryers. They are a bit more expensive than sparkers, but would not have the EMI issues. They are designed to withstand the heat, and are often used in combination with a flame rectifier/flame sensor. I think this would be the best way forward.
I think that the cheapest and easiest flame sensing idea would be the 1-wire + thermocouple idea. My only reservation is whether or not they can withstand the prolonged exposure to the burner. I've had to replace one on my hot water heater that was only on the pilot light. On the other hand, they are fairly cheap to replace if they go out. I think that it was only about $12 so the whole setup would be under $20 with the 1-wire thermocouple sensor. I might have to try this out sometime in the future. I think the 1-wire code would be easy to write and it has the added benifit that I don't have to rewire anything in my control panel:)
 
In the case of the turkey fryer, it's there to energize a small coil that allows the gas safety valve to stay open. So, no flame the coil de-energizes, allowing the valve to close, that's why you have to hold the red button to light it for 30 seconds or so.
I looked up thermopiles and it looks like they consist of multiple thermocouples configured to produce a greater voltage than a single thermocouple. I think that they would be the best choice if we were going to design a circuit that would interface with the gpio. However, I think that the 1-wire thermocouple solution would be the easiest to implement. Thanks for the info!
 
I think that the cheapest and easiest flame sensing idea would be the 1-wire + thermocouple idea. My only reservation is whether or not they can withstand the prolonged exposure to the burner. I've had to replace one on my hot water heater that was only on the pilot light. On the other hand, they are fairly cheap to replace if they go out. I think that it was only about $12 so the whole setup would be under $20 with the 1-wire thermocouple sensor. I might have to try this out sometime in the future. I think the 1-wire code would be easy to write and it has the added benifit that I don't have to rewire anything in my control panel:)

I agree that the thermocouple through the MAX31850 1-wire would be the easiest to implement, especially since you've already worked out the 1-wire bus for temperature probes.
 
Hey guys, any thoughts on flame rods? Would the "flame diode" thing work for arduino/Rpi? if not, the thermocouple/1 wire method seems pretty srtaightforward.
http://www.ebay.com/itm/PFS401-Univ...-replaces-White-Rodgers-760-401-/380817076039
I looked a little further into flame rectification, and it looks like it would be fairly difficult to implement. About 30VAC is placed on the flame sensor and then DC microamps are measured off of the burner (ground). I looked around a bit for an off the shelf flame rectification module but couldn't find anything useful.

I'm not sure that the MAX31850 will work with pilot thermocouples because they may not fall into the supported thermocouple types K, J, N, etc. There are some $6 K type thermocouples on amazon that have a max of 1250 deg C. I don't know if these will work or how long they would last though. I think that a propane burner can get fairly hot so idk.

Tob77, qq - how are you mounting the ds18b20? is that a specialty fitting or ...?
I am using a stainless 1/2" Tee and 1/2" NPT to compression probe fitting from brewhardware.com: http://brewhardware.com/thermometers-71/153-probecompression2
 
So I've been looking around for a solution. I'm concerned about the low voltages of most thermocouples, though we're not really looking for max precision just "is fire"/"is not fire", so that may be okay. I've ordered a k type thermocouple to play with. I'd get one of those maxim one-wire pieces, but they seem to be out of stock everywhere.

I'm thinking that flame rectification has similar issues, plus the added challenge of a proper electrical ground.

I've found a possible third (fourth?fifteenth?) solution in robotics, where they are using an infrared sensor to find flames http://www.amazon.com/dp/B00EDMKG1Y/?tag=skimlinks_replacement-20

Not sure it would work, but it's built for arduino and should be pretty easy to implement. May be worth trying for $4.

Thanks for the info on your thermowell.

Cheers!
 
Last edited by a moderator:
I'd get one of those maxim one-wire pieces, but they seem to be out of stock everywhere.
It looks like mouser.com has them in stock. They have the right part number but the description isn't quite right. Alternatively, you could try and get a sample directly from maximintegrated.com. It looks like they only make them in the TDFN (Thin Dual Flat No Leads) package that is kind of a pita for us.

I've found a possible third (fourth?fifteenth?) solution in robotics, where they are using an infrared sensor to find flames http://www.amazon.com/dp/B00EDMKG1Y/?tag=skimlinks_replacement-20
I ran across those when i was looking around as well. They sure would be easy to use with the rpi and Arduino, but I don't know how to mount one without it melting up from the heat. Maybe a glass heat shield? mirrors? will sunlight give a false positive?
 
Last edited by a moderator:
This looks great!

I have a raspberry pi on the way with a 7" touch screen. I would love to use this for an automated BIAB setup. I have no SKILLS with programming at all. I was wondering if you could be so kind to talk me through how to put this on my raspberry pi? Untill I become familiar with how to program with python and creating applications, I need something that is user friendly. This looks like it would work great for me.

Thank You!!
 
Thanks for your interest. Unfortunately, I did not make this project with flexibility in mind. I tailored the software to fit to my specific hardware. I tried to make the code in a modular fashion so that it could be modified easily. But this was my first python and html project so I am no expert. The html5 widgets that I used for the web design are solid. They work great and they were relatively easy to use. Unfortunately the developer of the widgets stopped supporting them and took down the website that used to have all of the demos and documentation. You will probably be better off checking out some of the other more user friendly projects around if you are looking for something fast and easy. If I haven't completely scared you off and you are willing to get your hands a little dirty with python, java script, and html, I'll help you get going. What type of rig do you have? Propane? Electric? What kind of sensors, valves, pumps, motors are you planning on using?
 
I have a 5gal eBIAB. I want to start with small automated batches and to get familiar with the process. This is all I need it to do:

Run one chigger pump I can speed control.

One 5500 watt heat element that dosnt dry fire.

One DS18B20 temperature sensor

My goals for a program would be:

Have a temperature control setting that I could set.

Be able to turn the pump on and off (it would be nice if I could get an auto function that I could set the pump to turn on and off at 80*f or so)

Be flexible to upgrade to a three vessel HERMS in the future.

I have started to read about python and how to use it. But, I have never done any programming before. I have python portable on a thumb drive right now and have started to play with it a bit with internet instruction.
 
It sounds like your setup is fairly similar to mine so it wouldn't be too difficult to adapt my program to fit your application. You would have to delete all of the servo specific code that I am using and write some PWM (pulse width modulation) code that would control your heating element. I recommend checking out a couple of other more documented projects before you get too far into this. The StrangeBrew https://www.homebrewtalk.com/f170/new-strangebrew-elsinore-thread-475456/ project seems to moving along nicely and is a bit more user friendly. I used steve71's rpi project as a model when I first started programming. His web site has some good info about how to get started http://raspibrew.com/. If your still interested in my project, I think that you could relatively easily use my code to develop a custom application tailored to your exact needs. You will need to install all of the python libraries as well as the web.py framework. This is all documented on steve71's website.
 
Hello everybody.

I am Patrick from Switzerland. I have been brewing for 1.5 years and I am about 30 years old.

First of all: A huge THANK YOU from my side for making this software public.

I adapted your Software to control an electric Setup with a 3500 Watts induction cooker and translated it. Some images (and informations in German) can be found here:
http://hobbybrauer.de/forum/viewtopic.php?f=10&t=2942
http://hobbybrauer.de/modules.php?name=eBoard&file=viewthread&tid=22525

I also did some other changes, like making it work with a PiFace, removing the hop-rests and so on. I don't think it makes sense to publish this since I rather hacked everything to work like I wanted rather than doing a clean generic adaption of the code.
 
Hello everybody.

I am Patrick from Switzerland. I have been brewing for 1.5 years and I am about 30 years old.

First of all: A huge THANK YOU from my side for making this software public.

I adapted your Software to control an electric Setup with a 3500 Watts induction cooker and translated it. Some images (and informations in German) can be found here:
http://hobbybrauer.de/forum/viewtopic.php?f=10&t=2942
http://hobbybrauer.de/modules.php?name=eBoard&file=viewthread&tid=22525

I also did some other changes, like making it work with a PiFace, removing the hop-rests and so on. I don't think it makes sense to publish this since I rather hacked everything to work like I wanted rather than doing a clean generic adaption of the code.

Put it on github, homie. Somebody may really like your version :)
 
I am working on cleaning everything up, at the moment I have made such an mess I don't think this would be usefull. As soon as have done this I will ask for permition to publish this.
 
Hello everybody.

I am Patrick from Switzerland. I have been brewing for 1.5 years and I am about 30 years old.

First of all: A huge THANK YOU from my side for making this software public.

I adapted your Software to control an electric Setup with a 3500 Watts induction cooker and translated it. Some images (and informations in German) can be found here:
http://hobbybrauer.de/forum/viewtopic.php?f=10&t=2942
http://hobbybrauer.de/modules.php?name=eBoard&file=viewthread&tid=22525

I also did some other changes, like making it work with a PiFace, removing the hop-rests and so on. I don't think it makes sense to publish this since I rather hacked everything to work like I wanted rather than doing a clean generic adaption of the code.

Great work and thanks for sharing! My project was never intended to be a one size fits all type of application. It was tailored to fit my hardware and function the way I wanted it to. I commend the way that you took it apart and and made it your own by tailoring it to your needs. You've got a nice setup with some beautiful equipment there. I'm jealous :mug:

I am working on cleaning everything up, at the moment I have made such an mess I don't think this would be usefull. As soon as have done this I will ask for permition to publish this.

You don't have to ask permission from anybody, it's open source! Post away! I liberally used code from all over the internet. To the best of my knowledge all of the code that I used was open source software.
 
Back
Top