Skip to content

Autorouter emits overlapping GPIO35/PSRAM vias causing a deterministic short #2147

Description

@seveibar

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions