Suffixes for Hierarchical Sheets


I am currently creating a schematic where I instantiate a hierarchical sheet twice. When I plot the schematic, KiCad will create two pages with the same local label names and simply incremented reference designators.

Is there a way (possibly through a plugin or something) to instead suffix all symbols and labels with a sheet suffix on these pages so that I can still differentiate the two pages easily in the export, and possibly even recognize the subsheet from the reference designator of a part? I’m looking for something that would name them “R122_OUTA” and “R122_OUTB” where “_OUTA/B” is the suffix of the respective sheet.

Thank you,

During annotation of the schematic, select:
( * ) First Free after sheet number X 100


Edit: The example is in:

Thanks for your reply, but this is not quite what I am looking for.

I am looking for a feature that will allow me to specify a manual, alphanumeric suffix for an instance of a sheet, which will then be used for components and labels.

For example, if I have a sheet called “output_circuit”, which I use twice, I want to give the first instance the suffix “_OC0”, and the second one the suffix “_OC1”. Then, when I look at the export or the layout, the reference designators should be “R1_OC0” and “R1_OC1”. Same for the labels; If there is a signal called “control” in the hierarchical sheet, I want it to be called “control_OC1” and “control_OC2” in the export.

KiCad is smart enough to include a sub sheet multiple times in the hierarchy, It duplicates the components and does not make short circuits but I do not know of a method to add user defined suffixes to components and labels.

Having component numbers from one sheet starting with 100 and from another sheet with 200 is maybe not ideal, but it is workable.
Silkscreen is only for enginurds and assembly people.
Is there really such a big difference beetween “R1_OC0” and “R1_OC1” compared with “R101” and “R201”?

Unless the user does not know which label types to use. A global label is still global which means it is possible to create shorts. And power symbols are also global.

Not possible. But with the hint paulvdh gave you, it is possible to have R101 and R201 for the equivalent Rx01 resistor of circuit 1 and circuit 2, being the x the number of that circuit.

Not possible for local labels. But it is also possible if you use hierarchical labels and name them with another label outside the hierarchical sheet. In this case it is possible to name them “control_OC1” and “control_OC2”.

The resulting net-names already include the full sheet path. No need to do this manually. Right now you only see the full name in the netclass assignment dialog and in the properties of a pad.
I think in future versions this part of the netname will even be displayed in trace and pads in pcbnew. (There is an idea to display the netname until it shows everything needed to make it unique.)

Also local labels by definition do not leave the sheet which makes your idea impossible anyway.

Learning is usually best done with hands-on practice.
In my first reply I lined to the “Copy & Paste” thread, and there I posted a completely zipped dummy project with a simple hierarchical sheet design.
You can use that to practice and get a feel of how this can be done in KiCad.
Direct link to the zip file: (15.3 KB)

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