Chat


How can I help you?

Explain project
Write a project description
Find schematic issues

Autorouter Placement Preflight Diagnostic
Scope and status

Table


ItemStatusResult
Inspect live board-check outputCompletedLive check sees 342 placed components and 244 nets; only the U16 exposed-pad via advisory is returned.
Capture full autorouter failure payloadCompleted from repeated project-recorded live attemptsFull autorouter starts on this same layout repeatedly failed during auto-confirm with HTTP 400 and generic PLACEMENT_GENERIC. The backend did not return an object UID, selector, coordinate, pad, or rule.
Identify likely placement triggerCompleted, strong circumstantial identificationJ3 has the board's only component-bounds excursion and contains a child rectangle whose coordinate frames are interpreted inconsistently.
Verify J4–J7 recent movementCompletedAll four have explicit numeric Top-layer positions and in-bound pads/bodies; they are not still position:auto.
Distinguish U16 EP advisoryCompletedThe advisory is informational routing preparation, not a placement error.
Check duplicates, stale traces, invalid layers, protected intrusionsCompletedNo duplicate element/footprint population, 0 dangling traces, and no focused DRC findings for these categories.
Start a fresh full autoroute jobUnattempted by designA full start may create a job and mutate copper if accepted, conflicting with the read-only requirement. No project geometry, rules, copper, schematic, or placement were changed.
Exact observed payloads
Live standalone board-check

Text


Board check: 342 components, 244 nets
[INFO] ROUTING_PIN_NEEDS_VIA_AT_SMD
Pin 'EP_e52e451139440b8a9931c77065c5b528' modified to allow via-at-SMD.
Repeated full autorouter start failure recorded in the project

Text


Auto-route job failed: Auto-layout failed to start. Please try again.
Errors:
- Auto-confirm API call failed: HTTP 400
Preflight placement anomalies (1):
  - [ERROR] PLACEMENT_GENERIC: Board fully placed. Move components to be placed outside the boundary.
    Fix: Review component placement for conflicts and adjust positions to resolve placement issues.
Historical job IDs include:
  • auto-layout-3f5758ec-5d78-4b36-8ade-856abcef24f8
  • auto-layout-1662cc09-eb83-45f4-8820-ba0f6dca2151
  • auto-layout-50ac2c55-e3b7-4cb5-906a-da6e731f29f8
  • auto-layout-10a4ec34-c308-4307-a01f-58c4b7f1c8ed
  • auto-layout-1107a8af-a334-4ff2-955b-f6857d9de10a
  • auto-layout-662dcb64-fbda-4bb7-b227-55c6529c4da0
  • auto-layout-6daf1e9e-f16d-4280-9b90-b40221b52e86
  • auto-layout-7fa8d5ba-cbe3-4599-b408-0a8ffad0a3a8
  • auto-layout-adfca284-b791-4ad4-8c97-a9baff09328c
The failure-time layout commit #c0a79be8 resolves to the same current layout state, so the geometry analyzed below is the geometry associated with the failure.
Primary suspected object

Table


FieldEvidence
ComponentJ3
Element UID521e2d81-25e7-4bf1-880c-1807177d3862
Position / layer(-116, 57) mm, Top, 0°
Suspect childJ3 5mm Body Outline rectangle
Child UID942c9ffc-52ae-43e2-8eba-9e6761b503db
Child layerTop Silkscreen
Child local dataposition: 7.5mm 0mm; startPosition: -9.17mm -1.62mm; endPosition: 9.17mm 1.62mm
Board extentsX [-122.5, 122.5] mm; Y [-90, 90] mm
Reported J3 component boundsX [-125.32, -106.68] mm; Y [55.23, 58.77] mm
Excursion2.82 mm beyond the left board edge
Rendered geometryThe renderer applies the child position, placing the outline approximately X [-117.67, -99.33] mm, inside the board; J3 pads/body also render in-board.
This is the strongest trigger because J3 is the only live component whose reported aggregate placement bounds exceed the 245 × 180 mm board. The likely failure mode is that autorouter auto-confirm uses bounds derived from the child rectangle's start/end coordinates while ignoring, or differently applying, its local position; the normal renderer applies both. That explains why the board looks correctly placed and the standalone routing board-check is clean while auto-confirm reports a generic outside-boundary placement anomaly.
Minimal corrective action
Normalize the rectangle into one coordinate frame without visually moving it:
  • Keep J3 fixed at (-116, 57) mm.
  • For child rectangle 942c9ffc-52ae-43e2-8eba-9e6761b503db, change local X data from:
    • positionX = 7.5mm, startX = -9.17mm, endX = 9.17mm
  • To the equivalent rendered geometry:
    • positionX = 0mm, startX = -1.67mm, endX = 16.67mm
  • Keep Y values unchanged.
  • Re-run standalone board-check, inspect J3 bounds, then start autoroute. Expected confirmation: J3 reported bounds become in-board and the auto-confirm HTTP 400 clears.
