KiCAD projects with multiple boards, or with multiple people working on them at the same time, are not supported natively or intuitively. However, some workarounds exist to make these features somewhat possible.
The general way of how this works is that by utilising the hierarchical schematic feature, you can create sub-projects that link back to main-project schematics, and you can then create board files within those sub-projects. The layout in these board files can be copied over to the main project board file or be used to create another board within the same project.
Please read through my post and let me know if I need to add images, or if I need to further explain something! I look forward to discussing these methods with the community.
Setting Up Sub-Projects
- A prerequisite for this setup is that the section of a schematic you want to collaborate on, or create a board from, must be in a hierarchical schematic within the main project. This will allow it to become a sub-project.
- This can be done either at the initial project design stage where you know you’ll need multiple boards or at the end where you would have the project organised into hierarchical schematics already.
- Once you’ve decided which parts of your main project are becoming sub-projects, go to the KiCAD Project File Explorer and create a new project within a new folder.
- This project must not have the same name as the hierarchical schematic we will link to, so for best practice use the hierarchical schematic’s name and append ‘-sub’ to the name or just name it something different.
- In this new sub-project, add a hierarchical schematic, and in the ‘Sheetfile’ field, add the path to your main hierarchical schematic, i.e.
../<MAIN SCHEMATIC NAME>
. This links the schematic in this project to the main project schematic because the../
indicates moving up a directory. To confirm, enter the schematic and it should contain the same contents as the main instance.- Any changes made to the schematic in this project will be made to the actual file, therefore they will be carried over to the main project.
- Since we are basically linking the schematic file by path, in theory you could have all your sub-projects in the root project directory, or somewhere else, but because we want to be organised and have the project tree make sense, we place the sub-projects in folders within the main project directory.
Multi-board Projects
- From the setup that was done before, treating a hierarchical schematic like a different board, and setting it up as a sub-project, you basically have multiple boards within a single project!
- You can use the sub-project’s root schematic to add things around the schematic you linked to, allowing you to create test boards that use a module from your main design.
- This is particularly useful when having hierarchical pins.
- The main project’s root schematic can still be used with the hierarchical schematic that was made into a sub-project. Even though you planned a different layout and board for those components, the hierarchical schematic can stay there for a more holistic approach. To do this, select the hierarchical schematic from the main project, go to its properties and select ‘Exclude from board’ so that you can route your main board without the sub-project components.
- This has the benefit of keeping the wire connections in the main schematic to act as a functional diagram, and to signify where the other board fits within the project.
Collaborative Projects
- Splitting up a main project into sub-projects allows multiple people to work in the same main project schematic or layout.
- Hierarchical schematics already allow a degree of collaboration on the schematic view since the engineers essentially work on different files.
- This can be accomplished with a version control system such as git.
- Creating sub-projects allow multiple engineers to work on the actual layout of the linked hierarchical schematics independently.
- To do this, create the layout in the sub-project as you would normally.
- Once finished, copy-paste the entire layout to the main board.
- Some nets will be different since KiCAD will detect they are from a different file. To solve this select ‘Update PCB from Schematic’ and uncheck everything except ‘Re-link footprints to schematic symbols based on their reference designators’.
- Since you made the layout for the schematic which is linked to the main project, updating the layout with this setting will fix the nets because the designators will match.
- Obviously a lot of weird things can happen with designators throughout the design process so make sure they match before doing this. However, they should match automatically since any changes made in the main project or sub-project schematic, will be done in the same file.
- Check the DRC and then you’ve successfully collaborated!
- A downside to this method is that it requires an engineer to import the layout of the sub-project into main, and it is not done automatically. Also any changes made to sub-project layouts will have to be re-imported.
- If there are duplicate components from the sub-projects in the main layout, they will show up as an error when importing. Make sure to delete all components related to the sub-project before copy pasting a new layout.
And those are the methods I’ve found to achieve multi-board and collaborative projects on KiCAD! What are your thoughts?