Friday 20 March 2015

Yet Another Reflow Oven

There's something very satisfying about making your own stuff. As you'll have seen by my previous posts I design a lot of my own circuits. To this end I've built a Surface Mount Device Reflow Oven.

I was inspired by this youtube video. The thing that impressed me about it was the price; small reflow ovens can cost upwards of US$500. The toaster oven used in the video is still (March 2015) on sale at Walmart for less than US$20. But like most things based on an Arduino, not only does it require an Arduino board at some US$30+ but it needs a shield to connect all the temperature sensing and heating elements etc at a further US$35. So that would make the total something like US$100 or more. Still not ideal.

So thinking that I could do better I set about designing my own "embedded Arduino" based controller. It would have all the same facilities as the one in the video but everything would be contained on a single PCB where possible.


This is what I came up with. The board above contains an AC power supply, LCD interface, temperature sensor, interface buttons, buzzer, FTDI serial interface and of course, an Arduino.


So then all I needed was firmware for the Arduino. There was no point trying to write my own. It's not as if I've had an original idea here. Casting about the 'net I came across this website where IanJ describes his journey creating a similar oven. I downloaded Ian's code and set about adapting it to my board. It was quite easy really. I simply needed to move some pin assignments around and change some of the outputs from low to high etc. My modified version of the code can be found below. It still requires the library from Ian's website (don't forget to modify the library for Arduino IDE 1.x+).

My design differs from Ian's slightly in that I use a PNP transistor to toggle the relay that in turn powers the heater elements. I've also used the analog pins in digital mode so that I could make the board layout easier for a milling machine or home brewers doing single sided boards and likewise I have not used the traditional LCD pins but rather moved them  to other pins for the same reasons. Other than that we've come up with more-or-less the same design.

If you want a copy of the board you can buy it from Oshpark. Be aware that there is a minor error on the PCB. The "fix" is to raise pin 21 of the Arduino such that it does not connect with the IC socket. I had inadvertently connected that pin to ground when it should have been either pulled up or left floating.

Parts list and costs ...

"Rival" brand toaster oven - $18.47 @ Walmart
Solid state relay - $1 @ ebay
Welding blanket - $18 @ ebay
"K" type thermocouple (minimum 350c) - $1 @ ebay
PCB - $10 @ Oshpark
Arduino - $3 @ DIPMicro.com
LCD - $2 @ ebay
R's, C's etc, - $3 @ junque box
AD595 temperature sensor - $3 @ ebay
Total = $60 or thereabouts

 The usual files in Eagle format and GCode for your CNC mill ...

YARO.ino
YARO.pdf
YARO.brd
YARO.sch
YARO.bot.etch.ngc

7 comments:

  1. Mark, what SSR did you use, the schematics hint at a non S202SE2 relay

    ReplyDelete
  2. No idea. It was a white rectangular thing with screw terminals. Nothing special.

    ReplyDelete
  3. hi mark.please send hex file for atmega8.thanks

    ReplyDelete
    Replies
    1. Hex file not required. Use Arduino IDE to compile .ino on this page.

      Delete
  4. excuse me i can't connect this to arduino uno😔😔😔 please help

    ReplyDelete
  5. i have arduino uno. hiw can i connect arduino uno to ftd? please answer

    ReplyDelete
  6. here is error.
    Arduino: 1.5.4 (Windows 7), Board: "Arduino Uno"

    YARO:96: error: 'TimedAction' does not name a type
    YARO.ino: In function 'void setup()':
    YARO:103: error: redefinition of 'void setup()'
    sketch_sep14a:1: error: 'void setup()' previously defined here
    YARO.ino: In function 'void loop()':
    YARO:227: error: redefinition of 'void loop()'
    sketch_sep14a:6: error: 'void loop()' previously defined here
    YARO:229: error: 'Timedact01' was not declared in this scope

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.

    ReplyDelete