The following information may have errors; It is not permissible to be read by anyone who has ever met a lawyer. Use should also be confined to Engineers with more than 370 course hours of electronic engineering and should only be used 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.
Kicad
From Transwiki
Contents |
[edit] Kicad Notes and how-tos
[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 |
| 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) |
[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
eeschema is the schematic layout program for kicad.
[edit] eschema How-tos
- Update a part with one newly modified in the library - Right now (Release: 2006-08-28) there is a bug that keeps the fields from getting updated - best to delete the part and re-add it at this time if you use fields. In Libedit, there is a button with the hint:
"Save Current Part into current loaded library (in memory)"
That is supposed to do this.
- Change part value - do not change the value field - it is actually the part name - you will need to select edit part and create a custom value field.
- Change default lib location - under preferences/libs and dir/Library file path (note: I don't see this working as expected on Linux?)
- Copy of a block of schematic from one sheet to another. Select the block with the mouse, right-click and select "Save block" Then go to the other sheet and click the "Paste" button in the tool-bar.
- 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.
- The locate dialog has a search for markers - these markers refer to those produced by ERC.
- Copying from project to project -- You can do this by adding the old schematic to the new as a hierarchical sheet and the copying between them.
- Copy the old schematic file to the same directory as your new schematic file.
- Select the "Add hierarchical Symbol" icon (Right tool bar) and place one on the new schematic.
- Enter the file name of the old schematic you copied into the directory including the file name extension. Leave the sheet name blank.
- Open the old schematic via the "schematic hierarchy navigator" icon (Top tool bar) or double click on the symbol.
- Select the block you want to copy and pick "Save Block" from the context menu.
- Open the new schematic via the "schematic hierarchy navigator" icon (Top tool bar).
- Select the "Paste" icon and paste the block in the new schematic.
- Repeat as required.
- Delete the old schematics hierarchical Symbol from the new schematic.
- Delete the old schematic file if you want.
- measuring things - the space bar resets the relative coordinates (look at the bottom right of the screen - the small 'x' and 'y'.
- Printing to a web viewable file: A better solution than postscript printing is to use Plot/Plot SVG command to write scheme in SVG file format.
- The only drawback is width of the lines - there is a script that only changes stroke-width:1 to stroke-width:10 in SVG file and it can be found at http://www.japina.eu/blog
- Block move The procedure is as follows :
- Hold down Ctrl
- Press and hold down the left mouse button to begin selecting
- You can release Ctrl any time from now
- Move to the opposite corner of the selection box and release the left mouse button
- Move the items to the desired place and left-click to put them there
- If anything goes wrong, right-click and select "Cancel block".
[edit] ERC
Electrical Rule Check helps check your schematic for errors.
[edit] libedit
Schematic Parts creation
- Saving to current loaded (RAM) library updates schematic. Don't forget to save to the Library
- Setting a part as convert is for logic gates - the convert is the De'Morgan's equivalent of the main part.
- Pin names with an over-bar (active low) can be made by starting the name with a '`' tilde..
- Skew setting is the distance between text and pin end.
- Over-lines for logic notation can be accomplished in pin names using the tilde ('~") character. For example:
- Enter read/~write to display read/write or ~write~/read would appear as write/read
[edit] libbrowse
Associate schematic decal pins with footprint pins?
[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] 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 edit 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] 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:
??
- http://www.cs.manchester.ac.uk/apt/projects/tools/mucs-pcb/ MUCS-PCB autorouter
[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...
[edit] Terms used by kicad
- Modules are foot-prints or PCB decals (This is an improved name IMHO)
- Fields are know as part attributes in other PCB software - includes things like value, tolerance, footprint, price, manufacturer, vendor, description.
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 and from the pop-up menu, "copy-component". If you need more components at a time, put them all together and then "copy-block".
[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] Library management
[edit] Copy part between libraries
??
[edit] Change name of part in library
In libedit select part to rename, Select edit part properties and select the fields tab. Select the value field and edit it to the new part name. Save the library. Select the delete icon and delete the original part name.
[edit] create new library
??
[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
- .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 - descriptions and search 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
- .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)<
[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 | Unknown - can someone fill this in? |
| File format | Binary, wish it was text like Pads etc. | Unknown - can someone fill this in? |
| 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.
- 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.
- A way to create rectangles on modules - i.e. the glue and solder-paste layers.
- Help file needs to be search-able - or include a ODF version of the help files - be nice to print out and search-able as well. Even better in [DocBook] format, since this can be rendered as PDF, HTML, Windows Help file, integrated into KDE's help system, and many more.
- 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.)
- In 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.
- Gerber and drill jobs - define all plot & drill settings for each layer and save as a job that can be run as a batch.
- 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 cantact. 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.
