• working on DNS.. links may break temporarily.

DIY: UDS temp controller using Android

HogFan, when the time comes I may ask for your help in determining the best PID settings, since you seem to understand it better than me. :)

Update: I did my first smoke (heh) test last weekend. It was good and bad.

Good - The hardware worked and it was relatively easy to set up. The PID output (i.e. the blower speed) seemed reasonable. The graphing software works very nice and builds a pretty chart of the cook. :)

I have verified that the software runs on an original Droid using Android 3.7.

Bad - Program crashed a few times but worse it didn't keep any kind of a steady temperature. I started with the ball valve all the way open, which was too much, and it climbed past 300 (thermostat was set for 225). I kept closing down the valve until temperatures started to drop. When the temp got to around 225 the blower kicked in but temps kept on dropping. The blower is putting out plenty of air so I'm not sure what's going on. I fixed the crashes and I plan on trying again this weekend.

The bluetooth dongle I bought has a short range and that was annoying. I've ordered another one to try with a range (supposedly) of 50 meters.

For those that might be interested, the software can be downloaded from here: https://sourceforge.net/projects/udssupervisor/
 
An update and a request for some advice.

I updated the software and ran another test last weekend and still had problems keeping a constant temperature. The hardware/software worked great; I ran the controller for 5 hours and there were no crashes or disconnects. The PID algorithm seemed to be calculate good values. I ran this all on my old Droid and it used up only ~30% of the battery so I'm convinced that this is a viable platform for controlling the temperature once I figure out my problem. That's where I'm looking for advice.

I'm using the Minion method with lump. The smoker has a single 1/2" ball valve for intake. I got some lump pieces going and when the temperature inside the smoker got up to ~200 degrees I engaged the controller and set the ball value to about half-way open. Here's a graph of the result:

attachment.php


The red line is the pit temp, the blue (flat) line is the desired temperature, and the green line is the blower speed (0-255). (Ignore the magenta line for now.) As you can see the first hour or so was reasonable. Starting around 19:00 the temp begins to drop, even though the blower is going full speed. At about 19:30 I opened the ball valve a bit. You can see the temps rise for 45 minutes and then begin to fall again. At 21:00 I opened the valve a bit more, the temps rose then fell again. I shut off the controller at ~22:00.

I don't know why the temps keep falling even though the blower is going full blast. It looks like I still had plenty of lump in my basket, maybe around 2-3 inches deep. Any ideas?

As an aside, here's the initial screen:
 

Attachments

  • main-screen.jpg
    main-screen.jpg
    25.8 KB · Views: 172
Your temp graphs aren't showing up on my HTC Droid phone unfortunately.
 
How about here?
attachment.php


attachment.php
 

Attachments

  • chart.jpg
    chart.jpg
    27.4 KB · Views: 339
  • main-screen.jpg
    main-screen.jpg
    25.8 KB · Views: 338
What size cfm blower are you using might be to much? Mine is a 10cfm from guru and it has a damper on it that only needs to be half way open when I use it and the 1/2 ball valve is wide open. I haven't really read this thread but the title intrigued me I like android and bbq!
 
I agree with AustinKnight in that I would have the ball valve wide open. Ique110 works in the same manner.
 
I'm using this 25 CFM blower: http://www.allelectronics.com/make-a-store/item/CF-339/12-VDC-BLOWER/1.html

I currently can't leave the ball valve all the way open because that lets in too much air with the blower off. What does the damper look like and how does it adjust?

That's way to much fan that's for like a big off set smoker brotha. I never had good result controlling the temp by adjusting the ball valve but with it all the way open and using the guru damper it works. Like the Ique110 uses a rubber washer that is inserted into the hose so it can dampen down the air flow that might work to, that 25cfm fan is blowing everything out of your drum sometimes less is more.

20130325_232230.jpg

20130325_232302.jpg

20130325_232331.jpg

20130325_232408.jpg

20130325_232438.jpg
 
Mo hosepowa is mo betta! not always. It's kinda crazy, but my vault runs 275 with the guru 25% open. Hard to believe that big of a smoker uses less fuel than a UDS. I run the guru intake @100% and weber lid all the way open. My buddy has a 25cfm fan also for his UDS and he gets 30+ degree swings. Lol I told him before he bought it, he don't need all that horsepower, just spinning your wheels. The UDS is so stable it's ridiculous and recovers super fast and doesn't overshoot.
 
Thanks for the pictures AustinKnight. It looks like the damper is a simple choke that restricts air-flow by making the intake opening smaller. I'll play around with my setup to see if I can restrict the flow from somewhere other than the ball valve.

