Repository navigation
Conversation
…ng it refill_zones filled and installed in one step. Split out filled_text so a pass can read the poured polygons first.
Tracks cut a pour into regions, and a region holding copper of its own but no via to the other layer is tied to nothing. KiCad reports it as a zone against itself at the zone origin, so the router's repair had no place to put a bridge. Read the poured polygons, join them through vias, plated pads and tracks, and add a via where an island and the main pour on another layer both have room. Runs on the candidate before it is validated.
The smallest copied a router's one escalated via, which is under the board's minimum via diameter. Use the size the net has most of, the larger on a tie.
A decoupling capacitor's ground pad sat in a 2.67 mm2 F.Cu island on the irrigation controller. Its widest circle has a radius of 0.387 mm, and the pass asked for 0.4 mm: the 0.3 mm via pad and 0.1 mm of slack. It tied nothing, and KiCad reported the zone against itself. The slack is now 0.05 mm, since the pour edge already stands off foreign copper by the clearance rule. The search grid no longer starts at 0.2 mm, which could step over a window that narrow, and comparisons allow for rounding.
W-SYNTH-DRC-016 flags a signal via with no ground via within 1.53 mm, because return current follows the reference plane and has to jump layers with the signal. The irrigation controller had 70, and nothing added ground vias after routing. After the islands are tied, every non-ground via with no ground via within 1.4 mm along either axis gets one at the nearest point that lies inside the ground pour on both layers with room for the via. The pour edge already stands off other copper by the clearance rule. A new via counts for the signal vias after it, so neighbours share one, and it keeps 0.2 mm of pad from other vias. On that board the pass adds 65 vias and leaves 1 layer change without a return; KiCad DRC is unchanged, with no errors and nothing unconnected.
cargo doc -D warnings rejects an intra-doc link from stitch_vias to the private RETURN_REACH_MM.
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.
What type of PR is this?
This is a bug fix
What does this do?
island_vias::stitch_viasadds a ground via within 1.4 mm of each signal via lacking one, inside both pours.Which issue(s) does this PR fix/relate to?
Have you included tests for your changes?
Yes, five
stitch_viastests; on the irrigation board findings fell from 70 to 1.Did you document any new/modified features?
No, the pass is internal to routing delivery.
Notes
Stacked on #289; its commits show here until that merges.