Sunday, January 20, 2013

Reflow Soldering a Breakout PCB for the MCP9808 Temperature Sensor

My last post showed my initial attempts at reflow soldering, and after a few more tests I was confident enough to move on and assemble the PCB for my MCP9808 temperature sensor board. I'll run through the process and show what tools I used and how things turned out.

The high density of recent designs and small size of recent surface mount components means that you'll need tools to handle parts, and with the smallest component on my board being an 0402 package (1mm x 0.6 mm), a good set of tweezers will come in handy.  I picked up a set off ebay for about 30 bucks.  Professional sets from places like element14 can cost $450 for a set of 7 tweezers, but unless you're doing highly specialised work, a cheap set of decent quality, stainless, anti-magnetic tweezers will do just fine.

Tweezers
Tweezer set
Tweezers
Tweezer set

My tool of choice is the pair of tweezers with a bent nose.  It allows you work from the side of the board but still grab parts from above.  By coming in from the side you don't obscure your view of the components.

Tweezers
Angled tweezers

How you dispense and apply solder paste to the circuit board is critical to the quality of the final product.  For instance, the pads on the smallest component on the PCB require a volume of solder paste equal to 1 hundredth of a cubic mm.  Getting that right by hand is almost impossible.  In a manufacturing environment the solder paste would be applied by a stencil such as the ones from Mastercut.  For my tests however, I purchased a syringe of solder paste from Jaycar electronics and started using the standard tip it came with to apply paste by hand.

The tip supplied with the syringe, a blue tapered 22 gauge tip, can be seen in the image below.  It has an outlet diameter of 0.4 mm.  For standard components it's fine, but I wanted to see if I could get better control by using smaller tips. To test this I ordered two different types of from Okay.  A red 25 gauge and a lavender 30 gauge tip, both being half inch long stainless steel.

Dispenser tips
Solder paste and dispenser tips

The internal diameter of the 25 and 30 gauge tips are 0.26 mm and 0.16 mm respectively.  Theoretically the solder paste should pass through the tips as the particles in the solder paste are significantly smaller.  The pressure required to do this however is quite high.  So high in fact, that I couldn't get anything to come out of the 30 gauge tip.  The 25 gauge tip did work, but you really have to press hard to get the paste out.  This isn't necessarily bad, it prevents you from dispensing too much paste.

Dispenser tip
25 Gauge dispenser tip with a small drop of solder

I carefully applied the solder paste to the required pads.  By squeezing out a little paste and then dabbing it on the pad, I was able to get a reasonable amount of control.  I had to steady my hand on something solid to get a good result though.

PCB with solder paste
PCB with solder paste applied

Using the tweezers to lift the parts, the components were carefully placed on the board in the correct orientation.  The board was then reflow soldered in an oven using the process described in my last post.  I was reasonably happy with the results.

Soldered PCB
PCB with parts mounted after reflow

The resistors and capacitors came out looking pretty good.  As long as you have close to the right amount of paste on the pad, surface tension will line up the components and the solder will travel up the side of the parts and pull the parts close to the board.  It's pretty forgiving.


Soldered joint
Resistors
Soldered joint
Capacitor

The diodes however are slightly different.  They are the smallest parts on the board and only have metal pads underneath the component.  This makes it hard to get a good result.  If you have slightly too much paste on the board (like I think I did) the part will float on it, and because the solder can't creep up the sides of the component, it won't get pulled tight to the board.  My three diodes have a good electrical connection with the board, and two of them aren't too bad.  One isn't that great though.  It's not going to fall off, the joint is strong, but you can see that the diode on the left in the image below has too much solder under it and has floated sideways slightly.  Not that it matters much to me, but I think the joint would be mechanically stronger if it were closer to the board.

Soldered joint
Diodes

Before starting, the biggest concern I had was how difficult it was going to be to solder the DFN chip to the board.  Turns out it wasn't too hard.  I think the key lies in making sure the solder paste goes in the right place to start with.  If you get that right and then carefully place the component on the board you can't go wrong.  From the image below I can see that the joints around the outside are good, I can't however inspect the large thermal pad underneath the chip, but electrically everything is fine, so I have no reason to believe It didn't work either.

Soldered joint
DFN package


The next step was to add 4 header pins to the PCB so it could be plugged into a breadboard.  To hold the board while soldering, the header pins were put into an old piece of vero-board.  This also helps to keep the pins aligned as the heat from soldering can sometimes cause the plastic that holds them to slightly melt.  An old resistor with the leads bent was used to support the board and keep it level.

Soldering a breakout board
With header pins in place

The breakout board was then plugged into a bread board with an ATTINY85 that has code on it to read and output the the temperature data from the MCP9808 to an oscilloscope.  Don't pay too much attention to the LEDs, they're only there for storage.

Prototype on a breadboard
Connected to an ATMEL AVR on a breadboard

After a quick test I could confirm the device was working as expected.  By manually toggling pins on the ATTINY I was able to initiate and read back a temperature sample.  This was done by pulling an enable pin low and then toggling the clock line.  Each transition of the clock line causes a bit of data to appear on the output until all 17 bits are displayed.  The scope display below shows the input to the clock signal at the bottom, while the temperature data that appears on the output is at the top.  The value of the output signal for each transition is as follows.

10000100000111101

The first 2 and last 2 bits are start and stop bits to indicate the device is operating and can be discarded once they've been confirmed to be 10 and 01.  The binary data in green is the temperature data multiplied by 16. Converting the binary to decimal gives 527, dividing that by 16 gives a temperature reading of 32.9375 degrees Celsius.  That reading agreed with the current temperature.

oscilloscope screen
Output of temperature from the AVR

Overall, things went to plan.  The board worked and I was satisfied with the soldered joints.  That being said there's still room for improvement regarding accurate solder paste dispensing and component placement.  I'm investigating a way to place components that should give me higher accuracy and allow higher density designs.  I'd also like to get stencil made for the solder paste.  That could be expensive though, and for a tiny prototype may make using one impractical.  I'd still like to do it, just for the experience.

No comments:

Post a Comment