Jumper throws ERC error

A normally closed jumper throws an ERC error. Example:


For a normally open jumper (NO) I would understand this error. But a normally closed (NC) jumper is a straight connection. Why does it trip the ERC? This looks wrong to me. Is that intended behaviour?

Version: 5.1.9+dfsg1-1, release build

KiCad doesn’t know if it’s open or closed. There are just two pins, like in a resistor (which can be infinite or zero ohms). KiCad sees only two unconnected pins, it doesn’t care about internals of a component. You have to add a power flag to the net between JP1 and U1.

This is a recurring question, often with a diode. But KiCad doesn’t know how the component works. You would need a simulator for that (and KiCad has one) and symbols with models.

2 Likes

Does the power flag on that net have to have a name other than “+12V” ?

The “Power Flag” symbol is a separate symbol which looks like:
image
… and wxE5 already has two of them on his schematic.

As eelik already wrote it is a limitation of KiCad that it does not know (and there is currently no way to tell it to KiCad) that power can go through diodes, filter inductors, fuses, jumpers, switches or other components. This is a bit of a nuisance for schematics which have a lot of such components.

There are a few ideas for improvements posted on gitlab for this:
https://gitlab.com/groups/kicad/-/issues?scope=all&state=opened&search=pwr_flag

1 Like

I assumed that there’s a way to communicate that to KiCad.

I totally agree for complicated components like diodes and even resistors, which can have different values. But I assumed that KiCad knows that components can have a straight connection, e.g. NC jumper, solder jumper, net tie, 0Ω resistor, piece of wire, etc.

I just tried a net tie and to my surprise even a net tie triggers the ERC error. I thought the whole purpose of this component was to tell KiCad that the two sides are connected. But KiCad disagrees. Of all the abovementioned parts KiCad only considers a piece of wire a connection. That’s just not what I expected.

Thanks for clarification.

1 Like

Well KiCad doesn’t at the moment. Maybe some day it will if effort is put into the code and component data, and we can stop answering this FAQ, but there are bigger fish to fry at the moment. In the meantime this is just a piece of lore for using KiCad.

I don’t think it ever will… right now there are a lot false-positives BUT the designs are viable. The moment “logic” is added to infer the intent based upon what is used there is the risk of false-negatives and damaged designs.

A compromise might be such serial components have an additional checkbox to indicate passthrough type behavior, a checkbox that is cleared IF there is any connectivity change but even then this runs the risk of false-negatives.

A better short-term fix would be a friendly prompt for this type of error " has a PWR_FLAG been forgotten?"

NOTE: this type of ECR is extremely helpful and has caught a few disconnected Power-in so I personally would not want to see too much divergence from the present behavior

1 Like

A jumper is a jumper. This means that you can open it in the real world, even if it is shown closed in your circuit diagram. If an opening would never be necessary, you could leave the jumper completely off and connect U1:Pin1 and C2 directly to +12V.
When you open the jumper, you have two different networks from an electrical point of view, so I find it correct how KiCad behaves.

Hubert

3 Likes

Fair enough for the jumper. But what about a net tie and 0Ω? Those should definitely count as connected.

While a jumper may seem a trivial case, the use-cases are wider. There is a recent thread here where someone wanted a DIODE to pass the power flag through it as it was part of a rectifier

Where do you draw the line? a jumper seem reasonable as it is just a piece of wire, so expanding on that logic so is a 0R resistor so why not passthrough resistors, same argument for inductors as for DC they are “0R” and now we are into the realm of KiCAD having to infer the intent of circuit based upon primitives’ that can have a wide range of impedances

I would always err on the side of caution because at the other end of the keyboard is a human

1 Like

net-ties are an odd/special case and this would be valid (the 1st class net-ties might deal with this). 0R however… unless there was a SPECIAL flag to state such a component was a link then it runs the risk of how would KiCAD know it is a 0R , remember there is a human at the other end and the circuit symbol is divorced from the actual part

There are many cases which come up and they often aren’t even about power or power components like filter inductors or diodes. A simple one is a multi-way (say two-way to simplify) switch or jumpers connecting an input pin to one of several outputs. ERC cannot know that the pin is driven in all cases so the input pin needs a PWR_FLAG which is a misnomer here, but that’s part of the lore too.

Unfortunately even that isn’t so simple. Think about boards which are made to be configurable with net ties, you can cut the copper in the net tie (or somewhere else, but a net tie can make it explicit) or leave some part of the board unpopulated. If they are automatically seen connected by KiCad you will get error with for example two alternative power sources.

I think the only viable solution for these problems is to add possibility to mark two pins as “internally connected for this or that purpose” but in the schematic level, or so that it’s visible in the symbol and can be turned on/off in the schematic.

The entire point of a net tie is to be able to connect two differently named nets together electrically without triggering a short circuit DRC error. To have it show as having the two nets connected electrically completely defeats the purpose. This is deliberate and has at least one use case, that being able to make planar windings for magnetic components where the copper on the PCB connects two different nets.

As for 0 ohm resistors and jumpers, a very common use case is to use these to configure circuits, i.e. they may be changed to modify circuit behavior. To show these as electrically connected in an automatic fashion defeats this common use case. I’m not aware of any PCB software (cheap or expensive) that connects these automatically, because the software cannot discern what the designer is thinking.

John

3 Likes

I think you meant to do a reply all, the button at the bottom, rather than reply to post with the arrow under the post, as I have said nothing about net ties at all. Or perhaps you meant to reply to naib’s post above mine. TBH not everybody is aware of the difference between the two types of reply button on this forum.

well the simple fact is there is enough ambiguity that adding some “intelligence” to infer the intent of a circuit w.r.t. powerflow is going to cause problems

1 Like

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