← Commit history

Record rejected DC screen, Fields fix handoff and stale-canvas footage exclusion

John Lauer ·3016bf7e1d ·16d ago ·parent f5e101f
7 files changed +288−25
design/fields-two-layer-guard-check.logadded+10
@@ -0,0 +1,10 @@+5V_AUX: 0.3 A, 2 layer(s), 1384 iterations, residual 7.6e-8+DUT_FUSED: 3 A, 1 layer(s), 169 iterations, residual 8.7e-8+DUT_POS: 3 A, 2 layer(s), 851 iterations, residual 9.4e-8+GND: 3 A, 2 layer(s), 6000 iterations, residual 3.2e2+LOAD_POS: 3 A, 2 layer(s), 743 iterations, residual 8.8e-8+SHUNT_P: 3 A, 2 layer(s), 333 iterations, residual 8.9e-8+heat, still air: 2225 iterations, residual 1.0e-7+heat, moving air: 1925 iterations+ERROR: DC solve for GND did not converge (residual 316.30719822593886); no current/thermal summary is accepted; inspect copper raster connectivity and mesh resolution+Hint: The board must be a .kicad_pcb saved with its zones filled; the spec is the aiflow spec (loads, hot, copperUm, hotMaxRiseC, thermalVias).
design/fields-two-layer-provenance.jsonadded+26
@@ -0,0 +1,26 @@+{+  "status": "experimental; DC nonconvergence rejected; no rating established",+  "sourceBase": "b8aecfc5de87ca3a8b09ebbd4a82a8c9b416988f",+  "sourceCommit": "0b01c607c7083f0bdf8265f460755a1b515e05a9",+  "pullRequest": "https://wiki.adom.inc/adom/adom-fields/prs/4",+  "sharedInstallationChanged": false,+  "sha256": {+    "board": "cb37ac51e9ff6d9578ba3385723f30e4636a76c71fde7f374136d8deea9ba87a",+    "spec": "47e8fba1040373b85366e3ea0897dcee6416285019091c014be9b725041e30d0",+    "binary": "cc8fc230a36632951aca5b5fc36c25f3545cba16ab14d19c835b977727ab803a"+  },+  "stackupAssumption": {+    "copperLayers": [+      "F.Cu",+      "B.Cu"+    ],+    "copperUm": 35,+    "dielectricMm": [+      1.53+    ],+    "finishedNominalMm": 1.6+  },+  "tests": 18,+  "productionBuild": "passed",+  "guardAcceptedSummaryExists": false+}
design/spec-two-layer-screen.jsonadded+207
@@ -0,0 +1,207 @@+{+  "board": "Adom electronic load R0, 64 x 72 mm, 2 layers; engineering prototype",+  "copperUm": 35,+  "clearance": 0.2,+  "edgeClearance": 0.2,+  "fixedRefs": [+    "MP1",+    "MP2",+    "MP3",+    "MP4",+    "J1",+    "J2",+    "J3",+    "J4",+    "J5",+    "J6",+    "J7"+  ],+  "wideNets": {+    "DUT_POS": [+      2.0,+      1.5,+      1.2+    ],+    "DUT_FUSED": [+      2.0,+      1.5,+      1.2+    ],+    "LOAD_POS": [+      2.0,+      1.5,+      1.2+    ],+    "SHUNT_P": [+      2.0,+      1.5,+      1.2+    ],+    "GND": [+      2.0,+      1.5,+      1.2+    ]+  },+  "midNets": {+    "5V_AUX": [+      0.5,+      0.4+    ],+    "V_GATE": [+      0.3,+      0.25+    ]+  },+  "kelvin": {+    "U4.10": "RSH1.2",+    "U4.9": "RSH1.3"+  },+  "chains": [+    {+      "refs": [+        "R8",+        "R9",+        "R10"+      ],+      "direction": "down"+    },+    {+      "refs": [+        "R18",+        "R19"+      ],+      "direction": "down"+    },+    {+      "refs": [+        "R22",+        "R23"+      ],+      "direction": "down"+    },+    {+      "refs": [+        "R27",+        "R28"+      ],+      "direction": "down"+    },+    {+      "refs": [+        "R35",+        "R36",+        "R37"+      ],+      "direction": "down"+    }+  ],+  "loads": {+    "DUT_POS": {+      "amps": 3,+      "maxRiseC": 10+    },+    "DUT_FUSED": {+      "amps": 3,+      "maxRiseC": 10+    },+    "LOAD_POS": {+      "amps": 3,+      "maxRiseC": 10+    },+    "SHUNT_P": {+      "amps": 3,+      "maxRiseC": 10+    },+    "GND": {+      "amps": 3,+      "maxRiseC": 10+    },+    "5V_AUX": {+      "amps": 0.3,+      "maxRiseC": 10+    }+  },+  "hot": {+    "Q1": {+      "watts": 25,+      "tabNet": "LOAD_POS",+      "maxRiseC": 15,+      "note": "25 W design-target screen against the 55 C firmware case trip at assumed 40 C ambient. External heatsink unresolved; board-only solver cannot validate cooling."+    },+    "D1": {+      "watts": 1.65,+      "tabNet": "LOAD_POS"+    },+    "RSH1": {+      "watts": 0.18,+      "tabNet": "SHUNT_P"+    }+  },+  "hotMaxRiseC": 35,+  "pours": [+    {+      "net": "GND",+      "layers": [+        "B.Cu"+      ],+      "priority": 0,+      "connection": "solid",+      "name": "Power return and signal reference",+      "polygon": [+        [+          98.3,+          30.3+        ],+        [+          161.7,+          30.3+        ],+        [+          161.7,+          101.7+        ],+        [+          98.3,+          101.7+        ]+      ]+    }+  ],+  "notPoured": [+    "BOOST_SW",+    "SERVO_FB",+    "SHUNT_P_SENSE",+    "SHUNT_N_SENSE",+    "I_SET",+    "DAC_OUT",+    "SET_DIV"+  ],+  "fab": {+    "rules": "fab",+    "target": "fab"+  },+  "sourcing": {+    "profile": "fab"+  },+  "molecule": {+    "pin": "medium",+    "gridMm": 2,+    "edgeMarginMm": 2,+    "cornerPinsNet": "GND"+  },+  "requireEvidence": [+    "calcs",+    "simulation"+  ],+  "qualificationNote": "Limits are simultaneous. MOSFET25W plus diode/shunt losses are conservative separate layout screens, not one physical operating point. Heatsink contact, mounted airflow, USB impedance, contact current ratings and prototype tests remain unverified.",+  "planes": {+    "GND": "B.Cu"+  },+  "netClearance": {+    "USB_VBUS": 0.27+  },+  "stackupMm": [+    1.53+  ]+}
docs/fields-review.mdadded+15
@@ -0,0 +1,15 @@+# Two-layer field-screen review++The saved routed PCB is two-layer. Fields 0.6.2 incorrectly creates four copper layers and assumes three dielectric intervals; that installed-version run was stopped and cannot support this design.++An isolated source build corrects the layer model and viewer, retains physical hidden/empty Fusion layers, and rejects unsupported stacks and blind/buried vias. Eighteen tests, production check/build, JavaScript syntax check and contextual-diff preflight pass. [Fields PR 4](https://wiki.adom.inc/adom/adom-fields/prs/4) awaits owner review; no shared installation was replaced. Source, binary and input identities are recorded in [provenance](../design/fields-two-layer-provenance.json).++The explicit nominal assumption is 35 µm copper on both sides with a 1.53 mm dielectric interval, totaling 1.6 mm. This is not a measured manufacturing stack. The original 3 A power-net loads and 25 W Q1 target were retained; the separate 5 W bring-up ceiling was not raised.++## Rejected 0.2 mm mesh++Five loaded nets converged, but GND exhausted 6000 iterations with residual 316.3. The first experimental run checked only thermal convergence and incorrectly emitted 599.856 W of ground Joule loss and extreme temperatures. Those outputs are invalid and retained only as reproduction evidence; they are not predictions of board temperature or power dissipation.++The revised source checks every DC residual before publishing a summary. Repeating the actual board at 0.2 mm now returns an explicit nonconvergence error and emits no fields.json. [Guard log](../design/fields-two-layer-guard-check.log).++A 0.1 mm mesh is being examined to distinguish raster/solver limitations. Neither a converged field plot nor native DRC would establish MOSFET SOA, junction temperature, the external heatsink/fan assembly, or hardware shutdown performance. The board is not released for fabrication.
docs/status.md+2−2
@@ -4,9 +4,9 @@ The accepted plan has landed in native KiCad: 230 route operations, 1,674 track  This is a routing checkpoint, not a fabrication release. The 5 W bring-up ceiling remains. USB pair/reference review, power-path/current screening, cooling geometry, model qualification, final silk and hardware calibration are still required. No hardware has been assembled. The 25 W target is unvalidated. -The installed Fields 0.6.2 solver incorrectly assumed four copper layers. Its run was stopped and its partial results are not accepted. A two-layer correction is being tested separately; it has not replaced the shared installation. Final current CAD views are also pending: native save/DRC evidence is available, but Windows currently returns stale or blank canvases.+The installed Fields 0.6.2 solver incorrectly assumed four copper layers. Its run was stopped and its partial results are not accepted. A two-layer correction passes 18 tests and is submitted as Fields PR 4; it has not replaced the shared installation. Its actual-board 0.2 mm solve is rejected for GND DC nonconvergence; see [field-screen review](fields-review.md). Final current CAD views are also pending: native save/DRC evidence is available, but Windows currently returns stale or blank canvases. -There are 26 raw video takes and nine reviewed excerpts. Two new recordings cover actual routing; the fan-fault excerpt is clearly labeled software simulation. The final narrated 4–5 minute film is not complete.+There are 26 raw video takes and nine reviewed excerpts. Two new recordings ran during actual routing, but pixel checks found stale canvases and they are excluded from the action edit; the fan-fault excerpt is clearly labeled software simulation. The final narrated 4–5 minute film is not complete.  Evidence: [saved-board DRC](../design/routed-live-drc.json), [native net audit](../design/accepted-native-net-audit.json), [ground correction](../design/ground-routing-review.md), [recording inventory](../videos/inventory.json). 
videos/inventory.json+10−10
@@ -102,20 +102,20 @@     {       "file": "aiflow/run/window-597540-20261008-144312.mp4",       "durationSeconds": 516.133333,-      "topic": "Four native sense-route commits",-      "review": "captured; final edit review pending"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "file": "videos/raw/window-597540-20261008-150215.mp4",       "durationSeconds": 3.166667,-      "topic": "unindexed checkpoint capture",-      "review": "exclude: attempted close-up did not change framing"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "file": "checkpoints/top-ground/window-597540-20261008-151057.mp4",       "durationSeconds": 13.2,-      "topic": "unindexed checkpoint capture",-      "review": "automatic/checkpoint take; editorial review pending"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "file": "videos/raw/window-6491100-20261008-120324.mp4",@@ -150,14 +150,14 @@     {       "file": "videos/raw/window-597540-20261008-155259.mp4",       "durationSeconds": 1055.366667,-      "topic": "Actual native routing, first take; filled zones obscure some copper",-      "review": "contact sheet reviewed; routing edit pending"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "file": "videos/raw/window-597540-20261008-161035.mp4",       "durationSeconds": 475.7,-      "topic": "Actual native routing, second take; trace additions visible",-      "review": "contact sheet reviewed; routing edit pending"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     }   ] }
videos/shotlog.json+18−13
@@ -115,15 +115,17 @@     {       "id": "sense-routes-15",       "file": "../aiflow/run/window-597540-20261008-144312.mp4",-      "topic": "Four native sense-route commits",-      "status": "captured; final edit review pending",-      "note": "Both Kelvin paths plus bus-voltage and DUT divider branches. Native saved-board DRC zero violations, 202 opens. Contact sheet reviewed; close-up edit review pending."+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "status": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas.",+      "note": "Both Kelvin paths plus bus-voltage and DUT divider branches. Native saved-board DRC zero violations, 202 opens. Contact sheet reviewed; close-up edit review pending.",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "id": "top-ground-16",       "file": "../checkpoints/top-ground/window-597540-20261008-151057.mp4",-      "topic": "Actual native top ground pour creation",-      "status": "Contact sheet reviewed; creation moment trimmed to 3.7 s; final film not approved"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "status": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas.",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "id": "fan-safety-17",@@ -135,8 +137,9 @@     {       "id": "sense-inspection-rejected",       "file": "raw/window-597540-20261008-150215.mp4",-      "topic": "Attempted sense-route close-up",-      "status": "exclude: menu action did not produce the intended close-up"+      "topic": "Native route landing with stale captured canvas; not usable construction footage",+      "status": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas.",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "id": "usb-orientation-review",@@ -147,18 +150,20 @@     {       "id": "route-landing-part1",       "file": "raw/window-597540-20261008-155259.mp4",-      "topic": "Actual native route landing, part 1",+      "topic": "Native route landing with stale captured canvas; not usable construction footage",       "duration_s": 1055.3667,-      "status": "contact sheet reviewed; final excerpt pending",-      "note": "Planning and bridge waits must be removed. Part 2 shows trace additions more clearly; old UNROUTED title remained during routing and was corrected after saving."+      "status": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas.",+      "note": "Planning and bridge waits must be removed. Part 2 shows trace additions more clearly; old UNROUTED title remained during routing and was corrected after saving.",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     },     {       "id": "route-landing-part2",       "file": "raw/window-597540-20261008-161035.mp4",-      "topic": "Actual native route landing, part 2",+      "topic": "Native route landing with stale captured canvas; not usable construction footage",       "duration_s": 475.7,-      "status": "contact sheet reviewed; final excerpt pending",-      "note": "Planning and bridge waits must be removed. Part 2 shows trace additions more clearly; old UNROUTED title remained during routing and was corrected after saving."+      "status": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas.",+      "note": "Planning and bridge waits must be removed. Part 2 shows trace additions more clearly; old UNROUTED title remained during routing and was corrected after saving.",+      "review": "Excluded from action edit: sampled board pixels are unchanged while status changes; stale canvas."     }   ],   "failed_captures": [