PageSourceSearch

https://www.nextpcb.com/blog/free-functional-testing

html nextpcb.com collected 2026-10-02 16:22:03 UTC 81,169 bytes, 1,965 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4	<title>FREE Functional Testing for your Prototype PCBA with HQ NextPCB</title>
5    <meta name="description" content="When it comes to ensuring the quality and reliability of electronic products, PCBA functional testing is an indispensable step. At HQ NextPCB, we recognize the critical role that functional testing plays in the manufacturing process, and we are committed to providing top-notch testing services to our customers." />
6    	<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
7<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no;">
8<meta http-equiv="X-UA-Compatible" content="IE=edge">
9<link rel="canonical" href="https://www.nextpcb.com/blog/free-functional-testing" />
10<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
11<link rel="stylesheet" type="text/css" href="/static/vendor/layui/css/layui.css?ver=f42378">
12<link rel="stylesheet" type="text/css" href="//static.nextpcb.com/css/common.min.css?ver=1f3709">
13<link rel="stylesheet" type="text/css" href="/uploads/font/font.min.css">
14<link rel="stylesheet" type="text/css" href="//static.nextpcb.com/css/css3.0/base.min.css?ver=c58db5">
15<link rel="stylesheet" type="text/css" href="//static.nextpcb.com/css/intlTelInput.css?ver=544363">
16<link rel="stylesheet" type="text/css" href="//static.nextpcb.com/css/common/common.min.css?ver=2bd600">
17
18<!-- DFM 客户端相关的样式 -->
19
20<script type="text/javascript" src="//static.nextpcb.com/js/google-cookie.min.js?ver=382573"></script>
20
21<!-- Google Tag Manager -->
22<script>
vendor: 327 bytes, lines 22-26
22(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
23new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
24j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
25'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
26})(window,document,'script','dataLayer','
26GTM-5SC2KNJ
vendor: 3 bytes, line 26
26');
26</script>
26
27<!-- End Google Tag Manager -->
28
29
30	<link rel="stylesheet" type="text/css" href="//static.nextpcb.com/css/intlTelInput.css?ver=544363">
31	<link rel="stylesheet" type="text/css" href="//static.nextpcb.com/css/blog/index.css?ver=89d89a">
32	
32<script type="application/ld+json">
33		{
34			"@context": "https://schema.org",
35			"@type": "Article",
36			"mainEntityOfPage": {
37				"@type": "WebPage",
38				"@id": "https://www.nextpcb.com/blog/free-functional-testing"
39			},
40			"headline": "FREE Functional Testing for your Prototype PCBA with HQ NextPCB",
41			"description": "When it comes to ensuring the quality and reliability of electronic products, PCBA functional testing is an indispensable step. At HQ NextPCB, we recognize the critical role that functional testing plays in the manufacturing process, and we are committed to providing top-notch testing services to our customers.",
42			"image": [
43				"https://www.nextpcb.com/uploads/images/202407/23/1721728927-1916-sumaDE.png"
44			],
45			"author": {
46				"@type": "Person",
47				"name": "Carmen Zheng"
48			},
49			"publisher": {
50				"@type": "Organization",
51				"name": "NEXTPCB",
52				"logo": {
53					"@type": "ImageObject",
54					"url": "https://static.nextpcb.com/images/newNavIcon/logo2025.svg"
55				}
56			},
57			"datePublished": "2024-07-18T11:33:00+08:00",
58			"dateModified": "2026-05-27T10:30:45+08:00"
59		}
60	</script>
60
61</head>
62<style type="text/css">
63	.quickQuotePannel{
64		position: relative;
65		left: 0;
66		top: 0;
67		padding: 0;
68	}
69	.sharesBox{
70		width: 130px;
71		padding-bottom: 20px;
72		display: inline-block;
73		position: relative;
74		cursor: pointer;
75	}
76	.sharesBox .s_menu{
77		display: none;
78	}
79	.sharesBox:hover .s_menu{
80		display: block;
81	}
82	.sharesBox .s_menu{
83	    top: 32px;
84	    right: 33px;
85	    left: -17px;
86	}
87	i {
88		font-style: italic !important;
89	}
90
91	.index-topad {
92		width: 100%;
93		max-height: 80px;
94		min-height: 60px;
95		overflow: hidden;
96		position: relative;
97		background-color: #f5f5f5;
98	}
99  .index-topad-box {
100    display: block; 
101	}
102	.index-topad-box img {
103		width: 1920px;
104		height: auto;
105		margin-left: -360px; 
106	}
107  .index-topad .icon-close {
108    position: absolute;
109    width: 22px;
110    height: 22px;
111    right: 0;
112    top: 0;
113    text-align: center;
114    line-height: 22px;
115    font-size: 12px;
116    color: #fff;
117    background-color: rgba(0, 0, 0, 0.4);
118    cursor: pointer; 
119		font-style: normal !important;
120	}
121
122	.fixed-blog-nav {
123		position: fixed;
124    top: 48px;
125    width: 880px;
126    box-sizing: border-box;
127    z-index: 1111;
128	}
129	.fixed-blog-title {
130		position: fixed;
131    top: 107px;
132    width: 880px;
133    background: #FFF;
134    z-index: 1122;
135    padding-bottom: 20px;
136    margin-left: -38px;
137		margin-top: 0;
138	}
139
140	.blog-detail-sticky{
141		position: sticky;
142		top: 0;
143		z-index: 22;
144	}
145	.blog_d_content {
146		display: flex;
147		justify-content: space-between;
148		font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
149	}
150
151	.blog_d_content .d_content_left{
152		max-width: 1020px;
153		min-width: 880px;
154		width: auto;
155		flex: 1;
156	}
157
158	.blog_d_content .rContent{
159		max-width: 360px;
160		min-width: 300px;
161		flex: 1;
162		margin-left: 20px;
163	}
164
165	.blog_d_content .rContent .promo-box a {
166		display: block;
167		margin-bottom: 10px;
168	}
169
170	.blog_d_content .rContent .tags {
171		padding: 20px 30px;
172		display: flex;
173		flex-wrap: wrap;
174		gap: 10px;
175	}
176
177	.blog_d_content .rContent .tags .tags-item {
178		border-radius: 2px;
179    padding: 0px 8px;
180    font-size: 12px;
181    display: block;
182    min-width: 92px;
183    text-align: center;
184    box-sizing: border-box;
185    line-height: 24px;
186    background: #f4f4f4;
187		margin: 0;
188	}
189
190	.blog_d_content .rContent .tags .tags-item:hover {
191		color: #c00;
192		text-decoration: underline;
193		cursor: pointer;
194	}
195</style>
196<body>
197	<!-- 首頁第二屏廣告A02 -->
198<!-- 頂部通欄廣告 A03 -->
199		<div class="index-topad">
200		<a  href="https://www.nextpcb.com/news/mid-autumn-national-day-holiday-notice-2026"			title="Superior Reliability, Exceptional Service."
201			target="_bank"
202			onclick="fixedClick(33)"
203			class="wrap index-topad-box"
204		>
205			<img  src="/uploads/images/202609/17/1789640974-06-ACBdGe.webp?v=3.0.3.0626" >
206		</a>       
207		<i class="icoy icon-close" id="closeAd"></i>
208	</div>
209		
210	<style>
211	.new-text-icon-animation {
212		position: absolute;
213    top: 0px;
214    right: 10px;
215    background: #CC0000;
216    font-size: 12px;
217    color: #fff;
218    height: 14px;
219    line-height: 14px;
220    border-radius: 3px;
221    padding: 1px 2px;
222		/* animation: movepoint 2s infinite; */
223	}
224	.new-text-icon-animation::before {
225		content: '';
226		width: 0;
227		height: 0;
228		border-left: 3px solid transparent;
229		border-right: 3px solid transparent;
230		border-top: 3px solid #CC0000;
231		position: absolute;
232		left: 10px;
233		bottom: -2px;
234	}
235	.nav-sub-new-icon {
236		position: relative;
237		top: -8px;
238		right: auto;
239		margin-left: 4px;
240		display: inline-block;
241		vertical-align: middle;
242	}
243	.nav-sub-new-icon::before {
244		border: none;
245	}
246	@keyframes movepoint {
247		25% {
248			top: 0px
249		}
250		100% {
251			top: 3px
252		}
253	}
254	.new-icon-animation {
255		animation: movepoint 2s infinite;
256	}
257
258	/* toolnav SVG 图标尺寸 */
259	.yui-nav-product-menu-col dt svg {
260		width: 28px;
261		height: 28px;
262		display: block;
263	}
264
265	@keyframes sub-movepoint {
266		25% {
267			top: -4px
268		}
269		100% {
270			top: -8px
271		}
272	}
273	.sub-new-icon-animation {
274		animation: sub-movepoint 2s infinite;
275	}
276
277	.sponsorship-wrap {
278		position: relative;
279	}
280
281	.sponsorship-wrap .sponsorship-sub-menu {
282		display: block;
283		padding-left: 20px;
284	}
285
286	.sponsorship-wrap:hover .sponsorship-sub-menu {
287		display: block;
288	}
289
290	.home-title {
291		position: absolute;
292		left: 50%;
293		top: 50%;
294		transform: translate(-50%, -50%);
295		font-size: 14px;
296		font-weight: 600;
297		color: #333;
298		margin: 0;
299		white-space: nowrap;
300		line-height: 1.4;
301	}
302</style>
303<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 303-304
303
304<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
304GTM-5SC2KNJ
vendor: 87 bytes, lines 304-305
304"
305    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
306<!-- End Google Tag Manager (noscript) -->
307
308<div class="topBarNew bg-f2 blog-detail-sticky">
309		<div class="new-wrap yui-top topMsgBox clear" style="position: relative;">
310		<a href="/" class="logo" style="position: relative;">
311						<img class="fl" height="46" src="//static.nextpcb.com/images/newNavIcon/logo2025.svg" alt="NextPCB" />
312					</a>
313		<div class="topMsg yui-top-area vlm-wrap">
314			<!-- 优惠券 -->
315			<a href="/member/finance/coupon" class="icon-btn">
316				<div class="icon-coupon-new" style="width:32px; height:32px;"></div>
317							</a>
318
319			<!-- 购物车 -->
320			<a href="/order/cart/type/1" class="icon-btn">
321				<div class="icon-img icon-cart-new"></div>
322							</a>
323
324			<!-- 消息 -->
325			
326			<!-- 帮助中心 -->
327			<a href="/helpcenter" target="_blank" class="icon-btn">
328				<div class="icon-img icon-help-new"></div>
329			</a>
330
331			<!-- 日语站上线后同步修改 语言切换-->
332			<span class="hover-box  hover-box-bg google_translate_element_box icon-btn">
333				<form action="/ajax/language" method="post" enctype="multipart/form-data" id="form-language">
334				<i class="iti-flag vlm us icon-country"></i> 
335				<div class="hover-sub">
336					<a href="javascript:tablanguage('ja-jp');" class="hover-sub-item ani-str"><i class="iti-flag vlm  jp"></i> 日本語</a>
337					<a href="javascript:tablanguage('en-us');" class="hover-sub-item ani-str"> <i class="iti-flag vlm  us"></i> English</a>
338				</div>
339				<input type="hidden" name="lang" id="lang_code"  value="" />
340				<input type="hidden" name="redirect" value="https://www.nextpcb.com/blog/free-functional-testing" />
341			</form>
342			</span>
343
344			<!-- 账号 -->
345			<span id="ajax_Login" class="yui-top-login  my_login hover-box icon-btn">
346				<div class="icon-img icon-user-new "></div>
347				<div class="myCenter hover-sub top-user-menu">
348										<div class="yui-top-login-info f-ct" id="ajax_Login_no">
349						<span class="yui-top-login  vlm my_noLogin">
350							<a class="vlm lbtn-base lbtn lbtn-sm lbtn-rssm" href="https://passport.nextpcb.com?reurl=https://www.nextpcb.com/blog/free-functional-testing">Login</a>
351							<a class="vlm lbtn lbtn-hollow lbtn-sm  lbtn-hollow-base lbt
351n-rsfew" href="https://passport.nextpcb.com/register?reurl=https://www.nextpcb.com/blog/free-functional-testing">Sign Up</a>
352						</span>
353					</div>
354					<dl id="ajax_Login_yes" class="yui-top-login-info yui-top-login-user f-ct" style="display: none;">
355						<dt>
356							<img class="u-avast-base" src="//static.nextpcb.com/images/newNavIcon/new_user.png?v=3.0.3.0626" />
357						</dt>
358						<dd>
359							<p class="yui-top-login-id s_id f-base">
360								ID:							</p>
361							<p class="fc6 s_name yui-top-login-name f-base"><em class="fc-main">Hi,</em></p>
362						</dd>
363					</dl>
364										<div class="yui-top-login-list">
365						<a class="yui-top-login-item" href="/member">
366							<i class="icoy icon-my ani-str"></i>
367							<span class="hover-sub-item ani-str">My NextPCB</span>
368						</a>
369						<a class="yui-top-login-item" href="/order/cart/type/1">
370							<i class="icoy icon-cart ani-str"></i>
371							<span class="hover-sub-item ani-str">My Shopping Cart</span>
372						</a>
373						<a class="yui-top-login-item" href="/order/orderPacket">
374							<i class="icoy icon-mlall ani-str"></i>
375							<span class="hover-sub-item ani-str"> All Orders</span>
376						</a>
377						<a class="yui-top-login-item" href="/member/finance/coupon">
378							<i class="icoy icon-mlcoupon ani-str"></i>
379							<span class="hover-sub-item ani-str"> My Coupon</span>
380						</a>
381						<a class="yui-top-login-item" href="/member/setting/profile">
382							<i class="icoy icon-myinfo ani-str"></i>
383							<span class="hover-sub-item ani-str">My Profile</span>
384						</a>
385						<a class="yui-top-login-item" href="/member/setting/address">
386							<i class="icoy icon-address ani-str"></i>
387							<span class="hover-sub-item ani-str">My Shipping Address</span>
388						</a>
389					</div>
390										<div id="ajax_loginout" class="yui-top-login-out" style="display: none;">
391						<a data-domain="https://apipassport.hqonline.com" class="lbtn lbtn-rssm lbtn-hollow-base lbt
391n-hollow lbtn-sm" onclick="logout(this)">Sign Out</a>
392					</div>
393										
394				</div>
395			</span>
396
397		</div>
398	</div>
399		<div class="yui-nav-height">
400		<div class="nav yui-nav">
401			<div class="new-wrap clear">
402				<ul class="fl-lt pst-rlt nav-ul">
403					<span class="navTagMove yui-nav-hover ani-str"></span>
404					<li class="yui-nav-item "><a href="/" style="padding-left: 0;">Home</a></li>
405					<li data-nav="blog" class="yui-nav-item hover-box hover-main ">
406						<a href="/pcb-quote">PCB Quote						<span class="nav_down_box"></span></a>
407						<div class="more_select  hover-sub ani-str">
408							<a class="hover-sub-item" href="/pcb-quote"><span>Standard PCB</span></a>
409							<a class="hover-sub-item" href="/advanced-pcb-quote">
410								<span>Advanced PCB</span>
411							</a>
412						</div>
413					</li>
414
415										<li class="yui-nav-item hover-box hover-main ">
416						<a href="/pcb-assembly-services">PCB Assembly							<!-- <i class="new-text-icon-animation">New</i> -->
417							<span class="nav_down_box"></span>
418						</a>
419						<div class="more_select  hover-sub ani-str">
420							<a class="hover-sub-item" href="/rev0-pcba">Rev 0 PCBA<i class="new-text-icon-animation nav-sub-new-icon">New</i></a>
421							<a class="hover-sub-item" href="/pcb-assembly-quote">PCB Assembly Quote</a>
422							<a class="hover-sub-item" href="/pcb-assembly-services">PCB Assembly Service</a>
423							<a class="hover-sub-item" href="/pcb-assembly-capabilities">PCB Assembly Capability</a>
424							<a class="hover-sub-item" href="/pcb-stencil">PCB Stencil Service</a>
425							<a class="hover-sub-item" href="/bom-service">BOM Service</a>
426							<a class="hover-sub-item" href="/blog/free-functional-testing">Free Functional Testing</a>
427						</div>
428					</li>
429										<li class="yui-nav-item hover-box hover-main">
430						<a class="hqonline-href" href="https://www.hqonline.com" target="_blank">
431							Components Sourcing							<!-- <i class="new-text-icon-animation" style="right: 6px;">Hot</i> -->
432						</a>
433						<div class="more_select  hover-sub ani-str">
434							<a class="hover-sub-item" href="https://www.hqonline.com" target="_blank">HQ Online Components</a>
435							<a class="hover-sub-item" href="https://www.hqonline.com/bom-tool" target="_blank">BOM Tool</a>
436						</div>
437					</li>
438										<li class="yui-nav-item hover-box hover-main">
439						<a href="https://www.nextpcb.com/cable-assembly-services">Cable Assembly							<span class="nav_down_box"></span>
440						</a>
441						<div class="more_select  hover-sub ani-str">
442							<a class="hover-sub-item" href="/cable-assembly-quote">Cable Assembly Quote</a>
443							<a class="hover-sub-item" href="https://www.nextpcb.com/cable-assembly-services">Cable Assembly Services</a>
444							<a class="hover-sub-item" href="https://www.nextpcb.com/service-type/cable-assembly-wire-harness#cable-assembly-wire-harness-capabilities">Cable Assembly Capabilities</a>
445						</div>
446					</li>
447					<li class="yui-nav-item hover-box hover-main">
448						<a href="/free-online-gerber-viewer.html" target="_blank">
449							Gerber Viewer | DFM							<span class="nav_down_box"></span>
450							<!-- <i class="new-text-icon-animation" style="right: 2px;">Free</i> -->
451						</a>
452						<div class="more_select  hover-sub ani-str">
453							<a class="hover-sub-item" href="/free-online-gerber-viewer.html" target="_blank">Online Gerber Viewer</a>
454							<a class="hover-sub-item" href="/dfm" target="_blank">HQDFM Design Analysis Software</a>
455							<a class="hover-sub-item" href="/dfm-user-manual" target="_blank">HQDFM User Manual</a>
456						</div>
457					</li>
458					<li class="yui-nav-item yui-nav-product hover-box ">
459						<a>Capabilities & Services<span class="nav_down_box"></span></a>
460						<!-- <i class="yui-nav-corner">N</i> -->
461						<div class="more_select product_sublink hover-sub hover-main ani-str" style="left: -639px;box-sizing: border-box; width: 1200px;">
462	<div class="product_sublink-box yui-nav-product-box">
463
464		<div class="yui-nav-product-menu">
465			<div class="yui-nav-product-menu-col">
466				<dl>
467					<dt>
468						<img src="//static.nextpcb.com/images/newNavIcon/product/col1-1.webp" loading="lazy">
469						<b class="title">NextPCB Capabilities</b>
470					</dt>
471					<dd>
472						<a href="/pcb-capabilities">Standard PCB Capabilities</a>
473						<a href="https://www.nextpcb.com/advanced-pcb-manufacturing-capabilities">Advanced PCB Capabilities</a>
474						<a href="/assembly-capabilities">PCB Assembly Capabilities</a>
475					</dd> 			
476				</dl>
477				<div class="hr-line"></div>
478				<dl>
479					<dt>
480						<img src="//static.nextpcb.com/images/newNavIcon/product/col1-1.webp" loading="lazy">
481						<b class="title">Capabilities by PCB Types</b>
482					</dt>
483					<dd>
484						<a href="/pcb-product">PCB Product Showsase </a>
485						<a href="/pcb-type/rigid-pcbs">Rigid PCBs</a>
486						<a href="/pcb-type/rogers-pcbs">Rogers PCB</a>
487						<a href="/pcb-type/high-tg-pcb">High-TG PCBs</a>
488						<a href="/pcb-type/Thick-copper-PCB">Heavy Copper PCBs</a>
489						<a href="/pcb-type/hdi-pcb">HDI PCBs</a>
490						<a href="/pcb-type/high-speed-pcb">High-Speed PCBs</a>
491						<a href="/pcb-type/high-frequency-pcb">High-Frequency PCBs</a>
492						<a href="/pcb-type/aluminum-pcb">Aluminum PCBs</a>
493						<a href="/pcb-type/copper-core-pcb">Copper-Core PCBs</a>
494						<a href="/pcb-type/ceramic-pcb">Ceramic PCBs</a>
495						<a href="/pcb-type/flexible-pcb">Flex PCBs</a>
496						<a href="/pcb-type/rigid-flex-pcb">Rigid-Flex PCBs</a>
497					</dd> 			
498				</dl>
499			</div>
500			<div class="yui-nav-product-menu-col">
501				<dl>
502					<dt>
503						<img src="//static.nextpcb.com/images/newNavIcon/product/col1-1.webp" loading="lazy">
504						<b class="title">Printed Circuit Boards</b>
505					</dt>
506					<dd>
507						<a href="/pcb-prototype">PCB Prototype</a>
508						<a href="https://www.nextpcb.com/pcb-applicable-industries">Applicable Industries</a>
509						<a href="/blog/pcb-manufacturing-comprehensive-guide">PCB Manufacturing Process</a>
510						<a href="https://www.nextpcb.com/advanced-pcb-materials">Advanced PCB Materials</a>
511					</dd> 			
512				</dl>
513				<div class="hr-line"></div>
514				<dl>
515					<dt>
516						<img src="//static.nextpcb.com/images/newNavIcon/product/col2-1.webp" loading="lazy">
517						<b class="title">PCB Assembly</b>
518					</dt>
519					<dd>
520						<a href="/pcb-assembly-services">PCB Assembly Service</a>
521						<a href="/pcb-stencil">PCB Stencil Service</a>
522						<a href="/blog/what-are-files-requirements-for-pcba">File Requirements</a>
523						<a href="/blog/pcb-assembly-guide">PCB Assembly Guide</a>
524						<a href="/blog/a-comprehensive-guide-to-ic-programming-in-pcb-assembly">IC Programming</a>
525						<a href="/blog/what-is-dfa-in-design-for-manufacturing-and-assembly">PCBA DFA</a>
526						<a href="/pcb-vocabulary/bga-assembly-capabilities">BGA Assembly Capabilities</a>
527						<a href="/blog/how-pcb-laser-marking-and-coding-works">Laser Labeling/Coding</a>
528					</dd> 			
529				</dl>
530				<div class="hr-line"></div>
531				<dl>
532					<dt>
533						<img src="//static.nextpcb.com/images/newNavIcon/product/col2-2.webp" loading="lazy">
534						<b class="title">Layer Buildup</b>
535					</dt>
536					<dd>
537						<a href="/pcb-vocabulary/layer-stack-up">Layer Stack-up</a>
538						<a href="/pcb-vocabulary/prepregs-cores-foils" >Prepregs, cores, foils</a>
539					</dd> 			
540				</dl>
541				<div class="hr-line"></div>
542				<dl>
543					<dt>
544						<img src="//static.nextpcb.com/images/newNavIcon/product/col3-3.webp" loading="lazy">
545						<b class="title">SMD-Stencils</b>
546					</dt>
547					<dd>
548						<a href="/pcb-vocabulary/laser-stencil">Laser Stencil</a>
549					</dd> 			
550				</dl>
551			</div>
552			<div class="yui-nav-product-menu-col">
553				<dl>
554					<dt>
555						<img src="//static.nextpcb.com/images/newNavIcon/product/col3-1.webp" loading="lazy">
556						<b class="title">PCB Design-Aid & Layout</b>
557					</dt>
558					<dd>
559						<a href="/pcb-vocabulary/layer-orientation">Layer Orientation</a>
560						<a href="/pcb-vocabulary/bga" >BGA</a>
561						<a href="/pcb-vocabulary/pcb-price-composition" >PCB Price Composition</a>
562						<a href="/pcb-vocabulary/printed-circuit-board-materials" >Printed Circuit Board Materials</a>
563						<a href="/pcb-vocabulary/pcb-design-layout" >PCB Design & Layout</a>
564						<a href="/pcb-vocabulary/panel-creation" >Panel Creation</a>
565						<a href="/pcb-vocabulary/gold-fingers" >Gold Fingers</a>
566					</dd> 			
567				</dl>
568				<div class="hr-line"></div>
569				<dl>
570					<dt>
571						<img src="//static.nextpcb.com/images/newNavIcon/product/col3-2.webp" loading="lazy">
572						<b class="title">Mechanics</b>
573					</dt>
574					<dd>
575						<a href="/pcb-vocabulary/v-scoring">V-Scoring</a>
576						<a href="/pcb-vocabulary/back-drilling" >Back drilling</a>
577						<a href="/pcb-vocabulary/pcb-milling" >PCB milling</a>
578					</dd> 			
579				</dl>
580			</div>
581			<div class="yui-nav-product-menu-col">
582				<dl>
583					<dt>
584						<img src="//static.nextpcb.com/images/newNavIcon/product/col4-1.webp" loading="lazy">
585						<b class="title">Quality</b>
586					</dt>
587					<dd>
588						<a href="/pcb-vocabulary/e-test" >E-Test</a>
589						<a href="/blog/automated-x-ray-inspection" >X-RAY</a>
590						<a href="/pcb-vocabulary/design-rule-check" >Design Rule Check</a>
591						<a href="/pcb-vocabulary/a-o-i" >A.O.I</a>
592					</dd> 			
593				</dl>
594				<div class="hr-line"></div>
595				<dl>
596					<dt>
597						<img src="//static.nextpcb.com/images/newNavIcon/product/col4-2.webp" loading="lazy">
598						<b class="title">Drills & Throughplating</b>
599					</dt>
600					<dd>
601						<a href="/pcb-vocabulary/via-in-pad">Via-in-pad</a>
602						<a href="/pcb-vocabulary/blind-buried-vias" >Blind & Buried Vias</a>
603						<a href="/pcb-vocabulary/annular-rings" >Annular Rings</a>
604						<a href="/pcb-vocabulary/side-plating" >Side plating</a>
605						<a href="/pcb-vocabulary/plated-half-holes" >Plated Half-holes/Castellated Holes</a>
606						<a href="/pcb-vocabulary/plated-through-slots" >Plated-through Slots</a>
607					</dd> 			
608				</dl>
609				<div class="hr-line"></div>
610				<dl>
611					<dt>
612						<img src="//static.nextpcb.com/images/newNavIcon/product/col4-3.webp" loading="lazy">
613						<b class="title">Factory & Certificate</b>
614					</dt>
615					<dd>
616						<a href="/pcb-factory-VR-visiting/" style="position: relative;">PCB Factory VR Visiting
617							<img style="position: absolute;top: 4px; right: 49px;" src="//static.nextpcb.com/images/quote/quoteTag.png?v=4" loading="lazy">
618						</a>
619						<a href="/assembly-factory-show" >PCB Assembly Factory Show</a>
620						<a href="/certificate" >Certificate</a>
621					</dd> 			
622				</dl>
623			</div>
624		</div>
625
626		<div class="yui-nav-product-adv">
627			<a href="/pcb-quote">
628				<div class="yui-nav-product-adv-box">
629					<div class="img-box">
630						<img src="//static.nextpcb.com/images/newNavIcon/product/pcb.webp" loading="lazy">
631					</div>
632					<div class="pcb-text-box">
633						<b>New users: <em>$<strong>30 off</strong></em></b>
634						<p>24 hours Fast Turnaround</p>
635						<span>100% E-test & AOI</span>
636					</div>
637				</div>
638			</a>
639			<a href="/pcb-assembly-quote">
640				<div class="yui-nav-product-adv-box" style="margin-top: 15px;">
641					<div class="img-box" style="margin-top: 9px;">
642						<img src="//static.nextpcb.com/images/newNavIcon/product/pcba.webp" loading="lazy">
643					</div>
644					<div class="pcba-text-box">
645						<b>Free for 10pcs</b>
646						<b style="margin-top: 6px;"><em>50%OFF</em> for 100pcs</b>
647						<span>TURNKEY PCB ASSEMBLY</span>
648					</div>
649				</div>
650			</a>
651		</div>
652	</div>
653</div>					</li>
654					<li class="yui-nav-item yui-nav-tool hover-box hover-main  active">
655						<a>Tools & Resources</a>
656						<div class="more_select tool_sublink hover-sub hover-main ani-str" style="left: 50%; transform: translateX(-50%); box-sizing: border-box;">
657	<div class="tool_sublink-box yui-nav-product-box">
658
659		<div class="yui-nav-product-menu">
660			<div class="yui-nav-product-menu-col" style="width: 280px;">
661				<dl>
662					<dt>
663						<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="5" y="2" width="18" height="24" rx="2" stroke="#333" stroke-width="1.5"/><line x1="9" y1="7" x2="19" y2="7" stroke="#333" stroke-width="1.5"/><circle cx="9.5" cy="12.5" r="1" fill="#333"/><circle cx="14" cy="12.5" r="1" fill="#333"/><circle cx="18.5" cy="12.5" r="1" fill="#333"/><circle cx="9.5" cy="17" r="1" fill="#333"/><circle cx="14" cy="17" r="1" fill="#333"/><circle cx="18.5" cy="17" r="1" fill="#333"/><circle cx="9.5" cy="21.5" r="1" fill="#333"/><circle cx="14" cy="21.5" r="1" fill="#333"/><circle cx="18.5" cy="21.5" r="1" fill="#333"/></svg>
664						<b class="title">Calculators</b>
665					</dt>
666					<dd>
667						<a href="https://www.nextpcb.com/pcb-engineering-tools">All PCB Engineering Tools</a>
668						<a href="/pcb-impedance-calculator">PCB Impedance Calculator</a>
669						<a href="https://www.nextpcb.com/pcb-trace-width-calculator">PCB Trace Width Calculator</a>
670						<a href="https://www.nextpcb.com/5-band-resistor-color-code-calculator">5-Band Resistor Color Code Calculator</a>
671						<a href="https://www.nextpcb.com/pcb-via-current-calculator">PCB Via Current Calculator</a>
672						<a href="https://www.nextpcb.com/pcb-via-parasitic-capacitance-calculator">PCB Via Parasitic Capacitance Calculator</a>
673						<a href="https://www.nextpcb.com/pcb-via-parasitic-inductance-calculator">PCB Via Parasitic Inductance Calculator</a>
674						<a href="https://www.nextpcb.com/microstrip-impedance-calculator">Microstrip Impedance Calculator</a>
675						<a href="https://www.nextpcb.com/stripline-impedance-calculator">Stripline Impedance Calculator</a>
676						<a href="https://www.nextpcb.com/differential-microstrip-impedance-calculator">Differential Microstrip Impedance Calculator</a>
677						<a href="https://www.nextpcb.com/coplanar-waveguide-calculator">Coplanar Waveguide Calculator</a>
678						<a href="https://www.nextpcb.com/skin-effect-depth-calculator">Skin Effect Depth Calculator</a>
679						<a href="https://www.nextpcb.com/ic-thermal-copper-area-calculator">IC Thermal Copper Area Calculator</a>
680					</dd>
681				</dl>
682			</div>
683			<div class="yui-nav-product-menu-col">
684				<dl>
685					<dt>
686						<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16 2H7C6.46957 2 5.96086 2.21071 5.58579 2.58579C5.21071 2.96086 5 3.46957 5 4V24C5 24.5304 5.21071 25.0391 5.58579 25.4142C5.96086 25.7893 6.46957 26 7 26H21C21.5304 26 22.0391 25.7893 22.4142 25.4142C22.7893 25.0391 23 24.5304 23 24V9L16 2Z" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><polyline points="16,2 16,9 23,9" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><line x1="18" y1="15" x2="10" y2="15" stroke="#333" stroke-width="1.5" stroke-linecap="round"/><line x1="18" y1="19" x2="10" y2="19" stroke="#333" stroke-width="1.5" stroke-linecap="round"/><polyline points="12,11 11,11 10,11" stroke="#333" stroke-width="1.5" stroke-linecap="round"/></svg>
687						<b class="title">Design Guides</b>
688					</dt>
689					<dd>
690						<a href="https://www.nextpcb.com/impedance-control-stackups">PCB Stackups & Impedance</a>
691						<a href="https://erc.nextpcb.com">AI Electrical Rule Check</a>
692					</dd>
693				</dl>
694			</div>
695			<div class="yui-nav-product-menu-col">
696				<dl>
697					<dt>
698						<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><rect x="8" y="8" width="12" height="12" rx="1.5" stroke="#333" stroke-width="1.5"/><line x1="8" y1="12" x2="4" y2="12" stroke="#333" stroke-width="1.5"/><line x1="8" y1="16" x2="4" y2="16" stroke="#333" stroke-width="1.5"/><line x1="20" y1="12" x2="24" y2="12" stroke="#333" stroke-width="1.5"/><line x1="20" y1="16" x2="24" y2="16" stroke="#333" stroke-width="1.5"/><line x1="12" y1="8" x2="12" y2="4" stroke="#333" stroke-width="1.5"/><line x1="16" y1="8" x2="16" y2="4" stroke="#333" stroke-width="1.5"/><line x1="12" y1="20" x2="12" y2="24" stroke="#333" stroke-width="1.5"/><line x1="16" y1="20" x2="16" y2="24" stroke="#333" stroke-width="1.5"/></svg>
699						<b class="title">KiCad Tools</b>
700					</dt>
701					<dd>
702						<a href="https://www.nextpcb.com/kicad-hub">KiCad Resource Hub</a>
703						<a href="/kicad-version-converter">KiCad Version Converter</a>
704					</dd>
705				</dl>
706			</div>
707			<div class="yui-nav-product-menu-col">
708				<dl>
709					<dt>
710						<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5 22C5 20.3431 6.34315 19 8 19H23" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
710<path d="M8 4H23V24H8C6.34315 24 5 22.6569 5 21V7C5 5.34315 6.34315 4 8 4Z" stroke="#333" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
711						<b class="title">Learn</b>
712					</dt>
713					<dd>
714						<a href="/blog">Blog</a>
715						<a href="/news">News</a>
716					</dd>
717				</dl>
718			</div>
719		</div>
720	</div>
721</div>
722
723					</li>
724					<li class="yui-nav-item hover-box hover-main ">
725						<a href="/about-nextpcb">About Us<span class="nav_down_box"></span></a>
726						<!-- <img style="position: absolute;top: 2px; right: -6px;" src="//static.nextpcb.com/images/index-nav-3dvr.gif?v=4"> -->
727						<div class="more_select hover-sub ani-str">
728							<a class="hover-sub-item" href="/about-nextpcb">About Us</a>
729							<div class="sponsorship-wrap">
730								<div class="hover-sub-item sponsorship-toggle">Sponsorships</div>
731								<div class="sponsorship-sub-menu">
732									<a class="hover-sub-item" href="https://www.nextpcb.com/creator-support" target="_blank">- Next Creator Fund</a>
733									<a class="hover-sub-item" href="/free-pcba-prototypes-nextpcb-accelerator">- NextPCB Accelerator Program</a>
734								</div>
735							</div>
736							<a class="hover-sub-item" href="/contactus">Contact Us</a>
737							<a class="hover-sub-item" href="/why-us">Why Us</a>
738							<a class="hover-sub-item" href="/feedback">Feedback</a>
739							<!-- <a class="hover-sub-item" href="/pcb-factory-VR-visiting" target="_blank" style="position: relative;">PCB Factory VR Visiting								<img style="position: absolute;top: 4px; right: 6px;" src="//static.nextpcb.com/images/quote/quoteTag.png?v=4"></a> -->
740							<a class="hover-sub-item" href="/helpcenter">Help Center</a>
741							<a class="hover-sub-item" href="/payment">Payment Methods</a>
742							<!-- <a class="hover-sub-item" href="/assembly-factory-show">PCB Assembly Factory Show</a> -->
743							<a class="hover-sub-item" href="/shipment">Shipping Methods</a>
744							<!-- <a class="hover-sub-item" href="/certificate">Certificate</a> -->
745							<!-- <a href="/shipment">Certified Systems</a> -->
746						</div>
747					</li>
748									</ul>
749				<!-- <a class="yui-nav-btn fl-gt uline-hover" href="/pcb-quote">Quote Now</a> -->
750			</div>
751		</div>
752	</div>
753</div>
754
755<div class="yui-nav-fixed rightNav new-right-nav" id="getHqdomain" data-passportdomain="https://apipassport.hqonline.com" data-domain="https://www.hqonline.com">
756	<ul>
757		<li class="goTop">
758			<div class="icon-item go-top"></div>	
759		</li>
760		<li>
761			<a  href="/order/cart/type/1">
762				<div class="icon-item cart"></div>	
763				<span class="cart-num slide-cart-num">0</span>
764			</a>
765		</li>
766		<!-- <li>
767			<a class="mailto_support " href="mailto:[email protected]">
768				<div class="icon-item email"></div>	
769			</a>
770		</li> -->
771		<li class="items hover-box">
772			<div class="icon-item help"></div>	
773			<dl class="hover-sub lay-table">
774									<dt class="lay-table-item">
775						<img src="//mobile.nextpcb.com/static/mobile/img/icon/avast.svg?v=20220609" class="u-avast-base">
776					</dt>
777					<dd class="lay-table-item" style="padding-left: 12px;">
778						<p class="f-nowrap hover-sub-item"><i class="icoy vlm f-few icon-saleman"></i> &nbsp; <strong>Support Team</strong></p>
779						<p class="f-nowrap hover-sub-item"><i class="icoy vlm f-few icon-email"></i> &nbsp; <a href="mailto:[email protected]">[email protected]</a></p>
780						<p class="f-nowrap hover-sub-item"><i class="icoy vlm f-few icon-tel"></i> &nbsp; <a class="tel_83643663" href="tel:0086-755-83643663">0086-755-8364 3663</a></p>
781						<p class="f-nowrap hover-sub-item"><i class="icoy vlm f-few icon-whatsapp"></i> &nbsp; <a>+86 13622941920</a></p>
782					</dd>
783							</dl>
784		</li>
785		<li class="items hover-box">
786			<a class="mailto_support" href="mailto:[email protected]">
787				<div class="icon-item email"></div>	
788			</a>
789			<div class="hover-sub">
790								<p>Feedback:</p>
791				<a href="mailto:[email protected]"  class="mailto_support f-nowrap  hover-sub-item">
792					<i class="icoy  vlm f-few icon-email"></i>
793					&nbsp;
794					<span>[email protected]</span>
795				</a>
796			</div>
797		</li>
798  </ul>
799</div>
800
801<a class="contact-us-new" target="_blank" href="/contactus">
802	<span>Contact Us</span>
803	<img src="//static.nextpcb.com/images/common/icons/contact.svg">
804</a>
805<script type="text/javascript" src="//static.nextpcb.com/js/js3.0/lang/en-us.min.js?ver=ffabeb"></script>
805	
806	<div class="new-wrap">
807		<div class="blog_d_content clear" style="padding-bottom: 50px;">
808			<div class="d_content_left fl">
809				<div id="blogDetailNav" class="tagNav" style="display: block; text-align: left;">
810					<a href="/blog" style="color: #333;">Blog</a>
811					<span class="fc-dis"> / FREE Functional Testing for your Prototype PCBA with HQ NextPCB</span>
812				</div>
813
814				<div class="contentMsg">
815					<h1 id="blogDetailTitle" class="contentTitle tc">
816						FREE Functional Testing for your Prototype PCBA with HQ NextPCB					</h1>
817					<div class="contentScore tc fc9">
818						<span>Posted: July, 2024</span>
819						<span style="margin-left: 40px;">Last Updated: May, 2026</span>
820						<span class="writer">Writer: Carmen Zheng </span>
821						<span class="media-list">
822							Share: 
823							<a rel="nofollow" href="https://bit.ly/2Lfhqq9" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao1.png" loading="lazy" alt="NEXTPCB Official youtube" /></a>
824							<a rel="nofollow" href="https://bit.ly/2ZgGZAR" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao2.png" loading="lazy" alt="NEXTPCB Official Facefook" /></a>
825							<a rel="nofollow" href="https://twitter.com/HQ_NextPCB" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/icon-x.svg" width="26" height="26" loading="lazy" alt="NEXTPCB Official Twitter" /></a>
826							<a rel="nofollow" href="https://bit.ly/2ZegCeO" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao4.png" loading="lazy" alt="NEXTPCB Official Instagram" /></a>
827							<a rel="nofollow" href="https://www.linkedin.com/company/nextpcb" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao5.png" loading="lazy" alt="NEXTPCB Official Linkedin" /></a>
828							<a rel="nofollow" href="https://www.tiktok.com/@nextpcbofficial " target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tiktok.png" loading="lazy" width="26" style="border-radius: 4px;" alt="NEXTPCB Official Tiktok" /></a>
829							<a rel="nofollow" href=" https://bsky.app/profile/nextpcb.bsky.social" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/bksy.svg" loading="lazy" width="26" alt="NEXTPCB Official Bksy" /></a>
830						</span>
831					</div>
832					<div class="contentText">
833						<p>
834<style type="text/css">/**/
835body {
836    background: #fff;
837}
838.contentMsg p {
839    margin-bottom: 1.3rem;
840    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
841    font-size: 1.125rem;
842    color: #000;
843    line-height: 1.8;
844}
845.contentMsg li {
846    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
847    font-size: 1.125rem;
848    color: #000;
849    line-height: 1.8;
850    margin-bottom: 10px;
851}
852
853.contentText img {
854    margin-top: 0px !important;
855    margin-bottom: 0px !important;
856		border: 1px solid #e5e5e5;
857}
858
859  h1,h2,h3,h4 {
860    margin-bottom: 15px;
861    color: black;
862    margin-top: 15px;
863    line-height: 1.4;
864    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
865}
866.d_content_left .contentMsg .contentTitle {
867    font-size: 38px;
868    font-weight: 800;
869    line-height: 1.2;
870}
871  h1 {
872    font-size: 38px;
873    font-weight: 800;
874}
875 h2 {
876    font-size: 2rem;
877    font-weight: 800;
878}
879 h3 {
880    font-size: 1.55rem;
881    font-weight: 600;
882}
883 h4 {
884    font-size: 1.35rem;
885    font-weight: 500;
886}
887.contentMsg a {
888  color: #cc0000;
889}
890
891.contentMsg a:hover {
892  text-decoration: underline;
893  color: #cc0000;
894}
895  
896  .contentMsg ul, ol {
897    margin-bottom: 12px;
898}
899  .contentMsg ul li:before {
900    content: "•";
901    color: #ff7a18;
902    font-weight: 900;
903    margin-right: 8px;
904}
905  .contentMsg table td {
906    padding: 5px;
907    border: 1px black solid;
908}
909.btn {
910    font-family: 'Oswald', sans-serif;
911    font-size: 15px;
912    line-height: 1em;
913    font-weight: 400;
914    color: #fff !important;
915    background-color: #154396;
916    text-decoration: underline;
917    display: inline-block;
918    padding: 20px 25px;
919    text-transform: uppercase;
920    position: relative;
921    border: 2px solid #1A59A0;
922    border-radius: 100px;
923}
924.btn:hover {
925    background-color: #0a1f34;
926}
927/*隐藏面包屑*/
928.tagNav {
929    display: none;
930}
931/*隐藏作者信息栏*/
932.d_content_left .contentMsg .contentScore {
933    display: none;
934}
935.fixed-blog-title {
936    position: static; /*解除固定标题*/
937    width: 880px;
938    background: #FFF;
939    padding-bottom: 20px;
940    margin-left: -38px;
941    margin-top: 0;
942}
943/*H1设置下边框*/
944.d_content_left .contentMsg .contentTitle {
945    border-bottom: 1px solid rgb(227, 227, 227, 0.35);
946    padding-bottom: 2rem;
947}
948/*右侧文章推荐Bullet List颜色*/
949.posts ul li:before {
950    background: #ff7a18;
951}
952.posts ul li a:hover {
953    color: #cc0000;
954}
955
956/*右侧栏Sticky和行高*/
957.rContent {
958    position: -webkit-sticky;
959    position: sticky;
960    top: 67px;
961}
962.posts ul li {
963    line-height: 32px;
964}
965
966/*table-of-content*/
967.table-of-content li{
968     margin-bottom: 0 !important;
969}
970.table-of-content ul{
971     margin-bottom: 0 !important;
972}
973.table-of-content a {
974     color: #1a73e8;
975}
976.table-of-content a:hover {
977     text-decoration: underline;
978}
979.table-of-content li:before {
980     content: "•" !important;
981     color: grey  !important;
982}
983/*右侧报价字体颜色调为红色*/
984.rContent .quickQuotePannel .quoteNav li.active {
985    color: #cc0000;
986    border-color: #e3e3e3;
987}
988/*底部链接和button的颜色*/
989.linkBox p a {
990    color: #cc0000;
991}
992.actionBox .feedbackBox .submit_feedback {
993    background: #8e1eb4;
994}
995</style>
996</p>
997
998<p>When it comes to ensuring the quality and reliability of electronic products, PCBA functional testing is an indispensable step. At HQ NextPCB, we recognize the critical role that functional testing plays in the manufacturing process, and we are committed to ensuring our clients achieve the best yield and reliability possible. In this blog, we will delve into the essentials of PCBA functional testing, why it is necessary, the types of testing services we offer, and how we can help you verify your products effectively.</p>
999
1000<h3 style="text-align: center;"><a href="https://www.nextpcb.com" target=""><img src="https://www.nextpcb.com/uploads/images/202407/23/1721732083-8166-uNyGcr.png" style="width: 800px; height: 199px;" /></a></h3>
1001
1002<p style="text-align: center;"><strong>Now you can get USD <span style="color:#c0392b;">$200 off</span> NextPCB&#39;s professional turnkey PCB assembly service. <a href="https://www.nextpcb.com/blog/200-Off-PCB-Assembly" target="_blank"><span style="color:#c0392b;">Click here to learn more</span></a></strong></p>
1003
1004<h3><br />
1005<strong>What is PCBA Functional Testing?</strong></h3>
1006
1007<p>PCBA (Printed Circuit Board Assembly) functional testing involves subjecting assembled circuit boards to a simulated operational environment. The goal is to make the board operate under various controlled conditions and obtain feedback that verifies functionality. Simply put, it is a series of tests conducted on assembled PCBs to ensure they meet design requirements and usage needs. </p>
1008
1009<p>Functional testing may be combined with other tests such as ICT and firmware flashing to improve production efficiency.</p>
1010
1011<h3><br />
1012<strong>Why is PCBA Functional Testing Important?</strong></h3>
1013
1014<p>Functional testing has its merits over other testing methods for several reasons.</p>
1015
1016<p><strong>Ensures Functionality and Compliance</strong>: A device may appear electrically sound, but if it does not possess the required functionality, then it is useless. Functional testing is a black-box testing method that looks for required outputs from an end-user perspective without looking at the internal structure. Functional testing can prevent defective units from reaching the market and help highlight problematic areas in the manufacturing process.</p>
1017
1018<p><strong>Verifying Production Processes</strong>: Functional testing verifies the entire turnkey process when handing PCB assembly over to a contract manufacturer, especially if they procure the components on your behalf. Major errors such as incorrect polarity or part value, fake parts, or PCB shorts can be identified instantly, which can then be c
1018orrected at the assembly facility, saving valuable time.</p>
1019
1020<p>Functional testing plans, in combination with other tests, can be designed to achieve different goals depending on the quantity and type of device to be tested:</p>
1021
1022<p><strong>    1. Functional Testing on one device</strong>: Testing one device is enough to verify PCB manufacture, procurement and placement e.g. simple power on/off test for prototypes. Further testing on a handful of devices can help debug problems.</p>
1023
1024<p><strong>    2. Mass production random sampling</strong>: To periodically monitor manufacturing processes during the entire production run.</p>
1025
1026<p><strong>    3. 100% small batch testing</strong>: Verifies all devices function as intended. Valuable for high-value devices and where failures are not acceptable.</p>
1027
1028<h3><br />
1029<strong>Types of Functional Testing supported by HQ NextPCB</strong></h3>
1030
1031<p>HQ NextPCB has the expertise and equipment to perform various functional tests to ensure your PCB assemblies meet your high standards, including:</p>
1032
1033<ul>
1034	<li><strong>Electrical Connectivity</strong>: Verify the electrical performance, including voltage, current, and power consumption.</li>
1035	<li><strong>Communications</strong>: Confirm the reliability and correctness of communication interfaces (e.g., UART, I2C, SPI, USB, HDMI, Ethernet).</li>
1036	<li><strong>Signal Integrity</strong>: Signal integrity and timing accuracy.</li>
1037	<li><strong>Memory</strong>: Test the read and write functionality of RAM and flash memory.</li>
1038	<li><strong>Functional Module Test</strong>: Evaluate the operation of various modules like buttons, LED indicators, and sensors.</li>
1039	<li><strong>Clock Test</strong>: Check the frequency and stability of clock signals.</li>
1040	<li><strong>Fault Detection and Fault Tolerance Test</strong>: Simulate fault conditions to test the board&#39;s fault tolerance.</li>
1041	<li><strong>Software Functional Test</strong>: Assess the functionality and performance of embedded software or firmware.</li>
1042</ul>
1043
1044<h4><strong>Simple Sample Test Instructions</strong></h4>
1045
1046<p>Order Quantity: 100</p>
1047
1048<p>Test Quantity: 100</p>
1049
1050<p>Required Equipment: 5V power supply</p>
1051
1052<p><strong>Test Instructions:</strong></p>
1053
1054<p>Apply 5V power to terminals - +</p>
1055
1056<p>Pass Condition: All LEDs light up with equal brightness</p>
1057
1058<p>Fail Condition: One or more LEDs do not light up or have different brightness</p>
1059
1060<h4><strong>Industrial Meter with Firmware Programming Sample Test Instructions</strong></h4>
1061
1062<p>Order Quantity: 20</p>
1063
1064<p>Test Quantity: 20</p>
1065
1066<p>Required Files: hqsample_a_0_2.elf (firmware)</p>
1067
1068<p>Required Equipment: Computer, STM32 programmer, relay coil driver, pulse generator and power supply.</p>
1069
1070<p><b>Test Instructions:</b></p>
1071
1072<p>1. Apply 24 VDC power to the GND and + IN terminal and make sure display powers and then program unit.</p>
1073
1074<p>Pass Condition: Display powers on and device programmed successfully</p>
1075
1076<p>2. Activate the relay coil driver using the push buttons and verify that 24 VDC power is available on connections GND and +FM. </p>
1077
1078<p>Pass Condition: 24 VDC output</p>
1079
1080<p>3. Then apply approximately 209 hertz square wave on terminal TRM and verify the display shows 100.  </p>
1081
1082<p>Pass Condition: Display shows 100</p>
1083
1084<p>4. Verify that there is a square wave pulse output showing on PUL - + terminals</p>
1085
1086<p>Pass Condition: Square wave output</p>
1087
1088<p>Test report available upon request</p>
1089
1090<p>PCBA Functional Test Sample:</p>
1091
1092<p><img alt="PCB Assembly functional Test sample" src="https://www.nextpcb.com/uploads/images/202605/27/1779848787-7627-TonXDb.png" style="width: 900px; height: 805px;" /></p>
1093
1094<h3><strong>How does HQ NextPCB provide Functional Testing services?</strong></h3>
1095
1096<p>To deliver effective functional testing, we follow a structured process:</p>
1097
1098<article>
1099<h2 style="text-align: center;"><img height="719" src="https://www.nextpcb.com/uploads/images/202407/23/1721729250-1149-XFmSVK.png" width="586" /></h2>
1100
1101<h3><br />
1102<strong>Free Functional Testing for Prototypes</strong></h3>
1103
1104<p>PCBA functional testing is a vital part of the electronics manufacturing process, and HQ NextPCB is here to supp
1104ort you every step of the way. Our comprehensive testing services help you ensure the quality, reliability, and performance of your products, ultimately leading to higher customer satisfaction and reduced costs.</p>
1105
1106<p>To help our customers better verify their products during the prototype stage, HQ NextPCB offers free functional testing for prototypes for up to 10 devices. This service verifies the turnkey process and ensures that your prototypes are functional before they leave the factory, saving you time and money on the route to final production.</p>
1107
1108<p>Contact us at <a href="mailto:[email protected]">[email protected]</a> today to learn more about our functional testing services and how we can assist you in achieving your quality goals.</p>
1109
1110<p style="text-align: center;"><span style="font-size:16px;"><a class="my-button" href="https://www.nextpcb.com/pcb-assembly-quote" style="color: #ffffff;">Quote Now</a></span>
1111<style type="text/css">.my-button {
1112  display: inline-block;
1113  padding: 10px 50px;
1114  font-size: 16px; 
1115  text-align: center;
1116  text-decoration: none;
1117  background-color: #DB1A1A;
1118  color: #fffff0; 
1119  border: none; 
1120  border-radius: 50px; 
1121  font-weight: bold; 
1122  cursor: pointer; 
1123  box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3); 
1124  transition: background-color 0.3s ease, transform 0.3s ease;
1125}
1126
1127.my-button:hover {
1128  background-color: #990c12; 
1129  transform: scale(1.05); 
1130}
1131</style>
1132</p>
1133
1134<p style="text-align: center;"> </p>
1135
1136<h3><strong>More links:</strong> </h3>
1137
1138<p><a href="https://www.nextpcb.com/blog/200-Off-PCB-Assembly" target="_blank"><span style="color:#c0392b;">Save $200 on Professional Turnkey PCB Assembly from HQ NextPCB</span></a> (Blog)<br />
1139<a href="https://www.nextpcb.com/blog/new-automated-pcb-assembly-quote-system" target="_blank"><span style="color:#c0392b;">New Automated PCB Assembly Quotation System - Order in Just a Few Steps!</span></a> (Blog)<br />
1140<a href="https://www.nextpcb.com/blog/how-to-order-pcb-and-pcba-from-nextpcb" target="_blank"><span style="color:#c0392b;"><u>How to Order PCB & PCBA from NextPCB?</u></span></a> (Blog)<br />
1141<a href="https://support.nextpcb.com/portal/en/kb/articles/how-to-place-a-pcba-order-28-6-2023" target="_blank"><span style="color:#c0392b;"><u>How to place a PCBA order?</u></span></a> (FAQ)<br />
1142<a href="https://support.nextpcb.com/portal/en/kb/articles/how-long-do-pcba-order-take-27-6-2023" target="_blank"><span style="color:#c0392b;"><u>How long is the lead time for PCB Assembly (PCBA) orders?</u></span></a> (Blog)<br />
1143<a href="https://support.nextpcb.com/portal/en/kb/pcb-assembly-service-faq" target="_blank"><span style="color:#c0392b;"><u>PCB Assembly (PCBA) FAQ</u></span></a><span style="color:#c0392b;"> </span></p>
1144</article>
1145
1146						<style type="text/css">
1147							.contentMsg p, .contentMsg li, h1,h2,h3,h4, .contentMsg span, .contentMsg a {
1148								font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important;
1149							}
1150						</style>
1151					</div>
1152					<div class="linkBox">
1153   						<p>Still, need help? Contact Us: <a class="mailto_support" href="mailto:[email protected]">[email protected]</a></p>
1154    					<p>Need a PCB or PCBA quote? <a href="/pcb-quote">Quote now</a></p>
1155   					</div>
1156					<div class="tags">
1157                            					</div>
1158					<div class="actionBtn action_box">
1159						<span class="mr40"><i class="icon watch"></i>51604 </span>
1160						<span class="mr40" style="cursor:pointer;" onclick="add_like(1266)"><i id="like_icon_1266" class="icon praise"></i><like id="article_like_1266">9</like> </span>
1161						<span class="mr40"><i class="icon feedback"></i>0 </span>
1162						<span class="mr40 sharesBox"><i class="icon share"></i>1
1163							<span class="s_menu">
1164                                <a href="" target="_blank">
1165                                    <i></i>
1166                                    Facebook
1167                                </a>
1168                                <a href="" target="_blank">
1169                                    <i></i>
1170                                    Twitter
1171                                </a>
1172                                <a href="" target="_blank">
1173                                    <i></i>
1174                                    Linked In
1175                                </a>
1176                            </span>
1177						</span>
1178					</div>
1179				</div>
1180				<div class="actionBox">
1181					<!-- <form action="/Blog/comment" method="post"> -->
1182						<input type="hidden" value="1266" name="aid">
1183						<div class="feedbackBox">
1184							<textarea placeholder="Please enter your content" name="comments"></textarea>
1185							<button class="submit_feedback" data-id="1266">Comments</button>
1186						</div>
1187					<!-- </form> -->
1188				</div>
1189
1190				<div class="commentList">
1191					<ul>
1192											</ul>
1193				</div>
1194							</div>
1195			<div class="rContent">
1196				<div class="promo-box">
1197					<a href="/pcb-quote" target="_blank">
1198						<img src="//static.nextpcb.com/images/blog/detail-adv1.png" style="width: 100%;">
1199					</a>
1200
1201					<a href="/blog/200-Off-PCB-Assembly" target="_blank">
1202						<img src="//static.nextpcb.com/images/blog/detail-adv2.jpg" style="width: 100%;">
1203					</a>
1204				</div>
1205				
1206				<div  class="posts">
1207					<h6>Recommended Article:</h6>
1208					<ul>
1209						                                <li><a title="Lead-Free Solder Materials: Alloy Guide &amp; How to Choose | NextPCB" href="/blog/lead-free-solder-material-guide">Lead-Free Solder Materials: Alloy Guide &amp; How to Choose | NextPCB</a></li>
1210                            						                                <li><a title="Feedback Amplifiers and Oscillator Circuits: A Practical Guide" href="/blog/feedback-amplifiers-and-oscillator-circuits-guide">Feedback Amplifiers and Oscillator Circuits: A Practical Guide</a></li>
1211                            						                                <li><a title="Transistor Biasing and Amplifier Design: BJT &amp; FET Explained" href="/blog/transistor-biasing-and-amplifier-design-guide">Transistor Biasing and Amplifier Design: BJT &amp; FET Explained</a></li>
1212                            						                                <li><a title="Electronic Devices and Circuits: Complete Guide | NextPCB" href="/blog/electronic-devices-and-circuits-guide">Electronic Devices and Circuits: Complete Guide | NextPCB</a></li>
1213                            						                                <li><a title="PCB Missing Silk Screen: Causes, Risks &amp; How to Prevent It | NextPCB" href="/blog/pcb-missing-silk-screen">PCB Missing Silk Screen: Causes, Risks &amp; How to Prevent It | NextPCB</a></li>
1214                            											</ul>
1215				</div>
1216			</div>
1217		</div>
1218		<div id="blogDetail">
1219			<login-win v-model="loginwin" @loginsuccess="loginSuccess"></login-win>
1219
1220		</div>
1221	</div>
1222
1223	<footer class="yui-foot">
1224	<div class="wrap">
1225		<div class="yui-foot-lay yui-foot-linklist">
1226			<dl class="yui-foot-lay-item">
1227				<dt>Services</dt>
1228				<dd>
1229					<a href="/pcb-quote">Standard PCB Quote</a>
1230					<a href="/pcb-capabilities">Standard PCB Capabilities</a>
1231					<a href="/advanced-pcb-quote">Advanced PCB Quote</a>
1232					<a href="https://www.nextpcb.com/advanced-pcb-manufacturing-capabilities">Advanced PCB Capabilities</a>
1233					<a href="/pcb-assembly-quote">PCB Assembly Quote</a>
1234					<a href="/pcb-assembly-capabilities">PCB Assembly Capabilities </a>
1235					<a href="/pcb-stencil-quote">PCB Stencil Quote</a>					
1236				</dd>
1237			</dl>
1238			<dl class="yui-foot-lay-item">
1239				<dt>Tools & Resources</dt>
1240				<dd>
1241					<a href="/dfm">HQDFM - DFM Tool</a>
1242					<a href="/free-online-gerber-viewer.html">Online Gerber Viewer</a>
1243					<a href="/pcb-impedance-calculator">PCB Impedance Calculator</a>
1244					<a href="https://www.nextpcb.com/impedance-control-stackups">PCB Stackups & Impedance</a>
1245					<a href="https://www.nextpcb.com/kicad-hub">KiCad Resource Hub</a>
1246					<a href="/kicad-download">KiCad Download</a>
1247					<a href="/pcb-glossary">PCB Glossary</a>
1248					<a href="/blog/">Blog</a>
1249					<a href="/free-pcba-prototypes-nextpcb-accelerator">NextPCB Accelerator Program</a>
1250				</dd>
1251			</dl>
1252			<dl class="yui-foot-lay-item">
1253				<dt><a href="/about-nextpcb">About NextPCB</a></dt>
1254				<dd>
1255					<a href="/about-nextpcb">About Us</a>
1256					<a href="/why-us">Why Us</a>
1257					<a href="/payment">Payment Methods</a>
1258					<!-- <a href="/pcb-factory-VR-visiting">PCB Assembly Factory Show</a> -->
1259					<a href="/shipment">Shipping Methods</a>
1260					<a href="/certificate">Certificate</a>
1261					<!-- <a href="/blog">Blog</a> -->
1262				</dd>
1263
1264				<dt style="margin-top: 20px;">Distributor</dt>
1265				<dd>
1266					<a href="https://www.utsource.net/" rel="nofollow" target="_blank">UTSOURCE</a>
1267				</dd>
1268			</dl>
1269			<dl class="yui-foot-lay-item">
1270				<dt>Support</dt>
1271				<dd>
1272					<a href="/helpcenter">Help Center</a>
1273					<a href="/terms-of-service">Terms of Service</a>
1274					<a href="/privacy-policy">Privacy Policy</a>
1275					<a href="/return-policy">Return Policy</a>
1276				</dd>
1277			</dl>
1278		</div>
1279		<div class="yui-foot-lay yui-foot-imgflags">
1280			<dl class="yui-foot-lay-item">
1281				<dt>Payment Methods</dt>
1282				<dd>
1283					<img src="//static.nextpcb.com/images/img30/foot-payment.png" loading="lazy">
1284				</dd>
1285			</dl>
1286			<dl class="yui-foot-lay-item">
1287				<dt>Shipping Methods</dt>
1288				<dd><img src="//static.nextpcb.com/images/img30/foot-flagimg2.png" loading="lazy"></dd>
1289			</dl>
1290			<dl class="yui-foot-lay-item">
1291				<dt>Certificate</dt>
1292				<dd><a href="/certificate"><img src="//static.nextpcb.com/images/img30/foot-flagimg3.png" loading="lazy"></a></dd>
1293			</dl>
1294			<dl class="yui-foot-lay-item">
1295				<dt>Social Media</dt>
1296				<dd class="media-list">
1297					<a rel="nofollow" href="https://bit.ly/2Lfhqq9" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao1.png" loading="lazy" alt="NEXTPCB Official youtube" /></a>
1298					<a rel="nofollow" href="https://bit.ly/2ZgGZAR" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao2.png" loading="lazy" alt="NEXTPCB Official Facefook" /></a>
1299					<a rel="nofollow" href="https://twitter.com/HQ_NextPCB" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/icon-x.svg" width="26" height="26" loading="lazy" alt="NEXTPCB Official Twitter" /></a>
1300					<a rel="nofollow" href="https://bit.ly/2ZegCeO" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao4.png" loading="lazy" alt="NEXTPCB Official Instagram" /></a>
1301					<a rel="nofollow" href="https://www.linkedin.com/company/nextpcb" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tubiao5.png" loading="lazy" alt="NEXTPCB Official Linkedin" /></a>
1302					<a rel="nofollow" href="https://www.tiktok.com/@nextpcbofficial " target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/tiktok.png" loading="lazy" width="26" style="border-radius: 4px;" alt="NEXTPCB Official Tiktok" /></a>
1303					<a rel="nofollow" href=" https://bsky.app/profile/nextpcb.bsky.social" target="_blank"><img src="//static.nextpcb.com/images/newNavIcon/bksy.svg" loading="lazy" width="26" alt="NEXTPCB Official Bksy" /></a>
1304				</dd>
1305			</dl>
1306		</div>
1307		<ul class="yui-foot-lay yui-foot-submit">
1308			<li class="yui-foot-lay-item" style="display: flex; justify-content: center;">
1309				<div style="display: flex; justify-content: space-between;">
1310					<a href="/" style="display: flex; align-items: center;">
1311						<img src="//static.nextpcb.com/images/newNavIcon/logo2025_w.svg" loading="lazy" height="38" style="margin-right: 20px; height: 38px;">
1312					</a>
1313					<a href="/dfm.html" target="_blank">
1314						<img src="//static.nextpcb.com/images/img30/hqdfm-white-new.svg" loading="lazy" width="140" style="margin-top: 4px; margin-right: 20px;" >
1315					</a>
1316					<a class="hqonline-href" href="https://www.hqonline.com" target="_blank">
1317						<img src="//static.nextpcb.com/images/img30/hqonline-white.svg" loading="lazy" width="160">
1318					</a>
1319				</div>
1320			</li>
1321		</ul>
1322	</div>
1323	<div class="yui-foot-copyright">
1324		<p> ©2026 NEXTPCB All Rights Reserved</a></p>
1325	</div>
1326</footer>
1327<!----$Request.module-- home--$Request.controller-- Quote --$Request.action online -->
1328<script>var loginState = 'logout', accountId = '0';</script>
vendor: 1 bytes, line 1328
1328
1329<script type="text/javascript" src="//static.nextpcb.com/vendor/layui/layui.all.js?ver=11fec4"></script>
vendor: 1 bytes, line 1329
1329
1330<script type="text/javascript" src="//static.nextpcb.com/vendor/hello/hello.all.min.js?ver=bb8c35"></script>
vendor: 1 bytes, line 1330
1330
1331<script type="text/javascript" src="//static.nextpcb.com/js/jquery-1.8.3.min.js?ver=3576a6"></script>
vendor: 1 bytes, line 1331
1331
1332<script type="text/javascript" src="//static.nextpcb.com/vendor/dialog.js?ver=185454"></script>
vendor: 1 bytes, line 1332
1332
1333<script type="text/javascript" src="//static.nextpcb.com/js/plugins.min.js?ver=b26615"></script>
vendor: 1 bytes, line 1333
1333
1334<script type="text/javascript" src="//static.nextpcb.com/js/common.min.js?ver=bba603"></script>
vendor: 1 bytes, line 1334
1334
1335<script type="text/javascript" src="//static.nextpcb.com/js/js3.0/base.min.js?ver=6baa32"></script>
1335
1336
1337<script>
1338    var shareasaleSSCID=shareasaleGetParameterByName("sscid");
1339    function shareasaleSetCookie(e,a,r,s,t){
1340        if(e&&a){
1341            var o,n=s?"; path="+s:"",i=t?"; domain="+t:"",l="";r&&((o=new Date).setTime(o.getTime()+r),l="; expires="+o.toUTCString()),document.cookie=e+"="+a+l+n+i
1342        }
1343    }
1344    function shareasaleGetParameterByName(e,a){
1345        a||(a=window.location.href),e=e.replace(/[\[\]]/g,"\\$&");
1346        var r=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(a);return r?r[2]?decodeURIComponent(r[2].replace(/\+/g," ")):"":null
1347    }
1348    shareasaleSSCID&&shareasaleSetCookie("shareasaleSSCID",shareasaleSSCID,94670778e4,"/");
1349</script>
1349
1350
1351<!-- 
1351<script type="text/javascript" src="//static.nextpcb.com/js/lazyload.js?ver=b0d895"></script>
1351 -->
1352<script>
1353// 确保DOM完全加载后再初始化懒加载
1354// $(document).ready(function() {
1355//     // 初始化图片懒加载
1356//     $('img[data-src]').lazyload({
1357//         threshold: 200, // 提前200px加载
1358//         onImageLoadSuccess: function() {
1359//             // 图片加载成功时的处理
1360//             // console.log('Image loaded successfully');
1361//         },
1362//         onImageLoadError: function() {
1363//             // 图片加载失败时的处理
1364//             console.log('Image load error');
1365//         }
1366//     });
1367// });
1368</script>
1368
1369	
1369<script type="text/x-template" id='loginwin'>
1370<div class="winout-box" v-if="value">
1371	<input style="display: none;" type="text" v-model="value">
1372	<section class="signup vlm-wrap winout-out" style="height: auto;">
1373		<div class="signup-box vlm" style="width: 400px; height: 450px;">
1374				<div class="title" style="background: none; position: absolute; width: 100%; padding: 0; border: 0;margin: 0;">
1375					<i class="icoy icon-close fc-dis" @click="close"></i>
1376				</div>
1377			<div class="signup-gt lay-lg-gt" style="width: 100%; padding-top: 30px;">
1378				<h3 class="signup-gt-title" v-show="active===0">
1379					<strong class="fc-main mr30 login-title">Login</strong>
1380				</h3>
1381				<p>Please log in to the account you created at HQ Online or NextPCB.</p>
1382				<div class="signup-form" v-show="active === 0" style="padding-top: 10px;">
1383					<label class="form-input-wrap lay-table-box"
1384						:class="{inputError:loginmsg.emailempty || loginmsg.email
1385						}">
1386						<i class="form-input-ltico lay-table-item icoy icon-email"></i>
1387						<div class="lay-table-item">
1388							<input @input="loginInput($event,'email')" v-model="loginparam.email" class="form-input" type="email" placeholder="Email address or member ID" name="email"  value="" autocomplete="off" />
1389						</div>
1390					</label>
1391					<p class="inputErrorTips" v-if="loginmsg.emailempty">{{loginmsg.emailempty}}</p>
1392					<p class="inputErrorTips" v-if="loginmsg.email">{{loginmsg.email}}</p>
1393					<label class="form-input-wrap lay-table-box"
1394						:class="{inputError:loginmsg.passwordempty || loginmsg.password}">
1395						<i class="form-input-ltico lay-table-item icoy icon-pass"></i>
1396						<div class="lay-table-item">
1397							<input v-if="loginpassshow" @input="loginInput($event,'password')" v-model="loginparam.password" class="showpassword form-input" type="password" placeholder="Password" name="password"  value="" />
1398							<input v-if="!loginpassshow" @input="loginInput($event,'password')" v-model="loginparam.password" class="showpassword form-input" type="text" placeholder="Password" name=""  value=""  autocomplete="off"/>
1399						</div>
1400						<i class="lay-table-item form-input-gtico icoy  f-baselge"
1401							:class="{'icon-hide':loginpassshow,'icon-show':!loginpassshow}"
1402							@click="loginpassshow=!loginpassshow"
1403							style="cursor: pointer;"></i>
1404					</label>
1405					<p class="inputErrorTips" v-if="loginmsg.passwordempty" v-text="loginmsg.passwordempty"></p>
1406					<p class="inputErrorTips" v-if="loginmsg.password" v-text="loginmsg.password"></p>
1407					<div class="form-input-code">
1408						<div class="form-input-code-img fl-gt">
1409							<img  width="108" height="34" :src="codesrc" class="verifyImg" alt="captcha" @click="changeCode" />
1410						</div>
1411						<label class="form-input-wrap  lay-table-box"
1412						:class="{inputError:loginmsg.verifyCode}">
1413							<i class="form-input-ltico lay-table-item  icoy icon-safe"></i>
1414							<div class="lay-table-item">
1415								<input  @input="loginInput($event,'verifyCode')" v-model="loginparam.verifyCode" class="form-input" type="text" placeholder="Verification code" name="code"  />
1416							</div>
1417						</label>
1418					</div>
1419					<p class="inputErrorTips" v-if="loginmsg.verifyCode" v-text="loginmsg.verifyCode"></p>
1420					<div class="signup-form-submit">
1421						<span class="signup-form-submit-lt fl-lt">
1422							<div class="signup-form-submit-cover"></div>
1423							<button  @click="loginSubmit" class="lbtn-disbold active" :class="{'lbtn-hover':!logindis}" :disabled="logindis" type="submit">Login</button>
1424						</span>
1425						<span class="signup-form-submit-gt fl-lt" style="width: 35%;">
1426							<em>or</em>
1427							<a target="_blank" href="/member/oauth/google"><img width="36" height="36" alt="" src="//static.nextpcb.com/images/google.png" ></a>
1428							<!-- <a target="_blank" href="/member/oauth/facebook"><img width="36" height="36" alt="" src="//static.nextpcb.com/images/facebook.png" ></a> -->
1429						</span>
1430					</div>
1431					<p style="clear: both; padding-top: 20px;"><a class="fc-gnr uline-hover-main"  :href="`${ssoNextpcb}/forgot-password`">Forgot password?</a></p>
1432					<p style="clear: both;t ext-align: right; text-align:right;"><a class="uline-hover-main" style="color: #C00;" :href="`${ssoNextpcb}/register`">Create Account ></a></p>
1433				</div>
1434
1435			</div>
1436		</div>
1437	</section>
1438	<div class="winout-bg ani-str"></div>
1439</div>
1440</script>
1440
1441<style type="text/css">
1442	.winout-box .signup-form-submit-cover{
1443		position: absolute;
1444		top: 0;
1445		left: 0;
1446		bottom: 0;
1447		right: 0;
1448		cursor: pointer;
1449	}
1450	.winout-box .signup-form-submit-lt {
1451		position: relative;
1452	}
1453	.winout-box .form-input-wrap {
1454		font-size: 14px;
1455	}
1456	.winout-box .form-input-wrap.inputFocus {
1457		border-color: #c00;
1458	}
1459	.winout-box .inputErrorTips {
1460		font-size: 12px;
1461	}
1462	input:-internal-autofill-previewed,
1463	input:-internal-autofill-selected {
1464			/* -webkit-text-fill-color: #333; */
1465			transition: background-color 5000s ease-out 0.5s;
1466	}
1467	.login-title{
1468		font-size: 24px;
1469		color: #c00;
1470	}
1471	.lbtn-hover{
1472		background-color: #c00;
1473	}
1474	.lbtn-hover:hover{
1475		background-color: #990C12;
1476	}
1477	i {
1478		font-style: normal !important;
1479	}
1480</style>
1481<script type="text/javascript">
1482  const jsonpRequest = function (url,query,resolve) {
1483		var domain = window.location.host;
1484			if (!url) {
1485					console.error('Please input url')
1486					return;
1487			}
1488			window.jsonCallBack = (result) => {
1489					if (typeof resolve === "function") {
1490						return resolve(result)
1491					}
1492			}
1493			var JSONP = document.createElement("script");
1494			JSONP.type = "text/javascript";
1495			var qStr = "";
1496			query.domain = domain;
1497			for (var k in query) {
1498					qStr += "&" + k + "=" + query[k];
1499			}
1500			JSONP.src = url + '?callback=jsonCallBack' + qStr;
1501			document.getElementsByTagName("head")[0].appendChild(JSONP);
1502			setTimeout(() => {
1503					document.getElementsByTagName("head")[0].removeChild(JSONP)
1504			}, 500);
1505	}
1506	function LoginWin(){
1507		function setForm(vm){
1508			$(vm.$el).find("input").focus(function(e){
1509				var father = $(this).closest(".form-input-wrap");
1510					if(father.hasClass("inputError")){
1511						father.removeClass("inputFocus");
1512					}else{
1513						father.addClass("inputFocus");
1514					}
1515			}).blur(function(){
1516				$(this).closest(".form-input-wrap").removeClass("inputFocus");
1517			});
1518		}
1519		var vueData = {
1520			//{"status":200,"url":"\/me_member","data":{"member_id":8305,"member_sn":"E8212A","email":"[email protected]"}}
1521			loginUrl: "/member/login/dologin",
1522			//{"status":200,"url":"\/member","data":{"member_id":"8306","member_sn":"E8213A","email":"[email protected]"}}
1523			//signupUrl: "/member/register/singup",
1524			active: 0,
1525			msg: {
1526				email: "Email format you entered is incorrect.",//邮箱规则
1527				//confirmpassword: "Please enter 6 - 16 characters (A-Z/a-z, 0-9 only)",//
1528				emailempty: "Please enter your email address.", //邮箱为空
1529				password: "Please enter 6 - 16 characters (A-Z/a-z, 0-9 only)",//密码规则
1530				passwordempty: "Please enter your password", //密码为空
1531				//confirmpasswordempty: "Please comfirm your password", //再次输入密码为空
1532				//passwordsame: "The second entered password is inconsistent.",//两次密码是否一致
1533				verifyCode: "Please enter the verification code." //验证码是否为空
1534			},
1535			loginmsg:{},
1536			loginok: {
1537				email: false,//邮箱规则
1538				emailempty: false, //邮箱为空
1539				password: false,//密码规则
1540				passwordempty: false, //密码为空
1541				verifyCode: false //验证码是否为空
1542			},
1543			rule: {
1544				email: /^([a-zA-Z0-9]+[_|\_|\-|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\-|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/,
1545				password: /^.*(?=.{6,16})(?=.*[a-zA-Z0-9]).*$/,
1546				empty: /\S/
1547			},
1548			loginpassshow: true,
1549			loginparam: {
1550				dopost: "login",
1551				fmdo: "login",
1552				email: "",
1553				password: "",
1554				verifyCode: "",
1555				codeId: ""
1556			},
1557			codesrc:'/member/register/verify',
1558			registerUrl: '/register',
1559			ssoLoginUrl: "https://apipassport.hqonline.com",
1560			ssoCodeUrl: "https://apipassport.hqonline.com/auth/code",
1561			ssoHqonline: "https://passport.hqonline.com",
1562			ssoNextpcb: "https://passport.nextpcb.com",
1563			isLogin: false
1564		}
1565		return {
1566			props:["value","dft","keepHead","dfm"],
1567			data: function(){
1568				return vueData;
1569			},
1570			mounted: function(){
1571				setForm(this);
1572				if(this.dfm == 1){
1573					this.registerUrl = "/nextdfm-signup.html"
1574				}
1575				this.changeCode()
1576			},
1577			computed: {
1578				logindis: function(){
1579					var isDis = false;
1580					for(var k in this.loginok){
1581						if(!this.loginok[k]){
1582							isDis = true;
1583						}
1584					}
1585					return isDis;
1586				}
1587			},
1588			methods: {
1589				setHeadLogin: function(resp){
1590					$("#ajax_Login_no").hide();
1591					$("#ajax_loginout").show();
1592					$("#ajax_Login_yes").show();
1593					//设置登录
1594					$("#ajax_Login_name").text(resp.email);
1595					
1596					$("#ajax_Login_cart_count").text(resp.cartCount);
1597					//设置登录数据
1598					var box = $("#ajax_Login_yes");
1599						box.find(".yui-top-login-id").text("ID:"+resp.memberSn);
1600						box.find(".yui-top-login-name em").text("Hi,"+resp.userName);
1601						box.find("dt img").attr("src",resp.avatar||"//static.nextpcb.com/images/newNavIcon/new_user.png")
1602					
1603				},
1604				changeCode: function(){
1605					$.get(this.ssoCodeUrl, (res) => {
1606						if (res.retCode == 200) {
1607							this.codesrc = `data:image/png;base64,${res.result.image}`
1608							this.loginparam.codeId = res.result.id
1609						}
1610					})
1611				},
1612				countRule: function(arg){
1613					if(arg instanceof Object){
1614						var key = arg.key,
1615							val = arg.val,
1616							lgok = arg.type+'ok',
1617							lgmsg = arg.type+'msg',
1618							vm = this;
1619						if(arg.rule && arg.rule instanceof Array){
1620							arg.rule.forEach(function(v){
1621								for(var k in vm[lgok]){
1622									if(k === v){
1623										if(vm.rule[v].test(val)){
1624											vm[lgok][k] = true;
1625											Vue.set(vm[lgmsg],k,false )
1626										}else{
1627											vm[lgok][k] = false;
1628											Vue.set(vm[lgmsg],k,vm.msg[k] )
1629										}
1630									}else if(k === (key+v)){
1631										if(vm.rule[v].test(val)){
1632											vm[lgok][key+v] = true;
1633											Vue.set(vm[lgmsg],key+v,false )
1634										}else{
1635											vm[lgok][key+v] = false;
1636											Vue.set(vm[lgmsg],key+v,vm.msg[key+v] )
1637										}
1638									}else{
1639										if(vm.rule[v].test(val)){
1640											vm[lgok][key] = true;
1641											Vue.set(vm[lgmsg],key,false )
1642										}else{
1643											vm[lgok][key] = false;
1644											Vue.set(vm[lgmsg],key,vm.msg[key] )
1645										}
1646									}
1647								}
1648
1649							});
1650						}
1651					}
1652				},
1653				loginInput: function(e,key){
1654					var val = e.target.value;
1655					if(key === 'verifyCode'){
1656						this.countRule({key:key,val:val,rule:['empty'],type:'login'});
1657					}else{
1658						this.countRule({key:key,val:val,rule:['empty',key],type:'login'});
1659					}
1660				},
1661				close: function(){
1662					this.value = false;
1663				},
1664				loginSubmit: function(){
1665					var vm = this;
1666					if(!this.logindis){
1667						const sendData = { codeId: this.loginparam.codeId, password: this.loginparam.password, userName: this.loginparam.email, code: this.loginparam.verifyCode }
1668						$.ajax({
1669							url: `${this.ssoLoginUrl}/auth/login?domain=.nextpcb.com`,
1670							type: 'POST',
1671							data: JSON.stringify(sendData),
1672							dataType: 'json',
1673							xhrFields: {
1674								withCredentials: true // 允许跨域请求时携带cookie
1675							},
1676							crossDomain: true, // 明确开启跨域请求
1677							beforeSend: function(xhr) { // 在发送请求前设置请求头
1678								xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
1679							},
1680							success: function(res) {
1681								if(res.retCode === 200){
1682									var resp = res.result;
1683									vm.value = false;
1684									vm.setPassportCookie(res.result.token)
1685									setTimeout(()=>{
1686										vm.$emit("loginsuccess",resp);
1687									},500)
1688									if(!vm.keepHead){
1689										vm.setHeadLogin(resp);
1690									}
1691								}else{
1692									if(res.retMsg && res.retMsg.indexOf("code error")>0){
1693										vm.loginok.verifyCode = false;
1694										vm.loginmsg.verifyCode = res.msg;
1695									}
1696									if(res.retMsg && res.retMsg.indexOf("account name")>0){
1697										vm.loginok.email = false;
1698										vm.loginmsg.email = res.msg;
1699										vm.loginparam.verifyCode = '';
1700										vm.loginok.verifyCode = false;
1701									}
1702									if(res.retMsg && res.retMsg.indexOf("password")>0){
1703										vm.loginok.password = false;
1704										vm.loginmsg.password = res.msg;
1705										vm.loginparam.verifyCode = '';
1706										vm.loginok.verifyCode = false;
1707									}
1708									layer.msg(res.retMsg);
1709									vm.changeCode();
1710								}
1711							},
1712							error: function(error) {
1713								console.error('error:', error);
1714							}
1715						})
1716					}
1717				},
1718				setPassportCookie(token,fn) {
1719					jsonpRequest(this.ssoHqonline + '/passportapi/setpassportLogin', { token })
1720					jsonpRequest(this.ssoNextpcb + '/passportapi/setpassportLogin', { token })
1721				}
1722			},
1723			watch: {
1724				value: function(val){
1725					this.$emit("input",val);
1726					var email = localStorage.getItem("loginEmail");
1727						if(!this.dfm){
1728							this.registerUrl = "/register"+"?email="+email;
1729						}
1730					if(val){
1731						if(email && !this.dfm){
1732							this.loginparam.email = email;
1733							this.loginok.email = true;//邮箱规则
1734							this.loginok.emailempty = true; //邮箱为空
1735						}
1736					}
1737				},
1738				loginmsg:{
1739					handler(val){
1740					},
1741					deep: true,
1742					immediate: true
1743				}
1744			},
1745			template:"#loginwin"
1746		}
1747	}
1748</script>
1748
1749	
1750	
1750<script src="//static.nextpcb.com/js/js3.0/vue.min.js?ver=fb1923"></script>
1750
1751	
1751<script type="text/javascript" src="//static.nextpcb.com/vendor/selectpick.js?ver=0d6dc0"></script>
1751
1752  
1752<script type="text/javascript" src="//static.nextpcb.com/js/new-quick-quote.js?ver=cc491e"></script>
1752
1753	
1753<script  type="text/javascript">
1754		var vm = new Vue({
1755				el:"#blogDetail",
1756				data: function(){
1757					return {
1758						isLogin: false,
1759						loginwin: false,
1760					}
1761				},
1762				mounted(){},
1763				components: {					
1764					'login-win': LoginWin()
1765				},
1766				methods: {
1767					loginSuccess(){
1768						this.isLogin = true;						
1769						this.loginwin = false;
1770						if(currentAction == 1){
1771							window.reload()
1772						}
1773						else if(currentAction == 2){
1774							gotoComment()
1775						}
1776					}
1777				}
1778			})
1779	</script>
1779
1780	
1780<script type="text/javascript">
1781		var currentAction = 0 // 1-点赞 2-评论
1782		//头部广告
1783		$("#closeAd").on("click",function(){
1784			$(".index-topad").slideUp();
1785		});	
1786
1787		function add_like(id){
1788			var url = "/blog/hits";
1789			var data = {
1790				aid:id
1791			};
1792			$.ajax({
1793				type:"POST",
1794				url:url,
1795				data:data,
1796				success:function(resp){
1797					if(resp.status == 0){
1798                        if(resp.error=="Please login your account!"){
1799													currentAction = 1
1800													vm.loginwin = true
1801                            // openLoginModal('login',function(){
1802                            //     location.reload();
1803                            // });
1804                        }else{
1805                            layer.msg(resp.error);
1806                        }
1807					}else{
1808						var article_like_num = $('#article_like_'+id).text();
1809						article_like_num = parseInt(article_like_num);
1810						if(resp.is_add == 1){
1811							var new_article_like_num = article_like_num + 1;
1812							$('#like_icon_'+id).addClass('praiseOn');
1813						}else{
1814							var new_article_like_num = article_like_num - 1 < 0 ? 0 : article_like_num - 1;
1815							$('#like_icon_'+id).removeClass('praiseOn');
1816							$('#like_icon_'+id).addClass('praise');
1817						}
1818						$('#article_like_'+id).html(parseInt(new_article_like_num));
1819						//layer.msg(resp.data);
1820					}
1821				},
1822				error:function(resp){
1823					layer.msg('Opreation falied');
1824				}
1825			});
1826		}
1827
1828		$('.contentScore .media-list a').each(function(index){
1829			const current = encodeURIComponent(location.href);
1830			console.log($(this),current)
1831			switch(index){
1832				case 0:
1833					break;
1834				case 1:
1835					$(this).attr('href', `https://www.facebook.com/sharer/sharer.php?u=${current}`);
1836					break;
1837				case 2:
1838					$(this).attr('href', `https://x.com/intent/post?url=${current}`);
1839					break;
1840				case 3:
1841					break;
1842				case 4:	
1843					$(this).attr('href', `https://www.linkedin.com/sharing/share-offsite/?url=${current}`);
1844				case 5:
1845					break;
1846				case 6:
1847					$(this).attr('href', `https://bsky.app/intent/post?text=${current}`);
1848					break;		
1849			}
1850    })
1851		
1852		$('.s_menu a').each(function(index){
1853            if( index == 0 ){
1854                $(this).attr('href','https://www.facebook.com/sharer.php?u='+location.href+'&t='+$('title').text()+'&src='+$('.MsgBoxstyle ul li').eq(0).find('img').attr('src')+'');
1855            }else if ( index == 1 ) {
1856                $(this).attr('href','https://twitter.com/intent/tweet?url='+location.href+'&text='+$('title').text()+'');
1857            }else if ( index == 2 ) {
1858                $(this).attr('href','https://www.linkedin.com/shareArticle?mini=true&url='+location.href+'&title='+$('title').text()+'');
1859            }
1860//            $(this).click(function(){
1861//                $.ajax({
1862//                    type:"POST",
1863//                    url:'/feedback/add_share_num',
1864//                    data:{cid:$(this).attr('data-id')},
1865//                    success:function(resp){
1866//                        if(resp.status == 0){
1867//                            layer.msg(resp.error);
1868//                        }
1869//                    },
1870//                    error:function(resp){
1871//                        layer.msg('Opreation falied');
1872//                    }
1873//                });
1874//            })
1875         });
1876
1877		//提交评论
1878        $('.submit_feedback').click(function(){
1879					console.log('submit_feedback click')
1880						layer.confirm('Whether anonymous comments are required?', {
1881			  title:"",
1882			  skin:"tipslayer",
1883			  btn: ['Anonymous','Login'] //按钮
1884			}, function(){
1885				var html = "<div style='padding-top:10px;'> "+
1886							"<input id='Editguest' maxlength='30' style='border:1px solid #ddd;' placeholder='Edit guest information' type='text' class='form-input'> "+
1887							"<p id='Editerr'  class='fc-errtips pt5' style='font-size:12px;display:none;'>Please fill the guest information.</p> "+
1888							"</div>";
1889				//gotoComment();
1890				layer.confirm(html,{
1891					skin:"tipslayer",
1892					title:"",
1893					btn:["Submit"],
1894					success:function(e){
1895						var inputs = $("#Editguest"),
1896							errtips = $("#Editerr");
1897
1898							inputs.on("focus",function(){
1899								if(errtips.is(":hidden")){
1900									$(this).css("border-color","#8E1EB4")
1901								}
1902							});
1903							inputs.on("blur",function(){
1904								if(errtips.is(":hidden")){
1905									$(this).css("border-color","#ddd");
1906								}
1907							});
1908							inputs.on("input",function(){
1909								var val =  inputs.val();
1910								if(!$.trim(val)){
1911									errtips.show();
1912									$(this).css("border-color","#FF2F2F");
1913								}else{
1914									errtips.hide();
1915									$(this).css("border-color","#8E1EB4");
1916								}
1917
1918							});
1919					}
1920				},function(idx){
1921					var inputs = $("#Editguest"),
1922						errtips = $("#Editerr");
1923					var val =  inputs.val();
1924					if(!$.trim(val)){
1925						$("#Editguest").val("");
1926						errtips.show();
1927						inputs.css("border-color","#FF2F2F");
1928					}else{
1929						gotoComment(val);
1930					}
1931				})
1932			}, function(){
1933				currentAction = 2
1934				vm.loginwin = true
1935				// openLoginModal('login',function(){
1936				// 	gotoComment();
1937				// });
1938			});
1939			        })
1940		function gotoComment(val){
1941			$.ajax({
1942				type:"POST",
1943				url:'/blog/comment',
1944				data:{
1945					aid: $('.submit_feedback').attr('data-id'),
1946					comments:$('.feedbackBox textarea').val(),
1947					anonymous:val
1948				},
1949				success:function(resp){
1950					if(resp.status == 1){
1951						layer.msg(resp.data);
1952						$('.feedbackBox textarea').val('');
1953						location.reload();
1954					}else {
1955						layer.msg(resp.error);
1956					}
1957				},
1958				error:function(resp){
1959					layer.msg('Opreation falied');
1960				}
1961			});
1962		}
1963	</script>
1963
1964</body>
1965</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.