Tweeting, Wireless, Ugly Drum Smoker (UDS) temperature controller using Android

FeaturedContest Winner
Picture of Tweeting, Wireless, Ugly Drum Smoker (UDS) temperature controller using Android
UDS 005.jpg
UDS 009.jpg
UDS 030.jpg
This is the UDS Digital Supervisor, an Android app and hardware for remotely maintaining the temperature of your UDS like a thermostat.   Your phone monitors the temperatures inside the UDS and adjusts a blower to keep the temperature to the setting you decide.   Don't have a UDS?  You can build one yourself!

What cool stuff can the UDS Digital Supervisor do?

The Supervisor app has the following functionality:
  • Maintains a constant temperature inside your smoker (duh).
  • Sounds an alarm if a thermometer temperature falls outside a configurable range.  Very handy for overnight cooks so you can sleep worry-free.
  • Records the temperatures in a database and displays a graphical chart showing the progress of your cook.
  • Periodically tweets the status of your smoker so you can monitor your cook from anywhere in the world.  Requires an internet connection (double duh).  If you need something to put yourself to sleep you can follow my smoker's twitter account.
  • A companion app running on another Android device can monitor the Twitter feed and sound an alarm if there is an error.  Go see a movie in peace knowing that your smoker is purring like a kitten in a basket full of warm socks.
  • You can send tweets to your smoker to change its target temperature.
  • Starts a simple web server that serve up web pages that display the smoker's status.
  • Can monitor up to six thermometers.

How It Works

The app monitors the temperature using thermometers inside your smoker and compares it to your target temperature.  If the temperature is too low the app will turn on a blower to force more air into the UDS, which will stoke the coals and increase the temperature.  The app uses a PID algorithm to determine when to turn on the blower.  Your phone uses Bluetooth to communicate with the hardware attached to the blower and the thermometers.


This project is made up of three main parts:
  1. Blower  The temperature of the smoker is ultimately determined by the amount of air the coals get.  The more air the blower pushes into the smoker the hotter it will get.
  2. IOIO controller  The IOIO (pronounced yo-yo) is a microcontroller specially made for Android and acts as the connection between the blower/thermometers and the Android app.  The blower and thermometers plug into the controller and it sends signals to your phone using Bluetooth.  Check out the IOIO home page for more information.
  3. Android app The app monitors the thermometer temperatures and adjusts the blower speed accordingly by sending a signal to the IOIO controller.  The app uses a PID algorithm to determine the correct blower speed.  The temperatures and the blower speed are recorded in a DB (database) which can then be used to display a chart of the entire cook.  The app is free to download and is Open Source, which means it will always be free.
Remove these adsRemove these ads by Signing Up

This is totally awesome - I aspire to replicate this soon. As an android developer, electronics amateur tinkerer, and recent BBQer, I really admire what you've done here, and I'll make sure to let you know if I improve upon it! Thanks!

What happens if the android device goes out of range - is there a failsafe that will maintain a temperature or blower rate or will it just turn the blower off if not receiving comms from the android?
Deeg (author)  samhayward20022 months ago

If the connection between the Android device and the IOIO is lost for any reason the blower will continue to blow at the same rate until the connection is re-established.

Hi, Thanks for replying to my question about your UDS controller.

I'm looking to control a Bradley electric smoker but not sure if I should go with an ioio or arduino. Being able to use your app is making me lean towards ioio but I would prefer something that can run standalone when required as well as being able to be set temperatures and reporting readings to an android phone.

I think you ran an arduino previously. If you have time I would appreciate your thoughts on why you changed to ioio. Was it simply a case of being easier to integrate with android control?



Deeg (author)  samhayward20022 months ago

I went with the IOIO/Android because it was the easiest (and cheapest) way to create a controller that was:

1) Wireless

2) With a nice color screen

3) Easy to control

