Back To Basics: X-Ray in SMT lines

This week I want to share something that quietly keeps many electronic boards reliable in the real world. It’s the cool domain of X-Rays. It’s used by most serious companies out there when they do not want to cut corners in their production line and risk product returns later.

On a surface mount line, we mostly use X-Ray right after reflow, once the solder has melted and cooled. X-Rays are used when there are parts with hidden pads, like ball grid array chips(BGA), tiny land grid array(LGA) packages, and power parts with a big pad under the body. For simple resistors, capacitors and visible leads, a good optical inspection is often enough, so do not spend money on X-Ray for that.

When I look at an X-Ray image(I have attached samples from a few projects), I am checking if every hidden pad has the right amount of solder and there are no bridges to the neighbour pads. I look for round and even balls under the BGA, a solid grey area under the thermal pad of a QFN, and no big dark bubbles. As a simple rule of thumb, if more than about 25% of a solder joint is empty, and for a big thermal pad it can be problematic if the empty area is around 50%.

You are technically looking to avoid voids. Voids are gas pockets trapped in molten solder as flux solvents out-gas during reflow and cannot escape before solidification. One issue due to voids is connection with PCB and part is not proper. Let’s say in case of thermal pads if there are large air avoids and lets say the part goes through large temperature cycling on the field, the stuck air expands and contracts. It can crack the part altogether, so it’s a reliability risk.

There are a few X-Ray machine types. Simple 2D gives a quick shadow view and is common in SMT lines. 2.5D allows tilting the view to see hidden joints better. 3D or CT builds a full volume, great for very expensive chips but slower and more costly and not usually inline.

The SMT X-Ray machines these days come with a great deal of automation which analyses the pads and lets the operator know, rather than a line operator going through each component manually.

If you liked the post, Share it with your friends!

Comments are closed.