Kicad/FAQ

From Wikibooks, open books for an open world
Jump to navigation Jump to search

INTRODUCTION[edit | edit source]

What is KiCad?[edit | edit source]

KiCad is an open source, multi-platform EDA (Electronic Design Automation) package. It will capture your schematics, build your parts libraries and lay out your PCBs. It runs under Windows, various flavors of Linux and has been ported to the Mac OSX.

What is the official name for KiCad EDA?[edit | edit source]

"The official name I prefer is KiCad"

Jean-Pierre CHARRAS

How is it pronounced? Is it "KEY-cad", "KYE-cad" OR "kay-EYE-cad"?[edit | edit source]

The French pronunciation is near KeeCad.

Where can I get KiCad?[edit | edit source]

Please look at the | Download KiCad page.

Where can I find a KiCad tutorial?[edit | edit source]

The KiCad Tutorial can be found in the doc folder (or the tutorial folder for older versions) of the installed KiCad tree or at https://docs.kicad.org/ .

There are many KiCad video tutorials on Youtube.

The KiCad.info Forum has an excellent tutorial "Tutorial: Introduction to PCB design with KiCad version 5.1 (Getting Started)" and is also a good place to ask questions.

Sparkfun has links to some excellent tutorials: "Beginner's Guide to KiCad".

Renie S. Marquet created a mini tutorial with a simple RS232 adapter on his site. This is only in Portuguese but, it has many pictures, including the tools to use. Perhaps it will help you.

Renie's tutorial is basic, but covers all steps from zero to creating the schema and pcb.

There is another tutorial available from an enthusiast at KiCadHowTo.wikidot.com


Is this the official KiCad wiki?[edit | edit source]

No, this FAQ copied from the Official International KiCad wiki. (Now offline).

Bryan Stillwell originally set up a wiki on November 23, 2005 (now offline) but it has been recently moved to http://kicad.sourceforge.net/ . (also offline)

The official FAQ is apparently (?) at http://www.kicad-pcb.org/display/KICAD/Frequently+Asked+Questions -- but is it a wiki?

The (unofficial) wiki at http://en.wikibooks.org/wiki/kicad is apparently the most active KiCad wiki.

Can I help with KiCad development?[edit | edit source]

"How can I help improve KiCad?"

Of course you can. Here is KiCad developers mailing list:

You are welcome to download the complete source code and documentation, and suggest improvements at https://gitlab.com/kicad (mirrored at https://github.com/KiCad )


Why does KiCad try to connect to the internet?[edit | edit source]

KiCad does not connect to the internet. It uses sockets for client-server communications from eeschema to pcbnew. Some firewalls misinterpret socket access as internet access.

ie. When you click on a pin in eeschema, the corresponding net is highlighted on the board.


Jean-Pierre CHARRAS


PROJECT MANAGER[edit | edit source]

If my product uses a stack of 2 PCBs, should I put each PCB in its own "project" folder, or put them both in a single "project" folder?

EESCHEMA[edit | edit source]

How do I output other netlist formats?[edit | edit source]

Such as the standard EDIF netlist format?

eeschema have a NetList plugin system. eeschema creates a generic (intermediate) NetList output (generic list of components, list of pins and list of nets). The plugin reads this generic file and creates the new NetList format, and eeschema can run automatically this plugin. This plugin is very easy to create because the generic NetList output is designed to make such a plugin straightforward. A sample is given, with comments to create new plugins. Currently this sample creates a PADS-PCB NetList format. (Note, this format is not very well tested.)

The new eeschema NetList tool had up to 8 user programmables entries to launch these plugins. The first time you use it, you must open the NetList dialog box, open the blank page (the last entry) and :

  • give a title (ex: PADS-PCB)
  • give the command line to launch the plugin (e.g. /usr/lib/kicad/plugins/netlist_form_pads-pcb or d:/kicad/bin/plugins/netlist_form_pads-pcb.exe)
  • run the NetList generator (like the other formats).

This version is unstable because the user interface may be modified, and the documentation is not yet updated.

If you use this feature, please report any problems.

Another work-around is the Edif to KiCad translator.

How do I copy and paste from one schematic to another?[edit | edit source]

