First steps with KiCad

From bread board to PCB requires a few simple steps.
Table of Contents
- Intro
- More Intro
- The Initial Setup
- Custom symbol library setup
- Create a Symbol
- Custom footprint library setup
- Create a Footprint
- Schematics
- Finally, the PCB
- Ordering a PCB (example)
Intro
About once a week I get the question
Can you teach me PCB?
Or
Can you teach me KiCad?
At first I found these questions quite confusing, but I understand the motivation behind this. A lot of makers on social media, might fall into the category “show-off”, by just posting snapshots of their work, but not explaining how they actually built it. Which ends up with people asking me “How do you do this?”.
My problem then is, I don’t have the time to explain it to anyone personally, and I don’t know which youtube video I watched a year ago, and I can’t decide which one is the best for you.
Everytime I look for tutorials on youtube I end up in a tricky situation: https://www.youtube.com/results?search_query=kicad+tutorial. There are many videos from 15mins to 2 hours, and you have to make a choice, and figure out which has your learning speed. I usually spend more time looking for a video, than actually watching it.
Note, the KiCad page itself (http://kicad-pcb.org/help/tutorials/) has a ton of material that will most likely be even better than anything that I am going to present below.

You have read this far, so you deserve another teaser that will make you want to read the rest of this page. You want to build something like this. I know it.
More Intro
My workflow with KiCad can be described with the following pseudo code (assumption: you already have a working prototype on a breadboard, if not, imagine one):
# steps you have to do only once
if not hasInstalledKicad():
installKicad()
startKicad()
if not hasOwnSymbolLibrary():
createSymbolLibrary()
if not hasOwnFootPrintLibrary():
createFootPrintLibrary()
# go through the stuff you have on your breadboard
for part in [...modules, ...parts]:
# IMPORTANT: this is often the case with modules
if not hasSymbol(part):
createSymbol(part) # this is work
# IMPORTANT: this is often the case with modules
if not hasFootprint(part):
createFootprint(part) # this is work
addPartToSchematics(part); # this is fun
connectParts(); # this is work and fun
mappPartToFootprint(part);
createNetworkList()
loadNetworrkList()
movePartsAroundAndAddTraces() # this is fun and work
uploadToAisler()
Just looking at the code above does not give you an idea where to click in the kicad application so just keep scrolling and you will see what I usually do.
Hint: If someone actually does read this and stumbles across a mistake, or sth. where your experience deviates: contact me via social media :), then we can add an if xyz
to this page.
If you have not installed KiCad yet, get it from here: http://kicad-pcb.org/download/
Known Bugs of this HowTo
In the screenshots you can see that I named the part 0.96_oled_128x64
, but used a 80x160 TFT panel. Changing the screenshots to match the label on the shown module is too much work now, but I renamed the footprint in my library :D.
The Initial Setup
- Schematic layout editor
- Symbol library editor
- PCB layout editor
- Footprint library editor
Custom symbol library setup
I often use components that are not yet available in KiCad. In this case we need to add the missing components to our own symbol library.
Create a Symbol
One of the steps you will need to repeatedly do for new modules is adding them as a new symbol to a symbol library.

Then, select your library, and click the OK button.
Everything else remains default, then click OK.

- GPIO -> Bidirectional
- VCC -> power input
- GND -> power output
And so on.
First add GND pin.
Make sure to get the pin numbering right. We will need this later.

Save and close the window.
Custom footprint library setup
Unfortunately, there is no “new Footprint library” menu entry. This means, we need to create a folder called ‘MyFootprints.pretty’, in a sensible place. And add it to KiCad.
Create a Footprint
As with symbols in KiCad, one of the steps we need to repeatedly do for new modules is adding them as a new footprint to a footprint library.
Also, we added the pins to the symbol before, so we need to make sure we get the pin numbers right (1-8, from left to right).
Hint: Use a breadboard for size reference, and a grid of 1.27mm.

Hit ESC, hover with the mouse over the pad and hit E to edit the pad.
I usually go with Hole size X 1mm and Size X 2mm, because the defaults are too small for the usual pins.
Add the remaining 7 pads.

This will make things easier when flipping components in the pcb editor.
The next steps are not mandatory ;)
Open the print dialog...
Schematics
Now, that we have repeated the steps to add the missing symbols and footprints to our libraries, we are finally ready to create our PCB.
After a while you will get quicker at this, and have all your parts in KiCad anyways ;).
You can go on a coffee break now.
In the remainder of this howto I will create the PCB for my space-hopper project

Hint: You can search an preview symbols in this dialog.
Hint: Search for R in the Device library to add resistors. Buttons are in the Switch library.

Hint: This way we have labeled networks we need later when designing the PCB.

Finally, the PCB
Now, that we have the logic side covered of our project, we can think about creating the actual PCB. You will see, if you are aiming for small PCBs, that you can get lost on the PCB editor. The schematics we created with the symbols, will make sure that our PCB is correct.
Hint: I usually have mistakes in my schematics, so I have to save the netlist again ;).
Hint: Hit F to flip a part to the back layer. It will be rendered in purple.
You will see the editor showing unconnected pads with white lines. Do not connect the GND pins yet.


Draw a polygon along your previous edge cuts.

Hint: Make sure all GND pins/pads are connected now. Depending on your placement, the infill can't reach everywhere.
See my post on instagram for more details: instagram.com/p/Bkf0sF5HYeu/
Ordering a PCB (example)
Now, the easiest part.
Hint: Use the add graphic arc button

Wow, you’re done. You either scrolled past all of this without reading, or you went through this step by step. Please let me know via social media (links below) if this was helpful or not. I write this stuff for free, for you to learn.
Also, if I’ve explained something totally wrong, please also let me know. I have to learn this stuff too :D.
Have fun.