main
Colby Knox adom-fields 0.10.6: grid covers the board (issue 27); one board thickness and solid-uncoupled (issue 28); decoupling co… cb236bf

adom-fields 0.10.6

Three fixes from Glenn's 772 power module list (issues 27, 28 and 29). Thanks, Glenn.

  • The grid covers the whole board (issue 27). The column and row counts were rounded to the nearest pair of fine pixels, so a 49.53 mm board got 247 columns of 0.2 mm, 49.4 mm in all, and a pad centred on the right edge had no cell. An explicit terminal on it failed with "a terminal has no copper under it".
    • The grid now rounds up to whole cells. A board that is already a whole number of cells keeps its grid.
    • A pad centred on any edge, or within 1 mm past it, now reaches the copper inside the grid. This also fixes the case rounding up can't: a pad on the far edge of a board that is an exact number of cells, such as 50.00 mm.
    • The last column and row can now reach past the outline by part of a cell. Only the part on the board loses heat to the air, and the viewer shows only that part, with each cell in its true place.
    • at on a terminal is unchanged: it still picks one physical pad by its centre.
  • One board thickness (issue 28). A body under the board coupled to B.Cu only when its top face was at the sum of the dielectrics and the two outer copper layers, while fields.json reported every copper layer in board.thicknessMm. On a 4-layer board those differ, so a body placed at the reported thickness silently took 0 W.
    • board.thicknessMm is now the one number the report, the viewer and the bodies use.
    • A top face couples when it is within 0.05 mm of that thickness, which takes a nominal 1.6 mm on a 1.57 mm stack, or at the older outer-copper sum, so existing specs keep working.
    • A new solid-uncoupled issue says when a body is left out. It is high when boardContactM2kW is set but no face is on the copper, and medium when a body has no heat of its own and no path to the board, so it carries 0 W. A solve also logs it, and solids.still has onCopper per body.
    • A body larger than the board now keeps its top face in the air outside the outline. It used to lose that face altogether.
  • Decoupling counts the chip's own grounds (issue 29). The review looked for a capacitor from each power pin to one ground, the first in alphabetical order. On a board with AGND and PGND, that gave a false decoupling-missing for every rail decoupled to PGND.
    • A capacitor now counts when it returns to any ground the chip has a pin on, or to the review's ground as before. review.decoupling records the return net of each pin.
    • A pin with no capacitor is still a finding, and so is a capacitor to a ground the chip has no pin on. The suggested capacitor goes to the ground of the chip's nearest ground pin.
    • The choice of the board's ground (issue 25) is unchanged, and so is --with pdn, which still looks for a rail's capacitors on that one ground only.

What moves on your boards. A board that isn't a whole number of cells gains a column or row, so its numbers shift slightly with the added copper and area. Peak rise moved under 1 % on the real boards below, and a value sitting right on a threshold can cross it: on StickHub, C22 at about 75 °C dropped out of a capacitor-temperature finding.

Checked:

  • Each report reproduced on 0.10.5 and fixed here, on small test boards:
    • Terminals on the far edge at 49.53, 50.00 and 49.46 x 20.03 mm all failed on 0.10.5 and now solve, also with --with all. A 49.53 mm Fusion .brd does too.
    • A carrier at z = -1.57 took 0 W on 0.10.5. It now takes the same 0.537 W at -1.57, -1.535 and -1.6. At -2.0 it takes 0 W and raises solid-uncoupled. Fan levels and a transient ran on it.
    • On a chip with AGND and PGND, VCC2 to PGND is no longer a finding. A rail with no capacitor and a rail whose capacitor goes to a ground the chip isn't on still are.
  • On real boards, 0.10.5 against 0.10.6:
    • The 12 V buck (28 x 20 mm): every finding and number unchanged.
    • BQ25792 charger (Fusion .brd, AGND and PGND, 50.4 x 26.4 mm): the grid and heat numbers unchanged, and two false decoupling-missing gone (LDO_3V3, on chips with only PGND pins, with C3 and C5 to PGND).
    • StickHub (16.5 x 40 mm): peak rise 61.7 to 61.3 °C, one column more. CM5 Minima (59.5 x 62.7 mm): 43.44 to 43.42 °C, one column and one row more.
  • The viewer, in a headless browser on a coarse-grid test board: the fields line up with the board and stop at its outline.

Not checked: the LM251772 board itself, which wasn't available; verify and report on the new grid.