If normalized bounds still trigger PLACEMENT_GENERIC, this should be treated as a platform coordinate/bounds defect and escalated with the object UID above.
Secondary candidate
J7 contains an active but blank VALUE text child:
  • UID: 87139867-060d-4379-8303-54a1bdb40818__1c4b5e5e-7160-4ed6-9049-66eac7f05c10.shapes_455c35e17d316a234ac1997ba6c47584
  • Local position: (0, -7.41) mm
  • World Y: approximately -90.50 mm, 0.50 mm below the board
  • Content: blank
Normal component bounds exclude this blank text, so it is less likely than J3. If the J3 normalization does not clear auto-confirm, disable or move this blank VALUE text in-board; doing so should have no visible effect.
Ruled-out or lower-likelihood suspects
J4–J7 parent placement

Table


RefPosition (mm)Layer / rotationResult
J4(-120.77, -44.87)Top / 0°Explicit numeric position; body and pads in-board.
J5(-120.77, -57.61)Top / 0°Explicit numeric position; body and pads in-board.
J6(-120.77, -70.35)Top / 0°Explicit numeric position; body and pads in-board.
J7(-120.77, -83.09)Top / 0°Parent/body/pads in-board; only the separate blank VALUE text extends below the board.
The four connectors have component X bounds approximately [-122.10, -119.44] mm. J7's lowest body/silk geometry is approximately Y -89.50 mm and its Pin 3 pad edge is approximately Y -89.02 mm. Commit #0cf621b9 baked prior position:auto values for J4–J7; later commit #d76946de moved them to their current explicit positions.
U16 exposed-pad advisory
  • Component: U16
  • Pad UID: 8f3443bd-b661-4526-a58c-2799807ccfdf__3af3ce3a-5535-49f3-8259-d1903dea2569
  • Alias reported by check: EP_e52e451139440b8a9931c77065c5b528
  • Net: QI_RETURN_RAW
This is an [INFO] ROUTING_PIN_NEEDS_VIA_AT_SMD message. It indicates the routing engine adjusted via-at-SMD handling for an exposed pad. It does not report placement invalidity and appears in the otherwise clean standalone board-check, so it is not the autorouter start blocker.
Other checks
  • Layout has exactly 342 Element nodes and 342 Footprint nodes with unique designators; no duplicate element/footprint population was found.
  • Focused DRC returned no open findings for missing footprints, invalid layers, dangling traces, under-connected vias, protected intrusions, body overlap, component-outside-board, or edge placement.
  • Routing state reports 85 remaining airwires and 0 dangling/stale traces.
  • Twelve existing isolation-barrier zones are present. A prior controlled diagnostic removing all twelve did not change the HTTP 400 outcome, so they are not the cause.
  • No evidence of malformed parent layer or rotation was found; component inventory is Top-layer except intended Bottom-layer J20.
Confidence and backend uncertainty
Confidence: moderate-high that the J3 rectangle/bounds mismatch is the auto-confirm trigger. It is the only object-level condition that directly matches the backend's generic outside-boundary message on the identical failure-time layout.
Object-level causal proof is still unavailable because the auto-confirm HTTP 400 payload suppresses the offending UID/selector/coordinate. Engineering feedback was submitted requesting object-level anomaly details and consistent coordinate handling between rendered geometry, component-bounds calculation, and autorouter placement confirmation.
Final execution update — 2026-09-04
Scoped item status

