ESP32-S3 LED Matrix Board


I’m sorry—you should not have been left waiting. I cannot view engineering’s response or ticket status from the internal feedback submission, so I have no confirmed outcome to report.
The routing bug remains the blocker recorded here: the existing auto-route job is stuck as outOfCredit, while attempting to resume it returns an internal error. Please escalate it through Contact Support, including:
  • Project: AMOLED Bandido
  • Failed job ID: auto-layout-a3644dbe-f17a-4b09-8b75-b4fd5c3f162f
  • Symptom: starting says a job already exists; resuming produces ResumeInternalError
  • Impact: 33 airwires remain, preventing the final STEP export
The project itself is intact; this is a routing-job/platform issue rather than lost design data.
Create a concise support-ticket summary with the job ID, errors, and project impact.
Subject: Auto-route job stuck and cannot resume — AMOLED Bandido
Project: AMOLED Bandido
URL: /bradbitler/amoled-bandido
Job ID: auto-layout-a3644dbe-f17a-4b09-8b75-b4fd5c3f162f
Issue: The auto-route job is stuck with status outOfCredit. Starting a new job fails because the existing job is still active. Resuming it returns FiberFailure / ResumeInternalError: Unable to resume auto-layout job.
Impact: The PCB has 33 remaining airwires. Other blocking DRC checks are clear, the 46 × 60 mm outline is closed, and component 3D models are present. The failure prevents routing completion, final DRC validation, and STEP export.
Please reset, repair, or make the existing routing job resumable without discarding completed routing.
Prepare support ticket
Document routing blocker
Export current STEP

Layout Completion Pass — Settled Report (2026-08-21)
Outcome vs done criteria

Table


CriterionStatus
0 airwiresNOT MET — 33 remain (was 39)
0 blocking DRC (shorts/overlaps/invalid layer/missing footprint/open outline)MET — final sweep: 0 overlapping copper, 0 dangling traces, 0 floating copper, 0 invalid layer, 0 missing footprints, 0 shorted components, 0 component-outside-board, 0 body overlaps
Outline closed, exactly 46×60 mmMET — closed rounded-rect, 46.00 × 60.00 mm, 3 mm corner radius, custom 4-layer stackup (1.30 mm) intact
Model auditCompleted — see below
STEP export unblockedNO — airwire criterion unmet; board is otherwise DRC-clean
Root-cause findings (important)
  1. Coordinate-frame bug (fixed). The layout node sat at (−27.4052, +26.1609) mm, and agent-authored routes were being written offset by that amount — landing ~30 mm away from their pads (one GND trace landed on TP9). Every route created before the fix was teleported junk and has been deleted. Fix applied: layout node position set to 0mm 0mm (relative geometry unchanged; all contents moved together). Verified: routes created after the fix resolve their airwires.
  2. Hug-router via placement shorts foreign copper. Multi-via hug routes (USB_DP_CONN, USB_DN_CONN, DISP_CS_N, CODEC_OUT_P) dropped vias onto foreign pads/traces (e.g. U13 pin 6, U1:IO7, C17:P2, R23:P2, SW2:COM_1) — 29 real different-net overlaps. All six offending routes were deleted; final overlap count is 0. Consequence: the hug pathfinder cannot safely via-escape fine-pitch pads on this board; the server auto-router (DeepPCB) does not have this defect.
  3. GND fill stitching blanket. The GND fill carried a dense stitching-via array over the whole board that saturated the obstacle map (the USB-C breakout failed with 'foreign copper blocks every candidate' because of it). Removed fillStitchingDensity/fillStitchingOffset from the GND net and set density to 0. Two stale stitch-via island airwires (via.stitch.50, via.stitch.101) remain until the fill regenerates.
  4. Tool availability. run_auto_route and mutate_neckdown rejected every call this session (their action discriminator never arrived at the server). All progress was made with the surgical hug router.
Mutations this session
  • Layout node position → (0,0) (frame fix).
  • Deleted all teleported/shorting copper listed above; USB diff-pair grouping temporarily split then restored to pair data, 90 Ω.
  • GND fill stitching disabled; new ruleset 'Fill pullback for fine-pitch escapes' (fill keepOut 0.3 mm — increases clearance, no fab-rule relaxation).
  • 8 connections cleared: J3:6↔J3:8 (3V3 tie), J3:6→C40:P1 (3V3 to main rail), U7:GND↔U7:GNDIO, C8:P2→U7:GNDIO, C21:P2→U8:GND, U5:AGND→U5:EP, U5:DGND→U5:EP, U5:CE→U5:EP, U11:ON→R17:P1 (AUDIO_PWR_EN partial).
  • J3 verified OCN footprint, pad overrides, and supplier STEP model untouched.