The software is set up with a max blower speed. I'll try reducing the speed so it's not blowing in too much air. I had it on max because it was forcing air through the half-closed ball valve.
 
Thanks for the pictures AustinKnight. It looks like the damper is a simple choke that restricts air-flow by making the intake opening smaller. I'll play around with my setup to see if I can restrict the flow from somewhere other than the ball valve.

The software is set up with a max blower speed. I'll try reducing the speed so it's not blowing in too much air. I had it on max because it was forcing air through the half-closed ball valve.

Yw brotha, if you can reduce the blower to 10 or even 5cfm I bet you'll get what you want to see good luck. Even buy a 5 or 10 cfm blower just to try, there cheap enough.
 
Does your pid algorithm pulse the fan on and off?

The pid controller I have continuously pulses the fan on and off for small burts (on one sec, off two sec). The pid should account for the size of the fan.

I think you have an incorrect PID value.
 
I don't recall what pit you are using, a UDS?

It does appear the fan is way too big. I would get a smaller one but if you opt to throttle it down, do so on the inlet side of the fan, not the exit.

What tuning parameters are you using for the 3 PID parameters?
 
Thanks for the help/suggestions all, I appreciate it. I'll look into that Java PID library.

I don't recall what pit you are using, a UDS?

It does appear the fan is way too big. I would get a smaller one but if you opt to throttle it down, do so on the inlet side of the fan, not the exit.

What tuning parameters are you using for the 3 PID parameters?
The current PID settings I'm using are 5, 0.02, and 0. I stole those from an Arduino project (similar to the HeaterMeter). I'm using this on a 30-gallon UDS.

Weather permitting I plan on running some more tests this weekend with the blower turned down and a choke on the air intake. In the meantime I'm continuing to update the software. I've added a web server so the smoker can be monitored outside of bluetooth range. This will require that you have WiFi. My plan is to use my old Droid as a dedicated ATC for my smoker.

moontz has helped me out a little bit with the graphing library. If there's interest I could add some sort of interface to work with moontz's android app.
 
Oh, a mini UDS. Yeah, at 25 CFM you have 5 times the CFM you need for a mini UDS. This will definitely lead to wild temp fluctuations like shows on your graph.

I don't think you will be where you can test your software like you want till you have a smaller fan. But here is a suggestion to make the best of what you have on-hand.

- Cut the intake of the fan to 1/8" of what it currently is. Tape over the air inlet is an easy way to do this.
- Set the target temperature up high, like 325F or 350F. This will require more air so your PID loop has a better chance of stabilizing that oversized fan at a reasonable speed.
- Use on/off control instead of just variable speed. Maybe that is what you are doing, not sure. There may not be a maintainable fan speed slow enough to keep the pit at the desired temp (meaning at some point you will lower the voltage down to the point where the fan either stalls, or doesn't have enought juice to start spinning the fan.
- Put a long pipe between the fan and the smoker inlet. This will increase drag which increases back pressure reducing the air flow rate at the same fan speed (typically). Might help, might not.
 
Yes, but this update doesn't have much good news.

I ran some more tests but the controller keeps overshooting the desired temp. I think the PID algorithm is throttling the fan too late so I will start playing with the PID settings. To make sure it's the settings and not the algorithm itself I swapped out my PID code for the WPI code you linked above (thanks for that!). That took a while because the WPI code had a lot of stuff that I didn't want/need. Even though the controller is overshooting the temp it's pretty cool to be able to chart a cook.

I did some re-wiring over the weekend so I can run the controller from a battery (I was getting tired of snaking an extension cord out of my second-story window). Like a complete moron I didn't pay attention to the polarity and fried my IOIO board when I attached the battery. *sigh* If I had paid an iota of attention to what I was doing it would have been averted but no, I'm an idiot. I can verify that an IOIO puts out a lot of smoke when you reverse the input polarity. Anyway, a new one is on the way and it'll take me some time to reassemble it.

While waiting for it to arrive I've been taking the time to work on the web server part and other additions. Once I get a basic web page working I'll move on to adding alarms.
 
The current iteration supports 6 probes but only one fan. There's no technical reason the controller can't operate more than one fan (and more probes). I'd probably be able to help you update the software once I get it all working with one fan.

I plan on writing up step-by-step instructions on Instructables.com and it'd be great to have a guinea pig to help me iron them out. :D

Deeg,

I just stumbled across your thread.

If you would like, I will help you. I have an Arduino, a buttload of resistors, some iGrill probes, a DS18B20, AND a UDS.

PM for contact details.
 
Back
Top