Proposal. Virtual Copper plane

I have in several occasions had DRC errors because nets which are connected through jumpers or ICs does not appear electrically connected to KiCad. Especially for 2 layer boards, 0 ohm resistors are useful when crossing wires. Sometimes its easy to include this in the schematic, the jumper splitting a net into two separate nets. But it might be hard or unpractical in other cases, such as bridging a power wire through a 0 ohm resistor.

My proposal is to add a virtual copper plane to KiCad. By this I mean a layer where we might route together the nodes of the jumper, indicating to KiCad that there is an electrical connection between the nodes. Or route together VDD pins of an IC, indicating that they are internally connected and its not necessary to connect all pins. Of course if it’s mandatory to actually connect the pins in the layout, we wouldn’t use this proposed feature.

I mainly see the benefit of this when using jumpers, 0 ohm resistors, connected wires, and such.

Example of VDD jumper, blue line indicates virtual copper plane connection:

These days I make only Hobby projects and use Single and Double sided PCB stock. When I need to connect to a Plane, no problem connecting Jumpers to them…

I don’t know why your Jumper’s aren’t connected… That aside,
I haven’t any problems using the stock Bridged_Jumper Symbol which, I associate with my homemade 3D-jumpers (Symbols and Footprints).

Example shows No DRC errors… As far as ‘Copper Plane’, you can lay down a filled zone. For this Example, I added a Zone and assigned a Net in schematic, then updated the PCB - screenshot shows Nets connected, (zoom-in to read them) no errors…

My problem is for the situation where its not suitable to use jumpers in the schematic. I have experienced this in several situations when having to use jumpers for power wires. Let’s say the jumper divides VDD in half where half the components is connected to both sides. Then its not so practical to use a jumper in the schematic.

I may have misspelled a bit, I meant a virtual copper layer, not plane. Thus what I am proposing is to use this plane to indicate the connection through the component.

Does my proposal make more sense?

I appreciate your thorough reply, thanks

This is rarely true:

Lot’s of IC’s have multiple power connections, and there are good reasons for that. They do not do that for fun, nor because they have “spare pins”. Note that each pin on an IC package costs money to make, and if you have more power pins on a uC in a certain package, that means less I/O pins for that same package. You should always connect all power pins of each IC to their appropriate nets, and locate decoupling capacitors on their proper positions, and also make sure they have low impedance paths to the power supply.

Your application does not make much sense to me. It looks like you’re trying to make a single layer PCB, while these days there is no price difference between single or dual layer PCB’s. I can assume you are etching at home. KiCad’s philosophy is to become a tool fit for professionals and complex designs, and that combined with the limited number of programmers and limited development time, there is simply no room for implementing features that are only useful for hobby-level PCB design.

This means you have to work with workarounds. One way is to abuse the second layer as a “wire jumper” layer, and then use the (purposefully made very big) via’s to solder wires to. Another way is to abuse that same layer, but use via’s of a “weird” size, combined with extra footprints, and then remove those via’s (but leave the footprints) when ordering boards.

But overall it looks like bad design in the first place. I do not like zero ohm jumpers or even via’s in power tracks. In general I much prefer to have signal tracks change layers a few times then put vias in power tracks.

This example shows how I’ve done what you’re aiming at - sometimes I bother to do it, sometimes, not. Example does show it on Copper but, any layer you choose is fine…

Thus, draw the connection-plane on a User/other layer… (that way, it’s just Graphic)…

Example shows the 4 GND pins tied together…

I agree about the uC. I once made a PCB with a microcontroller board connected with multiple VDD connections. But again, that will most likely only be a case on a hobby-level design.

My design has 2 layers, the bottom being ground. The reason for the jumper is because the signal is relatively high speed and would benefit to have a continuous ground-plane beneath. The power jumper is used with caution, carrying low current. Maybe there are better 2-layer solutions.

I am not too experienced but I have seen consumer 2-layer boards with extensive use of 0 ohm jumpers, to reduce manufacturing cost. But maybe not applicable in the majority of cases.

but would it avoid DRC errors, if directly connected in the schematic but not electrically connected in the layout?

For a two layer PCB, you can easily add via’s and route a short track on the other side of the PCB. I2C is not high speed. It’s only beyond very high speed signals such as routing DDR3 or USB3 with signalling rates in the GHz that short (<3mm) interruptions and the impedance mismatches they cause become a problem.

No, any difference between the schematic and the PCB will be flagged by the DRC. You can disable specific messages if you want, but that makes it easy to make mistakes. The best way (and what I would do) is to go back and forth between the schematic and the PCB. If you want a Zero-Ohm resistor on the PCB, then first add it to the schematic in the place you need it, then update the PCB (which will split the net in two) and then place the resistor and the copper tracks.

Unfortunately this also has a side effect of IC’s not recognizing they are getting power, and you have to add PWR_FLAG symbols to your schematic too to prevent this.

Below shows Schematic and PCB. No Errors in either.
I changed the Layer Color’s Opacity, drew a Rectangle over the two Pads (again, for Graphic info only). I did not add Traces to them and user can do as @paulvdh indicated in tweaking DRC settings.

Thus, items in Schematic can show what you want.
Items on PCB can show or not show what you want (esp if limiting things, such as what we’re talking about).

I did not bother with changing my DRC settings so, the Rat-Line is showing the connection made in the schematic. (difficult to see the Rat-Line between the two Pads but Net-Name shows.

Yes the jumper is probably completely redundant, as you said. Which makes this not a problem in this case, and in almost all cases.
I guess my proposal does not result in a meaningful impact

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