If you make a schematic you often use schematic sheets. One of the benefits is that you can easily re-use and import schematic sheets into new projects. But how do you easily reuse parts of PCBs?
I want to produce about atleast ~5 different PCBs and all 5 share certain components. They all have a voltage regulator, uController + crystal, half of the mounting holes and 2 different interfaces. I do not want to recreate the same wheel again and again. So I thought of the following method to ‘re-use’ these parts:
I made one half finished PCB with all mentioned core components. I partially routed the GPIO pins in a logical order from 1-16. Currently it looks like:
If I want to make one of those 5 PCB’s. I copy this project, rename it into something appropiate, add more components and finish the job.
I believe that this method is efficient but what do I know?.
For the sake of learning, how do you re-use PCB parts? The one other thing I could think of was to make separate board files and copy paste stuff into new boards.
I read something about sub-assemblies. Does that work well?
The best workaround I know that works at the moment, is to open two instances of the PCB editor, and then use copy & paste to copy the tracks and footprints form the “template” to the “real project”.
This will loose the connection between the footprints if not done carefully.
To understand the details, you have to understand how KiCad matches schematic symbols with PCB footprints. The normal built-in method is with UUID’s and this gets broken during Copy & Paste. During a normal Copy & paste, the RefDes is also cleared. KiCad does have an Paste Special function from the popup menu under the right mouse button, and this can preserve the RefDes. You can do this for both the schematic and the PCB part, and then, during Schematic Editor / Tools / Update PCB from Schematic use the Re-link footprints to schematic symbols based on their reference designators option.
This can be a bit finicky to get the details right though. A simpler workaround that is probably only a little bit slower, is to just:
Use normal copy & paste for both schematic and PCB.
Delete the footprints from the PCB, but leave the tracks.
Do normal RefDes assignment in the schematic.
Do Schematic Editor / Tools / Update PCB from Schematic as always. (This creates and imports new PCB footprints.
Use snap to snap a pad of a footprint to an end of a PCB track.
With that method you should be able to get the footprints on the location they should be relatively quickly.
A third method is to create templates. In KiCad, a template project is just like any regular project, but then saved as a template, and you have to add an icon and a description in html format so you can identify it in KiCad. In such a template you have a schematic and PCB layout included. You can have a look at one of the existing templates in KiCad for how the details work. The limitation here is that a template only has one of the “Design Blocks”. If you want to add a second design block, then you have to resort to one of the other methods to add it to your project.
Off topic: Do you have a decoupling capacitor on each IC, 1 per supply pin pair? To me, they seem missing, except for the voltage regulator. They are very important, a 100nF per positive input pin, close to both (positive and negative/GND) pins.
You have to expect problems when you don’t use decoupling capacitors or don’t use them properly.
I haven’t forgotton. I haven’t gotten to it yet…like the missing ground plane. I did reserve space for it. This capacitor is lacking in my default atmega sheet and I keep forgetting to add it and push to git. One thing I sometimes loath of being human is the necessity to sleep. Too much of it and you get nothing done, too few and your following day will suck (like today )
Thank you for your anwsers. I will take a deeper look into them. I would like to reuse atleast a buck converter circuit. That plugin seems really neat