KiCad is awesome – it’s free, open source, and has an active community of developers constantly making it better. This crash-course will help you start designing PCBs, get them made, and share them online.
- 1 | Introduction: What we’ll make
- 2 | Schematic and Custom Components
- 3 | Assigning Footprints, starting a PCB
- 4 | Create a custom footprint from a datasheet
- 5 | Layout a PCB
- 6 | Add CAD models to 3D view
- 7 | Generating gerbers and uploading to a PCB fabrication service
- 8 | Sharing our project on GitHub
1 | Introduction: What we’ll make
In this course we’ll cover a full PCB design workflow, from schematic capture to generating manufacturing files. In more detail, we’ll:
- Create a schematic
- Create a custom symbol + footprint for the schematic
- Layout a PCB
- generate Gerber (manufacturing) files and upload to a production service
- Find 3D models for non-standard parts (prettier renders!)
- Share the project on GitHub
2 | Schematic & Custom components
First up we’ll create a schematic with a connector, some common discrete component and a custom symbol. For reference, here is the SPAN02 datasheet. It’s an odd part to choose for a tutorial – I just had a need of it at the time 😉
The following video captures some of the keyboard shortcuts I used above. These are invaluable for using the software efficiently. I’d recommend having a browse through the shortcuts in the preferences menu – there’s some gems in there!
3 | Assigning Footprints, starting a PCB
KiCad manages schematic symbols and component footprints a little differently than most other PCB design programs. Footprints are curated separately to schematic symbols, and have to be linked by the designer. This makes a lot of sense to me, as you can keep a single generic footprint that is useful for any devices that happen to use that package. For example many different ICs use a DIP8 package (OpAmps, 555, comparators, even microcontrollers). We don’t need a separate footprint definition for each of these devices when we can just keep a generic DIP8 footprint and link it to the device as needed.
4 | Create a custom footprint from a datasheet
We make a footprint for our custom SPAN02 part.
5 | Layout a PCB
Often PCBs are designed to fit within a certain space, or to some mounting pattern. We go for the latter, creating a board with M3 mounting holes some exact distance apart.
There’s no end to what can be said for PCB routing. It’s as much art as it is science. This video only aims to get you familiar with basic routing – it’s really just scratching the surface.
6 | Add CAD models to 3D view
Including CAD models really spices up your renders and makes your design look great when sharing – but there’s another advantage. For components you’ve designed yourself, laying the CAD model over the footprint is a great way to make sure everything lines up properly.
7 | Generating gerbers and uploading to a PCB fabrication service
Home stretch! We generate the output files and send them off to be manufactured. Don’t worry about that creeping feeling of uncertainty that manifests after submitting the gerbers – I still get that too.
8 | Sharing our project on GitHub
Sharing is the last step of making. GitHub is a free platform for maintaining and sharing Git projects. Git is a version-control software that is generally used for traking changes in code projects, but is often used for other types of projects too. By hosting our project on GitHub, we make it more shareable, and even get a basic, free website for our project.
I hope you found this brief introduction useful! We didn’t go too deep into each particular subject but man did we cover a lot of different areas. There’s still plenty to learn but from here it’s really down to the specific needs of your project.
If you have any suggestions for specific topics you’d like to see covered, I’d love to hear them! Let me know if you found this guide useful.
Happy routing 🤎
Footnote: Contributing to Open Source projects
KiCad is an Open Source project with a very active development community. This means you can contribute to making it better! Don’t worry if you’re not a confident coder; just downloading the latest Testing Build or Nightly Development Build and reporting bugs as you find them is a valuable contribution. I’ve found the developers to be extremely organised and friendly – if you like KiCad and want to help it grow, consider contributing!