Recently I have been using KiCad as my one and only EDA (Electronic Design Automation) tool and I think it’s surprisingly good. I’m not sure why it is not more widely used (maybe because of the fairly crappy website?) because it really is comparable to Eagle and other cheap/free EDA tools.

The biggest pro is of course the fact that KiCad is an open source software and has no limitations on what you are allowed to do with it, unlike Eagle. No board size limitations, you can use it for commercial projects etc. The cons for KiCad are that the workflow might be a bit confusing at first and like a lot of other open source projects it has some bugs and illogicalities in the UI. But in the end it is a very decent tool when you get the hang of it.

This tutorial is meant to clarify the basic workflow when using KiCad. Part 1 deals with installing KiCad and creating a schematic and creating your own components.

Tutorial to KiCad

Installing KiCad

If you are using Linux the first thing I suggest you do is get the newest version of kicad from the CVS by installing bazaar and doing “bzr branch lp:kicad” after that go to the “kicad” directory and do “cmake -DKICAD_TESTING_VERSION=ON ./” to configure KiCad to be compiled as the newest testing version. After that just do “make” and “sudo make install” to compile (will take a while) and install KiCad. You can also install KiCad from your distros repositories but it will most likely be a fairly old version of KiCad. For Windows there are precompiled installation packages available. After installation start KiCad with “kicad“. I’m currently using the version 2012-03-24 BZR 3477.

Creating a schematic

KiCad main window

KiCad main window

Click on the first toolbar button to create a new project. Then click on the leftmost button (eeschema) from the six big buttons to start making a schematic. It will give you an error about not finding a your_project_name.sch but that is totally normal and can be fixed by saving the schematic with ctrl+s.

Eeschema window

Eeschema window

To place a component select the place component tool from the right toolbar or from the menus,  then when you click on the schematic sheet you will get a new window from which you want to select “Select by browser”. You can also just write the (exact) name of the component without going to the library browser. After selecting the component you can insert it to the schematic with the last button on the top toolbar “Insert component to the schematic”. Then you basically wire the components with the tool “Place a wire”. You can rotate a component by pressing “r” and move component by pressing “m”.

Creating a new component

Arduino pro mini in KiCad library editor

Arduino pro mini in KiCad library editor

The important thing you need to know when creating a new component is that in KiCad the component in eeschema does not carry information about the actual footprint you want to use in your PCB (unlike Eagle). You are just creating a graphical symbol.

You can create your own components by going to the “Library editor” from the top toolbar in eeschema, then pressing “Create new component” from the library editor top toolbar, giving a name to your component in the dialog (most likely you do not need to change anything else) and then start creating your own component. The component name should be unique, if you have two components with the same name in your libraries (which are loaded in your schematic), then the component that is higher in the library list hierarchy will be loaded!

You can create new pins with the second tool from the top on the rightmost toolbar in the library editor. You give your pin a name (just a name, I try to follow datasheet pin names), a number (can be a character as well, like “G” for gate in a mosfet etc.). The most important information is the pin number, this determines to which pad your pin will be connected to (pin number 1 will be connected to pad number 1 etc.). The rest of the options are not critical, mainly just graphical stuff like text size, pin length. The “electrical type” is used for ERC checks so I suggest you try to set that correctly as well. Just make inputs as “inputs”, outputs as “outputs”, bidirectional pins as “bidirectional”, DC voltage outputs as “power output” and ground/supply voltage pins as “power inputs”. The “bubble” in the end of the pin is the end to which the wire is going to be attached to.Tip about how to handle “not connected” pins or multiple ground pins

Tip about how to handle “not connected” pins in your component

If your component has NC pins which are not supposed to be connected to anything, you can just omit the pins from the component. No need to add them as invisible “not connected” pins. However, if you have NC pins which are supposed to be connected to lets say GND, the most simple way to handle them is this: Add the NC pins to the component as invisible and name all of them GND (and number them normally). Then when you connect your components GND pin to something all the NC pins will be connected there as well. And you wont have to clutter your schematic. This tip also applies if you have several ground pins or other pins that will be connected to the same net!

I usually save all components as individual libraries so you can save your component with the button “Save current component to new library”. After you saved your component to a new library and closed library editor, you have to load the library in eeschema from the top menu preferences -> library and add component library file.

After you have drawn you schematic

After you have drawn your schematic, you need to annotate (=”name” the  components, so that all components have a unique reference) it. You can annotate the schematic by hand (change the reference of every component by pressing “e” and changing the question mark in the reference to a unique reference, like R? -> R1). You cannot have the same reference for more than one component. After annotating, you have to create a netlist by pressing the “Create a netlist” button on the top toolbar, then pressing the “netlist” button on the dialog that opens and save the file.

The tutorial continues in part 2 which will deal with the next phase of creating a PCB with KiCad: cvpcb and creating footprints. Continue to the next part of the tutorial from here KiCad tutorial part 2.

Categories: KiCad Tutorial

Leave a Reply