Reflow Soldering

Most Iowa Scaled Engineering products are designed using surface mount components to keep costs low (smaller boards) and allow the use of a wider range of components.  One of the primary tools in the assembly process is an oven to reflow the solder paste that attaches the components to the PCB.  Originally, we developed our reflow recipe using a thermocouple, a multimeter with temperature capability, and a stopwatch.  This has worked quite well.  Now, as a practical application of the ARD-LTC2499 Arduino shield, we take a closer look at the reflow process.

PCB Assembly Overview

The assembly of our products starts with a bare PCB.  Solder paste is then applied using a stencil and squeegee.  We currently use primarily NC676 solder paste from FCT Assembly, but also use lead-free NL930PT for some builds.  The individual components are then placed onto the board, sitting atop the solder paste.  Once all the components are placed, and after inspection to make sure they are still aligned (and all present), the board is placed in the reflow oven.

While one can spend thousands of dollars on professional reflow ovens, we use an off-the-shelf toaster oven with convection.  For the (relatively) small quantities we are building currently, this works well and allows us to spend those dollars on new product development instead.

Reflow Temperature Profile

Each solder paste has its preferred temperature profile to produce the best joints and prevent solder balls, beading, shorts, and other nuisances.  From the NC676 solder paste datasheet, the recommended profile is a linear ramp with 0.7°C/s ramp rate on the heating side up to a peak temperature of 215C and 2.0°C – 3.0°C/s (max) on the cooling down ramp.


Over time, we have developed a recipe that appears to match this temperature profile.  Most importantly, it works.  However, we have never data logged the entire ramp and looked at it closely.  With the ARD-LTC2499, and its ability to interface directly with thermocouples, this is now possible.


The hardware for the datalogger consists of a Linduino (but any Arduino board will work), an Ethernet/SD Card shield, and the ARD-LTC2499 Arduino shield.  This stack is shown below, along with a VFD panel for a live display.  The Linduino uses a switching regulator for the 5V rail, allowing the VFD display to be powered directly from the Arduino header.  If using a standard Arduino board, a separate power supply for the VFD display should probably be used to avoid overheating the linear regulator typically found on those boards.


Additionally, output D7 is used to trigger a 555 timer driving a speaker (barely visible in the background) that acts as an alarm when the temperature gets above 190°C.  Not that we’ve ever been distracted and overcooked any boards…  Fun fact of the day: electrolytic capacitors make nice over temperature alarms when they explode.  Unfortunately, when that happens, all is lost.

The Ethernet/SD Card shield is only being used for the SD Card portion.  The thermocouple in the oven is thermally tied to a scrap PCB, along with the original thermocouple used with the multimeter.  The thermocouple is then connected to the CH1/0 inputs of the LTC2499.  Since the LTC2499 ADC has sufficient resolution and low noise, it can directly convert the voltage of the thermocouple with no additional signal conditioning.  Cold junction temperature comes from the temperature sensor built into the LTC2499.  As long as the ARD-LTC2499 board is not exposed to thermal gradients, this should be sufficient to properly compensate the thermocouple, at least within the tolerance we need.


The software uses the Ard2499 Library. The latest source code for both the library and the reflow monitor sketch can be found under the Source Releases section.  The reflow monitor is in the examples directory, under ard_ltc2499_reflow.

For each main loop, it starts by reading the thermocouple voltage from the ADC.  Next, it reads the LTC2499 internal temperature and computes the equivalent cold junction voltage.  From here, it computes the temperature from the thermocouple voltage and the cold junction voltage.

The thermocouple calculations use the formulas from Mosaic Industries.  These implement the NIST standard thermocouple values, but in a computationally more efficient manner.  The formulas for Type K thermocouples are used in this sketch.

Next, it checks for the alarm condition and responds appropriately.  The code also sends a serial stream to the VFD display to display the current temperature and blink the backlight if in an alarm condition.  Finally, the SD card is written every second with the current temperature.



Since there is no PID control of the oven, we are stuck with whatever ramp rate it generates.  Fortunately, this particular oven produces a linear ramp very similar to what is recommended for the solder paste.  It takes about 3:45 to go from 45°C to peak temperature.  That results in a ramp rate of about 0.7°C/s.  The cool down is sufficiently slow at 0.5°C/s so there should be no issues with IMC formation or poor solder grain structure.

The peak temperature is slightly less than recommended.  200°C vs. 215°C.  According to the multimeter we’ve been using prior to this, the peak is closer to 207°C.  Even that is still lower than recommended.  However, letting the boards get to 215°C causes the boards to get noticeably brown, which seems like a bad thing.  We are happy with the current recipe and have had no reliability problems related to the soldering to date.  Since the critical parts of the reflow (the ramp up and ramp down) are well within spec, the difference in peak temperature seems less concerning.  This may also be an issue of calibration, but that exercise is for another day.


The ARD-LTC2499 can be used to make a quick temperature measurement and logging system.  The accuracy of the LTC2499 ADC allows it to directly measure small signals such as those produced from a thermocouple without a lot of signal conditioning circuitry.  Combining the ARD-LTC2499 with other Arduino shields allows a full system to be created in a short amount of time, taking advantage of the Arduino development environment and readily available shields.



    1. No voltage divider is necessary. Those voltages listed in the link are in mV, so they will be well within the range of the ADC. In fact, the accuracy and linearity of the ADC allows very accurate, direct digitization of thermocouples.

Leave a Reply

Your email address will not be published. Required fields are marked *