Summary
tsci check shorts found a deterministic short in the SPI display/webcam interceptor board after routing. The short is between two different autorouter connections, not a copper-pour-only artifact:
source_trace_155__source_trace_156_mst1_0 (GPIO35 / BOOT) places a 0.6 mm via at (6.539759, 4.785715) from top to inner2.
source_trace_126__source_trace_127__source_trace_128__source_trace_130__source_trace_132_mst0_0 (PSRAM power) places a 0.6 mm via at (6.190585, 4.298298) from inner1 to top.
The via centers are only 0.567 mm apart, below the 0.700 mm center spacing needed for two 0.6 mm pads with 0.1 mm clearance. Because both vias touch top and inner1, tsci check shorts reports the same short on both layers. The short report contains route/via geometry from the two connections and no copperpour:* group.
Reproduction input
The phase-0 SimpleRouteJson input dumped from the board is here:
https://gist.github.com/seveibar/5033268f8e1b21e34216dc96bfed2adc
The input has 93 connections and 328 obstacles. The affected endpoints are:
source_trace_130: pcb_port_247 (7.24, 5.00) -> pcb_port_94 (5.49999, 5.025018)
source_trace_156: pcb_port_93 (5.49999, 4.675006) -> pcb_port_273 (11.199928, 15.425072)
The board was using @tscircuit/capacity-autorouter@0.0.817. The failing route output is the frozen autorouter output in the board repository's routing.json; the two via records above are the exact records that trigger the checker.
Expected behavior
The autorouter should either keep different-net via pads at least the requested clearance apart or report that the connections could not be routed. It should not return a route containing overlapping different-net copper.
Workaround
Moving the PSRAM via to (6.25, 4.25) in the post-routing route adjustment makes tsci check shorts pass and leaves placement and hard DRC clean.
Summary
tsci check shortsfound a deterministic short in the SPI display/webcam interceptor board after routing. The short is between two different autorouter connections, not a copper-pour-only artifact:source_trace_155__source_trace_156_mst1_0(GPIO35 / BOOT) places a 0.6 mm via at(6.539759, 4.785715)fromtoptoinner2.source_trace_126__source_trace_127__source_trace_128__source_trace_130__source_trace_132_mst0_0(PSRAM power) places a 0.6 mm via at(6.190585, 4.298298)frominner1totop.The via centers are only 0.567 mm apart, below the 0.700 mm center spacing needed for two 0.6 mm pads with 0.1 mm clearance. Because both vias touch
topandinner1,tsci check shortsreports the same short on both layers. The short report contains route/via geometry from the two connections and nocopperpour:*group.Reproduction input
The phase-0 SimpleRouteJson input dumped from the board is here:
https://gist.github.com/seveibar/5033268f8e1b21e34216dc96bfed2adc
The input has 93 connections and 328 obstacles. The affected endpoints are:
The board was using
@tscircuit/capacity-autorouter@0.0.817. The failing route output is the frozen autorouter output in the board repository'srouting.json; the two via records above are the exact records that trigger the checker.Expected behavior
The autorouter should either keep different-net via pads at least the requested clearance apart or report that the connections could not be routed. It should not return a route containing overlapping different-net copper.
Workaround
Moving the PSRAM via to
(6.25, 4.25)in the post-routing route adjustment makestsci check shortspass and leaves placement and hard DRC clean.