Best practices for multiple PCBs with shared sheets?

I am transitioning from Eagle to Kicad 6. I have a bunch of variant PCBs with slightly different configurations of an RF MCU (different peripherals, different RF matching networks, etc). I’d like to use hierarchical sheets for each PCB and to reuse the basic MCU sheet in each one of them.

What is the best practice for this? Should I create a project for the base-MCU schematic sheet and then reuse the kicad_sch file in each PCB project? Should I use a separate directory for each project or put them all in one directory?

Are there any downsides to reusing a schematics file in more than one project?

Thanks, Sivan Toledo

All solutions are good as far as you know what you are doing.

I prefer a separate folder for each project. So I copy the hierarchical file to the new project. The drawback is mainly that a change in that hierarchical sheet into a project must be redone for the other projects.

A hierarchical file can be shared by some projects too. The drawback is the same: in this case a change in one project will be transfered to the other projects whether you want it or not. It may alter finished projects.

1 Like

I would definitely have each project in it’s own directory, and then have the base-mcu-sheet in another directory beside them.

project 1 / …
project 2 / …
project 3 / …
global sheets / base-mcu.kicad_sch

1 Like

I would use the same approach.
When you create a hierarchical sheet entry, you can just browse to an existing schematic, and then asks you whether you want to use absolute or relative path name for that schematic.

I would start by creating a sub directory to keep all these related projects together, and then create a project for each of the variants, and also use a separate directory (and project) for the shared sheets.

Do beware though that they are still all separate projects. KiCad is (still) built around the idea of one project = one PCB, and this does have some side effects. For example, if you do a global re-annotation, then the annotation of the shared sheet will change, also for those other projects. You can use offsets (of either 100 or 1000) during annotation for each of the sheets, and this keeps the RefDes apart though all projects. Under the hood these RefDes values do not mean much. KiCad uses UUID’s under the hood to match schematic symbols with footprints on a PCB. The RefDes is mainly easily readable for humans, and it can be used as an alternative method to match schematic symbols with PCB footprints which is sometimes useful to repair certain errors.


This shouldn’t happen with v6. In v5 file format the annotations were kept in the shared file, which is of course nonsense for re-use. One of the changes in v6 was to move the annotations to the containing schematic file.


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