Remaining 33 airwires (exact)
USB-C (4): J1:DP1↔J1:DP2, J1:DP2↔U13:I/O1-1 (USB_DP_CONN); J1:DN1↔J1:DN2, J1:DN1↔U13:I/O2-3 (USB_DN_CONN). Note: U13 pins were flagged ROUTING_UNROUTABLE_DIFFERENTIAL_PAIR_PINS by the pre-route check. Display QSPI/control J3↔U1 (10): DISP_RST_N J3:14↔U1:IO17; DISP_CS_N J3:15↔U1:IO15; DISP_PIN17 J3:17↔U1:IO10; DISP_PIN19 J3:19↔U1:IO14; DISP_TE J3:21↔U1:IO16; DISP_PIN16 J3:16↔U1:IO11; DISP_PIN18 J3:18↔U1:IO12; DISP_PIN20 J3:20↔U1:IO13; TOUCH_RST_N J3:3↔U1:IO5; TOUCH_INT_N J3:2↔U1:IO4. I2C to display/touch (2): I2C_SCL stub↔J3:5; I2C_SDA stub↔J3:4 (plus R8:P1↔U5:CDATA island). Audio (4): I2S_LRCLK U5:LRCK↔U1:IO7; I2S_DOUT U5:DSDIN↔U1:IO18; CODEC_DACVREF U5:DACVREF↔C29:P1; CODEC_OUT_P U5:OUTP↔C33:P1; AMP_IN_N C34:P2↔U6:IN-. Power/misc (7): VBAT pad 043495f8.throughHole↔U4:VDD (unidentified standalone pad — likely battery tab; confirm intent); CHG_PG_N U2:PG↔R22:P2; AUDIO_PWR_EN U1:RXD0↔R17/U11 island; ESP_GPIO0_BOOT SW2:NO_1↔R6:P2; GND via.stitch.50↔U5:DGND; GND via.stitch.101↔R10:P2; DISP_CS_N TP14↔R21:P2 island pair; DISP_VBAT C38:P1↔J3:10; TOUCH_RST_N R20:P1↔U1:IO5; USB_CC1 J1:CC1↔R1:P1.
Blocker classification
  • Not placement-caused: the blocked connections fail because (a) the hug router's via placement is unsafe here and (b) fine-pitch pads (U1 module ring, U2 VQFN, U5 QFN, J3 0.30 mm) sit in fill-sealed pockets. No component moves are recommended; mechanical corridors were preserved everywhere.
  • Recommended resolution order: (1) run the server auto-router from the editor — with the frame fixed and stitching blanket removed it should clear most of the 33; (2) retry the protected USB-C breakout on J1 (its earlier obstruction — the via blanket — is gone); (3) regenerate/re-pour the GND fill to clear the two stitch-island airwires; (4) confirm the identity of VBAT pad 043495f8.
Mechanical model audit
  • All 107 placed elements carry a Model node (count verified: 107/107).
  • J3 (AMOLED): verified supplier OK-F302-31115 STEP attached and origin-aligned; obsolete placeholder model disabled. Pad overrides (0.2×0.6 mm, 0.30 mm pitch staggered) intact.
  • J1 (USB-C USB4105-GF-A), U13, U1 (ESP32-S3-WROOM-1), U2, U5, U6, U8, U7: library-default models present (J1/U13 confirmed in node tree; remainder by 107/107 coverage). Scale/seating not individually re-measured — no authoritative alternative assets exist in the project (only OK-F302 STEP/kicad_mod).
  • Off-board items (display, 1S Li-Po, speaker, LRA actuator, mic capsule leads): cabled/off-board by design; no models expected. J2/J5/J6 connector models present.
  • No model geometry was invented or altered.
Non-blocking warnings (documented)
  • Component Overrides (21): J3 pad !important geometry rules from the verified footprint rebuild — intentional.
  • U6 same-net overlapping pins: PAM8302 pads share a net; the router treats them as one pin — benign.
  • Outcome vs done criteria

  • Root-cause findings (important)

  • Mutations this session

  • Remaining 33 airwires (exact)

  • Blocker classification

  • Mechanical model audit

  • Non-blocking warnings (documented)