I also wanted an excuse to write an Android app. :) An Arduino solution will require at least a wireless shield(wifi or BT); if you want it to be completely autonomous you'll need an LCD screen and a way to input values.

It would be difficult to refit this design to run on an Arduino largely because it's written in Java. My suggestion would be to buy a cheap, used Android device and use it as a dedicated controller. Another option is to use a Raspberry Pi. I've never tried combining the two but this post makes it look possible:

The issue is that you'll still need something for I/O to replace the touch screen. My free time is limited but I'm willing to help some to get the app converted to the RPi.

haddad18 months ago
i have a similar device that i built a few months ago based of an ioio. i recently adapted it to work with Deeg's app, and i am very pleased. he has been very helpful over the last few weeks with getting the app ready for me as i needed some changes to make it work with my smoker. i use it with a Bradley Electric Smoker utilizing a Solid State Relay (SSR) to control my heating element. I'm currently doing a test hooked up to my crock pot to see how it holds water temperature. I have been designing a schematic and board with Eagle CAD software. it has 8 inputs, and measures only 2.5" long x 3.5 wide" (without a SSR). thanks Deeg for all your help

Do you have any further details online anywhere? I am looking to use ioio with a bradley so really interested in how you have done it.

ripsup9 months ago
How did you calibrate your thermometers? That's been the biggest issue I have had with my own similar device.
Deeg (author)  ripsup9 months ago
I didn't have to do much to calibrate the thermometers. I'm using Maverick thermometers and there is a formula published on the 'net somewhere for converting the measured voltage to a temperature. I used a few different techniques to verify that I was measuring the correct temperature and they're listed in Step 4. It checked out OK and I was done.
steveastrouk9 months ago
Stunning piece of work. Is the Android app all your own work too ?
There are SO many great ideas in that app by the look of it !
Deeg (author)  steveastrouk9 months ago
Thanks :) The Android app is mostly mine but I did pull in a few open source projects to help. The charting software is AChartEngine and it's pretty nice.  The PID algorithm was originally released by WPI and I made some minor modifications to get it to work for me.  Some other minor projects were used as well.
steveastrouk Deeg9 months ago
I dragged your project into the new Android studio dev tool - and me, with ZERO android experience. (30 years in other languages though)

Got completely lost ! ;-) in 2 minutes :-(

I really want to get to grip with this stuff. Its not the language, just the Android eco-system I don't get (yet)
Deeg (author)  steveastrouk9 months ago
I haven't taken the time to document how to build the project. Here are two pointers that might help:

1) The project is built using Maven which isn't (yet) the standard for Android projects. You may have to install some Maven plugins.

2) A couple of the open source projects I used don't have public Maven repositories. If you look in the uds/scripts directory you'll see some shell scripts for installing them by hand. I haven't kept the scripts totally up to date; if you're serious about wanting to build it yourself let me know and I'll try to create a single script for installing all the jars.
Deeg (author)  Deeg9 months ago
Just in case anybody has questions, it's unnecessary to compile the controller code to complete this project. All you need to do is download the .apk file and install it on your Android device. See step 3 for the download link.
dtownmaker9 months ago
Interesting. Any inspiration from BBQ Guru or Stoker?
Deeg (author)  dtownmaker9 months ago
Not really. I'm aware of them but this project was more inspired by the shortcomings of my previous smoker project and CapnBry's Heater Meter.  I wanted a new smoker controller that was wireless and while the Heater Meter is brilliant it is a little more complex than I wanted.  I somehow stumbled upon the IOIO and the rest fell into place. My controller has, to my knowledge, more functionality than any single commercially available product.
rocky459 months ago
I have a uds and made a temperature controller and have been using it for a few years and it works pretty good, it's a stand-alone unit with only one rtd though. I like yours much better. Thanks for the instructable, I'll be making one in the next couple weeks. I doubt my wife will be thrilled haha.
smokey22999 months ago
(: cool!!!!!

Get More Out of Instructables

Already have an Account?


PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!