I've Been Playing Around WIth Hierarchical Sheets


I’m working on a design that means moving display items around. In this case, the PcbNew Layout is more important than the Escheema layout. The goal is use KiCad to represent the final layout before drawing the items on the schematic.

The biggest issue I had was that Hierarchical Sheets do not all Annotate the same way; and I think this might be a bug.

My design has 6 sheets at the moment. I changed up the priority of the RefDes on the PcbLayout; so that they would not move with an “update Pcb” click.

I think I should be able to Globally reset every RefDes in Escheema; it seemed to work once.

Anyways, the point is that I don’t want to have a RefDes of “101”, “201”, … “601” just because I duplicated the same part 6 times; a RefDes of just “1” to “6” works for me just fine.

Tonight I spent way more time then I feel I should have while working a design with KiCad.


In the Annotate Dialog under Numbering, it appears that the “First free after sheet number X 100” is selected. This has the effect of starting the RefDes numbering on each sheet with an offset of 100 (i.e. Sheet 1 = 100,101… Sheet 2 = 200,201…). This can be nice when debugging a multi-channel board later. Changing the option to "Use first free number after “0”, will start RefDes number from 0 and increment across all sheets.

Note that Kicad also has an internal reference timestamp for each part. So if you change the Annotate options and renumber the world, when you push the RefDes changes to pcbnew, it will update the RefDes on the correct components.

NOTE: When playing with renumbering RefDes’, always make a backup of the project first just in case something doesn’t go the way you think.


I was careful with incremental project backups and saving to disk; and I have to say that your comment is great advice for others.

Any time I get started with Hierarchical Sheets I seem to always end up doing something that KiCad does not like. And, it may not be because of a bug, it may well be operator error.


How do you control the sheet number? I see that sheets have timestamps but there is no visible/editable attribute like a sheet number.

Also, when working with reuse of a hierarchical sheet (“channels”), it would be nice to be able to set refdes to something like C4_%S whereupon it will be expanded to C4_1 for sheet 1, and C4_5 for sheet no.5 and so on, when we run “annotate”. Is there such kind of a feature existing?


I guess the sheet number is automatic. The top sheet is number 1 and then they are numbered in the order they are created.

There is an option in the annotate window: first free after sheet number X100 (or X1000).
This way you get C104 for sheet 1, C204 for sheet 2, C304 for sheet 3 and so on. Not exactly what you want, but nearly so.