Let's Make Robots!

Reflow Controller Update

03 May 2011 - A quick update on the status of my reflow oven.

Reflow Controller

I decided to use Time Proportional Control instead of a traditional PID routine.  I wanted to create a reflow controller that can be used without having to modifiy a toaster oven.  The controller uses a Solid State Relay (SSR) rated at 40 Amps continuous to switch on/off the oven.  I'm not using On/Off "bang bang" control as that would cause the controller to oscillate around the setpoint (overshoot or undershoot).

As stated above, I'm not using a traditional PID routine (not exactly true but, I'll explain) as the heating elements in the oven do not respond fast enough to a pulse width modulation signal (PWM).  Instead, I'm taking the output from the PID routine and scaling it across a time frame say, 0 to 10 seconds.  If the output needs to be 90%, the SSR would turn on for 9 seconds and off for 1 second.  That control is Time Proportional Control in a nut shell.

Time Proportional Control, a form of PWM, is a mathematical technique that allows a feedback controller to use an on/off discrete actuator as if it were a continuous actuator capable of generating control efforts anywhere between 0 and 100%.  The trick is to turn the actuator on and off for periods proportional to the desired control effort.


TimeOn = (Tcycle * Power) / 100


  • TimeOn - How long heater will be ON
  • Tcycle - Time span for process
  • Power - Output from PID routine

There's more to the equation than what is presented above but, I'll touch on that later.  Below is a screen shot of a test run of the PID routine mentioned above.  I still need to tune it a bit as there is a little overshoot and undershoot.  Some of this can be attributed to a fan that is built into the oven that is used for heat distribution.  The temperature dips a little when the oven is turned off and then back on.  I may have to modify the fan to stay on continuous during the reflow process if I can't adjust the tuning to compensate.

PID Test Run 1 (Kp = 11, Ki = 5, Kd = 1)

Test Run 1 (PID Routine)


Here is a sample run of the bake profile.  This profile is typically a long run used to dry moisture out of components prior to the reflow process.  This profile is using the same PID settings as before.  One should see from the below picture that there is an initial overshoot of 7 degrees Celsius.  The PID calculation settles around the set point of 80 degrees Celsius and never undershoots more than 3 degrees or overshoot more than 1 degree.  The PID loop still needs some tuning but, it is not bad considering I'm only using integer math.

The sample rate for the PID loop is 1 second.

Bake Profile

Bake Profile Screenshot