• Some of the links on this forum allow SMF, at no cost to you, to earn a small commission when you click through and make a purchase. Let me know if you have any questions about this.

Pid Controllers - Part 2 of Why I don't recomend one.


Fire Starter
Joined Jun 18, 2012
My thoughts on "PID Controllers - Part 2 of Why I don't recommend one."

Topic 2: What are some different methods in controlling temperature?

Note: I'm specifically saying I don't recommend a PID controller, not that I don't want to control the temperature! Also, there is nothing wrong with using a PID controller; I'm just saying it's not needed!

I'm going to discuss the following, in order.

1 Why are we interested in controlling smoke-chamber temperature?
2 What are some different methods in controlling temperature?
3 What is a PID controller?
4 Why would someone use a PID controller?
5 Is a PID controller needed?
6 What is the optimum controller for controlling a pellet smoker?
7 Why I don't recommend a PID controller

Previous: https://www.smokingmeatforums.com/threads/pid-controllers-part-1-why-i-dont-recommend-one.275085/

On the fire pit, temperature control was rather basic: throw another log on the fire if you want more heat, let it burn down if you want less.

Once we had the wood burning Franklin stove and kitchen stove, we also had an air inlet damper that could control the amount of air flowing into the fire, and an exhaust damper that could control the amount of exhaust flowing out of the fire. Meanwhile, the metal walls of the stoves and exhaust flues added additional heat, whether wanted (as in the winter) or hated (as in the summer).

The inlet air damper allowed the tuning of the air to fuel ratio, as is done in a carburetor and fuel injection. Too little air, and there is a lot of un-combusted fuel sent out the exhaust as smoke; too much air could cause the temperature to drop and the fire to extinguish. In some cases, extra fuel (as in gasoline engines - enriching the mixture) is deliberately added in order to cool the exhaust to protect valves.

The optimum amount of air for the fire should produce the maximum temperature: too little and we get smoke and the fire isn't as hot; too much and we run clear exhaust but the exhaust is cooled by the extra air.

So the air-to-fuel mixture will influence what we see in the exhaust.

Clean burning fires result in exhaust may appear clear. Since there is not any visible smoke, then there is less smoke-flavor imparted to items in the cooking-chamber (convection oven) area between the combustion-chamber and the exhaust.

In a wood-burning kitchen stove with two dampers, one inlet, the other outlet, the inlet-damper controls the amount of air that can easily flow into the combustion chamber, while the exhaust-damper, along with the vertical length of the exhaust pipe, controls the amount of low-pressure that exists in the combustion-chamber. The lower the pressure in the combustion-chamber, the more air that will flow in through the inlet-damper opening for the same opening value. This is sort of like "restrictor-plate racing in NASCAR": the engine basically provides the low pressure point within the engine cylinders, so the retstrictor is the inlet-damper set for a specific area. The exhaust on the NASCAR vehicle is removed so the air-flow and fuel-flow are all at their maximum potential for a given restrictor-plate. Maximum energy developed by the engine is controlled by the restrictor-plate.

For smoking meats, and other things, our ability to control temperature and the amount of smoke are critically important; otherwise, we could just make do with a standard kitchen-oven with it's standard 50 degree temperature swing.

So, ideally we would like to control both the amount of fuel in the combustion-chamber as well as the amount of air flowing into the combustion-chamber, in order to control the amount of smoke and temperature administered to the meat.

We get more smoke when the air-to-fuel mixture is not set for maximum temperature: as a smoker, we're not trying to burn our fuel at the optimal efficiency. We typically want more smoke.

In my opinion, our wanting more smoke taste in our meats is a modern thing. If I look at old BBQ pictures from NC, the meat is almost always laid out over supports above a pit that contains hot coals, not an open fire. The wood is first burned to exhaust and consume the smoke, then the remaining coal is spread out under the meat. I've prepared it this way, and it produces a very good tasting BBQ meat, but with a smaller hint of smoke than most people now days seem to prefer.

---Some Different Methods In Controlling Temperature---

The most basic method of controlling the temperature is to control the amount of air supplied to the combustion via the use of inlet-dampers and exhaust-dampers. Assuming no air leaks into or out of the combustion-chamber other than the inlet and exhaust dampers, then you control the temperature easily within ten (10) degree swing (5 degree up, 5 degrees down) of your desired temperature. But you have to stay with it. I like to cook for long periods of time, so staying with my smoker manually controlling the dampers for a long period of time means I can't smoke meat as frequently as I would like.

This was my method from about 1989 - 1998. I had three (3) different smokers during this time, all using this method.

So some sort of automation was desirable if I intended to smoke for a longer period of time, at a lower temperature.

--inlet air control, non-proportional via thermocouple and controller--
This is on-off inlet air control. It can be as simple as a bi-metalic thermostat designed for high-temperature environments, that closes contact on low setpoint, opens contact when above setpoint. But thermocouple temperature controls on Ebay for $20 are plentiful (or were the last time I bought one!).

