The FI-ATCSRP (Fisher Innovation – Autonomous Temperature Controlled Solder Reflow Plate) is a autonomous temperature control unit that will allow you to use your hot plate of toaster oven to reflow SMD components on a circuit board. The system will autonomously configure itself without human interaction, thus allowing the system to be attached to any heat element.
Source Code
The FI-ATCSRP source code is hosted on GitHub
Usage
The source code is currently encased in a single .pde and can be opened in the Arduino IDE (www.arduino.cc). Download the source code and start by editing the user defined variables.
/* Start User Defined Variables */ // Pin Connections int ThermocouplePin = 0; // Thermocouple Pin int ButtonOnePin = 6; // Button 1 Pin int ButtonTwoPin = 7; // Button 2 Pin int ServoPin = 9; // Servo Data Pin int LCDBacklightPin = 13; // LCD Backlight Pin // Servo Control int ServoLowPosition = 180; // Position the servo is in to have the heat at low or off int ServoHighPosition = 0; // Position the servo is in to have the heat at high // Temperature Limits (all temperature are read in celcius) int MaxDeviceTemperature = 260; // The maximum temperature that we will allow the device to get up to int ReflowTemperature = 255; // The temperature we expect the board to reflow at // LCD Screen boolean LCDBacklightOn = true; // If we should turn the backlight on or not LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2); // rw on pin 11, rs on pin 12, enable on pin 10, d4, d5, d6, d7 on pins 5, 4, 3, 2 /* End User Defined Variables */
Pin connections are dependant on where and how you have connected the the thermocouple, buttons, servo and LCD to the Arduino. Servo control positions are dependant on where the servo position will be when the heating device temperature is set to off and full.
Temperature limits can be left alone to start with being that these temperatures are required for proper solder reflow. These values can be changed to offset for temperature read error by the thermocouple.
Parts List
- A heating source (hot plate or toaster oven)
- An Arduino – http://arduino.cc
- A servo connected to the temperature control of the heating source (anyway you want, you can configure it in the code) – http://www.sparkfun.com/commerce/product_info.php?products_id=9064
- Two momentary buttons – http://www.sparkfun.com/commerce/product_info.php?products_id=97
- Thermocouple Type-K http://www.sparkfun.com/commerce/product_info.php?products_id=251
- AD595-AQ Thermocouple Amplifier http://www.sparkfun.com/commerce/product_info.php?products_id=306 – I use the Thermocouple Sensor v1.0 Kit from MakerBot Industries http://store.makerbot.com/electronics/electronics-kits/thermocouple-sensor-v1-0-kit.html
- LCD screen for visual output (I use a 16×2 5VDC HD44780 parallel interface chipset) – http://www.sparkfun.com/commerce/product_info.php?products_id=709
Servo Control
One of the trickiest parts of getting this device to work properly is allowing the servo to sweep and set the heating devices temperature from 0 degrees to full power. I found the majority of hot plates use a 180 degree rotation which works perfect for a standard servo. If you have a device that rotates more then 180 degrees I would reccomend using a full rotation servo that can spin without stopping at a given degree or rotation.
Reflow Timing

Reflow Timing
To properly get the solder to reflow and set you need to heat it up and cool it down in a precise manner. The graph to the left displays the manner in which my Arduino sketch will run. By reading temperture values via the thermocouple, we can then modify the hot plate temperatre via the servo control. Once the temperture is updated we can verify the change again and continue the loop.