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

(Last updated: June 2014. See last step for details on changes.)

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.
  • Can monitor up to eight thermometers and measures in Fahrenheit, Celsius, or Kelvin.
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
sascharr5 months ago


Just did my first wireing, but the Software shows negativ degrees and the therm has no influence on the temperature. Did anyone can help me? I add an picture of my wireing.



Deeg (author)  sascharr8 days ago

In case anybody is following along, we figured out the problem. My schematic incorrectly showed the thermometers being connected to the 5V pin. This has been fixed; the thermometers should be connected to the 3.3V pin.

Deeg (author)  sascharr5 months ago

You're wiring looks good to me. I have some thoughts:

1) Double-check and triple check your connections. If you have a multimeter verify that you have continuity between the wires and the IOIO. Also verify that you have continuity through the thermometer. The app is responding in a way that makes it look like no thermometer is plugged in so I'd check the thermometer wires first.

2) Are you using the right probes (thermometers)? The software is calibrated to work with just the the Maverick ET-73 probes.

3) Try connecting the thermometer to the other pins (e.g. 44 and 43) to see if they all read the same.

Good luck!

sascharr Deeg5 months ago

Hi Deeg!

1) See the Picture. The Software show's all the same temperature when i connect the other ports and there is no reaction when i connect the thermometer. Connection is given, i checked it with the multimeter :o(

When there is no connection to the IOIO ports 46-43, it shows 200 to 600


2) Yes, ET-73 probes

3) See the picture

At the moment i used a 9V 1A power supply, but that could not the reason for this problem, right? Maybe the IOIO is defect? Any other idea?

Thanks for your help.

Deeg (author)  sascharr4 months ago

Hello Sascha, have you had any luck in solving your problem? I've been updating the software and added the ability to use Celsius (or Kelvin!) instead of Fahrenheit. I hope to test it over the next few weekends. Once it passes I'll put up .apk file in the download page on Sourceforge.

sascharr Deeg2 months ago

hi deeg! get the new ioio now, but have the same problems. get frustrated at the moment. i only connect the mobile to the ioio without any probes and the software shows 509-512 degrees. really don't know whats running wrong.

Deeg (author)  sascharr1 month ago

Hi Sascha, I'm sorry it's not working. :( If you want we can try using the debugger to see what values the software is reading from the IOIO. Can you get the logcat from your device? If you want to try it let me know and I'll PM you my email.

All the users of UDS that I know of are in the US so maybe there's something different about your Android device that's preventing it from working.

sascharr Deeg1 month ago

Thank you! I sent you a PM :-)

sascharr Deeg4 months ago

sorry for the late reply. no, i did not find the time, but now after your update i will try to start again. keep you informed. regards

Deeg (author)  sascharr5 months ago

The 9v PS shouldn't be a problem (assuming it's not defective). Maybe verify that the +V voltage coming out of the IOIO is 5v. It's always possible that the IOIO is defective; I have no idea how many of them have problems but the two I bought were both fine.

If you are up to it you could try installing the HelloIOIO app to verify that the basic operations of the IOIO are working. You can learn more here:

I don't know what else to say except re-check the connections and verify all they inputs/outputs. I don't think the problem is with the UDS app because other people have been able to get it working. I used the original IOIO and haddad1 used Version 2 so that rules out version issues. I'm sorry I'm not much help. =/

haddad1 Deeg3 months ago

did you try that ioio on the PIDGO schield first? if so that could have burned up your IOIO. i personally burned one up by pluging it into a PIDGO schield. there is a wiring error on the schematic for the pit temp input of the PIDGO.

sascharr haddad13 months ago

yes i try this on the pidgo first. i ordered a new ioio and hope it will run with it.

AmishDonkey14 days ago

Just out of curiosity, why have the PID control reside on the Android device, as opposed to the µC?

PID control residing on the phone, means my phone has to stay within the vicinity of the smoker (ie. no trips to the store w/ phone).

Deeg (author)  AmishDonkey14 days ago

There are plenty of ways I could have implemented this, none obviously better than the other. I went with the Android device because it has everything in one package: touch screen, wifi, bluetooth, and CPU. Plus I had an old Android phone collecting dust that I could use. :)

> I went with the Android device because it has everything in one package: touch screen, wifi, bluetooth, and CPU.

I understand & agree with the use of the Android device & all the niceities it brings, the stickler for me is where the PID control resides.

> none obviously better than the other

Having the PID reside on the µC means the phone isn't required for basic operation.

splitterx41 month ago


All I can say is WOW... I'm currently building a vertical reverse flow cabinet smoker and have been searching for a wireless heat control and stumbled on your creation. Currently trying to pull all the parts and pieces together for the build. Can only hope with my limited electrical knowledge I can pull this off. So very cool.. was a little confused as to what the USB connection (RED USB Cable) was actually connected too on Sascharr's photo. Further, Haddad1 stated there was a wiring error on the PIDGO shield??? Was planning to use your wiring schematic as a guide. Again, thanks for sharing. Looking forward to downloading the App.



Deeg (author)  splitterx41 month ago

Hello Splitterx4, the red cable comes with the IOIO board and is used to connect USB devices to your IOIO. You can see a similar cable in Haddad1's build (last picture on step 9). This cable isn't in my pictures because it comes with the newer version of the IOIO board.

hi splitter!

i hope i understand you right. pitgo is a complete different project witch is discontinued now.

i used the USB cable, because i got no bluetooth dongle a the moment. its an micro to standard adapter.



haddad11 year 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.

yes, i have a full schematic diagram, and PCB layout drawings complete. if you have soldering skills or can make a PCB i have what you need. send me a pm with your email and i will share the link to my google drive where it is located

hardwarehank6 months ago

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)  samhayward20029 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)  samhayward20028 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.

ripsup1 year ago
How did you calibrate your thermometers? That's been the biggest issue I have had with my own similar device.
Deeg (author)  ripsup1 year 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.
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)  steveastrouk1 year 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.
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)  steveastrouk1 year 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)  Deeg1 year 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.
dtownmaker1 year ago
Interesting. Any inspiration from BBQ Guru or Stoker?
Deeg (author)  dtownmaker1 year 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.
rocky451 year 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.
smokey22991 year ago
(: cool!!!!!