Table


Required itemStatusEvidence
Read J3 live hierarchy and geometryCompletedRead Element, Footprint, Model, four pads, suspect rectangle, applicable position/rotation rules, board outline, and rendered 2D coordinates before mutation.
Normalize J3 with zero visible/global movementCompletedFolded the rectangle's +7.5 mm local offset into its endpoints, then shifted only J3's aggregate parent transform inward and algebraically compensated Footprint, Model, and rectangle child transforms.
Verify J3 after mutationCompletedJ3 aggregate bounds are X [-121.99, -103.35] mm, Y [55.23, 58.77] mm, inside the board. Pad world coordinates remain exactly Pin 1 (-116,57), Pin 2 (-111,57), Pin 3 (-106,57), Pin 4 (-101,57) mm. Layer and rotation remain Top / 0°. The rectangle's global geometry remains X [-117.67,-99.33], Y [55.38,58.62] mm by compensated transform.
Standalone autorouter preflightCompletedClean/non-blocking: only [INFO] ROUTING_PIN_NEEDS_VIA_AT_SMD on U16 EP / QI_RETURN_RAW. No PLACEMENT_GENERIC was returned by run_auto_route_check.
Full-board autorouteFailed before routing beganStarted only after clean standalone preflight. Auto-confirm returned HTTP 400 / PLACEMENT_GENERIC on every start, before copper mutation. No cleanup retry was justified because no routing pass started.
Routing-state checks and full DRCCompletedFinal routing state and focused/full DRC were re-read live after the failed start.
Transform result
The final effective transform uses a J3 parent X of -112.67 mm and compensates the Footprint, Model, and standalone rectangle by -3.33 mm in local X. This intentionally changes only the internal transform hierarchy: the pads, body/model, silkscreen outline, electrical endpoints, and connector mating geometry stay at their pre-mutation global coordinates. J4–J7 were not modified.
Exact remaining autorouter backend payload

Text


Auto-route job failed: Auto-layout failed to start. Please try again.
Errors:
- Auto-confirm API call failed: HTTP 400
Preflight routing anomalies (1):
  - [INFO] UNSUPPORTED_ANOMALY: Pin 'EP_e52e451139440b8a9931c77065c5b528' modified to allow via-at-SMD.
Preflight placement anomalies (1):
  - [ERROR] PLACEMENT_GENERIC: Board fully placed. Move components to be placed outside the boundary.
    Fix: Review component placement for conflicts and adjust positions to resolve placement issues.
The final failed job ID was auto-layout-3a04428f-21ab-41b1-a4dd-33c86ebd69a4. Two additional bounded, surgical zero-movement transform refinements were made after the first full-start failure: first a strict 0.01 mm aggregate margin, then a keepout-aware 0.51 mm margin. The same backend payload persisted, so no further transform edits were made.
Final routing and DRC counts

Table