To copy a block from a schematic, open your previous schematic, select the block to copy and in pop-up menu (right click), and choose Save Block (or delete block but DO NOT SAVE YOUR OLD SCHEMATIC).

Within the same window, use the menu to open the new schematic and press the Paste button (tool bar). The block will be pasted into your new schematic.

To copy components from a schematic, select the components you want to copy/cut using the right mouse button to select copy/paste from the pop up menu, and then press the escape key. That will return the selected components to the starting point. Switch to the other schematic and paste the component.

If you want to copy icons, you must deactivate the "auto pan" option in preference menu.

As an alternate option, you can enter the block command with holding the shift key (copy) or shift+ctrl keys (delete) ( See doc eeschema 2.2.2)

How to update a part with new modifications from the library[edit | edit source]

There is a bug (in Release: 2006-08-28) that keeps the fields from getting updated - best to delete the part and re-add it at this time if you use fields.


Non-homogeneous multi-part modules?[edit | edit source]

Part-A is the default. Load the part, right click on it, select edit->unit, and change the part-A to part-X

For Non-homogeneous multi-part components, do not forget to check (in library editor) the "Parts are Locked" option for these components.With this option, Eeschema does not change the part selection when annotates the schematic.

Jean-Pierre CHARRAS

What are Markers in the Locate dialog?[edit | edit source]

Markers are from the ERC - and show where there is an error.

How does one import the .stf file into a schematic and what does it do?[edit | edit source]

.stf files are generated by CVPCB (stuff file). It consists of a line for each component, giving the name of the footprint according to its reference.

Example:

If the U3 component was assigned the footprint 14DIP300, the generated line is

comp “U3” = module “14DIP300”

In EEschema svn version (r1064) a button was added to back-annotate Footprints from a "Stuff File" to the schematic.

Use case: The process for keeping the schematic up to date would be:

eeschema:

  • enter starting schematic
  • output initial netlist annotated with ref designators

cvpcb:

  • read initial netlist
  • add missing footprint info
  • output modified netlist & stuff list (with footprint info)

pcbnew:

  • the modified netlist could be used to start initial placement
  • save working pcb

eeschema:

  • back-annotate footprint info from "stuff file"
  • modify schematic if desired, maybe change a few footprints
  • output updated netlist (containing footprints)

pcbnew:

  • import updated netlist with new components, optionally removed unused parts no longer in netlist
  • place new components

libedit[edit | edit source]

Schematic symbol creation and editing.

There are two ways to save the part - one to RAM and the other to the library. What is the use of this?[edit | edit source]

If you save your modifications into RAM, you can go back to your schematics and see the result of it. If you don't like it, you can still "roll back" to the previous situation. If you save your part into the library, there's no way back any more.

If you change a part in the library - what do you have to do to update a part in a schematic?[edit | edit source]

In fact, it's done automatically for you, when you press the button to save the modified part into RAM. The only thing which apparently doesn't work yet (release 2006-08-28) is the update of the fields. But you will see your modified drawings at least.

How do I create a new parts library?[edit | edit source]

In EESchema select the icon "Go to library editor". It opens with a clear view and Libedit: No Lib header. Then select "New Part" icon ... go through simple questions and you are ready to draw your own part.

Once you've created it - use "Create a new library and save current part into". Than select location and give a filename. For example, I made my own directory at /home/xtc/kicad/libs_xtc - where I save all my personal lib files.

When You finish editing our part - save and close. Then in EESchema you have to add this new library to library list. You do this in "Preferences > Libs&Dir > ADD (button)" - browse to find your library and it will be added to list. From now on - your part will be visible in place_part dialog list.

libbrowse[edit | edit source]

This allows the user to see which parts are contained in each library of schematic symbols. This can speed up the creation of a schematic project by allowing the user to directly load a library and go directly to a specific part. If the part needed can not be found in a library it can be created in LibEdit (described above) or look for libraries on the internet.

Power Port in Hierarchical Sheets? global or only local to the specific sheet?[edit | edit source]

A single power flag is used for each power rail. It is global across the design, so you would have one power flag on VCCA for the whole design. A power port is global in that a VCCA port on one sheet is connected to a VCCA port on another sheet.[1]

CVPCB[edit | edit source]

CVPCB is for associating footprints (modules) with schematic parts.

If you create a new component in LibEditor and you immediately assign a footprint to it (Icon "Edit component properties -> Footprint filter -> Add), then CvPcb will automatically filter the footprints. For example, enter "14*" in Libedit will make CVPCB propose to you 14DIP-ELL30 and 14dip300 (assuming you have selected "Display the filtered footprint list for the current component").


PCBNEW[edit | edit source]

How can I use relative coordinates?[edit | edit source]

Press the SPACE-key at the position where you want your relative coordinates origin. Now you can read the relative coordinates at the status bar, at the right of the absolute coordinates.

How can I fully define an constrain PCB geometry and fix components in a global reference frame?[edit | edit source]

How do I manually route a PCB?[edit | edit source]

Manual routing is straight forward. You don't even need to have a schematic. Start a new project then select PcbNew. Right click in the drawing area and select Select Working Layer. Set working layer to edges PCB. Select Line tool from RHS and draw PCB outline.

Now right click and select working layer copper. Select Add Tracks and Vias tool from RHS toolbar. Draw your tracks. You can place a via by pressing the V-key.

To change track size you need to create a new track type. From the main menu select Dimensions then Tracks & Vias. Fill in the values for your new track size and press OK. Your new track type is now in the tracks drop down box.

If you have a schematic then start Pcbnew as normal. Choose the Add Tracks and Vias tool from the RHS toolbar and click on a ratnest[check spelling]. Be sure you are working on the components layer for single sided PCB with SMD components. If you are using default colors all tracks should be red. If you get green tracks, you are working on the copper layer.

How do I unroute a PCB?[edit | edit source]

In Pcbnew select the Edit/Global Deletions menu and in the dialog that pops up check the 'delete tracks' option then click the Accept button.

How do I connect a copper fill to a net?[edit | edit source]

One method is while in the fill zone mode you move the pointer inside the track, right click and choose "select net". Then you can do "fill zone" from anywhere outside the track.

You could also use the 'net highlight' tool. This took me forever to figure out actually. I would expect some option in the Fill dialog to select a net to connect to.


How I can move SMT components to the solder side[edit | edit source]

With "flip module" in the pop-up menu. You can also press the "F" key to do the same thing.

How do I change the grid size inside the library editor?[edit | edit source]

Right click and choose grid select.


What's the difference between printing and plotting PCB layouts?[edit | edit source]

New in pcbnew, in the print menu, is a new scale option: "Accurate scale 1", which prints the board at scale 1.00, but does not keep exactly the board position in page. The Approx. scale 1 (old option) keeps the board position in page and is intended to produce documents for users. The real scale depends on printer, margins, pcbnew page size and real paper size, and is intended primarily for documentation purposes.

There is also a change in page margin management, both in eeschema and pcbnew. Margins reduce the user drawing area for 0.4 inch (10mm) on left, right, top and bottom sides. In older versions, there was no margin, and the schematic drawings were drawn at reduced scale (smaller than scale 1), to fit in page + margins. In the new version the scale is near scale 1, and the page setup in the print dialog window is removed.

There are two reasons for this:

1 - The print dialog window page setup option is buggy under Windows (this is a wxWidget problem, not a KiCad problem). Therefore, the user could not really change the margins values, or the printer paper size.

2 - Boards now can be printed at exact scale 1, and the necessary margins reduce the user drawing area. (old versions drew the board at nearly 0.95 scale mainly to fit in the usable paper area, which is the paper size - margins).

The margin setup dialog is not currently available (currently, margin values are hard coded), but i hope i put this feature in a next release of KiCad.

Jean-Pierre CHARRAS


How can I print a PCB mirrored?[edit | edit source]

There are two ways to do it:

First, Pcbnew has a mirror option in File/Plot menu (Postscript format). Secondly, modify the board by the "Flip block" command ( Block command: select the whole board, right click and select flip bock).

How do I make PCB mounting holes?[edit | edit source]

A hole can be seen as a footprint, with only one pad. You can add one (or many) footprint (right toolbar, button "add module") like the "1pin" footprint existing in library. Edit the pad in order to have the correct size (pad diameter and drill value).

How do I make a ground or power plane?[edit | edit source]

  • Select Add Zones icon
  • Trace the limit of the zone. You do not need this step if you have defined the edges of the board on the edges Pcb layer and if your zone is going to follow these edges.
  • Place the cursor on a pad belonging to the net you want for the plane, (GND or any other)
  • Click right on the zone an select fill zone

Note that the pads belonging to this network must already be connected by tracks, else the design rule test will see them not connected. The addition of the zone must therefore be done at the end.

NOTE: Can anyone explain "You do not need this step if you have defined the edges of the board on the edges Pcb layer and if your zone is going to follow these edges." any better? Is it really possible to have a zone in PcbNew automatically fill the Pcb Edges? How exactly do you do it? <-- It seems you actually still need to trace the limit of the zone if you want the zone to extend to the edge of the PCB but it is sufficient to just draw the zone around the whole PCB. If you have a circular PCB, for example, then you draw a square outside the edges of the PCB limits. Then when you fill the zone only the area inside the PCB edge will be filled.

How do I add vias to a zone?[edit | edit source]

To make a via connecting two zones (for instance joining ground or power planes between layers) the via needs to be connected to a net:

  1. Select the option 'Add tracks and vias'
  2. Left click on an existing pad or track in the zone where you want the via. The pad or track should be on the same net as the zone (ie if the zone is a ground plane then choose a nearby ground pin.)
  3. Click again where you want the via, to create a track.
  4. Without moving the mouse, right click and select 'Place Via'
  5. Without moving the mouse, right click again and select 'End Track'

Now you have a via...

The track you created will be covered by the zone, so it serves no actual purpose except to assign the via to a net. It's needed because of an outstanding bug/limitation in Kicad (bug report/developer discussion) where unconnected tracks/vias lose their net association after the board is reloaded or DRC is run.

How do I rotate a footprint by a specific angle (e.g. 45 degrees)?[edit | edit source]

Tested with pcbnew SVN r890

  1. Right click on the module you want to rotate
  2. Select Footprint ... (Component) -> Edit to open the Module Properties dialog
  3. Here, in the Properties tab, select User in the Orient section
  4. Now you can enter an arbitrary angle in the Orient (0.1 deg) box. You have to multiply your angly by 10, e.g. enter 450 for 45°


How do I make coils for planar cores?[edit | edit source]

I make Switch Mode Power Supplies. I use a sandwich of two ferrite cores around one ore more PCBs to make a transformer. How do I make make arc tracks and spiral coils ?

Erik

Does Pcbnew have an autosave facility?[edit | edit source]

This function exists in PCB editor. Better consider buying UPS.

I don't know if it's a good feature since there is no undo-redo mechanism and conscious saving looks like the only way to go back in editing.

XTC

How can I make my own default footprints?[edit | edit source]

A convenient method is to create .equ files and use the automatic association command with cvpcb. This is because for many components, the "standard default footprint" depends on the value. Diodes, Polarized Capacitors are an example. For most of the components you can use an SMD version for a project and later the "standard" version for another project.

With a .equ file you can have a "standard default footprint" which solves this because the .equ files can be specific to a project.

here is an example ( see kicad/modules/devices.equ) '680K' 'R4' '1M' 'R4' '2,2PF' 'C1' '3,3PF' 'C1' '74HC00' '14DIP300' '74LS00' '14DIP300' '74HCT00' '14DIP300'


  • .equ file gives the standard default footprint from the component value and can be created by your favorite editor. The editor replace command can very quickly change the 14DIP300 to SO14E for a SMD based project...

In kicad/modules/ you can find some .equ files.

Do not forget to configure cvpcb to select the .equ files you want.


Why the 3D viewer doesn't work?[edit | edit source]

You must ensure the color depth of your graphics card is set to 24 or 32 bits.

In Linux you can edit /etc/X11/XF86Config-4

and change the line

DefaultDepth 24


Module editor[edit | edit source]

PCBnew also contains the module (foot-print decal) editor where you can change and create modules.

There are two default text strings on a new decal; What are they called and what are they for?[edit | edit source]
Under Module properties there are attributes (normal, Normal+Insert, and Virtual) what are they for?[edit | edit source]
How do I place vias in the module editor?[edit | edit source]

Some packages, such as QFN, require thermal vias in a particular arrangement. How do I do that with KiCad?

What do the different numbers mean in the gridding drop-down. i.e. the "10" in "Grid 10.0" and "100" in "Grid 100.0"[edit | edit source]

By default, KiCad operates in inches (see the I and mm buttons along the lefthand side toolbar to switch to mm). When the grid is set to 100, it is using a spacing of 100 mils, or 100 thousandths of an inch - .1" , at Grid 10, it is .01". Make sure the grid in your work field is visible by clicking the grid button on the left hand toolbar.

The Grid 100 spacing of .1" is convenient as .1" is also the spacing for pins of a standard DIP package as well as many other components. The distance between rows is usually .3". In metric it would be 2.54mm between pins and 7.62mm between rows. Of course there are also variations with different package types.

Auto router[edit | edit source]

How can I force the autorouter to work on only one layer?[edit | edit source]

I have discovered I can force the autorouter to work only on the copper side by selecting copper for both layers in the Select Layer Pairs dialog.-

NB: This possibility was inopportunely forgotten in certain versions, but should be restored soon (version of June 2008).

The other way is to first create a keepout area in either one layer and then use autorouter, thus the autorouter will be forced to use only the other copper area for routing.

MUCS-PCB Autorouter[edit | edit source]

This is not actually part of kicad - but has been recommended as a better auto router than the one that comes with kicad.

But be aware, that Jean-Pierre Charras, the author of Kicad, wrote in Sep 5, 2005:

I know this autorouter, and I have written an implementation for pcbnew, but i do not released it.
This is because unfortunately, there are some problems:
- Some (many?) bugs.
- The *main* problem is the router do no know the 45° for tracks and pcb edges. This is very hard to change because the code is *very* optimized to handle only 90° tracks and edges.
I believe DJ Delories has solved some of theses problems ( mainly for the free software "PCB"), but I do not know this patched version.
how to setup MUCS-PCB[edit | edit source]
Where to get MUCS-PCB[edit | edit source]
 * http://www.cs.manchester.ac.uk/apt/projects/tools/mucs-pcb/ MUCS-PCB autorouter

gerbview[edit | edit source]

Steps to Produce Gerber output files[edit | edit source]

Library maintenance[edit | edit source]

Where can I get other component libraries?[edit | edit source]

There is a library folder in the files section of the group for just this purpose. Feel free to create your own sub folders and contribute your work.

How do I import libraries from other PCB programs?[edit | edit source]

Eagle

I just uploaded "exp-kicad-lib.ulp" under the rm_sharkey_libs folder in the files section of the group. This is a ULP script to export EAGLE PCB parts to KiCad. To use, open EAGLE PCB, load the library you're interested in, into the library editor, and then run this ULP script.

It has one bug that I have not gotten around to fix yet (I did not write this script). The bug is in selecting the correct layer for the pads. However, even in it's current state, you can manually edit the KiCad output and touch up the pads using search and replace, just compare with a similar "good" KiCad lib and you'll see what has to be modified. Aside from that, it does a pretty good job of exporting.....maybe if someone has some time they could tweak this script a bit to make it work better.

(Mike Sharkey)

I've wrote a simple script for exporting pcbnew libs from Eagle CAD libraries but don't know what kind of restrictions eagle's librarians apply to their libraries. I've uploaded about 200 converted libs on our ftp server and using them now. Please look at it and say me what are you thinking about. I think it will be good if that libs be available to all KiCad users.

(Dmitri N. Sytov)

Large Converted Library[edit | edit source]

A large number of symbols and footprint converted from an Eagle Library can be found:

Link: http://library.oshec.org/ (Download All)

User beware that compatibility with KiCad should to be verified: long pins names, valid file names, geometry, pin assignments, etc

In particular, KiCad chokes on the "m-pad-2.1.mod" file merely because of its file name. Work-around: rename to "m-pad-2-1.mod"; then that library works fine with KiCad.

How can I generate an array of pads fast?[edit | edit source]

I've uploaded one perl script I made to the yahoo files section. (jpdborgna folder). I append the readme file of that.

The function of this simple script is to generate pad arrays, the symbol and the module, for using with KiCad. These arrays can be used for pins connectors, for prototyping areas or for any other component which requires many pads uniformly distributed. Given the simplicity it can be easily modified to make other functions.

Import Methods[edit | edit source]

Netlist[edit | edit source]

Schematic[edit | edit source]

PCB[edit | edit source]


ECO[edit | edit source]

What are the steps involved in making a change in a design?[edit | edit source]

There is more going on that just creating a new netlist and importing it -: the .stf file may be involved - how are changes to the footprint handled? This dosn't quite work as documented in (2006-08-28)

Is there a forward and backward eco process going on? Is there inter process communication going on between eeschema and pcbnew? I read that there was - but what is it doing?

MISCELLANEOUS[edit | edit source]

Posting Guidelines[edit | edit source]

The group is very young so there is as yet no group policy for posting guidelines., However, as a start I recommend we adopt the standard netiquette guidelines in Section 3 of RFC 1855 which can be found here:

http://www.dtcc.edu/cs/rfc1855.html

PCB manufacturers that accept KiCad gerber files[edit | edit source]

Manufacturer Webpage Country Details
PCBexpress http://www.pcbexpress.com/ Mulino, OR, USA submitted files by internet, everything was exactly as expected
Gatema http://www.gatema.cz/_en/ Boskovice, Czech Republic sent gerber files by email
Pragoboard http://www.pragoboard.cz/en/o_firme Prag, Czech Republic sent gerber files by email
Advanced Circuits, Inc. http://www.4pcb.com/ Aurora, CO, USA submitted files by internet, everything was Ok
American Circuit Technology, Inc. http://www.act-cw.com/ Anaheim, CA, USA submitted files by internet, everything was Ok
Zot Integrated Manufacturing. http://www.zot.co.uk/ Musselburgh, Scotland, UK submitted files by e-mail, no problems
Bittele/7pcb. http://www.7pcb.ca/ Toronto, Canada sent gerber files by email, no problems
Beta Layout / PCB-Pool. http://www.beta-layout.com/ Shannon, Co. Clare, Ireland submitted files by e-mail and online, no problems
San Francisco Circuits. https://www.sfcircuits.com/ San Mateo & San Diego, CA, USA submitted files by e-mail and online, no problems
Sky Electronic. http://www.sky-macau.com/PCB_Service.html/ Macau SAR, China submitted files by e-mail, no problems
WellPCB. https://www.wellpcb.com/ Australia submitted files by e-mail and online, no problems
PCBGOGO https://www.pcbgogo.com NY,USA submitted files by e-mail and online, 24hours online customer service, no problems,

Who wrote this FAQ?[edit | edit source]

This FAQ was written and is maintained by Ian Bell. Contributors include:

  • Juan Pablo
  • Jean-Pierre CHARRAS
  • Ryan Williams
  • Fluissman
  • Bryan Stillwell
  • Renie
  • Danilo Uccelli
  • XTC
  • Igor Plyatov

Where do I submit new/updated libraries?[edit | edit source]

Is KICAD Libraries (http://kicadlib.org/) an official project site? Where is the submission link? Is it best to submit the additions/changes individually, or to integrate them into the appropriate pre-existing library?

How do I draw schematic dotted lines?[edit | edit source]

How do I draw dotted lines on the schematic page? How do draw dotted lines in a schematic symbol in a library?

The "place graphic lines or polygons" tool in the right toolbar appears to be dotted. I can change the color of all lines drawn with that tool using Preferences >> Colors >> Notes.

But all the lines it draws are solid -- do you really expect me to draw hundreds of individual little dashes?

The KiCad project is open source. Feel free to add "dotted" line styles to the "graphic polyline" tool.[2]

  1. http://tech.groups.yahoo.com/group/kicad-users/message/14434
  2. "Proposal for allowing dashed and dotted lines, Polygons, rectangles, etc for KiCad".