Add AM625SiP inner-row microSD fanout repro - #157
Open
AnasSarkiz wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
AnasSarkiz
marked this pull request as ready for review
September 5, 2026 13:03
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adding MMC1_DAT1 on inner-row B21 to the AM625SiP microSD fanout leaves the solver at 2/3 routed connections. A21/CMD and A22/DAT0 alone solve with no connectivity or copper DRC issues.
This PR captures the report and reproduction separately from the algorithm fix. It adds a numbered Cosmos debugger page with a control toggle, the captured native fanout input, and PCB-routing SVG snapshots. All 425 circular BGA pads and three testpoint obstacles are retained in both cases; the control removes only the B21 connection/bus. Debug-serializer markers representing
undefinedwere decoded by omitting those properties.Reproduce
bun install --frozen-lockfile bun test tests/am625sip-microsd-fanout-repro.test.ts tests/am625sip-microsd-fanout-control.test.ts bun run startIn Cosmos, open
repro06-am625sip-microsd-fanoutand run with B21 enabled, then disabled. The reproduction snapshot reportssolved=false · best=2/3; the control solves 2/2. The failure test captures the current visual result without locking the solver to failure, following the existing northeast repro pattern.Expected / actual
Expected: route all three connections to the shared boundary, with legal through-all vias and preserved pad geometry. Actual on v0.0.57 / b859939: B21 does not escape. The candidate search omits neighboring vacant BGA grid positions, including the diagonal position beside B21; a follow-up PR will test and fix that search.
Input: 0.50 mm pad pitch, 0.30 mm circular pads, 0.09 mm trace/clearance, 0.4572 mm via pad, 0.2032 mm drill, four layers, top/bottom escape, no blind/buried vias, 32 × 32 mm fanout boundary. Captured from the incremental AM625SiP circuit after adding B21 to v1.0.3. This isolates the native fanout phase; the circuit's global router remains Pipeline 9.
PCB snapshots
Failing three-signal case:
Working control:
Validation
Focused tests: 2 pass. Typecheck, format check, and Cosmos export pass. GitHub CI passes all 8 test shards, aggregate tests, typecheck, format, and the preview deployment. Local full suite: 158 pass; 2 existing tests timed out under concurrent benchmark load, and both pass unchanged when rerun individually (bus-layer-atomicity and footprinter-benchmark). Dataset31 baseline at the default 120-second sample deadline: 1/12 solved, 11 timeouts. No production solver code changes.
Follow-up fix: #158 (stacked on this PR).