Automatic SMD Reflow Oven From a Cheap Toaster Oven
by sunyecz06 in Circuits > Tools
17345 Views, 214 Favorites, 0 Comments
Automatic SMD Reflow Oven From a Cheap Toaster Oven
Hobbyist PCB making has become much more accessible. Circuit boards that contain only through-hole components are easy to solder but the size of the board is ultimately limited by the component's size. As such, utilizing surface mount components enable a more compact PCB design but is much more difficult to solder by hand. Reflow ovens provide a method that makes SMD soldering significantly easier. They work by cycling through a temperature profile that provides a consistent escalation in temperature which melts the solder paste underneath the surface mount components. Professional reflow ovens can be expensive especially if they are used on an occasional basis. My goal was to create an automatic reflow oven from a $20 toaster oven.
My plan was to use a stepper motor to rotate the temperature dial in a programmed way that will slowly escalate the temperature to melt the solder paste. I will attempt to mimic a specific reflow profile based on the solder paste I am using. Once the oven reaches a maximum temperature (melting point of the solder), the temperature dial will rotate backwards to reduce the temperature in the oven. All of this will be controlled by an arduino and displayed on an OLED screen. The ultimate goal is to load the oven with PCBs and components, press a single button, and have all of the components soldered without any outside adjustments or monitoring.
Supplies
- Arduino 5V pro mini
- Stepper Motor
- A4988 Stepper Motor Driver
- MAX31855 Thermocouple
- 128x64 OLED display
- 2x 6mm push buttons
- Limit switch
- 3 NPN transistors
- 12V power supply
- 5 1K resistors
- 4 10K resistors
- M3 bolts and nuts
- machine screws
- hex coupling nut
Toaster Oven Tear Down
The first step was to take apart the toaster oven and have a look inside. This particular toaster oven has a temperature control dial and a timer control dial. The wiring inside and to both of the dials was pretty unfamiliar to me so I decided it was going to be easier to work around what was already in place. I realized that a stepper motor could be used to turn the dial. A temperature probe or thermocouple could be fed inside of the oven to monitor the temperature. An OLED screen would be able to display real time data including the current temperature. All of these peripheral components can easily be controlled by an Arduino. There was a lot of open space so I decided to conceal all or most of these components inside the oven.
Depending on which toaster oven you have the tear down process may be variable. I had to first remove screws around the front panel. I then turned the oven upside down and removed screws from the bottom of the side panel. From there I was able to access the wiring inside of the oven.
Next I removed both knobs on each dial and unscrewed them from the faceplate.
Prototype
Now that I know what I need to design around, its time to start building a circuit. I did this in an additive process. I got the thermocouple to work, then added the screen, then added the stepper motor. Once I had the main components working, I needed a way to interact with the Arduino. I decided to use a couple of push buttons. The temperature control dial on the oven which would be rotated by the stepper motor would only rotate about 300 degrees clockwise to reach the maximum temperature. So that limit would need to be hard coded into the program. I also needed a way to reliably get the dial back to 0 degrees rotating counterclockwise. I planned to use a limit switch to prevent the stepper motor from rotating passed 0 degrees and risk damaging the temperature control dial. I found that my 12-in-1 PCB multitool was very useful for troubleshooting as I put together this circuit.
Downloads
Refine the Program
I now have a circuit that will read the temperature and turn the stepper motor based on the temperature. The next step is to write the program in such a way that the temperature will be adjusted according to a reflow profile.
This website goes over the important background information on reflow profiles. I tried to follow the profile listed above. In general a profile will go through multiple set points including preheat, soak, ramp up, melt, cool down. The temperatures I used for each transition point are listed in the table above.
The coordination of the stepper motor rotation to each specific temperature was a trial and error process and takes quite a bit of patience. Initially, I would manually turn the knob while reading the current oven temperature. I determined the amount of dial rotation for each temperature set point on the profile. Once I had a rough idea of how much the dial needed to be turned to achieve each temperature, I translated that into the appropriate stepper motor rotation.
Now that I had all of the set points marked, I added delays between each step to match the appropriate timing of each stage.
There are different reflow profiles depending on which type of solder you use. I decided to incorporate profiles for lead solder and lead-free solder and needed a way to select which one I wanted. I coded a "menu" and used the two buttons to navigate and select.
Additionally I wanted a way to restart the program if I selected the wrong profile. I chose to press both buttons simultaneously to reset the Arduino and turn the temperature dial back to zero. They are wired specifically to accomplish this. The two buttons are ANDed together using transistor logic and the output is inverted to pull the reset pin LOW on the Arduino. This resets the Arduino and the stepper will rotate in reverse until the limit switch is reached (and the dial is back at zero).
The final code is provided below.
The images of the OLED is what is displayed during reflow. The refresh rate of the OLED is similar with the camera shutter which is why some of the image is cut off.
Downloads
Preparing the Oven
Now that I have a a working circuit that controls the oven, I needed a way to permanently fix all of the components in place.
This first required drilling multiple holes in the face plate to support the motor, buttons, and limit switch as you can see in the pictures above.
I also used a bent nail to secure the hex coupler onto the stepper motor shaft. The nail would double as the trigger for the limit switch. The other end of the coupler will fit into the temperature dial.
Converting From Breadboard to Perfboard
Because I wanted to fit most of the electronics within the empty space of the oven, I needed to wire and solder things together on a piece of perfboard. You can see my process in the images above. I added each component and connected the correct pins by following the schematic.
I started with the Arduino, then added the thermocouple board, then the motor driver. Finally I added the peripheral buttons, switches, transistors, and wires for the OLED.
Once everything was soldered I trimmed down the excess perfboard and plugged everything in to test.
Powering the Oven
Because I did not alter the wiring of the oven, it still was running off of 120V AC. The Arduino and its peripherals were running from 12V DC. Instead of adding a rectifier and additional circuitry to power everything from one plug, I just decided to power both separately.
I wanted to run the 12V DC power cable close to the oven power cable. I drilled a small hole in the rubber adapter as you can see in the picture above. This worked really well and both cables run together and can be plugged in separately.
Finally I soldered the end of the 12V DC cable to the perfboard circuit.
Assembly
Now that everything was working correctly, I started putting everything together in the following steps. (At various steps I added some heat resistant silicone to protect the wires/solder joints from melting/shorting when the oven reaches its peak temperature. This step is optional as it is probably overkill).
- Screw the temperature dial back onto the faceplate with the extended machine screws
- Feed the wires for the stepper motor and OLED through the top hole in the face plate
- Fit the stepper motor and couple the dial to the motor shaft. Reinforce with super glue after ensuring that the bent nail(limit switch trigger) is facing up.
- Slide the M3 bolts through the stepper motor holes and secure to the back of the face plate with nuts.
- Secure the stepper and OLED wires with zip ties (from the last two drill holes on opposite sides of the motor) to ensure clearance of the spinning stepper motor drive shaft.
- Solder OLED to respective wires. Hot glue back of OLED to back of stepper motor
- Cut down a scrap piece of wood to secure push bottoms into respective holes. Secure with nut and bolt.
- Cut down small wooden spacer to support the limit switch in place. Make sure alignment is such that it will be triggered when the dial is in the off or zero position. Secure with nuts and bolts.
- Drill 2 additional screw holes into side of oven where perfboard will be secured.
- Use zip ties to secure excess wires to side panel
- Feed thermocouple through side into oven
- Screw down timer dial back to face plate
- Screw side panel back onto oven, reattach face plate, and your Finished!
Start Reflowing and Final Thoughts
The reflow oven is finished! You have successfully converted a $20 toaster oven into an automated surface mount reflow oven. I have tried reflowing multiple boards at once and have had no issues with cold joints or unsoldered connections. Its awesome to be able to load up the oven tray, press a button and have all of the boards soldered within 5 minutes.
With everything in place you may have to make minor adjustments to the stepper motor rotation and timing but I have had great success (I fed FTDI wires from the Arduino to the outside of the oven to easily reprogram without taking the oven apart). I tried to match the reflow profile closely but it is not perfect. For hobbyists, an exact profile may not be completely necessary as long as the temperature reaches above the melting point for the solder. But, this was a great learning experience and it is is nice to have an automated tool that will be useful for many projects to come!