If you want to read about an easy and inexpensive reflow soldering setup, read on: But first a parts list of the "odd" parts so that when you decide to follow my bread crumbs you won't have to dig to find them later:
1. IR Temperature Sensor from SparkFun - SEN-09570 - $19.95
2. Pansonic Opto Isolated Solid State Relay from Mouser # 769-AQN221VL - $28.28
3. Hotplate Aroma Elite HP-28 about $20 depending on where you get one, Walmart, Amazon but really almost any single burner electric hotplate (not warmer) should do.
4. Griddle of your choice. I got a low priced one at Target. Choose one that you can modify by reversing the handle like the one shown here. Also, make sure it's "flat" so that it sits on the hotplate without wobble. My "bargain" was a bit "bowed" and I had to bend it a bit to get it flat.
5. Arduino Duemilanove of whatever flavor suits you. If doing this from scratch I'd go with ModernDevice.com RBBB kit $13.00 and USB BUB Board $14.00.
As it happens I already had another Arduino but I really like the Modern Device approach to the popular microcontrollers. Rather than repeat the FTDI chip on every unit (which is only used for programming) they separate them allowing the individual micro-controllers to be less expensive. You buy just ONE BUB board and program all your processors with it (and once you get going with Arduino, you'll have more than one, especially at these prices.)
It had been years since I'd done serious PCB work. In particular, I had NO experience with Surface Mount Technology (SMT) and it seemed like more and more parts were available only in that format. I had a wifi project whose principal component was ONLY available in an SMT package so if I was going to play I had to learn how to do it. Fortunately, there is a LOT of good tutorial info out there on the web, most notably at the site www.sparkfun.com . From their tutorials as well as some of the YouTube links in their forums I found a wealth of hobbiest information that convinced me that SMT might just be possible for mere mortals. Not only was this the case, but it is now my FAVORITE way to work with PCB stuff. If you are just getting into SMD work I highly recommend the tutorials on the SparkFun site.
The other "hassle" in PCB work used to be the layout. I've used ordinary cad programs and before that I used dry-transfer stencils and tape on mylar (that was in the 70's). This isn't your father's PCB world any more. There are lots of good PCB software options out there, many of them are free. One of the best I've found and one which seems quite popular among electronics afficionados is Eagle by Cadsoft. I recommend it highly. At some points I found the UI a bit "quirky" but when you get into it, you find that it makes many operations much easier than they appear at first. Some of the cut, copy and paste operations fall into this category. Just go with it. It will soon seem more natural and the way they do it actually lends itself to productivity though it might not at first be apparent. I suspect some of my initial learning curve was much the same as that I encountered when moving from the Windows world to the Mac world. I found some things seemingly "hard" to do. It was only "hard" because I expected it to work the "Windows" way. Once I learned the "Mac" way I found the latter superior but it takes some unlearning of bad habits (g.) The more I work with it the more I find Eagle superb for what I want to do. They have a "free" version which is basically limited in the size of PCB you can lay out. Since most of what I do falls within that constraint I've used the free one. They have several licensing options including EDU and non-commercial ones so you'll find one to your liking. Even at the full price it's worth every penny in time and errors avoided if you plan to do anything commercial. I haven't gotten there yet but when I make some money with this, upgrading to a commercial license will be well justified.
But I digress. The community has helped me with so much info and tips that I want to devote this section of my site to pay that back in kind by laying out in some detail the innovations that I've made on what many others have suggested. Basically, what I'm outlining here works for me and works well and should be very repeatable at very low cost. There is no way I could possibly give proper attribution to all of the contributors to what follows because it represents hours of scouring the web and experimenting but if you see something of yours here, you have my thanks. So lets dive in...
There seem to be two popular methods to do reflow soldering. One uses a common toaster oven and the other uses a hotplate or something similar. Now the trick with ALL of these is to get the solder hot enough to melt but not to overheat and destroy the components being soldered. In my case, the component in question was a forty dollar wifi module from Roving Networks. Needless to say I didn't want to damage that puppy. I decided to use the hotplate method because with that technique the heat is applied from the bottom of the board and at least in theory the components above the board could remain a bit more cool that they would if surrounded by heat as in a toaster oven. Now the "big boys" in SMT work use ovens so the components are designed to take the heat but a hot plate just seemed a better approach for my purposes.
One of the issues with every hotplate that I looked at is that the surface isn't flat. It typically has an indentation of some sort in the center. That can cause uneven heating. In fact, when you shoot them with an IR temperature gun you find that they do indeed have hot spots depending on the underlying placement of the actual heating element. I decided to try and mitigate this by putting an aluminum "griddle" on top that would spread out the heat as well as allow me to remove the contents from the heat quickly and easily if needed. The hotplate I chose was priced at $15 on Amazon. It turns out that by the time I paid shipping it was about the same as the $25 ones available locally so I really didn't save much. You need a true hot plate, not just a warmer. Mine was rated at about 1000 watts. I wouldn't use less. It needs to heat to at least 500 degrees F or so.
As I mentioned above, temperature control is a bit of an issue. Originally my plan was to use an IR thermometer to monitor the temperature. I was hoping that perhaps the bimetallic temperature control built into the hotplate would be repeatable enough that once I'd found the "setting" I could mark the dial and use that. It wasn't. At least not on my hotplate. I found that continually "shooting" the temperature with the IR thermometer was a pain so I clearly needed some better automation. By the way, the IR thermometer I use is regularly on sale at Harbor Tool and Freight for about $30. Regular price is $40 and it has a range that goes high enough for solder work.
Here's where the Sparkfun folks enter in. They have a nifty little component for $20 that is a self contained IR thermometer. It uses I2C serial buss communication so it only has four wires, power (3.3VDC), ground, and the serial clock and data lines. I'd never done anything with I2C before but I'd heard that the Arduino had libraries (Wire) that would talk to I2C devices so I thought that would be a good option. Here's the first deviation from an otherwise well laid plan. It turns out that the I2C "spoken" by this particular sensor is a bit different from the protocol understood and spoken by the Arduino "Wire" libraries. However, the user comments write up on the SparkFun site for this component told of alternate libraries that are freely available along with an example program that WOULD work with this component. They worked as advertised and I used that as the basis for the code I'm going to publish here. This is all free (as in beer) stuff so feel free to enhance to your delight. I'll go into gorey detail about how the program works later. For now it's best to stick with the high level concept.
The basic idea is to use the Arduino to monitor the temperatureby reading the IR sensor and control the hotplate with a simple ON/OFF switching to adjust the temparature just as if I was continually "shooting" the temperature with the IR gun and manually turning the hotplate on or off as needed to maintain the desired temperature. Now for the legal disclaimer:
Controlling a hotplate or AC electrical power can be very dangerous and if you decide to follow my adventure here, you do so at your own risk. If you are uncomfortable working with electrical wiring and/or don't have the requisite DIY knowledge to do so, by all means get someone who does to do the parts of this having to do with AC electrical power. By no means can you hold me liable for your implementation of what I'm describing.
Many manufacturers publish reflow soldering "profiles" that describe the temperature limits and times for their components (see example at the right.) They are somewhat different but all seem to have more or less the following characteristics. The temperature is raised from room temperature to about 150 deg C and held there for anywhere from two to five minutes. I call this the "pre-heat" temperature. Aparently, some devices can have moisture trapped inside the device package and can literally "pop" (as in popcorn) if you heat them too fast. So this pre-heat allows for a more gradual step-wise application of heat. Then after the preheat period the temperature is once again raised to the solder temperature and held there for a shorter period of time. Typically this is about 220 deg C. The solder paste I'm using has a rated melting temperature of 183 deg C and that appears to be spot on based on my experience thus far. Of course, you want to make sure that you consult the actual profiles for any components you are using to make sure you don't violate any special constraints. The program I've written has all of the key temperature control variables at the top of the program so you can easily modify the "curve" as needed.
Thus, the progam basically does nothing more that loop reading the temperature once per second until the temperature reaches the preheat value. Then it "counts" the seconds of the preheat duration while turning the hotplate power on and off to maintain the temperature as close to the preheat temparature as possible. After the preheat time expires the temperature is ramped up to the solder temperature and held there for the solder period (typically less than the preheat.) After that, the hotplate is turned off and the circuit is allowed to cool. If you want to speed up the process a bit you can just remove the griddle from the hotplate and set it on a hotpad. Just make sure you don't jostle the board and dislodge any of the components while the solder is still "wet."
I should note that there is a fair bit of thermal "lag" in the heating/hotplate/griddle so excursions of ten or so degrees above the setpoint are common. You can "tweak" the setpoint downward accordingly to get the average temperature around the desired target. The lag (overshoot) is less pronounced the higher you go in temperature because the rate of cooling is greater.
So how do you control a kilowatt or more of electrical power to a hotplate using an Arduino? It turns out that there are a number of manufacturers that make solid state relays (SSR's) designed for such purposes. The one in the parts list is made by Pansonic and will control up to 15 amperes at 220VAC. It has an optically isolated control input for safety and can be switched on and off directly from an Arduino digital output pin. How you wire that up is your affair. I chose to wire a cord and outlet box (see below) so that I could just plug the hotplate (or any other AC device) into it without breaking into the hotplate wiring.
The griddle I bought to put on top of the hotplate turned out to have an added benefit. By drilling out the rivets in the handle, I was able to reverse the handle and re-attach it with some 8-32 machine screws and nuts so that the handle rises OVER the griddle. Not only does this give the griddle better balance when sitting on the hotplate but it also provides a convenient mounting place for the IR temperature sensor from SparkFun. Now if you read the specs on the sensor, it claims to have a 30 degree "cone" of visibility. That's actually quite wide for most purposes but it's ideal here as given the sensor elevation of about six inches or so that means that the sensor is looking at about a 3 inch by 3 inch square of area beneath it. By placing the circuit to be soldered in this region you get an nice averaging effect of the overall board temperature. Most of my boards easily fit within this 9 square inch window. Even if the board is outside the window, it turns out that from experiments "shooting" the various parts of the griddle with the hand held IR thermometer that the griddle does an acceptable job of spreading the heat evenly.
I just used an old pill bottle inverted to provide some sort of housing. The hotplate handle had a wire hanging clip in the end which I removed. By drilling the remaining holes completely through the handle I was able to pass a long screw through the handle and mount the pill bottle. I used a spare piece of 4 conductor cable I had to connect the IR Sensor to the Arduino (far lower right in picture above) processor (details here). I used a piece of two conductor hookup wire to connect one of the digital output pins to the input of the SSR (out of picture as it rests on the floor below.)
The only thing I had to do was calibrate the temperature readout. It seems that IR temperature sensors are affected by the "emissivity" of the target. For example, shiny objects of a given temperature will read lower than darker objects. So when you are doing the calibration I recommend using a scrap piece of etched PCB similar to the circuits you'll be soldering placed under the sensor. Also, you can use a bit of solder paste on the scrap for a temperature check. It is a good reference point (183 deg C for the paste I'm using) but initially I just "shot" the board using the hand held unit and then noted the readout from the hotplate unit. I then simply applied a "fudge factor" ratio to the value returned by the hotplate IR sensor to make it read close to the value returned by the commercial IR thermometer. If you don't have access to an IR thermometer reference then just use your solder paste as a temperature indicator by noting the point at which it melts while slowly turning up the heat. You can assume that the actual temperature is the rated melting point of the solder paste at that time.
Once that was done, I've found that the overall unit performs very repeatably and several SMT projects I've since built were soldered perfectly. The circuit below was actually my very FIRST result! The PC Board itself was a prototype that I sent off to Advanced Circuits (4PCB.com) and which was produced directly from the gerber file output of the Eagle software. The actual soldering of the surface mount components was done with my setup here.
The large wifi module would have been nearly impossible to solder without this setup. It was a breeze with it.
Use the software link in the menu at the top of the page to continue with the details of the program.
A typical reflow soldering temperature profile from a manufacturer's data sheet is shown below: