Smoker enhancement

A year or so ago I got a propane-heated vertical smoker, which I’ve been using to make some pretty decent ribs and pork shoulders. It keeps temperature fairly well, but not well enough that you can just ignore it. Since the only way to read the temperature was to look at the mechanical gauge on the front of the smoker, this pretty much meant you were stuck spending the day in a camp chair by the smoker or at least popping in every 5 minutes to make sure the temperature was still good.

This was starting to feel like a huge waste of time, so for a while I’ve been wanting to equip it with some temperature probes that can be sent over an Xbee so the temperature is readable remotely. I ordered two long PT100 probes so I could get a handle on the temperature distribution, and also a K-type thermocouple for the burner. This was in anticipation of what I really want to do which is also control the burner to keep the temperature by putting a stepper on the control valve, but that’s more work than I want to deal with now (and also requires a power source for the motor.)

The PT100 temperature probes mounted in the smoker. One is visible above the duck, entering from the side. The other is barely visible entering from the back below the bottom rack.

To read the probes I got some MAX31865 RTD  and thermocouple breakout boards from Adafruit. The MAX31865 is SPI and the thermocouple board uses 1-wire, which is handy since it plugs right into my existing code for reading the DS18B20 probes. I wired up everything up on a prototype board with a 3.3V Arduino Pro Mini.

The board is powered with a 18650 Li-ion cell, which can be charged through a USB connector. I got a waterproof enclosure to put everything in, added cable glands for the probe wires and mounted the box on the smoker bracket that secures the propane bottle.

The circuit board in the enclosure. The battery is on the right, where the three temperature probe wires enter. The small vertical circuit board is the USB battery charger.

The smoker with the enclosure and probes. The stainless steel heat shield between the enclosure and the smoker protects the enclosure from getting heated by radiation from the smoker.

As usual with these boards, there’s an Xbee radio that sends the data to the receiver sitting on the Raspberry Pi that generates web plots. That’s great for sitting at the computer, but not so great for when you’re actually right next to it. There’s a substantial difference between the mechanical gauge and the PT100s, so it would be nice to have a way to read the temperature probes locally too. (It’s unclear whether this is just because the mechanical is a fairly short probe so not measuring the same location, or if it’s just inaccurate. When the smoker is off, the two PT100 probes agree to within a few tenths of a C, so those seem very accurate.)

For this reason, I added one of SparkFun’s MicroOLED displays. These are tiny displays communicating over SPI that can draw arbitrary shapes. Here, I just use it to draw text. It shows the average temperature between the two probes, if there’s a fault on the probes, and occasionally also shows some extra info like the battery voltage, the Arduino’s internal temperature sensor, and the burner thermocouple. If the battery voltage gets below 3.6V it also starts flashing a warning. 

The MicroOLED display glued to the inside of the enclosure lid, showing the current temperature.

I think it’ll be a while before I can add the gas control, but this will make it a lot more useful. One thing that might be nice to add for the local display is a simple graph of the temperature so it’s readily apparent if it’s increasing or decreasing, but there are more important things to do for now…

 

2 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *