Multiple sheets at same hierarchy level


You can already select the page in the hierarchy using the “Navigate schematic hierarchy” top-toolbar icon. Click it, and the Navigator pops up. The lower-level sheets in the hierarchy are all there. This is true, even if you instantiate multiple copies of the same lower-level sheet (think: “Channels”). Each channel sheet is listed in the hierarchy.

Absolutely NOT, unless those signals are explicitly made global. Again, consider “channels,” multiple instances of the same sheet. The nets must all be unique, or else the whole thing fails. And if you don’t use channels, and instead just have several different lower-level sheets, the right way to connect them is with hierarchical labels on the lower-level schematics and hierarchical pins on the respective sheet symbols in the instantiating sheet.

They already exist, and have for some time! I use them in every design. Why do you think this capability doesn’t exist?


I think there is confusion over the terms “page” and “sheet”, which in KiCad are exactly the same thing. Historically that makes sense, because a sheet was drawn on a single piece of paper which corresponds to a printer or plotter "page.

So I guess the OP is talking about having “sub-pages” per sheet, which are electrically all in the same sheet, but when printed would appear as separate pages. It might be useful, but I wouldn’t put it as essential - depends on user I suppose.


I originally posted this question to try to figure out how people deal with complicated designs in Kicad. I’ve not seen a satisfactory answer. I’m with nicholas that this is a problem.
I’ve considered using bobc’s suggestion of having multiple pages on the same schematic canvas. Kicad doesn’t offer a nice way to print that, though. It just crops everything outside the frame.
For a simple design, I thought this over many times; I can’t make the top level any smaller (using hierarchy liberally.) I still had to bleed off the edge of the page as shown below:

About making stuff global as a workaround: it’s not a workaround . Global isn’t appropriate for many signals. Consider an Intel CPU with 8 DIMMs in 4 channels. If you make many of the DIMM signals global, you’d short channels to each other. However, this is one of those cases where it’s going to take more than an 11"x17" page to get everything down at each hierarchy level. You can’t even fit a single Intel CPU on a single page.


Do you have some suggestions on how this could be fixed? From what I can see you want to be able to control the relationship of sheets, so that if you had sheets A B C D E you can say “A B and D all share local labels while C and E are completely independent”.


OK, I see what you are saying. Your problem is that your “stuff on the same level of hierarchy” doesn’t fit into one reasonable-size schematic page.

The solution here is to have one top-level sheet, which instantiates lower-level sheets as needed. So perhaps you have a single sheet for two DIMMs, instantiated four times. Make sure to bring appropriate signals up through the hierarchy. Kicad is smart enough to know that four instances of the same sheet result in different local nets.

Then create a sheet for your CPU, and instantiate that too in your top level. Again, bring signals up through the hierarchy, and connect them to the DIMM instances and whatever.

Like I said, I see what you are saying, but it’s not really a problem. You just have to accept that you need a top-level sheet which instantiates several lower-level sheets. Those lower-level sheets end up on the same level of hierarchy.


There are practical limits how many signals can be bought up through hierarchical connectors. That master sheet gets very crowded. I can see where @berkakinci is struggling


multiple pages on same level = same as one single page split into multiple pages.
logically 1 page

you dont want the page-tree cluttered with each and every physical page
only logical pages that carry a logical function with a logical page name need to makr into the hierarchy browser.

thats what schematics is all about , logical representation of the physical world



Uh, that one is a paradigm shift.
I like it though, but will be fun to see how Wayne reacts to it :wink:


This looks like it’s more of a visual representation issue than it is a netlist/hierarchical issue. What we’re missing here is the option to have multiple “pages” (parts of a hierarchical sheet that print to 1 page) for any sub-schematics that become too big. For example, I have a schematic which contains a lot of relays, with the coils of these relays being on 1 page, but there is no space left for the relay contacts.

If I were to place those contacts on a different hierarchical sheet, it would become confusing at the top level because they belong to the same functional unit. Having to display them as a separate ‘box’ just because I need more room on my schematic feels a bit counter-intuitive.

The other option would be to make the print size larger so the sub-schematics have more printable area, but that would only compromise the readability of the schematics.

So the issue here is, that each “hierarchical sheet” has a fixed amount of schematic space, constrained to a single printable page. IMO users should be able to create more room inside a single hierarchical sheet if they want to.


Not only a visual issue only

Once you can get your logic sheet-collection saved into a single file you can copy this file between projects

very handy (as in mentor design capture)

In mentor the logical group (block) of sheets is saved in individual files.
complete design is the sum of thoose individual files.


I am a new user and stumbled upon this thread because I’m having a similar problem. There really is a problem and the workarounds can get messy

Yes, there is a distinction between “schematics” and “sheets”. Both of these concepts are generally available in other tools, so people are bringing the concepts with them, but it gets confusing because while KiCad has the concept of multi-schematic designs, it doesn’t have the concept of multi-sheet schematics. The workaround is to use multiple schematics to implement multiple sheets, but this can be quite messy if there are a large number of connections between the “sheets” since they all must be represented with hierarchical connections, due to the sheets not actually being sheets of a single schematic.

Just to be clear, sheets are multiple drawings or pages that behave as one single schematic. A hierarchical design is composed of schematics (as KiCad currently supports), and a schematic is composed of multiple sheets (so far not supported in KiCad). The multiple sheets of a single schematic would share local names, the multiple schematics of an entire design would not. Ideally, one would use multiple schematics when there is a logical separation of functionality, and would use multiple sheets when you simply ran out of space on the current schematic, as an alternative to using increased page size.

This really is a pretty big shortcoming for large designs. I’m somewhat lucky, I generally don’t need to print schematics on paper, so now that I know KiCad does not support multi-sheet schematics, I will just resort to using large page sizes to get around the problem. Some people do need to print out their designs for various reasons, however, and I can understand their desire to have reasonable page sizes and multi-sheet schematics.


I’ve opened an RFE for this:

If you agree, please go visit, comment, click “affects me” etc.


Not sure why you’re vehement insistence that schematic capture not work like every other ECAD package I have used for the past 30+ years. Flat schematics with common signal names being the same net is the norm. It maps well into the PWB physical implementation. Standard industry practice is to use on and off sheet symbols which show signal direction and references to connections on other sheets, usually automatically generated by the schematic tool. “Channels” or multiple implementations of the same sheet don’t map as well to physical implementation. I would rather have good tools for copying sheets, renaming nets and assigning reference designators.

I have been using Kicad for a month or so now and I have not found a way to create a second sheet at the same node of the hierarchical level. All I have found is that an upper level sheet can have several symbols which in turn can each have a single sheet under them and so on. If this isn’t the case please feel free to educate me.

I agree with Nicholas that the lack of multiple sheets at the same level is a major draw back. At the very least it make converting designs from other tool sets (like Eagle) much more difficult.


Is it just me, or is “RFE” not a very common abbreviation?


I don’t think it is a bug at all. I think this is by design.

I can NOT find the link, but there is a thread that describes how to assign the same Reference Designator to the same part on multiple sheets.

Once the Ref Deg is the same on all the sheets at that level, all the nets connect.


One defense contractor uses the abbreviation “RFA” for Request For Assistance that I could end up as a Request For Engineering help depending upon the type of problem being experienced.

So, in my opinion, not very common. You are not alone.


Sorry; I’ve been exposed to this acronym for 15 years. I didn’t realize it wasn’t common. RFE is a request for enhancement. It is not a bug since it is working as intended. Launcpad doesn’t distinguish bugs from RFEs. I did find a “feature.request” tag and used it.


We are in agreement there: this is by design, but it is a flawed design. That’s what other posters and I have been trying to say.
I started this thread over a year ago to find out how other users deal with complicated schematics in the KiCad “paradigm” of single-sheet hierarchy. I have not seen a single palatable method.
If you can copy a 1U server motherboard schematic to KiCad in a sensible way, I will learn from that and stand down. A link to a publicly-available 1U Intel server schematic is provided in the bug.


I’m lost with this thread, maybe because I don’t know how other tools work.

I don’t want kicad to change the way it works at all!

What do you mean by “multiple sheets at the same level”?

This is the main sheet (still a draft) of one of my projects. There are several sheets at the same level.
The second picture has 2 identical sheets, they point to the same file, so a change in one of them is mirrored into the other.

Nets between sheets can be connected by hierarchical labels-pins or by global labels.
I do not need any more features related to multiple sheets.

As I divide the projects into logical, functional, entity or call them as you like blocks, every sheet fits in an A4 landscape page.

I hope my explanation helps anyone to understand kicad philosophy.


That would suggest a model of having multiple “pages” within a sheet, which might be easier to handle, since a sheet is a single file. Then a local net applies to all pages in a sheet. For the purposes of netlist generation the “page” boundaries can be ignored. It’s only for display or printing where the pages are applied. I think that would be better than multiple files per sheet.

Either way, it’s quite a complex change, it requires extensive changes to the GUI, file formats and underlying logic.[quote=“pedro, post:39, topic:2632”]
I don’t want kicad to change the way it works at all!

I think that if done properly, then adding a feature need not have any impact on existing users. The new feature would only be accepted if it had no impact on legacy designs (Wayne is strict about that!). Of course, we would have to constantly explain that “Add page” is quite different to “Add sheet”.