My first automated design (around 1998) used an Arduino microcontroller and a thermocouple in the combustion-chamber, another one in the smoke-chamber, and a third one in the meat. I wrote the code for this controller. The one in the smoke-chamber was used by a controller to adjust an air-inlet valve I bought. It wasn't proportional (meaning it didn't open up just a little for a small temperature decline vs open up a lot for a large temperature decline ); it was either fully open or fully closed. I used the exhaust-damper as a throttle to help average out the amount and temperature of air passing through the combustion-chamber and into the smoke-chamber.

This worked really well on my Big Green Egg (BGE). I would have been happy ever after except for one problem: the meat was directly over the coals, so I had to place some sort of deflector (eg., pizza stone) between the coals and the meat. This meant the bottom of the meat didn't get much smoke. In addition, I was pretty much stuck with charcoal, and it was difficult to add any additional fuel if needed.

Note: Automated temperature control, but no PID was necessary!

--forced fan control, non-proportional--
This can also be used, where the fan control is turned on by some device (e.g., thermocouple controller, bi-metallic thermostat, etc.)

I bought a BBQ Guru controller for my BGE, as it was more compact than the air-inlet damper control valve I had designed and had been using. It was a commercial product, well designed, easy to use. It used a temperature sensor to control the fan, which was placed in the air-inlet of the BGE. IT worked really well, but of course had no way to over come the issues I had with the BGE: low smoke flavor, only charcoal, and meat directly above and in close proximity to the coals.

So I stopped using this.

Note: Automated temperature control, but no PID was necessary!

--Timer for gas heat on my enclosed porch--

My porch has removable Plexiglas panels with screens. We take the Plexiglas panels down in the summer, and put them up in the late fall. Then we can run our gas heater during the winter. It didn't come with any controls, just an on/off switch that controlled a gas valve.

My first attempt at automating this was so we didn't have to get up to turn it off when the temperature got too warm, and up again to turn it on when the temperature got too cool.

Using an Arduino and a relay, I opened and closed the gas valve to let gas in to the heater. I wrote the code and built the circuit for the relay for this. This first controller was a simple timer: it controlled the ratio of time on and time off. When I first turned it on, I would just turn it on full time: on ratio was 100%. When the temperature had wormed up to where we wanted it, I would back off the ratio until the heater turned off. Then a couple of more adjustments over the next 10 - 20 minutes, and we were good to go for the rest of the day.

Note: Automated temperature control, but no PID was necessary!

--Thermocouple controller for gas heat for enclosed porch--

I decided I would like a little more convenience than the timer offered; I decided I just wanted to be able to set the temperature and walk away.

Which is what I did, using an Arduino and a thermocouple, making the necessary software changes to the code. I wrote the code and designed the circuit for this.

It worked even better than the timer approach.

Note: Automated temperature control, but no PID was necessary!

I've demonstrated multiple instances of controlling the temperature without using a PID.

Different methods shown:
- Air inlet-damper control, on/off. Used a thermocouple control to open/close the air inlet damper. Non-proportional, non-PID. Could have used an RTD as well, but since I also had thermocouples for the combustion chamber, I wanted to stay with the same system of sensors.
- Air inlet air flow, on/off. Used a temperature sensor (not sure if RTD or thermocouple) to push air into combustion chamber when temperature increase was desired; fan off when at or above setpoint.
- Gas valve, on/off timer ratio. Initial porch control. No setpoint.
- Gas valve, on/off using thermocouple control for heat on/off. Non-proportional, non-PID.
Note: All were automated temperature controls, but no PID was necessary!

--My Pit Boss 820D--
Currently, I'm using what came with the unit. In my opinion, it is terrible at controlling the temperature, if the setpoint method is used. Using just the P "smoke" mode, it's basically a timer ratio controller: the auger supplies whatever amount of pellets will be fed to the combustion chamber in 18 seconds, followed by an off time, the duration of which is controlled by the P setting. Appears that, on a given day, each P increase lowers my average temperature by about 20 degrees, and the temperature swing is about 20 degrees. Not great, but can work with it until I get or build, something better. May have to change P setting based on wind and temperature changes in the environment, but infrequent. I have run for 25 hours at this setting and have been pleased with the results, maybe making 4 P changes during that time.

When in the temperature control mode, it almost appears to me that someone was trying to build a PID controller, and the Derivative function is ramped up way too high. But I'm not aware of any method for changing this (e.g., a trim poi), except for a software upgrade, which would entail sending the controller back to PB. So, for the time being, I'm not taking that route. I have a friend that has the same module (he bought his a week before I bought mine), and has the exact same problem; he's going to call the manufacturer when he gets back from a trip.

As I shown by the examples above, a simple controller, much like the thermostat in your home, is sufficient to control the temperature of your smoker.

I've demonstrated:

***** A PID is not necessary for precise temperature control of a smoker ****

Part 3: What is PID Controller? will follow soon.

My background: 10 years in process control at nuclear power plants, as a technician and engineer, and 41 years in software. Smoking BBQ since 1989.

Last edited:

Latest posts

Top Bottom
  AdBlock Detected

We noticed that you're using an ad-blocker, which could block some critical website features. For the best possible site experience please take a moment to disable your AdBlocker.