Design

The automation of the reflow oven includes four electrical systems: the automated door, the temperature controller, the temperature sensor, and the reflow oven itself. To control the systems in unison, a PID controller was implemented with setup and settings being chosen by the user through a pygame GUI system. The Raspberry Pi itself, implements a previously set up Rasbian build with the Adafruit PiTFT touch screen.

Materials and Costs

  • Toast-R-Oven TRO350 by Black & Decker - $10 Used
  • T90 relay by TE Relay Products - $5 Digikey
  • VN2106 N-Channel DMOS FET by Supertex - $0.40 Digikey
  • Tower-Pro MG-995 Servo - $20 Adafruit
  • K-type TPI GK11M Thermocouple - $15 Adafruit
  • MAX31855 Thermocouple Amplifier and ADC - $15 Adafruit
  • Raspberry Pi - Provided
  • PiTFT Screen - Provided
  • Wires and Misc. stuff - Provided

Hardware

The Oven

The oven, the primary structure of the whole project, contains the heating elements and a few axillury components not needed. The oven in use in the design is the Toast-R-Oven TRO350 by Black & Decker. There are two primary covers on each side of the oven. The left cover contains a spring mechanism to make opening and closing the door easily. The right cover contains the primary electronics of the system. In simplicity, the electronics provided act as a complex set of switches masked behind a switch and a knob; and a second circuit contains a simple timing circuit with buzzer and knob control. The primary power of the oven goes through a simple switch that turns on or off depending on the state of the door. The primary mechanical arm and attachment is preserved for later usage with the automated door. The circuits are all torn out to make room for the custom circuits.

Automated Door

The previously preserved mechanical arm is utilized for the implementation of the automated door. Using the side panel as a support and mounting, a servo motor, specifically the Tower-Pro MG-995 servo from Adafruit, is attached to the oven. An arm that came with the servo motors, is the primary means of transforming the rotational kinetic energy into the translational kinetic energy required of the mechanical arm of the door. After setup, the power of the servo is connected directly to the 5V off the GPIO pinout which is connected directly to the input 5V line from the wall. This line's power characteristic is a direct relationship to the wall power converter's power properties. In this case, a KOOTEK AC/DC power converter rated at 5V 2Amp supports the raspberry Pi and servo. Specifically, the Raspberry Pi draws around 250mA while the servo draws around 100mA. Using previously designed code from the ECE 5990's previous lab focusing on servos, tests were done on the servo until two duty cycles were found: one that represents the open state of the door and one that represents the closed state of the door.

Temperature Controller

The temperature within the oven is maintained through a heating coil directly connected to the wall. To control this coil, an electrical switch interrupts the direct connection and allows a 5V signal to turn on and off the heating element. The electrical switch implemented in the system, is the T90 relay by TE Relay Products. The relay is rated to allow up to 277VAC through its contact point; and 5-110V DC through the coil. The power consumed by the relay is maxed at 1.0W which means at a 5V power provided to the coil, the coil only needs a maximum of 200mA of power. With the already integrated elements, the total current draw is now roughly at 600mA, well under the power supplies rated amperage.

Due to the 5V 200mA power consumption of the relay and the Raspberry Pi operating at 3.3V, another electronic switch interrupts the path between ground and one pin on the coil of the relay (while the other pin connects directly to the 5V supply). An N-channel MOSFET, specifically VN2106 N-channel DMOS FET by Supertex, is integrated into that position, such that the Gate is connected directly from 3.3V GPIO pin, while the source connects to ground and the drain connects to the relay's coil. The configuration implemented here allows for a low signal from the Raspberry Pi to turn on the electrical switch, the relay, and in turn the heating coil. The opposite disconnects the electrical switch and in turn turns off the heating coil.

Temperature Sensing

In order to actually get feedback from the system, a K-type thermocouple and ADC are implemented alongside the servo control system. The thermocouple, K-type TPI GK11M from Adafruit, can withstand temperatures of up to 510C / 950F, more than enough for a reflow oven which gets up to almost 300C. To convert the analog signal of the thermocouple to something the Raspberry Pi can read, a MAX31855 chip breakout is utilized. The MAX31855 is specifically designed for Thermocouple applications, providing 14-bits of data at roughly 0.25C resolution. The device communicates over generic SPI communication at 3.3-5V voltage levels. The Raspberry Pi communicates at 3.3V which integrates perfectly with the ADC. In software, a MAX31855 python library provided from Adafruit, is implemented. Two implementatons are tested, Software SPI which simulates the Hardware SPI protocols via "Bit Banging"; and Hardware SPI supported by the Raspberry Pis Operating System, Rasbian. A simple test script, which is similiar to the example provided from Adafruit, provides a means by which to read off from the sensor. The test script streams both the provided internal temperature and the thermocouple's measured temperature. The script is also versitile in that the implementation could easily be switched between hardware SPI and software SPI.


Software

PID Controller Loop

With the provided hardware implementation, the raspberry pi has to take all sensor input into consideration (the temperature sensor) and all environmental outputs into consideration (the automated door and the heating coil). Given these considerations, a simple PID controller loop sent through a thresholding binary output to provides an on or off to the heating coil and a close or open to the door. The PID controlling portion utilizes a temperature profile that takes into current time and desired temperatures derived from the user input. The temperature profile is expressed well in the Testing portion of this website. The output of the PID in this implementation is the addition of the error (P), the error minus the tenth previous error(D), and the average of the past ten errors(I). All values of the PID function also have a constant coefficient that weight those terms depending on how testing and application performs. The PID output then gets put through a simple conditional expressing whether or not the output is sufficient enough (greater than) to turn on heating elements.

Graphical User Interface

Given the controller loop implementation, a few variables have to be set by the user to give the controller its desired temperatures over time. A simple pygame implementation with two states: setup and running state. The setup state allows the user to change the characteristics of the desired temperature profile and initiate the reflow process(see Results for pictures). The running state depicts the current desired temperature, the current temperature, the current position in the temperature profile, and a stop button. Using a simple dictionary structure provided by python, the implementation allows for all desired settings to be saved within a single variable. It is then easily able to be utilized by simply looking up the name of the variable desired.

The Heating Profile of a Reflow Oven (Source)

Temp Graph