{"id":912044,"date":"2026-07-27T01:48:48","date_gmt":"2026-07-27T01:48:48","guid":{"rendered":"https:\/\/cri-one.com\/blog\/2026\/07\/27\/how-many-traces-fit-between-two-bga-balls-the-escape-routing-formula\/"},"modified":"2026-07-27T01:48:48","modified_gmt":"2026-07-27T01:48:48","slug":"how-many-traces-fit-between-two-bga-balls-the-escape-routing-formula","status":"publish","type":"post","link":"https:\/\/cri-one.com\/blog\/2026\/07\/27\/how-many-traces-fit-between-two-bga-balls-the-escape-routing-formula\/","title":{"rendered":"How Many Traces Fit Between Two BGA Balls? The Escape Routing Formula"},"content":{"rendered":"<p style=\"font-size:18px;font-weight:bold;color:#1a1a2e;background:#f0f0ff;padding:16px 20px;border-left:4px solid #302b63;border-radius:4px;margin:0 0 1.5em\">One number decides whether a BGA is routable on your process: how many traces fit between two adjacent balls. It is a subtraction, it takes ten seconds, and almost nobody does it before committing to a part.<\/p>\n<h2>The formula<\/h2>\n<p>Between two adjacent balls you have the pitch. Subtract one pad diameter &mdash; half from each of the two pads facing each other. Subtract the clearance twice, once to each pad. What is left is the usable band:<\/p>\n<pre style=\"background:#1a1a2e;color:#e0e0f0;padding:14px 18px;border-radius:4px;overflow-x:auto;font-size:13px\">band = pitch - pad_diameter - 2 x clearance<\/pre>\n<p>Now fit traces into it. <em>n<\/em> traces need <em>n<\/em> widths plus the <em>n&minus;1<\/em> gaps between them:<\/p>\n<pre style=\"background:#1a1a2e;color:#e0e0f0;padding:14px 18px;border-radius:4px;overflow-x:auto;font-size:13px\">n x track + (n - 1) x clearance  &lt;=  band<\/pre>\n<p>That is the whole thing. The answer is usually 0, 1, 2 or 3, and which of those it is changes what the board costs by a large multiple.<\/p>\n<h2>Worked, on three real footprints<\/h2>\n<p>Track width 0.075&nbsp;mm throughout. The clearance column is the one people forget is a choice &mdash; it comes from your netclass, not from the fabricator&#8217;s floor.<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<tbody>\n<tr style=\"background:#f0f0ff\">\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Footprint<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Pitch<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Pad<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Clearance<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Band<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Traces<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">BGA-256<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">1.8 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.65 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.200 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.750 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><strong>3<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">BGA-1536<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">2.0 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.90 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.200 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.700 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><strong>3<\/strong><\/td>\n<\/tr>\n<tr style=\"background:#ffebee\">\n<td style=\"padding:6px 12px;border:1px solid #ddd\">BGA-900<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.8 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.35 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.200 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.050 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\"><strong>0<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Read that last row again. Not &#8220;tight&#8221;. Not &#8220;one if you are careful&#8221;. <strong>Zero.<\/strong> At 0.8&nbsp;mm pitch with 0.35&nbsp;mm pads and an ordinary 0.2&nbsp;mm netclass clearance, there is 50&nbsp;microns of band and a trace is 75. Nothing passes between two balls, anywhere on the part, on any layer.<\/p>\n<h2>This is a cliff, not a slope<\/h2>\n<p>Drop the clearance and watch what happens:<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<tbody>\n<tr style=\"background:#f0f0ff\">\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Clearance<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">1.8 mm \/ 0.65<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">2.0 mm \/ 0.90<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">0.8 mm \/ 0.35<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.200 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">3<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">3<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.100 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">6<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">5<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">2<\/td>\n<\/tr>\n<tr style=\"background:#e8f5e9\">\n<td style=\"padding:6px 12px;border:1px solid #ddd\">0.075 mm<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">7<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">6<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">2<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The coarse footprints degrade gracefully &mdash; they have slack, and tightening the rule just buys more slack. The 0.8&nbsp;mm footprint goes from <em>impossible<\/em> to <em>two traces<\/em> at 0.1&nbsp;mm, and then stops improving, because below that the limit is no longer copper-to-copper spacing at all. It becomes the hole-to-copper rule around the via drills, which does not care how thin your traces are.<\/p>\n<p>That is why fine-pitch BGA design has a step in it rather than a ramp. You are not gradually paying more for tighter rules. You are either on a process where the part routes or one where it does not.<\/p>\n<h2>What the number means for layers<\/h2>\n<p>Index the ball array from the outside in and count rings. Roughly, each ring of signal balls needs its own escape path out through the rings outside it, and each gap between adjacent balls carries however many traces the formula allows.<\/p>\n<table style=\"width:100%;border-collapse:collapse;margin:1em 0\">\n<tbody>\n<tr style=\"background:#f0f0ff\">\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Footprint<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Grid<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd;font-weight:bold\">Rings<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">BGA-256<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">16 &times; 16<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">8<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">BGA-900<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">30 &times; 30<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">15<\/td>\n<\/tr>\n<tr>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">BGA-1536<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">48 &times; 32<\/td>\n<td style=\"padding:6px 12px;border:1px solid #ddd\">16<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ring count grows like the square root of ball count. Six times the balls buys you twice the rings. That is why a 1,536-ball part is not six times the problem of a 256-ball part &mdash; and why pitch, which sets traces-per-gap, dominates the total, which only sets ring count.<\/p>\n<h2>Two corrections worth making to the estimate<\/h2>\n<p><strong>Power and ground do not compete.<\/strong> A rail ball drops straight down into a plane through its own via and never uses a routing channel. On a real ball-out that can be a third or more of the total. On the AutoPhi 1536 interposer, 576 of 1,536 balls are rails, so only 960 ever contend.<\/p>\n<p><strong>The binding clearance is your netclass, not the board minimum.<\/strong> This one costs people days. Board setup will happily say <code>min_clearance: 0.075<\/code> while the netclass every signal actually belongs to says 0.2. Channels sized off the board minimum route beautifully and then fail DRC everywhere at once. Check which number your nets are really held to before you count anything.<\/p>\n<h2>The ten-second version<\/h2>\n<pre style=\"background:#1a1a2e;color:#e0e0f0;padding:14px 18px;border-radius:4px;overflow-x:auto;font-size:13px\">band   = pitch - pad - 2 x clearance\ntraces = largest n where  n x track + (n-1) x clearance &lt;= band\n\nband &lt; track          ->  nothing routes between balls. HDI, or an interposer.\n1 trace per gap       ->  expect roughly one ring per layer pair\n2-3 traces per gap    ->  an ordinary board<\/pre>\n<p>Do it before you pick the part, not after the layout stalls. If the answer is zero and you cannot move to an HDI process, the escape interposer exists precisely for that case &mdash; it converts a fine-pitch die footprint into a coarse-pitch one so the board underneath never sees the problem.<\/p>\n<p>Complete editable KiCad blueprints for all of these &mdash; 256, 900, 1536 and the escape interposer &mdash; are at <a href=\"https:\/\/cri-one.com\/store\/\">the store<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One number decides whether a BGA is routable on your process: how many traces fit between two adjacent balls. It is a subtraction, it takes ten seconds, and almost nobody does it before committing to a part. The formula Between two adjacent balls you have the pitch. Subtract one pad diameter &mdash; half from each [&hellip;]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[593,362],"tags":[],"class_list":["post-912044","post","type-post","status-publish","format-standard","hentry","category-about-the-work","category-case-study"],"_links":{"self":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts\/912044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/comments?post=912044"}],"version-history":[{"count":0,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/posts\/912044\/revisions"}],"wp:attachment":[{"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/media?parent=912044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/categories?post=912044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cri-one.com\/blog\/wp-json\/wp\/v2\/tags?post=912044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}