Closing the Loop on Surface Mount Soldering

Closing the Loop on Surface Mount Soldering

Temperature seems like the easiest thing in the world to control. Turn on the stove and set the temperature you want. Switch on the furnace in the morning and set the thermostat. Adjust the hot and cold water to make the shower just right. Easy! But what if you want to control temperature beyond these everyday applications? If you want temperatures outside the normal ranges, or want stable temperature within a narrow range, you’re mostly on your own.

In my case, I wanted to control the temperature of a hot plate used for surface mount soldering. Initially, I used pulse width modulation to provide stable temperatures and experimentally determined settings to create the temperature profile required. You can read all about that in this Instructable. This system works and control of temperature in this manner is all well and good, but it has shortcomings.

Shortcomings:

  • Works only for my specific hot plate. Others are similar, but not identical and experiments are required to determine the settings and times needed to produce the requited profile.

  • Same situation if I want a different profile or temperature.

  • The soldering process takes a long time since stable temperatures must be approached slowly.

Ideally, we could just specify a temperature- time profile, press a button, and the controller would cause the hot plate to perform as programmed. We know this is possible since there are many industrial processes that use exactly this sort of control. The question is can this be done easily and inexpensively at home?

As you might have guessed, since I’m writing this Instructable, the answer is yes! This Instructable will show you how to build your own industrial-strength temperature controller. I’ll particularly target surface mount soldering, but any process requiring precise time temperature profile can use this system.

Note: When I use the name “Arduino” I mean not just the (not quite) copyrighted Arduino itself, but also the many public domain versions collectively known as “Freeduino”. In some cases I use the term “Ard/Free-duino”, but the terms should be considered interchangable for the purposes of this Instructable.

The temperature control scheme used in the Extreme Surface Mount Soldering Instructable is known as open-loop control. That is, a value that has produced the desired temperature in the past is expected to produce the same temperature when used again. Frequently this is true and produces the desired result. But if conditions are slightly different, say the garage where we’re working is a lot cooler or warmer, then you may not get the expected result.

If we have a sensor that can read the temperature and report it back to a controller, then we have closed-loop control. The controller is able to set an initial value to increase the temperature, look at the temperature as time passes, and adjust the setting to make the temperature go higher or lower until the desired temperature is reached.

Our approach will be to replace the AVRTiny2313-based PWM controller with a more powerful ATMega-based controller. Programming will be done in the Arduino environment. We’ll use a pc (Linux-Mac-Windows) running Processing to display the results and adjust the controller.

For the sensor, we’ll use an Infrared Temperature Sensor from Harbor Freight. The IR sensor will be modified to output the temperature as a serial data stream that the controller can read. We'll use an Ard/Free-duino as the controller, with a PC (Mac – Linux – Windows) for input to the controller. When we’re all done, the system will look like the picture. (You may have less extraneous circuitry on your breadboard however. That's OK.)

 
Remove these adsRemove these ads by Signing Up
 

Step 1Modifying the IR Sensor

Modifying the IR Sensor

Many thanks to my clever friend, Scott Dixon, for his careful detective work in figuring out how this instrument works and how to make it generally useful with a controller by exposing its serial interface.

The device we'll start with is Harbor Freight Part Number: 93984-5VGA. Costs about $25. Don't bother buying the warranty. :)} Here's the link.

Figures 1 and 2 show Front and Back Views. The arrows on Figure 2 indicate where the screws are that hold the case together.

Figure  3 shows the inside of the case when the screws are removed and the case is opened. The laser pointer module can probably be removed and used for other projects, although I haven't done this yet. The arrows point to the screws to remove if you want to take the board out to solder to it (screws removed in this picture). Also indicated is the area where a cut out should be made for your wiring to exit the case. See also Figure 5. Make the cut out while the board is removed, or at least before you solder the wires on. It's easier that way. ;)}

Figure 4 shows where the wires will be soldered. Note the letter of each connection so you'll know which wire's which when you close the case.

Figure 5 shows the wires soldered in place and routed through the cut out. You can now put the case back together and the instrument should operate as it did before your operation. Note the connector on the wires. I use longer wires to actually connect to my controller. If you use small wire, a small connector, and keep the wires short, you can tuck it all back in the case if you wish and the instrument looks unmodified.

Scott has also created the software to interface this device. He used this document if you want the details. That's it! You now have an IR temperature sensor that will work from -33 to 250 C.

 

« Previous StepDownload PDFView All StepsNext Step »
9 comments
Oct 24, 2010. 3:23 PMjuggler says:
any troubleshooting advice?
I am unable to get 120vac from the power controller.
The rest appears to be working perfectly. The teensyduino is blinking the power on and off, 120vac is coming into the power controller but no vac is getting out to the load...
Thanks for any advice you have.
Sep 21, 2011. 5:08 PMjuggler says:
Thanks for your help.
Sorry it took me so long to get back to this.

Shorting pins 4&6 turned on the 120v. I don't know what that means I did wrong though.

Thanks again
Feb 13, 2011. 10:14 AMdausmus says:
The link to the Zytemp document that Scott used is no longer correct. The correct new link to his source document is:
http://www.zytemp.com/products/files/TNm_302.pdf It has good info in there.

Nice instructable.
Jan 31, 2011. 1:58 PMbuddhafragt says:
hello,
everything is working fine, but I dont understand if it is possible to save a soldering time/temp table.
I can adjust the temp manually, but can I save a profile??

best regards
Michael
Feb 16, 2010. 4:40 AMbrettn2002 says:
Very nice instructable!  Well researched & documented.  Could you please post the pinouts for the IR sensor circuit board?  On the board they are labeled "A, G, C, D, and V," but which one is the interrupt, data out, etc.?
Feb 16, 2010. 1:02 PMbrettn2002 says:
My bad!  They're listed in the 2nd photo on step 3.
Feb 1, 2010. 1:30 PMjeff-o says:
Fantastic work!  I've added this to my list of Things to Build.

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
39
Followers
8
Author:doctek