I have read that good engineering is modular engineering. Is good audio synthesis modular audio synthesis?
Not sure.
Kicad--our beloved schematic capture/PCB layout/simulation software--has recently added some great features in making bits of your previous designs reusable--a huge timesaver.
Let's go over this.
"Hierarchical Sheets"
- Because I'm lazy, I will abbreviate hierarchical sheets going forward as "HS"
- Create a new project, this will contain your HS.
- In the schematic (.sch file), put whatever components you want in your HS--you are creating a normal schematic at this point.
- For I/O you need to share outside your HS issue the command: "Place" > "add hierarchical labels"
![]() |
- Save the schematic.
- In the parent's .sch file, click on this icon on the right:
- using this tool, draw a box inside the parent schematic.
- You will see a blue box...this represents the HS:
- A properties dialog appears (if you don't see it, select the "Untitled_Sheet" and then tap the letter "e".)
- Give the HS a name
- in "sheetfile" click on the folder icon and navigate to the kicad_sch file you created initially, the one that contains your HS.
- At this point you might see dialogs about using relative filenames and something about database tables being messed up (?).
- Pretend you didn't see any of that and click OK twice.
- Still in the parent schematic, click on this icon on the right:
- Click on the HS box; the I/O pins ("hierarchical labels") created in the the source .sch file appear in the parent schematic--they are placed sequentially
- Create the rest of the parent schematic and wire it to your HS.
![]() |
| This is an OC simulation--DC values--not to be confused with "OCD" |
DESIGN BLOCKS
Viewing existing Blocks: from the schematic editor View > panels > make sure "design blocks" is checked.... you see something like this (your block names will be different....)
Using existing blocks: Double left click on a block, drag it into your schematic, creating a group of components and wires.
- Select either PCB
- Right clock inside the block and say Grouping > ungroup
- Edit.
NOW: A WORD FROM THIS BLOG'S SPONSOR
OK, you just created something awesome using these new Kicad 10 tools and need to get some PCB's, then get them assembled.
For this, check out this blog's sponsor, PCBWAY, who can fabricate the PCB's, do the component assembly, and then, do everything else.
In addition to top shelf PCB fabrication they also do fantastic work with 3D printing, injection molding, and much more.
And!!! Kicad Mavens (you must be if you've made it this far?): run, don't walk, and submit your Kicad masterpiece to PCBWAY'S Kicad PCB Design Contest--winners get cash and/or RPi goodies. Check out the contest here.
As always--you can help this blog by checking out the PCBWAY site. Thank you!
SCHEMATICS AND FOOTPRINTS/TRACES IN ONE BLOCK--New to Kicad 10--How To Do This
- Create a schematic subcircuit with all the symbols, wires and values you want in your block.
- Tool > create associations
- Make sure everything is OK, that all symbols have associated footprints and so on.
- Create a block--for this let's call it europower w traces
- Go to PCB and update the PCB from footprint
- The footprint appears
- Draw in all traces you want to include in the combo block
- Save the selected footprint and traces (you must select both!) as a block (right click on block > save selection as block)
- For the block name, type in the exact same name you used for the schematic block--this is case sensitive: in this case, "europower w traces"
- Kicad 10 will ask "overwrite block"? Say YES
- In your schematic, pick the block europower w traces and put it on the schematic
- In your PCB, pick the same block europower w traces and put it on the pcb
- Hit F8.
- If all goes well you will see a footprint with traces appear--the PCB and the schematic are "synced"--it's all wired up.
- If you messed up, a new footprint will appear with no traces. Fiddlesticks! Try again, make sure to follow each step.
- You can now grouping > ungroup your Schematic or PCB block and change things.
For Kicad 10.0.1, I had to set the Nickname, the "Library Path" (where the global block libraries are stored--the local location might vary if you are using a cloud repo on different hosts), and the Library Format (pulldown to "Kicad") by hand for this to work. Not sure why this didn't come over with the rest of my preferences.
































