Imagine that violating the micro-via min bumps me up a classification but violating the through-via min drops me out of pooling. There’s a big cost difference between those two.
> On 11 Jun 2020, at 16:47, Jon Evans <j...@craftyjon.com> wrote: > > Unconnected copper can also have electrical impacts. I agree it makes > sense to have some separation between copper and non-copper (not > connected vs. non-connected). > > I'm okay in general with the idea of trying to have different > severities for production vs. design performance constraints and so > on. Keeping annulus separate from via diameter is fine. > > Can you explain a situation where it makes sense to have e.g. > through-via drill be a warning but uVia drill be an error or > vice-versa? This is what I don't understand. > > On Thu, Jun 11, 2020 at 11:24 AM Jeff Young <j...@rokeby.ie> wrote: >> >> I’d definitely want to set edge clearance apart from other clearance. >> >> And I’d definitely want to set connected-item clearance (an electrical >> constraint) apart from non-connected-copper-item clearance (a production >> constraint). >> >> And I’d definitely want different violations for via annulus (a production >> constraint) and via size (possibly just a current/heat constraint). >> >> I’m still on the fence with throughVia drill vs. uVia drill. The rest I can >> agree with. >> >> Cheers, >> Jeff. >> >> >>> On 11 Jun 2020, at 15:56, Jon Evans <j...@craftyjon.com> wrote: >>> >>> I think having fewer codes is something to strive for, especially >>> since we are auto-generating severity options from the list of codes. >>> >>> Having a bunch of severity settings where people wouldn't reasonably >>> need to change them clutters the UI. >>> >>> Having excessive categorization in the DRC window makes it harder to >>> sort through that information (for me at least). >>> >>> I don't think we need to be able to set severities independently for >>> each rule in the "classic" system, we just need enough different >>> severity settings to make sense. >>> >>> For example, going down the classic DRC rules dialog: >>> >>> Allowed features: both checkboxes generate DRCE_ALLOWED_FEATURES >>> Arc/circle and zone fill: these aren't actually DRC checks >>> Copper min clearance: generates DRCE_CLEARANCE >>> Min track width: generates DRCE_WIDTH >>> Min via annulus: generates DRCE_VIA_SIZE >>> Min via diameter: generates DRCE_VIA_SIZE >>> Copper edge clearance: generates DRCE_CLEARANCE >>> Min through hole: generates DRCE_HOLE_SIZE >>> Hole to hole: generates DRCE_HOLE_CLEARANCE >>> uVia diameter: generates DRCE_VIA_SIZE >>> uVia drill: generates DRCE_HOLE_SIZE >>> >>> >>> >>> On Thu, Jun 11, 2020 at 10:42 AM Jeff Young <j...@rokeby.ie> wrote: >>>> >>>> What does that buy us? The only things the error code gives us is a >>>> string and a severity. The data storage (items, locations, etc.) is >>>> already completely orthogonal. >>>> >>>>> On 11 Jun 2020, at 15:36, Jon Evans <j...@craftyjon.com> wrote: >>>>> >>>>> But couldn't this taxonomy be separate from the DRC_ITEM (i.e. error >>>>> code) taxonomy? >>>>> >>>>> For example you could have a "classic minimum clearance" severity setting. >>>>> This would set the severity of any DRCE_CLEARANCE items generated >>>>> where the rule source is the classic system. >>>>> This would replace all of the "X too close to Y" error codes >>>>> >>>>> I think if we did this, the minimum set of error codes would look >>>>> something like one error code per setting in the Constraints setup >>>>> dialog. >>>>> Maybe even smaller than that number of settings, because you can set >>>>> separate numbers for vias and microvias and I still don't think you >>>>> need separate severities for those. >>>>> >>>>> On Thu, Jun 11, 2020 at 10:24 AM Jeff Young <j...@rokeby.ie> wrote: >>>>>> >>>>>> (But I do like being able to assign a severity to a rule.) >>>>>> >>>>>> On 11 Jun 2020, at 15:22, Jeff Young <j...@rokeby.ie> wrote: >>>>>> >>>>>> I think we’d still need some sort of taxonomy to put the severities on >>>>>> for the “classic” system. >>>>>> >>>>>> On 11 Jun 2020, at 15:01, Ian McInerney <ian.s.mciner...@ieee.org> wrote: >>>>>> >>>>>> Why not make the severity attached to the rule being used instead of the >>>>>> error code type. I think being able to say "this rule is very important >>>>>> and should be treated as an error" and "this rule is just a guideline >>>>>> and can be treated as a warning" while they are both the same error code >>>>>> would make more sense. >>>>>> >>>>>> -Ian >>>>>> >>>>>> On Thu, Jun 11, 2020 at 2:53 PM Jon Evans <j...@craftyjon.com> wrote: >>>>>>> >>>>>>> The only reasons to have multiple violation error codes is to be able >>>>>>> to set a different severity for them, or to be able to filter/sort >>>>>>> them. >>>>>>> >>>>>>> I can't think of a situation in which I would want to do either of >>>>>>> those things for different via types. >>>>>>> >>>>>>> On Thu, Jun 11, 2020 at 9:48 AM Wayne Stambaugh <stambau...@gmail.com> >>>>>>> wrote: >>>>>>>> >>>>>>>> I was thinking along the same lines. Wouldn't it make more sense to >>>>>>>> define the objects that violate a DRC rule and generate the error >>>>>>>> message on the fly rather than adding violation error codes for every >>>>>>>> possible error? >>>>>>>> >>>>>>>> On 6/11/20 9:26 AM, Jon Evans wrote: >>>>>>>>> I think microvias and vias using different technologies means they >>>>>>>>> need different *rules*, not different error codes. >>>>>>>>> >>>>>>>>> Whether a hole is laser or mechanically drilled, it will have some >>>>>>>>> rules, and those rules could generate an error "hole size is outside >>>>>>>>> allowed range". >>>>>>>>> >>>>>>>>> You can tell from the affected items whether the hole in question is a >>>>>>>>> via, microvia, blind via, buried via. >>>>>>>>> You can tell from the rule source whether this came from a microvia >>>>>>>>> rule, normal via rule, custom rule, etc. >>>>>>>>> >>>>>>>>> Why should we have separate violations per via type? (not separate >>>>>>>>> *rules* but separate violations) I still don't get the use case. >>>>>>>>> >>>>>>>>> As mentioned in the last taxonomy discussion, I still think we could >>>>>>>>> get rid of the tons of different "X close to Y" errors and just call >>>>>>>>> it a "clearance error", but I understand that might be more >>>>>>>>> contentious so I'd like to focus for now on just the keepouts and >>>>>>>>> vias. >>>>>>>>> >>>>>>>>> -Jon >>>>>>>>> >>>>>>>>> On Thu, Jun 11, 2020 at 6:51 AM Jeff Young <j...@rokeby.ie> wrote: >>>>>>>>>> >>>>>>>>>> The “Inside Keepout” issue might be a bad example. I’d definitely >>>>>>>>>> be in favour of folding all of those into a single violation because >>>>>>>>>> a keepout already specifies which types of things are excluded. >>>>>>>>>> >>>>>>>>>> But other things I’d be less in favour of. I want a warning about >>>>>>>>>> NPTHs in courtyards; I don’t want one for PTHs (the former likely >>>>>>>>>> has a mechanical fixing, the later likely doesn't). >>>>>>>>>> >>>>>>>>>> While I don’t personally use uVias, I’d certainly think we’d want >>>>>>>>>> separate violations for their holes (as they’re made with different >>>>>>>>>> technologies). On the flip side, I’m not sure there’s any value in >>>>>>>>>> distinguishing between throughVia holes and pad holes. >>>>>>>>>> >>>>>>>>>> But that gives us a different taxonomy for size vs. hole, as the >>>>>>>>>> difference between uVia and throughVia size may not be important. >>>>>>>>>> (We already have this to some extent as I didn’t bother with >>>>>>>>>> separate annulus violations for via types, although there’s a TODO >>>>>>>>>> in the code). >>>>>>>>>> >>>>>>>>>> This all begs the question “how bad is an uneven taxonomy”? Is it >>>>>>>>>> just an ivory-tower kind of thing, or will it actually cause >>>>>>>>>> confusion? >>>>>>>>>> >>>>>>>>>> Back to specific instances, I like being able to treat >>>>>>>>>> track-too-close-to-connected-item separately from >>>>>>>>>> track-to-close-to-unconnected-item, but I’m less fussed about the >>>>>>>>>> differences between the type of connected item >>>>>>>>>> (track-to-close-to-via vs track-to-close-to-track). (For what it’s >>>>>>>>>> worth, unconnected items are already grouped as we don’t have >>>>>>>>>> separate errors for track-to-close-to-graphics vs >>>>>>>>>> track-to-close-to-text. Yet another bit of unevenness in the >>>>>>>>>> existing taxonomy.) >>>>>>>>>> >>>>>>>>>> Oddly I find the parallel-tracks vs crossing-tracks useful, but I >>>>>>>>>> have no idea why. I guess it just gives me a better idea of what >>>>>>>>>> I’m looking for on the board? >>>>>>>>>> >>>>>>>>>> One last note: Greg’s request for specific exclusions is already in >>>>>>>>>> the nightlies. >>>>>>>>>> >>>>>>>>>> Cheers, >>>>>>>>>> Jeff >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>>> On 11 Jun 2020, at 06:19, Greg Smith <ecomput...@yahoo.com> wrote: >>>>>>>>>>> >>>>>>>>>>> I think more grouping in general categories is good. I also think >>>>>>>>>>> that it would be nice to exclude *specific* DRCs that once a >>>>>>>>>>> designer checks the error, they can flag it to ignore in the >>>>>>>>>>> future. The specific check could be identified by a unique id: a >>>>>>>>>>> hash of specific information, like unique error and objects >>>>>>>>>>> involved (identified by geometries and properties involved). If >>>>>>>>>>> anything changes, then the rule violation reappears under a >>>>>>>>>>> different unique id. I think this would help greatly on >>>>>>>>>>> near-tapeout activities where sifting over the same DRC errors >>>>>>>>>>> becomes tedious and prone to missing valid DRC violations in the >>>>>>>>>>> midst of “designer checked and allowed” ones. >>>>>>>>>>> >>>>>>>>>>> Greg S. >>>>>>>>>>> >>>>>>>>>>>> On Jun 10, 2020, at 7:59 PM, Jon Evans <j...@craftyjon.com> wrote: >>>>>>>>>>>> >>>>>>>>>>>> Hi all, >>>>>>>>>>>> >>>>>>>>>>>> A DRC error code is something like "Via inside keepout area", or in >>>>>>>>>>>> the code, DRCE_VIA_INSIDE_KEEPOUT. It describes a "type" of DRC >>>>>>>>>>>> error. This type is used for organizing the errors in the DRC >>>>>>>>>>>> report, >>>>>>>>>>>> and more recently, for letting you set a severity >>>>>>>>>>>> (error/warning/ignore) for each code. >>>>>>>>>>>> >>>>>>>>>>>> Currently we have a lot of DRC violation types, probably because >>>>>>>>>>>> the >>>>>>>>>>>> violation types match up to the underlying code that is doing the >>>>>>>>>>>> checking. So, we also have a DRCE_MICROVIA_INSIDE_KEEPOUT and >>>>>>>>>>>> DRCE_BBVIA_INSIDE_KEEPOUT, because a lot of KiCad code has separate >>>>>>>>>>>> paths for those three types of vias. >>>>>>>>>>>> >>>>>>>>>>>> Do people find this useful? I think it is too specific: I would >>>>>>>>>>>> rather see a single code DRCE_VIA_INSIDE_KEEPOUT to include all >>>>>>>>>>>> types >>>>>>>>>>>> of vias. I could even see having a single code for any object >>>>>>>>>>>> inside >>>>>>>>>>>> a keepout that isn't supposed to be there. I can't imagine a >>>>>>>>>>>> situation where I would want to have a via inside a keepout be an >>>>>>>>>>>> error, but a microvia inside a keepout be a warning or an ignore >>>>>>>>>>>> (having the separate error codes means you can have seperate >>>>>>>>>>>> severity >>>>>>>>>>>> settings). If I wanted to know if a particular DRC error referred >>>>>>>>>>>> to >>>>>>>>>>>> a via or a microvia, I can do that from the linked item >>>>>>>>>>>> information -- >>>>>>>>>>>> I don't need a category to tell me that. >>>>>>>>>>>> >>>>>>>>>>>> What do you think? Does having a lot of very specific error codes >>>>>>>>>>>> help your workflow? Would you miss these categories if some of >>>>>>>>>>>> them >>>>>>>>>>>> got consolidated like the example I gave? If so, are there other >>>>>>>>>>>> changes we could make (or features we could add) that would make it >>>>>>>>>>>> easier to deal with having less specific error codes? >>>>>>>>>>>> >>>>>>>>>>>> Thanks, >>>>>>>>>>>> Jon >>>>>>>>>>>> >>>>>>>>>>>> _______________________________________________ >>>>>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> _______________________________________________ >>>>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>> >>>>>> _______________________________________________ >>>>>> Mailing list: https://launchpad.net/~kicad-developers >>>>>> Post to : kicad-developers@lists.launchpad.net >>>>>> Unsubscribe : https://launchpad.net/~kicad-developers >>>>>> More help : https://help.launchpad.net/ListHelp >>>>>> >>>>>> >>>>>> >>>> >> _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : kicad-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp