Is it possible to display all "Net Classes" in Pcbnew

Hi Experts,
In my project, I wanted to increase the track width of one of the tracks.
However, under pcbnew -> Board setup -> Design Rules -> Net Classes,
I found that not all tracks (or pads connected to tracks) are listed.
For example, in the case of resistors, only one pad is listed so that it is not possible to change the width of the track connected to the other pad of the resistor. Some tracks are not listed at all.

Is there a way to add unlisted pads or tracks to the list of Net Classes?
Is there any documentation available covering this topic?

Since I believe this might be a general issue and not necessarily related to my specific project, I have not attached the project file here. However, if needed I can send it.

I am using Kicad version 5.1.8. KiCad version info.docx (11.9 KB)
Thanks for your help in advance.
Best regards

all nets should be listed, maybe the other side of the resistor got the name of another net (GND, 5V, etc.) to find out, you can zoom in to the component in PCBNew, the pads will have the names of the nets connected to it.

p.s. I would recommend to paste directly your kicad info in the forum, instead of using a word doc.

1 Like

Open the PCB, set the Pref’s as shown below.

If you’ve setup Track Widths (pre-defined sizes) and select one, then double-clicking a Track will change that track to the selected Width…

I think there is a misinterpretation of what you are seeing.
Pcbnew / File / Board Setup / Design Rules / Net Classes
This does not list “Pads” or “tracks”, but it lists Nets. A “Net” is just a list of pads that should be connected to each other. Each net is listed only once, and nets (usually) have more than one pad connected. Nets such as “GND” or “VCC” can have hundreds of pads connected, but are still listed only once.

If there is even a single net that is not listed, that would be a serious bug.

Hi der.ule
Thanks for your quick response.
I zommed the net which was not listed in “net classes” and found that though it showed the name I had given it in EEschema (using the icon A: Place net label) during circuit design - but that name is not listed in the “net classes”.
Deleting the self-defined net label in EEschema and generating and downloading a new netlist in pcbnew shows the KiCad generated netlabel and this is also listed in the “net classes” allowing one to change the track width.

I repeated the experiment with another net in EEschema giving it a user-defined netlabel and the Pcbnew “net classes” promptly dropped it from the list in “net classes”.

Thus in summary, my observation is that if user defines a net label in EEschema, this net is not listed in the “net classes” in pcbnew.

I am not sure if this is a bug or a feature? Probably the design team will have to decide and document it. Of course, this behavior can also be related to my Kicad installation settings.

Thanks for your suggestion anyway - although as it seems that at present I can’t use the user-defined net Iabel in EEschema (which I consider useful for easy circuit reading) - but I can at least proceed now.

Best regards

Hi paulvdh,
Thanks for your response.
Kindly refer to my reply to der.ule. My obersrvation is that if a net has been labeled by the user in EEschema, one can see it in pcbnew but this user defined label is not listed in “net Classes” thus I could not assign/change its track width like e.g. in case of Vcc etc.

Each net is listed only once, and nets (usually) have more than one pad connected. Nets such as “GND” or “VCC” can have hundreds of pads connected, but are still listed only once.

Yes, I fully agree with you but the two pads of a resistor can (and usually are) connected to two different nets. And in my case, I had assigned a user-defined lable to one pad of a resistor in EEschema and precisely this net (although visible in pcbnew) was not listed in “net classes”.

Again, I am claiming that it is a bug, probably I am making a mistake somewhere but as of now, this is my observation.
Thanks for your comment
Best regards

Hi, paulvdh
sorry, in the last sentence of my reply to you one important word is missing.
The sentence should read:

Again, I am NOT claiming that it is bug …

Sorry for the typo.
Best regards

Can you post a screenshot of your schematic and explain what the net in question is?

You can have multiple names for things in eeschema but only one net name will make it to pcbnew. It kind of sounds like you are expecting a different name than the one KiCad is picking to include in the netlist, but it’s hard to tell without more context about your design.

1 Like

I’ll spend some more time on this.

First: you can edit previous posts by clicking on the pencil icon at the bottom of a post:
image

Second: I see lots of small typo’s, so I assume English is not your native language, and I’ll try to compensate for that.

Third:

This is a very old way from KiCad V4.
Exports an imports of netlists is not used anymore for regular work flows. It is kept in place for use with external programs and as a interface to scripts. The normal way in KiCad V5 synchronize the netlist from Eeschema to Pcbnew is with:
Eeschema / Tools / Update PCB from Schematic and has been assigned the [F8] shortcut key. Or you can do it directly from Pcbnew with:
Pcbnew / Tools / Update Pcb from Schematic, and in Pcbnew it also has an icon on the top of the screen: image

Fourth: When working with external netlist files it’s easy to make mistakes. You can for example write the new netlist file into some sub directory and then re-load the old netlist file in Pcbnew.

Also check if you haven’t attached more than one label to the same net in different areas, in this case PCBNew will use only one of these.

Nets named like that are local nets, the only connect to nets on the same sheet. In your list of nets in net classes would start with a slash indicating the root page (even on a single page schematic). Thus if you have a net named foobar then it will show in the list as /foobar.

This is because, if you are using a hierarchical schematic then the sheet name will be added to the beginning of the net name, looking much like a path. For example, if I have a sheet named foo and on that sheet I have a net label bar then I would be looking for a net with the name /foo/bar. This would keep two nets named bar on different sheets from connecting.

Nope not a bug. I haven’t looked at the documentation in a long time to see how well (or not) this behavior is documented.

@paulvdh
Many thanks for valuable tips by recommending to use newer more powerful commands offered by Kicad instead of working with older methods. Your advice is always welcome and motivation for me to improve. Yes, your assumption is absolutely correct, English is not my native language. Thanks for your patience and understanding.

@craftyjon
As per your request, I am attaching 6 screenshots (clips) with 3 showing EEschema, pcbnew and net classes without user-defined net label and 3 showing the same but with a user-assigned net label.

clip1: EEschema without user-assigned net label

Clip2: pcbnew with standard net-label: net-(R1-Pad2)

Clip3: net classes listing the net-(R1-Pad2)

Clip 4: EEschema with user-assigned net label “HV” (located on net between HV_out and R4)

Clip 5: User-assigned net label is visible in pcbnew

Clip 6: User-assigned net label “HV” is not listed in net classes

I hope this illustrates what I am observing i.e. the user-assigned net-labels are shown in pcbnew but not listed in net classes. And thus I can’t set the track width to a desired value.

@fred4u
Also check if you haven’t attached more than one label to the same net in different areas, in this case PCBNew will use only one of these.

So far as I can see, only one net label at only one place has been assigned to the net in question and the pcbnew names it correctly.

@SembazuruCDE
Nope not a bug. I haven’t looked at the documentation in a long time to see how well (or not) this behavior is documented.

Yes, I also don’t think that this is a bug but I also need to study the Kicad document to understand this behavior.

Thanks to all for your efforts to help me.
Best regards

Ah, now I see where the misunderstanding is.
You are mixing up “netclass” and “net”. A “netclass” is not a “net”. Those are two different things.

A netclass is a set of rules that have a name, and you have to devise that name yourself. In the screenshot I made 2 new net classes with the names: “Starter99” and “Newer_Nerd”.

When you add a label in Eeschema, you give a name to a net.
All net names (from labels, but also from auto generated names) are listed in the lower right part of the screenshot.
In that area you can open a drop down box for the “Net Class” and then put one of the nets into that netclass. You can do this one by one, but you can also use the filters and the “bulk assignment” options on the lower left.

The bulk assignment works good for when you have lots of named nets, for example for a databus.

Normally a lot of different nets are assigned to the same net class. For example for all signal tracks that do not carry much current I use the same netclass which usually has a width of 0.3mm.
For all power tracks (both GND, Vcc and possibly more) I usually also use a single netclass, but this has a wider track width because it has a higher current. I seldom use more then a handful of netclasses in on a single PCB.

1 Like

look for /HV in the list of nets.

2 Likes

You can use the filter for this.
First enter the name of the net in the “Net name filter:” box, and then click on Apply Filters. ( Do not press enter, that is a (minor) bug that closes the window). I do not have a “HV” net, so I used “boo” as filter text, and after pressing “Apply Filters” only the nets with that string in the name are listed on the lower right.


After applying the filter you can use the “Bulk Assignment” part of the dialog to assign a netclass to either the nets listed at that moment on the right side.

Another use of the “bulk assign” is to:

  1. First clear the filter with [ Show All Nets ]
  2. Click on nets in the lower ritht together with either [Ctrl] or [Shift] to make a selection.
  3. In Assign Net Class / New net class: select one of the existing net classes.
  4. Click on [ Assign To Selected Nets ] to put the selected nets into the netclass you just selected.
1 Like

@paulvdh
@SembazuruCDE

Many thanks to both of you for explaining the listing of the user-assigned net label in
Pcbnew / File / Board Setup / Design Rules / Net Classes window.

Now that I know with your help how to handle such net labels I will be more at ease using user-assigned net labels in EEschema. Mainly though to make (at least as I find it) a circuit more readable but also - if needed - to adapt the net properties (e.g track width, via size drill size, etc.) to project requirements.

Thanks again and best regards

1 Like

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