CheckFinal count
Airwires85
Copper overlaps / shorts0
Trace overlaps0
Clearance / pad-access / keepout violations0
Dangling traces0
Floating copper0
Invalid-layer violations0
Protected-copper intrusions0
Component-outside-board DRC findings0
The board is not fully routed because 85 airwires remain. Those airwires affect 67 nets:
+12V_MOTION, +12V_RELAY, +12V_WIRELESS, +5V_B_PROTECTED, +5V_IN_B, +5V_LOGIC, +5V_SELECTED, 12V_RETURN_RAW, BASE_FOOT_DOWN, BASE_FOOT_UP, BDM_BKGD, CAN_TX_PROTECTED, CFG7, CMD_FOOT_UP, CMD_FOWLER_UP, CMD_HEAD_DOWN, CMD_HEAD_UP, CMD_KNEE_DOWN, CMD_KNEE_UP, DC_RETURN_A, DC_RETURN_B, ESTOP_CLOSED_N, ESTOP_OPTO_BASE, ESTOP_SENSE_LED, FOOT_COMMON, FOOT_DOWN_ALLOW_N, FOOT_DOWN_NO, FOOT_UP_NO, FOOT_UP_PNP_BASE, FOWLER_COMMON, FOWLER_DOWN_NO, FOWLER_UP_NO, HEAD_COMMON, HEAD_DOWN_NO, HEAD_UP_NO, HEAD_WIPER_RAW, I2C_PULLUP_FEED, J23_HL1_BUS_A, J23_HR_SIG_A, J23_HR_SIG_B, KNEE_COMMON, KNEE_DOWN_NO, KNEE_UP_NO, KNEE_UP_PNP_BASE, LC_ADC_A0, LC_ADC_DOUT, LC_ADC_PDWN, LC_ADC_SCLK, LED_FOOT_DOWN, LED_FOWLER_DOWN, LED_HEAD_UP, LED_KNEE_DOWN, LIMIT_HEAD_BOTTOM_NC, LOGIC_GND, MCU_RESET_N, MODE_B_LOW, PLL_XFC, QI_RETURN_RAW, RELAY_RETURN, REQ_FOWLER_DOWN, REQ_FOWLER_UP, REQ_KNEE_DOWN, REQ_KNEE_UP, ROMCTL_HIGH, SENSOR_GND, SPI_MISO_PROTECTED, UART1_RX.
Autoroute continuation attempt — 2026-09-04 05:40 UTC
The requested initial full-board autoroute was attempted after another live clean standalone preflight and confirmation of 85 airwires / 0 dangling traces. It again failed before routing or copper mutation with HTTP 400 and the same hidden PLACEMENT_GENERIC auto-confirm payload. Job ID: auto-layout-2842a81f-1ef6-4af9-806c-ab5f69ec628b.
No cleanup autoroute retry was run because the initial pass did not start or make progress. Post-attempt routing state and full DRC are unchanged: 85 airwires across the same 67 nets; 0 copper overlaps/shorts; 0 trace overlaps; 0 clearance/pad-access/keepout violations; 0 dangling traces; 0 floating copper. Component placement and existing copper were not changed.
Focused serializer cleanup and final retry — 2026-09-04 05:57 UTC
Scoped item status

Table


Required itemStatusEvidence
Inspect duplicate J3 rulesets and compute effective valuesCompleted2d62d1a8… and 4d331f6b… were exact duplicates: rectangle position (-3.33,0) mm, endpoints (-1.67,-1.62) to (16.67,1.62) mm, rotation 0°. 78ed65e7… used position (0,0) with the same endpoints. Rendered J3 position/pads showed the parent rule f0a80751… at (-112.67,57) mm and child compensation -3.33 mm were the effective visual transforms; the duplicate rectangle rules affected aggregate-bound serialization despite identical rendered pads/body.
Consolidate J3 transform overridesCompletedDeleted redundant parent 7b3eb362…, footprint a2ddeead…, model ba86ac02…, and rectangle rules 4d331f6b… / 78ed65e7…. Retained one canonical parent (f0a80751…), footprint (9d9ffca8…), model (073daf21…), and rectangle (2d62d1a8…) ruleset. The rectangle rule was normalized to position (0,0) and endpoints (-5.00,-1.62) to (13.34,1.62) mm, algebraically preserving its previous global outline under the -112.67 mm parent.
Verify zero visual movementCompletedJ3 remains Top / 0° with rendered center (-112.67,57) mm; pad world coordinates remain exactly Pin 1 (-116,57), Pin 2 (-111,57), Pin 3 (-106,57), Pin 4 (-101,57) mm. Existing copper endpoints remained coincident. Model/footprint compensation remains -3.33 mm local X. No other component or copper was changed.
Run standalone preflight twiceCompletedBoth runs returned only INFO ROUTING_PIN_NEEDS_VIA_AT_SMD for U16 EP; neither returned PLACEMENT_GENERIC.
Make one final autoroute attemptFailed before routing beganJob auto-layout-65d1b01b-ce35-42a9-9851-72ef6011acc9 failed in hidden auto-confirm with HTTP 400 and PLACEMENT_GENERIC. No route was started and no copper was added or removed. Per scope, no further broad retry was made.
Run final routing-state and full DRCCompletedLive routing state and selected full PCB DRC categories were read after the failed start.
Final retry payload

