In an attempted to make fine pitch SMT soldering faster I've designed a reflow oven. As so many on the net it's based on a small snack toaster. The toaster I've used is a Tomado TM-1265 (Just your basic made-in-china cheap toaster, this one was about €15,00 new
). It's 7 liter and 650W (1 bottom and 1 top IR heater). Below a picture of the original toaster.
The ATTiny2313 is used as the controller for the reflow oven. Two solid state relays are used to switch the heaters on and off. A K-type thermocouple is used to measure the temperature.
The oven has two mode: a reflow and an desolder mode.
In reflow mode the controller attempts to accurately follow to following profile. (see the software part for more details)
In desolder mode the controller heats the oven up to 210 °C (following the reflow profile) and keeps it there. The idea is that you then open the oven door and remove the bad components. When done simple press abort to turn the oven off.
The toaster has to be heavily modified, but it's quite simple. Just remove every screw and pop-ribbon from the toaster (except the 4 around the door. Remove the timer and power switch. Next insulate the inside of the oven, this is important as the electronics need to remain below 50 °C while reflowing (make sure you use fire proof materials, I've used fire proof fiber glass panels). To make to front panel click here: www.circuitsonline.net.
The software has parameters for nearly everything: PID coefficients, LCD interface pins, button inputs, MAX6675 interface, etc. So it is really easy to adept for nearly every situation.
The software runs on an AVR ATtiny2312 running at 371488 Hz (~371 kHz).
The main part of the software is the PID controller. The PID controller calculates the PWM value for heaters once every second. After some experimenting it became clear that the optimum parameters are P = 150, I = 0 en D = 50.
These parameters give the following step response.

And while running the reflow program:

Cooling down is a little slow due to the insulation. Best is to open the door a little when the temperature is around 180 degrees (after 6 minutes).
The menu interface is fairly simple. Just press the button of the profile you want to run. After selecting a profile, the pin is set to output to light up the led next to it. This also prevents starting a profile twice.
The AVR also outputs the temperature via RS232 @ 9600,n,1. This makes it possible to plot graphs of it temperature as shown above. The output has the following format:
<actual temp> <required temp> <actual temp> <required temp> <actual temp> <required temp> ...
Because the AVR is running on its internal RC oscillator, the USART_WAIT define might need some tweaking (found in usart.h).
The reflow profile is specified in profile.h. It has the following format:
const int profile_reflow[profile_len] PROGMEM = {20, 37, 53, 70, 86, ... 20};
Every entry in the array is in degrees Celsius and represents 10 seconds. So profile_relfow[1] is after 10 seconds, profile_relfow[2] is after 20 seconds, etc. The values in between are linearly interpolated.
The max profile length is set as profile_len, although two profiles of 39 values will use 97,6% of the available flash.
Note that the schema does not include an ISP header. The avr should be programmed before placing it in the circuit.
Qty Value Device 1 MAX6675 IC3 1 TRANSFORMER TR1 1 RECTIFIER B1 6 LED LED1, LED2, LED3, LED4, LED5, LED6 3 TAC_SWITCH S1, S2, S3 6 1k R1, R2, R3, R4, R5, R6 3 1uF C1, C2, C3 3 2k (or 2k2) R8, R10, R12 1 10k R13 1 10k R11 1 10uF C6 2 100 R7, R9 4 100nF C4, C7, C8, C9 1 1000uF C5 1 7805 IC2 1 ATTINY2313 IC1 2 SSR K1, K2
The final toaster

K-type Thermocouple inside the toaster

Electronics inside the toaster (Notice the insulation (brown/yellow stuff), the electronics compartment gets about 40 °C)
There are 2 movies of the reflow toaster on youtube:
DIY reflow toaster (part I)
DIY reflow toaster (part II)
Test result for DIY PCBs are found here
For the first test a small FTDI breakout PCB is reflowed. The top-side of the PCB with solder paste

PCB during reflowing 

Top PCB after reflowing

Bottom PCB after reflowing

The AVR studio project file with all source code can be downloaded here: reflow.zip (46 kB)