Would it be possible to detect 0 ohm resistor as a connection in DRC and ratsnest?

The top image works but is not ideal since the net is broken, even though it is technically the same net… the bottom doesn’t work since it is attached to the same net on both sides. I see this asked every few years and it’s rather annoying sometimes because I know what I want and the tools are just getting in the way.

I think ideally it would have to be a special symbol in the schematic (a 1 connection symbol) that you can put a footprint in that just assumes all the pins on that footprint are bridge? Something like that… I realize that isn’t what the topic says but I’m open to anything that might make this more workable.

This would kind of be the PCB counterpart to a net tie.

One simple solution to this ‘problem’.

  • connect a resistor with BOTH sides to the same net

image

1 Like

Not sure why you think that works.

That 0 ohm resistor will be a DRC violation if it is the only connection between the two sides of a net, which is kind of the entire point.

Also that is exactly what I have in my schematic…

I think the idea is to use the resistor as a jumper to get over other traces. I also like to do that for a 2 sided board. Also sometimes I will do that with a wire jumper which is a nice test point. I guess the question is to have a component which (within pcbnew) connects the two pads to the same net. Without having that, doing as shown in the images, pcbnew will think that the net is broken.

cb88 do I understand the situation correctly?

One thing I am doing is assigning a lot of “global label” net names. You could have two net names which are identical except for a _1, _2 for example. I am not sure if this will foul up the plans…

1 Like

The current sense four terminal resistor also has this problem. I really want to keep the four nets separate

2019-12-05%2014_21_39-Window

DRC is net based. If two points share the same net then it wants them to be connected.

So if you want to use a jumper or similar inside a net then you will need to have the two nets with different names.

There are plans for first class implementation of net ties. Maybe they will make such a usecase easier.

There is absolutely nothing wrong with that. It checks out perfectly in eeschema and pcbnew!

image

Your showcase is not really comparable to what the original reporter sees. The reason why they get the ratsnest line (and one unconnected) is because they really have two 3V3 islands. If there is some other direct copper connection (like in your case) then kicad will of course not complain.

Meaning if the jumper is not there to make the only connection but is there to possibly reduce the path length then kicad will not complain about such a jumper being not connected. For such a case having two different nets would be counter productive. In the case where the jumper is the only connection point (especially if this is intentionally the only one) then having two different net names is the way to go.

2 Likes

In this case we change gears and create a solution.

Defined a special resistor symbol

image

… and created a very special footprint with a single, but split pad :sunglasses:

Again, passes both checks, and no ratsnest mark.

That’s because it is tied together by a power plane… which won’t exist on a 2 layer board in all likely hood. I’m not sure why you find this use case confusing and continue to ignore what I’ve said perhaps I could have been more clear by specifying that it is on a 2 layer board?

Are you sure that works… for one you still have a power plane interfering… and the 2nd “pad” doesn’t show a net can you even connect a trace to that?

I will have to investigate this as it looks like a potential workaround but it is almost certain that it would break if you deleted your power plane. How did you make this footprint?

I too think that the idea of making one netlist “pad” which has two separate physical pads sounds like an intriguing idea…if it can be done. However the schematic example is not so great because it shows as a single ended resistor (more like a test point) and not a zero ohm pass thru.

I think that the 4 nets of a 4 terminal resistor would be separate? I think it would be more difficult to make any two the same, unless you implement a sort of Kelvin connection with two or more connections to each of two pads.

Just tossing ideas around.

Yes he clearly can. See the pcb screenshot :wink:

As a hint: read up on pin stacking.

1 Like

During these couple of years I have been using KiCad I have come closer and closer to the conclusion that this would be a good idea. In my opinion this should be done in schematic, maybe in the symbol. Possibly a special kind of wire which tells that two pins are connected outside the board copper. It would connect the two nets of those pins as if it were a normal wire, but it wouldn’t require copper connection between those two pads in the copper layers.

I’m not 100% sure this should be done, but it’s so intuitive thing to need that many newcomers ask about it, and also those long time users who have problems with e.g. 4 pin switch which has only 2 electrical poles. The workarounds for such a switch feel clumsy (either change the amount of symbol pins or change the footprint pads only because you want to do something which should be doable automatically).

In this original poster’s case, let’s think about the workaround, namely adding a resistor and dividing the net into two. Depending on how labels are used, the user may have to delete some labels - otherwise the two nets are still one. The new net may have to be named. The new net needs a net class in the layout. And what if later that jumper resistor isn’t needed after all and can be removed? Same kind of procedure with net labels in the schematic again.

Compare this with an alternative workflow with “external connection wire”. Just add a symbol with an attached footprint, add the wire between the two pins, update the PCB, move the footprint into its place. And removing: delete the symbol + wire, update PCB, draw track where the footprint was. No need to care about new net names or net classes.

It’s possible that the case with a 4-pin switch will be solved with pin swapping feature in the future. But probably it wouldn’t work for the jumper resistor. Although it’s unclear to me what pin swapping can and cannot do.

1 Like

The four terminal resistor is used for current sensing, so you really need to be able to connect two nets to a single pad, without losing one of the names.
At the moment I have to overlap two pads and live with the DRC complaints

1 Like

Implement the pad similarly to how the pads of a net tie are made.
Or use the net tie itself.

This assumes your resistor is not already defined by the manufacturer in such a way that there is already a separate pad for the sense traces (a lot of shunt resistors really have a separate terminal for the sense connection)

A workaround at the PCB level is to add a trace on an unused layer[1]. So functionally, a part that is internally connected is equivalent to a footprint with traces on a “hidden” layer. Currently, DRC gets connectivity from actual copper layers. If the connectivity also got connection data for the “hidden” layer from the footprints, it can be added.

To add that information to the footprint, a group of pins could be selected and the property assigned:

  1. Not the same net (the current default if pin numbers are different)
  2. They are on the same net, but not connected internally (what happens if you give them the same pin number)
  3. They are on the same net, and connected internally.
  1. is the case that is new. That tells DRC only one of the pads needs to be connected to a net, the other pads in that group do not need to be. It also implies that if one pad in a group is connected to a net, all the other pads in the group are also connected.

I think this connection behaviour is not the same as pin or gate swapping, but I may be wrong.

[1] Obviously that only works for PTH, the principle is similar.

When I think of a 4W current sense resistor, I think first of those resistors you can buy with 4 actual terminals, such as http://www.vishay.com/docs/30189/wsk1216.pdf. I have also connected added sense traces to pads for 2W resistors, but I view that as something of a compromise.