General
- 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).
* Assembly documentation
We should check with people responsible for assembling boards what kind
of documentation do they expect. Alternatively we can open an EDMS
project and see what files are stored in xxx-assy.zip archives.
This probably would require a converter or an export plugin in KiCad.
KiCad should offer export to one of the formats accepted by CircuitCam.
See also the DEM documentation
convention.
Update*: For assembly documentation we need:
- Gerbers (ok)
- drill files (ok)
- pick and place machine data (ok, generated with a Python script on DFS (Applications/KiCad/scripts/fab/mounter.py) or using Maxime's Excel macros)
- BOM (ok, Python script on DFS
(Applications/KiCad/scripts/bom/cern_csv_bom.py), needs further
processing with Maxime's Excel macros)
now we can go with GenCAD exporter, in the future we may
- ODB** (for now it is substituted with GenCAD)
-
Support for long pad names/pin numbers
Required for Altium library import.
Update: fixed in 76d13653
- 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.
Eeschema
-
Good quality BOM generator
The current user interface is terrible. It requires to choose a file that provides an xsltproc plugin (if you know where to look for one). As far as I know, it can generate only .csv files.
A good candidate to fix the problem is Oliver Walters component table viewer.
Drop XSLT, switch to Python plugins? Be sure they are automatically detected, so all the user has to do is to pick the output format and settings.
Update: Eeschema is able to take advantage of Python scripts when generating BOM. There is a Python script that is good enough for CERN needs, could be upgraded if needed.
Automatic detection of plugins is still needed to improve the user experience.
- Default fields for new components
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 properties.
There are external tools that already exploit this approach.
- Editable pin table
Schematic library editor currently lists pins in read-only mode. It should be modified to enable changing the properties values.
- Copy/paste (between sheets, possibly via system clipboard)
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").
-
Update component field values
There are cases when symbol libraries fields change (e.g. Obsolete field), but there is no way to reflect the change in already placed component.
Update: fixed in e29d77c8
- Custom fields for worksheet templates
Now there the fields might store only very basic and predefined information. Ideally should be able to add own fields that could be displayed in a worksheet template (page layout).
Pcbnew
- STEPs
Import and export. It might be already doable with KiCad, I need to check. Perhaps it requires a few hackish tricks that could be replaced with a nice UI.
Update: STEPs can be easily assigned to footprints and are correctly displayed by 3D viewer, given the model path is properly configured.
Pcbnew has also successfully exported a STEP model for the FMC nanoFIP board. The only missing part are informative error messages in case the export
does not work (most often lack of continuity of the board outline).
- Selecting layers when importing DXF files
Right now KiCad imports all DXF layers, which is not always convenient. Adding a listbox to select layers would significantly improve the importer functionality.
- 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 to achieve.
- Export multiple layers to a single DXF file
- Selecting line width or reusing one when importing a DXF file
In the current version all lines are thin, not sure where is the setting to change the imported lines width.
- DRC
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 to
use the geometry library.
TODO: Make the list of the most important rules to implemented first.
- 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).
- Object Inspector
Modifying a single property for a number of items is a tedious task that could be alleviated with this tool.
- 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.
- High contrast mode for footprint editor
- Reset grid & auxiliary origin
- Enable 'append board' function when pcbnew runs in project mode
- Additional general purpose mechanical layers in pcbnew
- Enable plotting a selected layer to all output files
PCB designs often contain a small frame with additional informations about the board (e.g. layers) 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
drills.
Could be easily done with a Python script, but the board stack-up information requires adding such feature to KiCad first (model, UI).
- Free rotation of the module texts
Designators (references) and values are restricted to -90**..90** rotation angles.
- 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.
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 not updated.
- 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.