Multiple PCBs in one (master) project

Just thought I’d share a workflow I’ve successfully been using to manage projects that benefit from a shared symbol and footprint table, shared schematic hierarchy, but really need multiple PCBs (for instance, multiple subassemblies). As it stands, you can try and design it all in 1 kicad_pcb file, but this falls apart when the different PCBs really need to be exported separately, with different DRC and other settings.

Instead, what I’ve been doing is creating a master.pro project, and in the top level schematic, creating a hierarchical schematic sheet for each subassembly, let’s say assy1.sch and assy2.sch. The schematic can then be designed as usual, making sure to annotate it only with this master project open (this avoids collisions in references between the subassemblies). Having all subassemblies in one hierarchical schematic tree makes it easy to use sheet pins to represent connections between the subassemblies in the master schematic (for things like header pins or cables).

When time comes to generate the netlists and do the PCB layout, create a new project in the same folder for each subassembly, making sure to name it the same as each subassembly schematic (so assy1.pro and assy2.pro). When doing any editing of the netlist or PCB layout, make sure it is done with one of these subassembly projects open instead. What this does is drop the project scope down to the individual subassembly, allowing you to export the netlist for just that one, design the layout for it, and export the gerbers for it. By being in the same folder, the same project symbol and footprint tables will used across all of them still, and schematic editing can still be done up in the master project.

While I don’t think KiCad was intended to be used this way, it seems to be working well enough for me so far. The process is a little arcane, but it becomes clear after using it for a little while. If anyone has any questions or ideas on how to streamline this, I’d be happy to hear them.

5 Likes

Say, that strikes me as a very useful and (I hope!) efficient approach!

It would be especially useful if it was accepted and formalized into KiCAD’s development path. Your suggested terminology of having “Projects” within a “Master_Project” seems usable, although I would prefer “Project” and “Sub-Project”. I guess there is a chicken-and-egg question here, dealing with which comes first: A large-scale concept that later gets decomposed into smaller pieces, or a collection of low-level units that become collected and assembled into something with a broader scope.

Perhaps this is a topic for the " Feature Request Chat " subforum.

Dale

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