Google Ad

Video Blog 008 - Home built SMD Reflow oven

DISCLAIMER: This design is experimental, so if you decide to build one yourself then you are on your own, I can't be held responsible for any problems/issues/damage/injury that may occur if you decide to follow this build and make one yourself.


Home built SMD Reflow oven based around a toaster oven.

I ripped out the existing controls of a toaster oven and replaced with my own using an Arduino to control the temperature in order to follow the reflow profile of Sn63Pb37 solder paste.

Example Reflow Profile (see code for latest):
Pre-heat = 0 - 90secs = ramp from ambient up to 150degC
Soak = 90 - 200secs = ramp up from 150 to 180degC
Reflow heat = 200 - 230secs = ramp up from 180 to 220degC (or 240degC for "H" profile)
Reflow cool = 230 - 260secs = ramp down from 220 to 180degC
Off = +260secs.

NOTE: Please note that the code I have provided below has different timing to the above, this is due to the particular characteristics of my own oven & heating elements. I would suggest the above are a starting point for any home made oven then if you need to you can modify from there. For my own oven I have extended the Pre-heat & Reflow Heat periods.

Follow the video blog as I start with the original toaster oven, rip the controls out, built in the new ones, write the software and test the system.


- Cheap Ebay toaster oven
- Arduino Nano
- 9v 12VA transformer
- 250degC (or higher) k-type thermocouple
- AD595 Monolithic Thermocouple Amplifier IC
- 3off n.o. panel mount push buttons
- Panel mount LED
- 8x2 digit LCD (running in 4-bit mode)
- 2A bridge rectifier
- 5v pcb buzzer
- ZVN3306A n-type Fet
- 470uF 25v elec cap.
- 2 * 47uF 16v elec cap.
- 10k trimpot
- Various pcb terminals
- 14-way DIL socket
- SIL headers for Arduino Nano
- Ribbon cable & IDC connector
- 1pc veroboard
- Various standoffs
- 3mm aluminium sheet metal (for base plate / heat shield)
- RC ESC, motor, metal fan & air diffuser.

Notes on Oven used = Severin Mini Oven 9 Litre Brushed Stainless Steel. However, I used the elements from a Table Top Toaster Oven Small Argos Value Range (Ebay 140669647855). 1000watt 230degC rated. The original elements were not good enough.

Note: The existing temperature switch in my oven was 125degC rated, and it tripped once near then end of a reflow, so I've replaced it with a 170degC one.

The latest Arduino code (.pde for Arduino IDE version 0022) is available here.
There is one external library which must be loaded,  "TimedAction" which is available here,

The code has the ability to store three different profiles. You can switch between them after hitting START. Just hit the INFO button and the display will show "L", "M" or "H" for the three different heat profiles i've pre-loaded. See the source code for more detail and where you can change it to suit your own oven. The current selected profile being used is stored in EEprom.
I have recently updated the code and replaced the LED on the panel (there's now an asterix on the LCD) with an output to drive an RC ESC and metal fan (the LED is now across the SSD input). The fan starts when the START button is pressed and runs slowly to move the air inside the chamber. Hopefully this will even out any cold/hot spots. I had to drop the LED output as there is no digital outputs spare! (the wiring diagrams below do not reflect this mod).
This version of the code also incorporates Gobetweno data logging. I've set it up to record time (secs) and heat (degC) which can be used for plotting a reflow in Excel (graph) very easily. There are some instructions in the source code for this.

Wiring diagram here. Far from comprehensive but will go you an idea.
Vero board Schematic diagram here.
Note: The diagrams do not reflect the addition of the internal fan above.

Here's some info on the rolling averaging formula I used in  the code.
// Yn=Yn+(1/k*(Xn-Yn))
// Where Xn = input, Yn = output & k = constant

UPDATE 10/1/14:
Using a great wee app called Gobetwino I logged a reflow cycle from the Arduino to my PC (one sample/sec) and plotted the output in Excel. I used the MEDIUM of the three available default profiles in the oven, i.e.
Secs = 0, 120, 230, 320, 350
Temp = 20, 150, 180, 220, 180 (degC)
You can see on the graph the pre-heat up to 120secs, then the slower soak up to 230secs, ramping up reflow up to 320secs and into the cooldown period (where I ended it before it fully cooled). I think it worked out quite good. It's a bit slow, but thats just my oven as it needs better insulation.


Update 9/1/14: Addition of internal fan to equalize heat (cold/hotspots) inside chamber. Comprised of all metal parts:


Rear view showing the fan motor. RC motors are used to running quite hot, and being externally mounted is just about ok:


Diffuser fitted in front of fan:


Front view of finished reflow oven:

Side view of the electronics (fan motor control electronics not shown):


Louis Scully (UK) has sent me some photos of his implementation of my oven, which includes a nice home built Pcb:

Similar to mine, Louis has embedded the LCD an pushbuttons onto the oven to give a much cleaner layout.


The wiring looks a mess, just like mine!.......but there's method in this madness. It's by using tie-wraps to keep the wires off the metalwork in the oven we ensure that it's a safe as possible from the very hot surfaces. A fan at the bottom also helps to keep things cool.


A nice single sided home grown Pcb. Note that Louis didn't use an Arduino Nano but preferred to embed a Atmega328P microcontroller direct into the design.



15/04/16 - Scott Symes has implemented his take on the my reflow oven project. Scott says "I still haven't got the 8x2 screen, so I've got my existing 20x4 screen hanging off the cable poking out the front. There are a couple of screws missing (like up the top of the control panel) but it works pretty well"

Scott tells me his version of the code, albeit unfinished as yet makes the following changes:
"I found the arduino ADC wasn't very reliable. At first I thought it was a short or something on the AD595, or a poor connection. The voltage on the output pin would stay constant even when the arduino reported 0 degrees. Not sure, but I think it was from polling the ADC too frequently, so I changed the code to only poll the ADC every 2 sec.
I haven't tested the code since I added the debounce library, but it should be fine".

Software changes:
Broken code into functions
Preset data now structured in 2D arrays
Allows for Manual Temp function so can pre-heat solder paste at low temp (left manual timer on oven)
Menu function to be reimplemented
Profile updated in EEPROM at end of run (to decrease number of EEPROM writes)

Hardware changes:
I2C LCD Screen to increase available pins
(Servo motor to set door ajar & increase cooling - TBA)
Fan motor now controlled by PWM


Cover removed the electronics is revealed. There's a common thread going on's never the neatest wiring!......but functionality & safety always wins over looks as we have to keep the heat away from all components.



Top view clearly shows standoffs on the baseplate as well as the pcb's, relay etc.