HomePage > Blog > Knowledge Base > Solder paste inspection (SPI) and its impact on the quality of assembly
Solder paste inspection (SPI) and its impact on the quality of assembly
2934
The last article taught us the first quality control level of PCBA-IQC incoming material inspection. In this article, we will walk through the solder paste inspection and printing process in SMT assembly. The solder paste printing (also called SPI) is considered the first and one of the most important quality control levels in the PCBA production process.
What is solder paste inspection(SPI)
SPI refers to solder paste inspection and the equipment in the PCBA processing industry. The short name for solder paste inspection is SPI.
SPI and AOI tests have some similarities, These two PCBA inspection equipment use optical images to check the PCBA quality. SPI checks the printing volume, flatness, height, volume, area, and height deviation of the solder paste. This is done after solder paste printing ( Sharpening) offset, defect damage, etc calculations.
In the smt manufacturing process, we found that the amount of printed solder paste is related to the seam reliability and quality. Too much or too little will be transformed into unreliable seams. Such results have a great impact on the product quality. According to industry statistics, in all processes of SMT assembly, up to 75% of the defects are caused by poor solder paste printing. Based on these data, it’s pretty obvious that the quality of the solder paste printing process largely solves the quality of the SMT process.
What are the advantages of solder paste inspection?
There are multiple advantages to solder paste inspection when it comes to PCB assembly fabrication.
Reducing bad Solder paste printing:
Solder paste inspection is the first step in the entire patch assembly. SPI is also the first step in quality control in the pcba manufacturing process. The use of SPI solder paste inspection equipment aims to closely monitor the solder paste printing during the solder paste printing process. During the SPI process, the machine detects the poor solder paste printing, such as insufficient solder paste, too much solder paste, etc. The machine can also intercept the bad solder paste at the source. These actions effectively avoid producing bad products caused by solder paste-related errors.
Improve the efficiency of solder paste inspection (SPI):
If the solder paste inspection machine isn’t used, the defective boards will continue to a complete PCB assembly. In such cases, the boards need to go through processes such as planning, dismantling, and board washing. At the same time, there are many 0201 and 01005 sized materials in SMT processing. This clearly causes a long-term repair work and waste of time for manufacturers. The repair time of the defective boards detected by SPI is much shorter. It is easy to repair at the beginning of the process than later on. The boards can be immediately reworked and put into production again, which saves a lot of time and improves production efficiency.
Saving costs:
PCBA manufacturers use SPI machines to detect defects in the early production stages. By doing so, the manufacturers are able to repairing a circuit board in a timely matter. This saves a lot of time and cost for PCBA manufacturers.
Early detection will result in the normal function of the PCBA board, which saves time and most importantly production costs.
Solder paste inspection reliability improvement:
As we mentioned earlier, In SMT chip processing, 75% of the defects caused by poor solder paste printing. SPI can accurately intercept the poor solder paste printing in the SMT process. By doing so, the manufacturer can strictly control the source of the defects which directly results in reducing the number of defects during the PCBA production stage.
Summary
Now the products and components are becoming more and more miniaturized. The components are constantly changing, reducing the volume while improving the performance. Components footprints such as 01005, BGA, CCGA, etc… have higher requirements on the quality of solder paste printing. In the SMT process, SPI has become an indispensable quality control process. Every professional and dedicated PCBA factory needs to equip itself with SPI solder paste testing equipment in SMT assembly.
Citations:
About Author
Leading Printed Circuit Board Assembly(PCBA) Manufacturer
SHOW FULL COLUMNS FROM `db_category` [ RunTime:0.000749s ]
SELECT `id`,`module`,`url`,`catdir` FROM `db_category` WHERE `ismenu` = 1 [ RunTime:0.000369s ]
SHOW FULL COLUMNS FROM `db_member` [ RunTime:0.000689s ]
SHOW FULL COLUMNS FROM `db_page` [ RunTime:0.000593s ]
SHOW FULL COLUMNS FROM `db_article` [ RunTime:0.000570s ]
SELECT `catid` FROM `db_article` WHERE `route` = 'solder_paste_inspection_spi_and_its_impact_on_the_quality_of_assembly' LIMIT 1 [ RunTime:0.000281s ]
SELECT * FROM `db_category` WHERE `id` = 235 LIMIT 1 [ RunTime:0.000268s ]
SELECT `id` FROM `db_article` WHERE `catid` = 235 AND `route` = 'solder_paste_inspection_spi_and_its_impact_on_the_quality_of_assembly' LIMIT 1 [ RunTime:0.000257s ]
SELECT * FROM `db_article` WHERE `id` = 69 LIMIT 1 [ RunTime:0.000257s ]
UPDATE `db_article` SET `hits` = `hits` + 1 WHERE `id` = 69 [ RunTime:0.002510s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `id` = 223 AND `status` = 1 AND `ismenu` = 1 [ RunTime:0.000422s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 223 [ RunTime:0.000261s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 223 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000360s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 224 [ RunTime:0.000207s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 311 [ RunTime:0.000313s ]
SELECT `arrchildid` FROM `db_category` WHERE `id` = 292 LIMIT 1 [ RunTime:0.000240s ]
SHOW FULL COLUMNS FROM `db_case` [ RunTime:0.000778s ]
SELECT `title`,`id`,`thumb`,`url`,`description`,`createtime`,`status` FROM `db_case` WHERE `catid` = 292 ORDER BY `listorder` ASC,`createtime` DESC,`id` DESC LIMIT 8 [ RunTime:0.000417s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 227 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000355s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 243 [ RunTime:0.000229s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 244 [ RunTime:0.000217s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 245 [ RunTime:0.000217s ]
SELECT `arrchildid` FROM `db_category` WHERE `id` = 297 LIMIT 1 [ RunTime:0.000227s ]
SELECT `title`,`id`,`thumb`,`url`,`description`,`createtime`,`status` FROM `db_case` WHERE `catid` = 297 ORDER BY `listorder` ASC,`createtime` DESC,`id` DESC LIMIT 8 [ RunTime:0.000378s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `id` IN (310,229,232) AND `status` = 1 AND `ismenu` = 1 [ RunTime:0.000286s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 229 [ RunTime:0.000203s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 229 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000277s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 230 [ RunTime:0.000198s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 231 [ RunTime:0.000189s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 232 [ RunTime:0.000197s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 232 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000308s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 233 [ RunTime:0.000198s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 234 [ RunTime:0.000189s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 235 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 236 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 320 [ RunTime:0.000186s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 320 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000268s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 322 [ RunTime:0.000196s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 323 [ RunTime:0.000188s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 310 [ RunTime:0.000187s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `id` IN (237,279,253) AND `status` = 1 AND `ismenu` = 1 [ RunTime:0.000268s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 237 [ RunTime:0.000199s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 237 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000287s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 238 [ RunTime:0.000201s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 238 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000324s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 265 [ RunTime:0.000201s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 266 [ RunTime:0.000189s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 267 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 268 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 269 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 270 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 271 [ RunTime:0.000346s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 272 [ RunTime:0.000197s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 273 [ RunTime:0.000188s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 251 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 252 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 253 [ RunTime:0.000188s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 253 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000311s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 254 [ RunTime:0.000202s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 255 [ RunTime:0.000190s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 256 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 257 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 258 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 259 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 260 [ RunTime:0.000194s ]
SHOW FULL COLUMNS FROM `db_banner` [ RunTime:0.000640s ]
SELECT * FROM `db_banner` WHERE `id` = 43 LIMIT 1 [ RunTime:0.000283s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `id` = 232 AND `status` = 1 AND `ismenu` = 1 [ RunTime:0.000244s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 232 [ RunTime:0.000201s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 232 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000306s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 233 [ RunTime:0.000204s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 234 [ RunTime:0.000191s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 235 [ RunTime:0.000197s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 236 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 320 [ RunTime:0.000193s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 320 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000281s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 322 [ RunTime:0.000196s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 323 [ RunTime:0.000189s ]
SELECT `id` FROM `db_article` WHERE `catid` = 235 ORDER BY `listorder` ASC,`createtime` DESC,`id` DESC [ RunTime:0.000479s ]
SELECT `id`,`url`,`title` FROM `db_article` WHERE `id` = 70 LIMIT 1 [ RunTime:0.000208s ]
SELECT `id`,`url`,`title` FROM `db_article` WHERE `id` = 68 LIMIT 1 [ RunTime:0.000191s ]
SELECT `arrchildid` FROM `db_category` WHERE `id` = 235 LIMIT 1 [ RunTime:0.000192s ]
SELECT `title`,`id`,`thumb`,`url`,`description`,`createtime` FROM `db_article` WHERE `catid` = 235 ORDER BY `listorder` ASC,`createtime` DESC,`id` DESC LIMIT 5 [ RunTime:0.000434s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `id` IN (226,237,253,261) AND `status` = 1 AND `ismenu` = 1 [ RunTime:0.000296s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 226 [ RunTime:0.000203s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 226 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000332s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 228 [ RunTime:0.000200s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 228 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000309s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 246 [ RunTime:0.000202s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 246 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000256s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 280 [ RunTime:0.000201s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 247 [ RunTime:0.000191s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 248 [ RunTime:0.000190s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 249 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 250 [ RunTime:0.000189s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 250 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000386s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 284 [ RunTime:0.000199s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 285 [ RunTime:0.000190s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 286 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 288 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 289 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 287 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 290 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 242 [ RunTime:0.000186s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 242 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000287s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 274 [ RunTime:0.000198s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 275 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 276 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 277 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 278 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 281 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 282 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 283 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 237 [ RunTime:0.000186s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 237 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000283s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 238 [ RunTime:0.000202s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 238 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000324s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 265 [ RunTime:0.000199s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 266 [ RunTime:0.000188s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 267 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 268 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 269 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 270 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 271 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 272 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 273 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 251 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 252 [ RunTime:0.000185s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 253 [ RunTime:0.000194s ]
SELECT `id`,`name`,`pid`,`url`,`module` FROM `db_category` WHERE `pid` = 253 AND `status` = 1 AND `ismenu` = 1 ORDER BY `listorder` ASC,`id` ASC [ RunTime:0.000318s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 254 [ RunTime:0.000198s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 255 [ RunTime:0.000189s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 256 [ RunTime:0.000187s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 257 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 258 [ RunTime:0.000186s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 259 [ RunTime:0.000184s ]
SELECT COUNT(*) AS think_count FROM `db_category` WHERE `pid` = 260 [ RunTime:0.000184s ]
SELECT * FROM `db_page` WHERE `catid` = 2 LIMIT 1 [ RunTime:0.000362s ]