As I get more serious into my electronics hobby, I need to work with more SMD components. Some component packages are very difficult or impossible to solder with a traditional soldering iron. To solve this problem, I decided to hack a toaster oven to become a reflow soldering oven.

Basically, to perform reflow soldering, solder paste is placed on a printed circuit board, and the components to be soldered is placed on top of the solder paste. When the oven heats the solder paste past the melting temperature, the solder paste melts and solders the component to the circuit board.

To control the oven's temperature, I created my own reflow toaster oven controller circuit. This circuit uses an ATmega32U4 microcontroller to monitor the oven's temperature using a thermocouple and AD595AQ, and then control the oven's heating element using a solid state relay. The controller features USB logging/debugging, USB bootloading, a graphic LCD display, and 3 buttons. The firmware features tweaking for all settings, manual temperature control, manual heating element control, and automatic temperature profile control (with a nice temperature history graph display). This circuit will plug into a wall outlet, and the oven will plug into this circuit, while the solid state relay basically acts as a switch between the wall outlet and the oven's heating element. Safety is the main design objective (but some things were limited by cost), and ease of use is the second objective.

Here is a demonstration video:

Some more key features:
  • The thermocouple is rated to over 500 degrees Celcius. Soldering using my solder paste requires only up to maybe 250 degrees Celcius.
  • The solid state relay is used because they can provide better control than mechanical relays, and they are more reliable. Mechanical relays can wear out because of their mechanical nature, and from internal sparks that occur during switching. I plan on switching the relay at 1 Hz, so this is important.
  • The relay is rated for 240V and 25A so it should work with any typical toaster oven in any part of the world. The relay is cooled with a custom made aluminum heat sink and a small cooling fan.
  • Everything on this circuit is powered from the wall outlet because I'm using a tiny USB charger as a built-in AC-to-DC converter. This is good since one cable powers everything. A computer is not required to operate it.
  • A plastic cover is created to protect the circuit from things touching it accidentally. I can safely handle the circuit without getting shocked.

Included here (see bottom of this step) are all of the project files. This package contains the CadSoft EAGLE 5.11 schematic and PCB files, the PCB gerber files, the source code for the microcontroller firmware (including the bootloader), and some mechanical drawings for the heat sink and plastic shielding.

Step 1: Before You Begin

There are several videos in this Instructable. Please watch them in full screen and 720p resolution, because there will be some text that you might want to read. The text content of this Instructable will also include additional notes and links. Most images from the videos will also be uploaded into the gallery. Most images (there are over 150 images in this Instructable) are annoted and sized in such a way that they do not suffer from image compression. The pictures, text, images, and files may not match exactly due to having revisions and different versions, but I'll guarantee that the text and files are in their final versions. I usually learn something new with every one of my projects and I put the important stuff in a final thoughts page and appendix at the end.

Safety Notes

This is probably the most dangerous electronics project I've done to date, involving high voltages and fire hazards. I am not responsible for your safety, and I am not liable for any claims, damages, or other liability. Do this project at your own risk.
  • Do not leave anything unattended, you need to know if sparks happen or a fire starts, and either power down everything quickly or evacuate.
  • Make sure you have a fire extinguisher handy.
  • Make sure that you are using a wall outlet that has a fuse or circuit breaker, just in case something short circuits.
  • Please use a GFCI wall outlet if you have one, this is the type of outlet that will cut power if you drop a hair dryer into a bathtub.
  • Remember the rule about wires: Any extension cords must be thicker than the cord that is already used on the toaster.
  • Once you use the toaster oven for soldering, you shouldn't use it for food again. Once you've put lead in this oven, your food will not be safe in the oven. Remember that lead is a slow accumulating poision, and it can cause mental diseases later.
  • Work in a well ventilated area.
  • Make sure you are aware of all materials that are near the toaster oven.
  • The circuit I've build does not have an ON/OFF switch for a reason. It forces you to completely unplug it when you are done.
<p>Hi! </p><p>Excellent project! Thanks!</p><p>I have built it but I get some strange behavior regarding the serial port. When I am on the bootloader mode the usb port works fine and I can burn the firmware successfully. But on application mode the serial port won't work and I get the error message from windows that the usb plugged device is not recognized. Could you please advice on that problem?</p><p>Thanks</p>
<p>Hi again. I found the problem with the serial port. I should point a mistake of yours now. In the BOM and also in the schematic you have chose to use a 16Mhz crystal oscillator. This is wrong because you use 3.3V to power the AVR. Based on the datasheet, in order to have a stable clocking to the AVR with 3.3V Vcc you can have a maximum 8Mhz crystal. In your make file you compile with -DF_CPU=8000000UL but your calculations for USB's PLL and I2C speed is done with 16Mhz clock. If you use an 8MHz clock,add 2 4k7 pull ups to i2c lines and set these </p><p>lcd.c</p><p>TWBR = ((400000UL / SCL) - 16) / 2;</p><p>usb_serial.h</p><p>#define HW_CONFIG() (UHWCON = (1&lt;&lt;UVREGE))<br>#define PLL_CONFIG() (PLLCSR = (1&lt;&lt;PLLE))</p><p>the serial port works great and I2C speed can reach the 400khz that the screens datasheet mentions.</p><p>regards</p>
<p>Frank, </p><p>Great project! Thanks for publishing this project.</p><p>What USA product do you recommend to program the Atmega32U4-AU ? I will be using Debian linux.</p><p><br>Alan</p>
<p>arduino is really no different than a programmer. programmers run 40-80 $ or cheaper if you get a clone off ebay like me. it just takes some patience. the chip can be easily had from a supplier. I buy tons of atmel products so i just requested a sample so i can work with this. the 1284p is very similar to this chip and can be easily bootloaded (comes in dip 40). adapting the chip takes only a little extra time rearranging the connections. </p>
<p>also forgot to mention that the author mentioned using an atmel328p in place of the atmega32u4</p>
<p>Why every single tutorials here does NOT use Arduino as a controller for the oven? They all seem to be using customized circuits and non-Arduino-compatible chips (or those things I cannot program easily). Of course this tutorial is great, and I liked it!</p><p>(but I sadly cannot make one because I don't have access to the chip and cannot solder SMD parts with any of available methods without burning either my hand, the board, the chip or nearby components)</p><p>I need to get the code working for Arduino (Mega, UNO, Nano...) so I can reflow solder on my board without burning the chip or toasting the board.</p><p>p.s. If you can help me, can I get some help? (Sadly due to bad English my words can sound harsh. I really appologize)</p><p>This is what I need (don't mind the components; just make the code possible to work under UNO):</p><p>1. Switch between modes (lead paste and no-Pb paste)<br>2. When temperature doesn't go up or down (in 40 seconds), or if the door is opened, sound alarm (safety is a must)<br>3. Overcooking prevention<br>4. Timer function<br>5. Emergency shutdown button (cancels off any remaining job)</p><p>6. Warn user for inside temperature (because hot things and hands doesn't play nicely)</p><p>p.p.s. I don't know why but my FTDI USB ISP programmer does never initialize anything correctly and ends up throwing &quot;arvdude: device not ready&quot;.</p>
<p>If you need a reflow oven, you can send an email to me ds123628@126.com</p>
<p>If you need a reflow oven, you can send an email to me ds123628@126.com</p>
<p>Like the foil on the inside of the window looking in to the toaster oven. </p><p>It would be nice to have a bluetooth interface and program from an android device.</p><p>Kapton stencils here in 24 hrs for only $50.00 going down to 0.8mm pitch.</p><p>http://www.soldertools.net/plastic-stencils/</p>
<p>Hello mate, thanks for this your great project. Well done!!! I've buid a copy and struggling with one thing I can't get Manual temp mode working. I set any temterature and see PWM 65535/65535 but relay doesn't switch the heating element. Please note that auto mode and manual PWM mode works pretty well so relay wiring and heating element is ok. Any idea anybody?</p><p>Thanks!</p>
<p>Already sorted out. If someone of you experiences such issue there is possible solution: </p><p>It seems that &quot;heat_set(cur_pwm);&quot; is missing in the &quot;void menu_manual_temp_ctrl()&quot; part of &quot;menus.c&quot; =&gt; this causes that this particular part of the code works fine and calculates required PWM value but it actually doesn't say to heater hey mate turn on and this is your pwm value. Instead of this calculated cur_pwm is used just for writing on display.</p><p>Another issue I experienced is that when you are cooling down in final phase of auto curve too slowly (slower that expected temperature calculated using cooling step per sec set in the presets and time) you can pretty easily get this expected temperature value to negative numbers which causes that heater element is turned on even if you are actually trying to cool down.</p><p>I think I found a solution as well (not yet tried as I'm already off my workshop)</p><p>There is a upper limit to the duty cycle to avoid accidentally heating instead of cooling as a part of &quot;RaflowToasterOven.c&quot; but probably accidently this part of the code is commented. </p><p>I'll remove \\ from the beginning of the line and compile all the code again. Hopefully it will resolve this issue.</p><p>Thanks,</p><p>MarkyParky</p>
Could you advise me on how to use an arduino as an ISP for this project? I can't seem to get it to play nice. So far, I've hooked up the SPI lines between the arduino and the board. I connected the arduino to the computer, and loaded ArduinoISP onto the arduino. Thanks!
What errors are you getting?<br><br>What about the reset line?<br><br>Also, what SPI speed are you using? It needs to be about 125 KHz until you write all the fuses.
It you are interested in reflow soldering, for stencils in Europe, Eurocircuits (www.eurocircuits.com) can supply them with the pcbs. Also they have the ec-stencil-fix option which is not bad as you don't need an expensive machine to fix the stencil and apply the solder paste www.youtube.com/watch?v=HBWtqZro_fg. <br>For the controllers for your home oven there is one quite interesting in www.nelectronics.org. There are others also from drotek, www.drotek.fr.
sitopway.com are a Chinese firm making PCBs and stencils. Their SS stencils start at 20USD plus shipping. I have not used their stencils but their PCBs are very good.
here is a good stencil supplier u.k based stencils@smtstencil.co.uk
If anyone need PCB and plastic cover (laser made) you can get it: http://hamshop.cz/pcb-c7/pcb-reflow-controler-i199/
Howdy, <br>I stumbled upon this post because I was using the AD595 for another application and was surprised by the degenerate square wave output. It turns out that the square wave disappears when you ground the positive terminal of the thermocouple. This may sound strange, but you can see the connection if you look closely at figure 1 in the AD595 Datasheet. <br>Best, <br>Hill
huh, I did not see that before, or did not realize it meant a connection is required because the line is dotted without the dot that indicates a junction
One thing that could change is you could take the 125VAC into a 1:1 isolation transformer, then through a step-down transformer into a rectifier and filter capacitor to get the 5V using just one cord. Granted the bulk of the transformers would be barrier to making it light and easy to use. <br><br>The only reason I know about this trick is because I'm building a controller for a Western Electric 1D2 pay phone and it requires 5VDC for the logic and 130VDC for the coin relay.
I'm not sure why you would do that instead of using the 5v switching supply. You could always integrate the charger into the one cord.
I'm not sure why you would do that instead of using the 5v switching supply. You could always integrate the charger into the one cord.
iteadstudio has framed stainless stencils starting at $45. Probably overkill for most, but if you're making enough boards to justify having a jig to hold the frame, or durability comes into play, probably unbeatable.
Great instructable and thanks for the great presentation on how to use our stencils! I love seeing ingenuity like this! Ryan O'Hara www.ohararp.com/Stencils
Do you think you could get the same vibrating action from an electric toothbrush?
this may sound like a dumb question but did you have the size of this board 5cm by 5cm or 10 cm by 10 cm
I mean 5cm by 10 cm lol i don't think speed studio has that size.
could i just make the pcb for a cheaper price?
My design has hidden vias, so if you can plate through vias yourself, then yes, if not, then no
okay thanks.
on the button switch would something like this work? http://www.ebay.com/itm/120770287927?ssPageName=STRK:MEWNX:IT&amp;_trksid=p3984.m1439.l2649#ht_2766wt_1163
yes it will work<br><br>it'll look kind of ugly though
if i build one its going to be with ole fashioned bits and peices, rather than bits and bytes!! step 15: you do realise the brick acts as a heatsink? if its at the bottom then i guess its ok. but the aluminium is a nice thought, though it may work better if the whole inside were coated. you have a &quot;minute&quot; typo here
the brick is acting like a heat capacitor, it will absorb heat while the air is hotter and release heat if the air is cooler, but it also reduces the amount of air inside the oven. Air also acts as a heat capacitor, and also a heat resistor.<br><br>it doesn't help heat dissipation to the outside of the oven that much, if at all, so it's a net benefit.<br><br>In the end, it does help the oven heat faster, but the oven also cools slower. opening the oven door slightly will help it cool faster so that's not a problem
I think you did a great job, and so what if you have typos? - Celsius and aluminum ( I still knew what you meant )... :)<br><br>BTW, I am trying to repurpose 2 small appliances. I have a working coffee maker and a working toaster oven (both replaced with newer gifts). I like your project, but It's really not that useful for my needs. Just out of curiosity, do you have any other suggestions for reusing these appliances (or just taking out useful parts)?<br><br>If I can't come up with anything, I will donate them to either the Salvation Army or someone who wants them (and is willing to pay for shipping) - I posted this in the Q &amp; A section the other day.<br><br>Would love to hear your ideas/feedback if you have any to share.
Thanks<br><br>I can't really come up with any other projects with those things, if they are working, personally I would just keep using them, or donate them. Just don't trash them.
if it were a simple mispellling i would have left it, it ought to have said &quot;second&quot;. btw, the spelling/pronunciation of aluminium/aluminum depends on where you are from.
oh I was looking for the mistake but spell check didn't pick anything up, now I fixed it since you pointed out it was supposed to be seconds, thanks.
hi i like your proyect am in mexico idon't now nathing abaut electronic and i like to ask if you have one for sell i am rely interested .<br>and sorry i try to speck ingles thank's <br>guapachoso2011@hotmail.com<br>
First off, I like your project very much. I strongly suspect I'll borrow several elements of it when I build my own oven.<br><br>In your schematic I see the signals SCL and SDA on the cable connector and the processor. Do they go anywhere else? I'm asking because I can't find the pull-up resistors that are specified in the LCD and ATMEGA data sheets. If they aren't hiding on the page somewhere (this is why I really dislike 'disjoint' schematics), their absence may be why your I2C runs slowly.<br><br>
Hi Gary<br><br>My code activates the internal pull-up resistors of the ATmega, but maybe that is not enough? It's worked for other projects flawlessly before though.
I wondered about internal pull-ups, but quit looking when I saw that the data sheet explicitly recommended them. <br><br>Googling around suggests that internal pull-ups are generally too weak for high speed operation: http://wiki.nycresistor.com/wiki/Using_the_TWI/I2C_interface
That should say: ... the data sheet explicitly recommended external pull-ups.
good work and good presentation in instructables .....:-&gt;
Grounding all metal parts is safer than not grounding them. By this I mean that the ground should be earth ground, not the low voltage circuit ground.<br><br>The relay heatsink surface is always insulated from any of its contacts (just imagine how it would end if it was not).<br><br>Again, please, please, for your own safety and of anyone attempting the project, connect all touchable metal parts, to the earth ground.<br><br>by doing this, if there was any connection or insulation failure, the leak would be detected by the RCD (I hope you have one) and save your life.
Was there any particular reason that you left the USB socket and AC prong panel attached?
I didn't leave the prong panel attached<br><br>The USB socket wasn't bothering anything, it was wrapped up in tape in the end anyway. There are much taller things on that assembly so the USB socket didn't matter.
Fabulous! Things have changed since I went to an electrical engineering college about 35 years ago. Much more reliance on microcontrollers now - my old textbooks only talk about transistors and TTL circuits. I was building stereo amps and 8-bit computers back then. You've made a very complete instructible. Thanks for the high detail and good luck with your studies.
It was like a complete journey through the syllabus of Electronics
its very good data:-&gt;<br>

About This Instructable


276 favorites


Bio: I am an electrical engineer. I graduated from U of Waterloo. I used to work for Adafruit Industries as an EE. Now I work for ... More »
More by frank26080115: LED Pocket Watch Easy Cord Wrapping Around Power Bricks Using SMD Components on Breadboards
Add instructable to: