Assembling surface mount components at home

Currently I am working on improving the Smart Turn project to build a turn signal indicator for my bicycle. I have made significant progress on this project which I will cover in a later post. But in this post I am going to show you how I assemble surface mount components on to a PCB using my home made reflow oven.

If I can get away with just using through hole components I will  never bother with surface mount at all. But some components only come in surface mount packages like the Bluetooth Low Energy modules from Bluegiga, which I am using for the Smart Turn project. Also through hole is bulky and takes too much space. So inevitably I found myself needing to use surface mount components.

Hand soldering surface mount components is not too difficult if you are only dealing with size 0603 (inch) or greater, but some packages have pads underneath the component and is impossible to access with a soldering iron. So I decided to build a reflow oven a while ago to take care of my surface mount assembling.

While working on the Smart Turn project I created a video that shows step by step from start to finish how I use my reflow oven to assemble surface mount components. As you can see in the video below it is not that complicated of a process. It requires a bit of patience to get solder paste onto the pads, but once that’s done you can sit back and relax while the reflow oven takes care of the rest. Try it out and let me know if you have any questions or suggestions.

First Gyro’clock board assembled!

Since I have finished building my home made reflow oven, now I can use it to assemble parts in the Gyro’clock boards.

The first step is to ensure that I have all the parts for the board. Since ideally you would only want to reflow the board once. I organized this in my project book as shown below. This makes it easier to find all the parts when it is time to place them on the board. Also the parts will not get mixed up! (The 0.1 uF, 22 pF and 4.7 uF caps all look the same!)

IMG102

Making sure all the surface mount parts I need for the board are there before starting

Then I realized that I am missing a key component: 3.3 V Zener diode. Ordering just a single part from Digikey is quite expensive and I will have to postpone the board assembly yet again. Luckily I had a through hole 3.3 V Zener in my parts inventory. So I made a choice to do the reflow without the Zener, and then afterwards solder in the through hole Zener to the surface mount pads.

The next step is to put solder paste on the pads. I am using Chip Quick no clean lead free solder paste (SMD291SNL-ND). The solder paste came with a syringe and a nozzle. Ideally to put solder paste on a board you have to make a stencil first. Getting a professionally made stencil for a board can be quite expensive. So I decided to do it the hard way by putting solder paste manually on the pads using the syringe.

I had no idea how difficult it is to put solder paste onto a pad with a syringe. The paste didn’t really stick at all. You have to make sure not to put too much solder paste on a pad. If you do then you run the risk of making solder bridges. Too little solder paste and it won’t make a good connection. Having never done this before, I had a high risk of making one of or both of those two errors. Solder bridges on pins can easily be corrected later so I wasn’t too worried except for two components: The ADXL345 accelerometer and the HSMF-C165 bi-color LED. All the pads of these chips are located underneath the component. I only had one chance to get it right with these two.

With care and patience I put solder paste on all of the surface mount pads.

IMG108

Solder paste applied to surface mount pads on the board

Once solder paste is applied to the pads it is time to place the components on the board. I must say this part is quite fun. Specially putting the resistors and capacitors. Once placed on the pads the solder paste holds the component in its place. The ATmega328p took a little aligning and the ADXL needed quite a bit of nudging to get it in place. Once all the components are placed on the correct pads (also in their correct orientations; watch out for those polarized caps!)

IMG112

Once all the components are placed on the pads the board is ready for the reflow oven

Once all the components are placed in the pads I put the board carefully in the reflow oven and ran a previously prepared custom reflow profile. After about 10 minutes the board was ready to be taken out of the oven.

assembledBoard

Gyro’clock board out of the reflow oven

Initial inspection showed that there were no solder bridges! All the resistors and capacitors showed solid connections with their pads. The only issue was the 3PDT switch, and this could have been totally avoided. The heat caused the plastic parts of the switch to melt. The switch was unusable.

So I removed the switch and manually soldered in another one in its place. After that I soldered in the Zener diode, the seven square LEDs that go on the edge, and the 150 mAh liPo battery. And then the moment of truth; Did the accelerometer and the bi-color LED make it? Did all the parts survived the heat inside the reflow oven?

They did! I was able to upload the bootloader to the ATmega328p and program it. The bi-color LED was working, which also meant that the LiPo battery charge circuit was also working.

IMG133

A fully assembled Gyro’clock board (left) next to a bear Gyro’clock board (right)

I am very happy that the first try on my home made reflow oven was a success. The next step for the Gyro’clock project is to make a case for it. That is another completely new avenue for me to explore. Until next time!

Reflow Oven Build – Part 3

In the first part of the Reflow Oven Build series of posts I explained how I transformed a regular toaster oven into a reflow oven. The second part was dedicated for the Reflow Oven Controller (ROC). And now the third and  final part will focus on the Reflow Oven Manager (ROM). The ROM’s job is to talk to the controller, upload new temperature profiles, receive profile data from the controller, and display current status of the oven and a running profile to the user.

In short it looks like this…

reflowOvenManager

Reflow Oven Manager (ROM) user interface

I decided to use Python to write the ROM program simply because I like programming in Python and making a graphical user interface with Python is easy.

Creating a new reflow profile

A reflow profile is list of target temperature values to be achieved by a reflow oven at certain times after starting a profile. Recommended reflow profiles can be found in the device datasheet for certain devices. A typical reflow profile can be broken down into five stages as shown in the diagram below:

ReflowProfileExample

Stages of a typical lead-free reflow profile

A custom reflow profile must be created for each board by consulting the device datasheets of the components to ensure the temperature in the oven does not exceed the specifications. If none of the devices have recommended reflow profiles then standard reflow profiles must be followed. The reflow profile will also depend on the type of solder paste used. Typically Lead-free solder paste require a higher temperature than lead solder.

Creating a reflow profile with the ROM is simple, as it asks the user for all the necessary temperature and time values to create a profile (see figure below). Once a profile is created it can be viewed and edited. The program automatically saves each new profile that is created so it is available the next time the program is used.

reflowProfileCreation

Creating a reflow profile using the reflow oven manager is as easy as entering a few temperature and time values

The ROC (Arduino) does not store any reflow profiles. So each time the controller is power cycled a profile must be uploaded using the ROM. Once a profile is successfully uploaded to the controller, it can be started; The status of the active profile will be displayed on the GUI. Profile data sent by the controller will be saved in a file so it can be viewed later on.

A complete program listing of the ROM is available here.

Now the reflow oven build is complete. All that is left to do is to test it by running a profile. Figure below shows the result of the first test run with the oven.

FirstReflowTempProfile

First test of the reflow oven. The actual oven temperature lags the target temperature

The results in the plot above shows the oven temperature is not able to follow the target temperature very accurately, specially at higher temperatures. The oven takes too long to heat up and as a result the actual temperature lags the target temperature.

The reason why the oven takes too long to heat up is because it doesn’t do a good job of retaining the heat. This was built after all from a $20 toaster oven from Walmart. I found that most of the heat is escaping through the glass door (which gets really hot!). After some searching around the internet I found a simple and a cheap solution to the problem: Just wrap the glass door with some aluminum foil! After wrapping the glass door with aluminum foil I ran the test again. This time the results were much better

SecondReflowTempProfile

Reflow oven test after adding the aluminum foil to prevent heat from escaping through the glass door

It takes a bit more time for it to cool down after about 160°C, but this is not an issue. At the end I can always open the door to allow more heat to escape if necessary.

Now the reflow oven is ready to take on a real job; That is to assemble the components on my Gyro’clock boards. This is the reason why I wanted to build this thing in the first place. I will cover that in my next post.

Reflow Oven Build – Part 2

In Reflow oven build – part 1 I showed how I modified a simple toaster oven to function as a reflow oven. In this part I will explain the reflow oven controller. The purpose of the reflow oven controller is to control the temperature inside the oven to follow a standard reflow temperature profile. The controller must have the ability to do the following tasks:

  1. Be able to turn on and off the heating elements of the oven
  2. Measure the temperature inside the oven
  3. Ability to modify the existing profile or upload a new reflow temperature profile
  4. Report current status and temperature data from the reflow oven to a user interface (the user interface will be covered in part 3)

This job is made for a microcontroller. For my reflow oven I am using an Arduino Micro. The diagram below shows the schematic of the controller:

Schematic of the reflow oven controller

Schematic of the reflow oven controller

I assembled the circuit inside a small first aid case, and made two openings on the side to connect a USB cable to the Micro and a +12 V adapter to power the CPU fan of the reflow oven. On the opposite side I made another hole to run the wires that connect to the reflow oven (thermocouple, GND, +12 V for fan, and signal to solid state relay).

The controller circuit assembled in a small box

The controller circuit assembled inside a small box

The reflow oven and the controller

The reflow oven and the controller

The next thing to do is to write code for the controller. Inside the controller a reflow profile is stored as time-temperature value pairs. These are target temperature values that need to be achieved at the specified times after starting a profile. The controller has only a single reflow profile at a time. A new profile can be uploaded to the controller using a separate program on a computer (reflow oven manager), which will be discussed in part 3. The controller also sends profile status and temperature data to the reflow oven manager so that it can be monitored in real time. The following flow chart shows the basic structure of the program that controls the reflow oven:

Basic flow chart of the reflow oven controller program

Basic flow chart of the reflow oven controller program

A complete program listing for the controller can be found here. On the next post I will discuss the reflow oven manager program that talks to the controller.

Reflow Oven Build – Part 1

There are many tutorials, instructables and youtube videos about DIY reflow ovens. I have checked out some of them myself before deciding to make my own. This however is not a tutorial or a set of instructions on how to build a reflow oven. This is a just a record of the steps I took to build my reflow oven in case some of my (crude but cheap) methods suits you.

Parts used:

  1. Rival 4 slice toaster oven – I got this from Walmart for $23 (CAD). The main reason for choosing this other than it being cheap is that it has quarts type heating elements, which warm up fast and cool down fast unlike the thin grey type heating element found in most regular ovens
  2. Arduino Micro – I already had one of these lying around that wasn’t being used for anything else.
  3. K-type Thermocouple – $4.50
  4. MAX31855 thermocouple amplifier breakout board from Adafruit – $14.95. This was a rather expensive choice. But this breakout board accepts 5V inputs and outputs the temperature in digital, making the coding and the rest of the circuit fairly simple.
  5. Solid state relay (SSR) – $19.95. input: 3-32 VDC, output: 24-380 VAC, 25A
  6. Heat sink for SSR – scavenged from an old project
  7. Computer fan – rescued from an old PC power supply unit
  8. 12V DC power supply – Burrowed from my Music and Lights project

Total spent for parts above: $62.40 (CAD)

I broke the design of this reflow oven into three Major parts:

  • oven
  • controller
  • user interface

The oven

The oven must be capable of heating up and cooling down at a rate sufficient to follow a reflow temperature profile. A slow oven that stays too long in the critical zone of the reflow profile (above 217 °C) could potentially end up damaging the components.

Most of the home made reflow ovens I have seen started out as typical toaster ovens. But typically a toaster oven manual does not say how fast it can heat up or cool down. So which one to choose? Some sources suggest to use a toaster oven that has quartz heating elements. Since this type of toaster oven was proven to work in the R&TPreppers video, I decided to get the cheapest toaster oven I could find nearby that had quartz heating elements.

The quartz heating elements of the toaster oven

The quartz heating elements of the toaster oven

Step 1: Open the case and strip all the knobs and dials (2 in this one) that are no longer necessary. That job will be taken over by the reflow oven controller.

Remove the existing controls of the toaster oven as they are no longer needed

Remove the existing controls of the toaster oven as they are no longer needed

Step 2: Cut a hole on the side of the oven to attach the cooling fan. This fan keeps the electronics (most importantly the solid state relay) inside the reflow oven cool. It needs access to fresh air, so I had to cut a 6 cm diameter hole on the side of the cover. The metal case was thin so I was able to cut it with a heavy duty scissor (not a very clean job, but got the job done).

test

Attach the PC fan to the side of the cover to bring cool air inside to keep the electronics cool

Step 3: Attach the SSR to a heat sink and mount the heat sink on the other side of the hole so that it is in the direct path of the cold air coming from the fan.

text

SSR attached to a heat sink and mounted directly opposite the cooling fan inside the oven cover

Step 4: Drill a small hole into the oven chamber to feed one side of the thermocouple wire.

text

A small hole drilled to the side of the oven chamber brings in the thermocouple

Step 5: Wire everything up that goes inside the cover of the oven. This includes all the connections shown in the wiring diagram below

text

Wiring diagram for the components inside the reflow oven.

Once all the wiring is done and the cover is put back on the reflow oven is built! But without a controller, this oven is pretty useless. So in the next post I will cover the controller. Most reflow ovens I have seen integrate the controller inside the oven as well. But since I have no idea how hot it will get inside the cover when the oven is running, I thought it is better to have the controller outside. Also having the controller outside makes it easier to program it.