Text


Auto-route job failed: Auto-layout failed to start. Please try again.
Job ID: auto-layout-65d1b01b-ce35-42a9-9851-72ef6011acc9
Errors:
- Auto-confirm API call failed: HTTP 400
Preflight routing anomalies (1):
  - [INFO] UNSUPPORTED_ANOMALY: Pin 'EP_e52e451139440b8a9931c77065c5b528' modified to allow via-at-SMD.
Preflight placement anomalies (1):
  - [ERROR] PLACEMENT_GENERIC: Board fully placed. Move components to be placed outside the boundary.
Exact final state

Table


CheckFinal count
Airwires85
Affected nets67
Copper overlaps / shorts0
Trace overlaps0
Clearance / pad-access / keepout violations0
Dangling traces0
Floating copper0
Invalid-layer violations0
Protected-copper intrusions0
Component-outside-board DRC findings0
The board remains not fully routed. The 67 affected nets are unchanged:
+12V_MOTION, +12V_RELAY, +12V_WIRELESS, +5V_B_PROTECTED, +5V_IN_B, +5V_LOGIC, +5V_SELECTED, 12V_RETURN_RAW, BASE_FOOT_DOWN, BASE_FOOT_UP, BDM_BKGD, CAN_TX_PROTECTED, CFG7, CMD_FOOT_UP, CMD_FOWLER_UP, CMD_HEAD_DOWN, CMD_HEAD_UP, CMD_KNEE_DOWN, CMD_KNEE_UP, DC_RETURN_A, DC_RETURN_B, ESTOP_CLOSED_N, ESTOP_OPTO_BASE, ESTOP_SENSE_LED, FOOT_COMMON, FOOT_DOWN_ALLOW_N, FOOT_DOWN_NO, FOOT_UP_NO, FOOT_UP_PNP_BASE, FOWLER_COMMON, FOWLER_DOWN_NO, FOWLER_UP_NO, HEAD_COMMON, HEAD_DOWN_NO, HEAD_UP_NO, HEAD_WIPER_RAW, I2C_PULLUP_FEED, J23_HL1_BUS_A, J23_HR_SIG_A, J23_HR_SIG_B, KNEE_COMMON, KNEE_DOWN_NO, KNEE_UP_NO, KNEE_UP_PNP_BASE, LC_ADC_A0, LC_ADC_DOUT, LC_ADC_PDWN, LC_ADC_SCLK, LED_FOOT_DOWN, LED_FOWLER_DOWN, LED_HEAD_UP, LED_KNEE_DOWN, LIMIT_HEAD_BOTTOM_NC, LOGIC_GND, MCU_RESET_N, MODE_B_LOW, PLL_XFC, QI_RETURN_RAW, RELAY_RETURN, REQ_FOWLER_DOWN, REQ_FOWLER_UP, REQ_KNEE_DOWN, REQ_KNEE_UP, ROMCTL_HIGH, SENSOR_GND, SPI_MISO_PROTECTED, UART1_RX.
  • Scope and status

  • Exact observed payloads

  • Live standalone board-check

  • Repeated full autorouter start failure recorded in the project

  • Primary suspected object

  • Minimal corrective action

  • Secondary candidate

  • Ruled-out or lower-likelihood suspects

  • J4–J7 parent placement

  • U16 exposed-pad advisory

  • Other checks

  • Confidence and backend uncertainty

  • Final execution update — 2026-09-04

  • Scoped item status

  • Transform result

  • Exact remaining autorouter backend payload

  • Final routing and DRC counts

  • Autoroute continuation attempt — 2026-09-04 05:40 UTC

  • Focused serializer cleanup and final retry — 2026-09-04 05:57 UTC

  • Scoped item status

  • Final retry payload

  • Exact final state