After tasting some awesome BBQ offered in the US, I wanted to try making it myself. I’ve tried to use a gas BBQ, but it always turned out dry and tough. I moved to a charcoal kettle grill and wanted to be able to have more control of the temperature.
manual control – Continuously checking the temperature on the gauge that came with the BBQ.
Buying a professional smoker – big $$.
Make my own controller – When researching I found a professional BBQ team that used a controller that adjusted the temperature using a fan and temperature probes.
I was kindly given a European Outdoorchef BBQ (cheers Chris), and I’ve been using it to smoke a few cuts of meat, the largest and latest was a 4kg pork leg roast. When I get more skills and consistent cooking, I’ll progress to a larger model specifically for smoking. As you may have guessed I decided to make my own controller to enhance it.
The summary of it’s use; First set the temperatures of the kettle and meat probe, the cook time, and then wait for the buzzer to tell you that an event has occurred that requires attention. This can be either; Time is up, the internal temperature of the meat has been reached, or the kettle/pit temperature has dropped or risen for a period of time and isn’t correctable by using the fan – this would indicate that more coal is needed or you need to adjust the vents. When the temp drops the fan blows fresh air at the coals and heats them up, similar to when you blow air into a pile of coals to get a fire lit. The duration and interval of the fan is determined by the difference between the preferred and actual temperatures.
Arduino UNO + 12v relay, 2×16 character LCD with keypad, buzzer, 12v power socket and 1 toggle switch.
2 x K-Type temperature probes with SPI controllers – they are rated at temperatures higher than it’s likely to reach.
Custom made fan port with vent to prevent hot air flowing back and damaging the blower fan – this was purchased online due to how well it was made, and reasonable price. You could make one if you have metal work equipment.
12v Battery or power source.
Getting the LCD and keypad working correctly was pretty easy using the samples that came with the libraries. To extend the buttons up through the 3D printed cover, I tried to find button caps with a lip or rim, but was unsuccessful. I ended up using straight button caps glued onto semi-flexible plastic.
The buzzer is activated through basic level changes to the digital pin 0.
The conditions where the buzzer sounds: Timer has reached 0:0:0 or the kettle temperature has been more than 10 degrees above or below desired temperature for more than 10 minutes. The temperature difference and time will be changed after more testing.
To get the basic parts inside the case along with the battery, the MAX6675 breakout boards were mounted to a small perf board. In hind-sight I should have mounted them in a different way to better make use of the small amount of space available. I had to leave them sitting freely instead of using the mounting their hole.
Rear side – Temp probes, off switch.
Fan power socket on side.
Pork leg roast – Marinated, rubbed, glazed, smoked.
Pork ribs, rubbed, glazed and smoked.
The source code will be uploaded once it’s been cleaned up and commented.
Don’t cook based only on time – use the meats internal temperature to determine whether it’s done.
Add more beads than you think – adding more later can be tedious.
Try different recipes or flavors – you may find another one you like better.
Don’t follow incomplete recipes – make sure it includes, the temperatures, and expected cooking times, material used to cook (gas, coals, oven, etc). More information is always better.
Relax and use the longer than usual cook times to do something productive.
This entry was posted in Arduino, General News, Tech and tagged Arduino, BBQ, buzzer, controller, K-Type, kettle, smoker by Kristian. Bookmark the permalink.
Can you upload the code for me please?
Sorry for the late response, I’ve added the code to the bottom of the post above, full disclosure – it works but needs refinement.
Awesome! Can you upload the code?
I’ve added the code to the bottom of the post, full disclosure – it works but needs refinement.