The following information may have errors; It is not permissible to be read by anyone who has ever met a lawyer. Use is confined to Engineers with more than 370 course hours of electronic engineering for theoretical studies.
All content entered becomes and is (C)2007 Transtronics, Inc. the property of Transtronics, Inc. Rest assured that your contributions won't be sold and will be publicly available.
ph +1(785) 841 3089 Email inform@xtronics
Kicad
From Transwiki
Contents |
[edit] Kicad
[edit] Related kicad pages
- EE CAD Terminology
- kicad navigator or main kicad page
- eeschema - the schematic editor
- cvpcb - the component to module (AKA foot-print) editor
- pcbnew - the PCB layout program
- Gerbview - the Gerber file viewer
[edit] Things that are Common to all the different kicad programs
| Common Key Strokes Worth Memorizing (eeschema) | |
|---|---|
| mouse wheel | zooms (needs to be a bit finer (2006-08-28)) |
| F1 | Zoom in |
| F2 | Zoom out |
| F3 | Re-paint |
| Mouse-wheel click or F4 | Center drawing at cursor |
| M | Move |
| R | Rotates |
| X | Mirrors over X axis |
| Y | Mirrors over Y axis |
| N | Removes any mirror |
| A | Add component |
| Space | Zeros relative coordinates at cursor |
| Left-click | get object info - displays in bottom bar |
| Left-double-click | Edit part |
| left-click-drag | Block Select - and move - left click drops |
| Shift+Left-click-drag | Block copy - and move - left click drops |
| CNT+Shift+Left-click-drag | Block delete |
| Right-Click | Context menu (repeat cancels menu) |
| Del | Deletes |
| Insert | Duplicates last element (works with lines not parts as of 2006-08-28) |
| A few more key strokes for NEWPCB | |
| + | |
| - | |
| pg-up | Copper layer |
| pg-down | Components layer |
| V | Place 'Via' when routing track |
| S | |
| M | Move footprint (disconnect from tracks) |
| G | Grab footprint (tracks are stretched) |
- measuring things - the space bar resets the relative coordinates (look at the bottom right of the screen - the small 'x' and 'y'.
[edit] The programs that makeup Kicad
[edit] kicad navigator
This is the top of the kicad system and lets you create and name projects and start the major components of kicad:
- eeschema - the schematic editor
- cvpcb - the component to module (foot-print) editor
- pcbnew - the PCB layout program
- Gerbview - the Gerber file viewer
[edit] eschema
See the eeschema page to learn about use of the schematic layout program for kicad.
- measuring things - the space bar resets the relative coordinates (look at the bottom right of the screen - the small 'x' and 'y'.
[edit] cvpcb
Assign footprints to parts Creates .cmp and .stf files. My tests with version '2006-08-28' show that if you fill in the footprint field for the schematic parts you don't have run cvpcb
[edit] ERC
Electrical Rule Check helps check your schematic for errors.
[edit] pcbnew
This is the PCB layout part of kicad
Alternate Via Drill mentioned in the Tracks and Vias Sizes dialog box works as described:
- This feature is used when some vias must have a specific drill size (which differs from the default drill size). You can adjust the "Alternate Via Drill" to a correct value, and for some vias you can select this alternate value (by the pop-up menu) This job is more easy if you have chosen a bigger (or smaller) via diameter for theses vias, because the pop-up menu has a command to export the current via drill to all vias which have the same diameter (put the mouse cursor on such a via, and by the pop-up menu (edit via option) select the alternate via drill for this via, and export the via drill to other identical vias (command edit via/export via drill to other id vias)
[edit] DRC
Design Rule Checks
- DRC test doesn't take in account zones nor failed connections. Only distances between tracks and pads.
- unconnected pads: they probably don't reach the center point of the pad or of the track. For this is useful to check the
"magnetic pad" box in "general options" - Before making a zone, gnd zone for example, connect all vias of the gnd zone among them. You will get a "no unconnected" message. Afterwards, make the zone. The tracks will be overlapped with the zone.
[edit] Module editor
pcbnew contains the module (foot-print decal) editor where you can change and create modules.
- Module Editor, when editing pads, is very difficult to move the pad in a specific location (specially when the required position is not on the grid). A simple way is to edit manually the .mod file, editing the required coordinates of each pad.
- how to define custom solder mask. In the pad properties of module editor, you select on which layer you want work. Suppose you need a big pad partially unmasked:
- Edit your pad by unchecking the Solder mask component layer, so all the pad become masked.
- Create a new pad without number and edit this one by checking only the Solder mask component layer, adjust his position overlapping the Component pad. Use a sufficient fine grid in order to be able to place the pads where you need. Some time it become difficult to re-select overlapped pads, in this case momentary move the first selected (the bigger one) in order to be able to access a smaller pad
[edit] Module Properties
- For a module to appear in the Module Position File, it must have the attribute Normal+Insert. This can be set in the Module Properties dialog box.
[edit] Module fields
- The field that has the module name becomes the reference designator (R1 for a resistor). The field that contains:
VAL**
reflects the Part name that pointed to the module.
[edit] Autorouters
[edit] Freerouter
http://www.freerouting.net/index.php?page=home
[edit] MUCS-PCB Autorouter
This is not actually part of kicad - but has been recommended as a better auto router than the one that comes with kicad.
- Steps to use ???
[edit] Topological Autorouter
Also not part of kicad - worth listing here for now.
- Steps to use ??
[edit] gerbview
Gerber viewer
Gerber 274-X format, ".pho" files be changed to any extension, as long as you don't change the contents. Some CADs use .TXT as default extension, some other .GBR, etc...
The 'value' field in eeschema should really be the Part name - might be a translation error? (2006-08-28)
[edit] Procedures for doing things in kicad
[edit] Placing multiple components of the same type
Select the component, R-click and from the pop-up menu, "copy-component". If you need to duplicate a block of components, hold shift, L-click and drag a box around them, drag and release.
[edit] Making foot-prints
Foot-prints are made in pcbnew - select the module editor, then select the working library.
[edit] hole types:
- Standard - through hole pad
- SMD Surface mount (no hole) Hole has an electrical connection (used for through hole devices and/or Ground points)
- Mechanical has no electrical connection i.e.. (Screw Holes).
[edit] ECO
As of version (2006-08-28) it is very important to keep track by hand any parts that get deleted or have their foot print changed. After the schematic changes one must delete the modules by hand in PCBNEW that were deleted or foot-prints modified.
- Make changes to schematic noting the reference number of any part that gets deleted, changed or its foot-print changed.
- Export new netlist
- Assign modules with CVPCB if needed. (it is quite possible to assign the foot-print when the schematic part is created in libedit or update these later while in eeschema to an alternate foot-print)
[edit] Kicad layers
- Copper layer (solder side)
- Component (CMP) layer
- Inner Lx - ( if extra inner layers selected layers selected)
- Adhesive copper
- Adhesive CMP
- Solder paste Copper
- Solder paste CMP
- Silkscreen copper
- Silkscreen CMP
- Solder mask copper
- Solder mask CMP
- ECO1 For general free use
- ECO2 For general free use
- Draft
- Drawing
- Comments
- PCB edges
[edit] Copper Planes
- Select Add Zones icon
- Trace the limit of the zone
- 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
- But 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 be done at the end.
[edit] Hole count
To find the number of holes in the PCB you can use Postprocess; Create Drill file, select Drill sheet (poscript); Execute. Then print or display the .ps file and you will see a table indicating the size and number of each holes.
[edit] The Files of kicad
- .pro Project file Contains lib selections, default directory and other details about the project. It maintains a number of parameters relating to project management (such as the filename of the principal schematic, list of libraries used in the schematics and PCBs).
- .sch Schematic file
- .lib eeschema library file - also the file type that is exported and imported in libedit
- .bac backup of a .lib file
- .dcm - Items from Libedit - properties/Doc-tab Document file name, keywords for lib files (name.lib and name.mdc go together (why not the same file>?))
- .bck backup of a .dcm file
- .sym - these are symbols without parts (gates i.e NAND, NOR, opamp, )
- .brd PCB file
- .net Netlist file.
- .mod - footprints
- .mdc - associated documentation file (name.mod and name.mdc go together (why not the same file>?))
- .emp - export of module
- .equ - maps part-name to footprint
- .stf - back annotation file - fills in the footprint field in eeschema from what is selected in cvpcb
- .rpt created by File/export /module report
- .cmp auxiliary component assignment file - a file that associates the Reference, part-name and footprint - Generated by CVPCB
- .wings 3d part model file
- .wrl VRML model
- project-cmp.pos create a Module Position File with Postprocess->Create Modules Pos (this is the component side)
- project-copper.pos (As above but this is the solder side)
- project.cache.lib Cache file of the libraries used in the schematic (backup of the components used)
[edit] kicad vs EAGLE
Comparing kicad with EAGLE is interesting. Both have some good points - both have things needing work.
| Feature | EAGLE | Kicad |
|---|---|---|
| Ease of use - User interface | Poor. Non intuitive - reminds me of reverse polish notation with some dyslexia added for flavor. | Very good - needs some tweaks here and there . As good as PADs power Logic. |
| Pin swap - gate swap | Has - could be a bit easier to use | Missing! |
| Auto backup and undo | Has | Auto-save in PCB - undo almost finished as of 2/08 |
| Part attributes | lacks (One field is not an attributes system) | Has |
| Autorouter | Surprisingly good | built-in autorouter; also compatible with the MUCS-PCB autorouter |
| File format | Binary, wish it was text like Pads etc. | ASCII text (easy to look at "diff") |
| Price | They want money for this - free version to hopefully lock you in. | GPL - free as in freedom and as in free of cost! |
| Link part or foot print to its PDF | Missing, (You could have link URL in text) | Nice feature - pdf is just a right click and a select away. |
| Attributes for footprints | Missing | Nice |
[edit] Questions:
If you know the answers to these, please put the answers on this page!
- How is the .stf stuff file applied? Exactly what does it do?
- What data is transfered via sockets between eeschema and pcbnew? Exactly what gets updated?
- My tests with version '2006-08-28' show that if you fill in the footprint field for the schematic parts you don't have run cvpcb - any updates on this?
- for doing an ECO 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 doesn'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? - In The module_editor/module_properties/attributes - what is the difference between Normal and virtual - Virtual is for an edge card connector - but what is different?
- In pcbnew what does File/Append_board do? It wants a .brd file that it adds to the work area - what exactly is this for?
- In eeschema under /preferences/libs and directories - there is a "library files path" setting that I don't seem to be able to get to work - is there special syntax or some other detail? Can it join two directories (a default lib and a user lib directory? )
[edit] Wish list:
- Needs Pin-swap and gate-swap!
- A way to use multiple library and module directories.
[edit] pcbnew
- When saving all the modules contained in a pcb - there needs to be a way to also save the Document(PDF) files and 3D images that go with the PCB. (Might it be a good idea to save the Document and 3D files in subdirectories based on name of the .moc file? ie Module file name = my.moc then a dir named my_pdf would have the docs and my_3d would have the 3d models.)
- Gerber and drill jobs - define all plot & drill settings for each layer and save as a job that can be run as a batch.
- A way to create rectangles on modules - i.e. the glue and solder-paste layers.
- Select Visible Layers
- Zone filling update
- Make a net invisible (e.g. GND)
[edit] eeschema
- There needs to be a way to create a lib with all the parts - and at the same time save all the document (PDF) files.
- The part attributes (fields) are great, but it would be nice to have one free form text field that can have returns and the like for making general notes. Same with modules! Also, why limit the number of fields or set to some large number (256)? It would be nice to have an editable table so one could see a page of fields at once and change the value (leave the size and position info as a 'move field' function. )
- Some standard part attributes to help with sharing libs - we already have some standard fields: value(which should be called 'part-name' or just 'name'), footprint, Doc(which should be called 'Description') - how about adding a real 'value' field, tolerance, manufacturer#, Wattage.
[edit] libedit
- Lib-browse from within libedit
- working and sane save nag
- Why isn't .dcm just part of part of a .lib file ?
[edit] Notes
[edit] Pwr flag behavior
Only the pin name is used. Invisible pins which have the Power In or Power Out electrical contact. are automatically connected. Because your GND_EARTH symbol has a pin named GND, this pin is connected to the GND net.
For connection, the name of the symbol is not used (From this point of view, if is only a comment).
A GND_EARTH symbol must be build with a single pin named GND_EARTH. (See Eeschema doc, chapter 10.8)
In order to avoid problems, the flag "Power Symbol" must be set (In libedit, Part Properties). When this flag is set: - One cannot edit the symbol name in eeschema. - The symbol is automatically reannotated when an ERC or a netliste is made.
Advantage: You can easily create power symbols with the shape you like, because it is a component, like others components. Drawback: You cannot create a new power symbol only by editing its name: you must create a new symbol (i.e. a new component), with the shape you want, an a pin which have the same name as the symbol name.
[edit] Building from pre-released source
Add to /etc/apt/sources-list
deb-src http://mentors.debian.net/debian/ unstable main
or other repository
install wajig (if not already on your system).
From the command line:
cd /usr/src mkdir kicad cd kicad wajig source kicad wajig build kicad
(go get coffee and lunch)
