GUI design and sorting of DRC violations for KiCad V6

DRC has greatly improved in KiCad V5.99 and there are now a long unsorted list of nearly 40 settings for severity of DRC errors in Pcbnew / File / Board Setup / Design Rules / Violation Severity

A few days ago I opened an Issue on gitlab for this and I made a suggestion by ordering them by object type.

Jeff Young made a suggestion to sort this list as:

electrical
(mechanical
tuning and schematic parity (or something similar)

Jon Evans made a suggestion for these categories:

Clearance / shorting
DFM (hole size, board edge clearance, footprint collision, etc)
Signal Integrity (diff pairs, skew, etc)
Other (schematic parity, problems with footprints, etc)

I am getting into trouble when trying to sort the items by function type.
For example, “Track width” is both a signal integrity issue and a DFM issue.

So the question is, what would be the best categories and sorting order for DRC violations?
If you want to give it a try, then copy and edit the text below for the order you would like best, or if a few suggestions are posted. Make a vote for which you like best and a short desctiption of the “why”.

Tracks

    Track width
    Track crossing
    Trace length out of range
    Track has unconnected end
    Pad net doesn''t match schematic
    Differential pair gap out of range
    Differential uncoupled length too long
    Skew between traces out of range

Vias & holes

    Via is not connected
    Via hole larger than diameter
    Annular width
    Too many vias on a connection
    Micro via drill too small
    Drill too small
    Drilled holes too close together
    Hole clearance violation
    Padstack not valid
    PTH inside courtyard
    NPTH inside courtyard

Board and Area

    Board edge clearance violation
    Board has malformed outline
    Copper areas intersect
    Copper zone net has no pads
    Keepout violation

Miscellaneous

    Unconnected Items
    Items shorting two nets
    Items not allowed
    Item on a disabled layer
    Clearance violation
    Unresolved text variable
    Silkscreen overlap
    Silkscreen clipped by solder mask

Note that I’ve checked in a cross between Jon’s and my original proposals just to have something. But it’s easy to change so don’t interpret that as it being a “done deal”.

IMO any of the above suggestions would be good. I wouldn’t split hair over it.
Right now it’s too chaotic; but whether it will be sorted by object or by violation type (with second order sorting by object type) it will be good improvement, and something we - KiCad users, will learn how to work with.
After doing the ordering of the list, usability wise it will be OK.
However the continuous list of Radiobuttons seems a bit weird, and it’s not common (at least in Windows).
Using something like Datagridview would be more native style of presentation, with user choice (Error/Warning/Ignore) as a drop-down select. Having implemented control like this, we could add columns for “Item” (Trace/Via/Footprint/Board/Other) and “Type” (Clearance/DFM/Integrity etc). Datagridviews allow to sort items, so anyone could sort this list as one needs (by object, by type or by severity). This would satisfy anyone’s tastes, but is it worth putting effort into? I’m not sure.

Have no idea what this means.

Highest priority violation on top? or bottom? Meaning
the first violation to be flagged by the DRC checker.

[quote=“paulvdh, post:1, topic:26292”]
Board has malformed outline [/quote]

This is probably an easy check if the user intends to create a rectangular board. (Just see if the diagonals are equal.) However, it is the test to see if this is true that bothers me. What if the user wants a board that is made of two rectangles, a big one and a little one, joined together along one edge of the little one?

I am not sure there could be a convenient test to see if the board outline is malformed . I’d rather just see a “check for equal diagonals” flag run by DRC for the simple case.

My best guess is that “malformed outline” means that end points of line segments on Edge.Cuts line up. KiCad doesn’t know whether you want to make a triangle or a pentagon.

But this thread is not about the contents of those violations, just about the grouping and ordering in the menu. Mr Young committed a merge, I’ll look tomorrow what it’s look like.

1 Like

The malformed outline test doesn’t have anything to do with rectangles. It just checks all the lines, arcs, etc. to see if they connect to make an outline with optional holes. For instance, it will flag 3 sides of a rectangle (because the closing side is missing).

1 Like

Oops; cross-posted. Looks like we said pretty much the same thing, though. :wink:

“Schematic Parity” indicates whether or not the PCB matches the schematic. In other words, are there footprints for each symbol and are they connected in the same way?

1 Like

Would it be wrong to use tags of which there could be several for one item?

This is how it looks in the latest nightly:

Definitely a step forward from the original solution.

Dang, I wish I had a screen that big…

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.