Homebrew Temperature Monitor/Controller

Latest News

I have finally added the source code to this site.

Sample Cooks

Notes and graph from first cook

Notes and graph from butt cook.

Some other cooks:

Pork butt with new temperature control algorithm

Eye of round

Buckboard Bacon

Pork Butt

If I'm cooking, the latest data can always be found here.

The Hardware

I really need to draw up the schematics for the entire setup, but I haven't yet. The descriptions below should give you a good idea on assembly - and I am always willing to help out via email.

Development Board

I started with a development board from Olimex. Their AVR-P40 board was perfect. All I would need to add is an LCD display, some temperature monitoring circuitry, a blower, and blower control hardware.

The board plus the Atmel ATMega32 controller chip was only $24 from Spark Fun Electronics. A serial port programmer set me back another $12 and all the development tools are free: WinAVR

Temperature Measurement

I decided to use thermocouples because I had never played with them before, and there is a pretty good supply of them on E-Bay for a decent price. I found several auctions and ended up with 6 metal probe K-type thermocouples for under $40.

Interfacing the thermocouples is another challenge. The voltage output from them is so small, you need special circuitry to amplify it to a level that the analog to digital converter on the ATMega32 can read. Luckily, SparkFun comes through again with the AD595 IC. It converts thermocouple inputs to 10mV per degree Celcuis. Coupling this IC with a 74HC4052N IC Mux, I could select any one of four thermocouples at a time using only one AD595. I am still having a bit of trouble with noise from the relay/motor slightly changing my thermocouple readings. This results in about a 1-2 degree spike when they energize. If it all worked perfect, I wouldn't have anything to keep working on!

UPDATE: I had a decoupling capacitor on the power input to the AD595, but I neglected to put one on the 4052 mux. I added one there, and things seem to be much better.

Display

The easiest part of the project, because I had done it so many times before, was the LCD. I chose your basic 16x4 LCD based on the Hitachi HD44780 controller. SparkFun sells these for $12 and there are several good libraries written for them for the Atmel controllers.

Final Assembly

All of the electronics went together fairly straight forward. I was not able to get a box that I liked, but i settled on one from Radio Shack that is just a bit too big. There are four 1/8" plugs for thermocouples, one 1/8" jack for the blower, one DB-9 serial connecter to send data to the computer, and one power jack.

The Blower

The biggest mystery was how to rig up a blower. I specifically say "blower" and not "fan" and I have Rock (from The Stoker fame) to thank for that. He pointed me to DigiKey, where I decided on a 12V DC blower (DigiKey part #P12902-ND) To mount it to the smoker, I found a small stainless steel pan, originally made for simmering BBQ sauce, at the local Ace Hardware. I fabbed up a bracket for the blower to mount to the bowl, and the bowl then bolts through a smoker vent and is held in place. I also had to fabricate an air diverter for the inside of the vent. This causes the blower air to blow down instead of straight at the coals causing all kinds of ash.

The Software

Latest version of the software and WinAVR project files: tempmon.zip

The ATMega32 has 32 Kbytes of flash and 2 Kbytes of RAM. Not being cramped for space, I decided to go all out and use GCC and not worry about silly things like floating point, math, or string libraries.

The software has a very simple job:

Using the Controller

Writeups and graphs of various cooks can be found in the Latest News section above. During testing, it logged a nice graph of my workshop for 20 hours:

Feel free to contact me at bbqcontroller@gmail.com I will keep up as best as I can, at least until all the spammers get the address.