KiCad configuration manual
We need a brief document describing steps to adapt a KiCad
installation to CERN environment (setting up libraries, generating
BOM and assembly documentation).
Automated Altium library conversion
The conversion process currently consists of two steps: running two
Altium scripts (footprint conversion and symbol templates
generation) and symbol library generation (using the database
information and symbol templates).
It is easy to automate the symbol library generation, but running
Altium scripts requires launching the software and a few clicks. Due
to that, the library conversion process still involves a human and
conversion is done upon a request.
ODB** or IPC-2581 (IPC-D-356?) export
Currently GenCAD export is sufficient, in the future it would be
better to export layout in one of the two formats.
Copy/paste (between different project sheets, possibly via system
Especially for drawings. One can export a drawing and import it to a
schematic sheet, but is very cumbersome.
Display field names
Now only the values are displayed, so for boolean type fields it is
not clear what does it mean (e.g. "No" vs "Mounted: No").
Place custom power symbols
Any symbol placed on a schematic sheet needs to be available in the
symbol library, including power supply symbols. The power symbol
library contains a limited set of voltages and usually is stored in
a read-only file, making it even harded to add custom voltages. The
most convenient solution would be to create a requested voltage
power symbol and place in the schematic. It will be much easier to
implement when the new schematic file format is in place.
Default fields for new components (symbol library editor)
Currently there are a few default fields (name, value, footprint),
so for each new component others have to be added manually (e.g.
datasheet link, mounted, tolerance).
These fields should be used by the BOM generator. A possible
solution is to import .csv files with a list of pins and their
There are external tools that
already exploit this approach.
Custom fields for worksheet templates
The fields might store only basic and predefined information
(author/date/a few lines of comments). One should be able to add
custom fields that could be displayed in a worksheet template (page
layout), using e.g. FieldName format.
Modifying a single property for a number of items is a tedious task
that could be alleviated with this tool.
Selecting anchor for imported DXF files
Pcbnew place the imported DXF graphics according to the option
selected in the import dialog and do not move it. For manual
placement mode, there should be another radio button.
The imported graphics should be dragged by the DXF origin. It is
especially important when a few DXF files are imported, as there are
cases when the final output is not aligned, or the alignment is hard
Enable snapping to characteristic points for the measurement tool
It is hard to accurately measure distance relying solely on vision.
Snapping could be enabled for other tools as well (e.g. drawing).
Layer mapping when importing DXF files
Right now KiCad imports all DXF layers and places them on a selected
layer, which is not always convenient. A dialog to select and map
imported DXF layers to pcbnew layers would solve the problem.
Export multiple PCB layers to a single DXF file
Improved dimensioning tools
It is a large package that would need a proper specification.
Generally speaking, it would be great to have dimension lines
associated with certain points, so the dimensions are automatically
updated when the associated point coordinate changes.
There should be an option to change the relative text position.
Update: Tom is already working on this.
KiCad and Altium DRC capabilities are two different worlds at the
moment. Unfortunately, it might be a long process to introduce more
complex DRC rules in KiCad, especially that it requires model refactor
use the geometry library.
- Track width/via size: min/preferred/max values, instead of a single
- Net antennae (dangling tracks)
- Matched/max track length
- Component height
- Power plane/polygon connect style (direct/relief)
- Assigning priorities to rules
- More detailed target specification (net/net class/layer/board
area/component/item type or properties? possibly combined using logical
- Export/import rules
Enable plotting multiple layers to a single file
PCB designs often contain a small frame with additional informations
about the board (e.g. layers or drill table) that could be included
in all output files, if it is drawn on a dedicated layer.
Export board to a single DXF file using multiple layers.
Tool to place an information about the board stack-up and used
Could be easily done with a Python script, but the board stack-up
information requires adding such feature to KiCad first (model, UI).
Improved footprint courtyard recognition
If a footprint courtyard contains other shapes than closed polygons,
it is not correctly recognized by DRC. For some reason the CERN
footprint libraries contain crosses that render the courtyard
invalid during DRC.
Push and Shover router
Add autofinish option.
Enable 'append board' function when pcbnew runs in project mode
Reset grid & auxiliary origin
It might be done via hot keys, but needs a menu entry.
Flex PCB support
Different DRC rules/layer sets for a selected region?
Additional general purpose mechanical layers in pcbnew
The two major roles of a scripting interface is to easily select items
and modify their properties. It should also provide means to read/write
files, ask the user for input using dialogs (doable with bare Python).
Check minimum annular ring for all pads and check if all pads have
ratio equal to 1 (same size for copper and soldermask/pastemask).
Change all refdes text size/format if ICs or connectors (IC/J) and
another if small discrete parts (R/C/L).
Automatize tasks to do on each designs
All EDA numbers (or other project codes) are modified in one step
for each working directory. This is a way to avoid
invalid/incoherent numbers that could be manually updated in a few
places, but not everywhere.
Component renaming using custom rules (e.g. sorting by X/Y
Extract information for other tools
A routine to see all not mounted parts, so it is easier to see not
mounted part on a PCB when the schematic is on several pages.
It also makes it easier to notice a mounted component in the middle
of a group of not mounted parts, it is likely that the single
mounted component should not be mounted too.
Bugs (to be confirmed and posted on the bug tracker)
Create array does not work correctly when lowercase letters are used
for requested range
'Invisible' texts should disappear not only after unchecking 'Hidden
text' checkbox in the Render tab, but also after disabling the
original layer visibility.
When saving a footprint with a different name, the 'Value' field is
3D models might not be displayed until one opens the path
configuration dialog and closes it.
Opening the path configuration dialog causes round pads to be
displayed as squares in the 3D viewer.