Throughout the last few years, KiCAD has been my goto tool as a hobbyist and as a professional. I readily admit that KiCAD lacks some of the polish and features found within Altium, Allegro, and PADS. Despite the lack of features, KiCAD has one advantage that those packages did not have, which is that it grew up in a hobbyist's world. The primary result of this unique upbringing as been that KiCAD is likely the easiest package to setup and use of all schematic-to-layout packages.
Unfortunately, there has been one glaring feature lacking in recent releases: copy and paste. The copy/paste feature initially appears superficial, until the user wishes to re-use a significant portion - including all archived part data - from one or more additional schematics.
This article will present the current simplest method of gaining access to those juicy schematic bits. We present this with the desire that this article quickly becomes outdated by a true copy/paste functionality.
Open a new KiCAD instance and draw your ciruit. In our case, we are simply going to draw a voltage divider. You could draw up something more useful, but I would rather that this tutorial be very easy to follow.
Next, we are going to create a heirarchical sheet. This will cause KiCAD to make a *.sch
file which represents your circuit. This command may be found on the right menu or by
Hierarchical Sheet. Draw the square on the page by clicking in the
upper left of where you want the circuit to start and the lower right. The exact location
doesn't matter and may be adjusted after initial creation.
When you have finished clicking, a window will appear asking what you want to name the
file and what you wish this particular instance of it to be called. Fill it out. The one
that we want to remember later is the `.sch name.
You can verify that you now have a multi-sheet schematic by selecting the navigator menu button
and double-clicking on the
lower-level page. The page that you started in was the
Root, the new page will bear the name
that you assigned in the
Schematic Sheet Properties window.
You should also have an additional
*.sch file within the project directory which bears the name
that you gave the sch file. This will be our source schematic!
Highlight all of the voltage divider circuit by dragging a selection box around it. Right-click
Save Block. Alternately, you could also use
Navigate into the sheet using the navigator menu button.
Use the paste button to paste your subcircuit into the schematic sheet.
This next part is going to be a bit weird, but just do it and you will see why in a moment. Select all of the components and move them 'above' the sheet. When you import them into a schematic in a moment, the location at which the components are placed is where they will be imported next!
Create a new schematic or open another schematic into which the parts are to be imported.
Append Schematic Sheet. Navigate to your circuit. In this cases, we navigated to
voltage-divider.sch. This operation will overwrite your sheet, but will bring in the
entire schematic contained in the
*.sch file without overwriting your current schematic
Two things to note:
This isn't ideal. We would much rather copy-paste elements of schematics directly. In some ways, defining a subcircuit is a bit like defining a component. It becomes part of your bag of tricks and creates a way to easily create several 'boilerplate' sections of your circuitry with little effort. How many times have you put that switching regulator on the page?
My suggestion is that you create a single schematic library in which you store several of your most-used schematics into it... intelligently named, of course. When you have need of a circuit, simply import it into your new schematic as a block. As your thoughts on a particular subcircuit evolve - such as changing to sulfur-resistant components - then you can modify your subcircuits and gain the advantages of having a single source for your circuits as opposed to multiple sources (copy/paste errors finding their way into several schematics, even when the first one was corrected, is common).
Good luck, and enjoy KiCAD!