Skip to content
Tools made by others to augment the KiCad PCB EDA suite.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

KiCad Third-Party Tools

A curated list of third-party tools to be used in conjunction with the KiCad open-source electronics design automation suite.

Please read the contribution guidelines before contributing.

Table of Contents

Schematic Tools

Schematic Entry Tools

  • Skidl - A module that allows you to compactly describe the interconnection of electronic circuits and components using Python. The resulting Python program performs electrical rules checking for common mistakes and outputs a netlist that serves as input to a PCB layout tool such as KiCad's PCBNEW.

  • KiField - A utility for manipulating part fields in KiCad schematics. KiField can extract all the component fields from a schematic and place them into a spreadsheet for bulk editing, after which you can insert the edited values from the spreadsheet back into the schematic.

  • KiCad Partslist Editor - KiCad Partslist Editor (PLE) allows you to export/import customizable fields from a hierarchical KiCad schematic file to and from a CSV

  • qucs2kicad - Convert Quite Universal Circuit Simulator schematics to KiCad schematics.

Symbol Library Tools

  • Kicad-tools/libgen - A Python script to generate schematic symbols from XML input.

  • Quick Library Generator - A web service to generate common "box type" symbols for ICs from pin descriptions.

  • KiPart - A utility that generates single and multi-unit symbols from a CSV file containing all the pin information for one or more parts.

  • KiField - A utility for manipulating part fields in KiCad symbol libraries. KiField can extract all the component fields from a library and place them into a spreadsheet for bulk editing, after which you can insert the edited values from the spreadsheet back into the library.

  • QEDA QEDA is a Node.js library aimed to simplify the creation of Kicad libraries of electronic components. Qeda creates both symbols for Eeschema libraries and IPC7351 Compliant footprints for PcbNew placement.

  • kicadLibCreator KicadLibCreator is a tool which will generate 'atomic' parts from an Octopart query. By setting up some simple rules, entering a part number in the Octopart search and selecting the appropriate model will add a fully defined component with a consistant style to any library.

  • KiCAD Part Manager Part manager for KiCAD electronic design suite. Based on a MySQL database of components with ability to categorize parts, store part name, part label and part number, description, parameters and also stock count and price. Parts can be assigned to components in KiCAD schematic based on component name, type and value.

  • KiCad Librarian The KiCad Librarian is a utility to manage and maintain libraries with schematic symbols and footprints. It supports the KiCad EDA suite. Allows components to be moved between libraries, footprints adjusted etc. Can connect to a server based repository of components to facilitate sharing between workstations.

  • Kicad Multiedit Simple way of editing large number of components in spreadsheet type view. Will parse the values and footprints of components found in a KiCAD schematic.

  • KiLibMan A utility to examine library components and move them between libraries.

  • uConfig - A tool to extract pinout from PDF datasheet and create kicad schematics.

  • KiCad-Db-Library - Inspired by Altium, KiCad-Db-Lib creates one or more KiCad Symbol Libraries with atomic parts based on your database. Create and maintain a database for your electric components, symbol reference, footprint reference, value, reference (R, L, C, etc.), description, datasheet, keywords and your custom fields (manufacturer, order codes etc.) inside of KiCadDbLib. Created with Angular and Electron KiCad-Db-Lib can be used on Windows, Linux and MacOS.

BOM Tools

  • KiCost - A utility that generates a spreadsheet from a schematic filled with the part pricing information scraped from distributors like Digi-Key, Mouser, etc. For each distributor and part, the spreadsheet contains the quantity-dependent prices, available quantities, link to the part page, and ordering codes.

  • KiCad_BOM_Wizard This KiCad plugin can be used to create custom BOM files based on easy configurable templates files. The plugin is writing in JavaScript and has been designed to integrate into KiCad’s BOM plugin manager. Exports CSV, HTML and PDF files. The template files permit customisation of output to include (for example) certification docs, logo etc. KiCad_BOM_Wizard will group and sort all components together that have same parts value, the same starting designator reference prefix and the same fields value.

  • BOMs Away A Component/BOM Management tool for KiCad. Maintains a local database of components and facilitates associating components on schmatic with identified parts. Simply enter a part's manufacturer, supplier, manufacturer PN, and supplier PN then click 'save to datastore'. Information is keyed off of component value and footprint, so future uses can simply use the part lookup button to retrieve the information. Multiple suppliers, manufacturers, and part numbers are supported. (wxPython)

  • KiBoM KiBoM is a configurable BOM (Bill of Materials) generation tool for KiCad EDA. Written in Python, it can be used directly with KiCad software without the need for any external libraries or plugins. KiBoM intelligently groups components based on multiple factors, and can generate BoM files in multiple output formats. BoM options are user-configurable in a per-project configuration file.

  • KC2PK KiCad to PartKeepr BOM Tool. This tool, written in Python3, aims to integrate component management using BOMs produced from KiCad and inventory and stock management using PartKeepr. It also includes an Octopart lookup function to check on current pricing, availability and price breaks of components.

  • Interactive Html Bom (demo) tool designed to assist with hand assembling pcbs. Output is viewable in any modern browser and allows user to easily highlight a specific reference or all components in a group on a visual rendering of pcb. Script works both as Pcbnew action plugin and as a command line tool.

PCB Layout Tools

Footprint Library Tools

  • Kicad-tools/modgen - A Python Tkinter GUI for creating footprints.

  • monostable/kicad_footprints - A collection of all the KiCad footprints available on the internet and some scripts to manage them.

  • svg2mod - A tool to convert multi-layer Inkscape SVGs into footprints.

  • xess_fp_wizard.py - A utility to make footprints for chips having pins around the periphery (SOICs, QFP, etc.) and ball grid arrays (BGAs).

  • KicadModTree - Python library for generating footprints. The scripts subdirectory contains the footprints that are already scripted with this tool.

  • SpiralInductorFootprintGenerator - A java utility for generating helical or polygonal inductor footprints in either gEDA footprint or Kicad legacy module format.

  • fped - A parametric constraint based editor for footprints with a GUI and KiCad and postscript outputs. Still quite rough around the edges but available on Debian based systems through an apt install fped.

  • KiCad Footprint Rotator - A sed script that takes a footprint and rotates it 90° counterclockwise. Run it twice to turn a footprint upside-down, or three times to turn it 90° clockwise. If you're designing a board for automated assembly, you'll need this tool to line up your footprints to match the alignment of components in your tapes and trays.

Layout Tools

  • Laksen/kicad-bga-tools - A script to generate via fanouts for BGA components on a board.

  • panelize.py - A script to create panels. It can copy, rotate and flip rectangular areas from one or more PCB files into a new PCB file.

  • RenumKicadPCB - RenumKiCadPCB processes a KiCad PCB file and renumbers all the component reference designators ending in numbers based on where they are located on the PCB. It then processes the schematic hierarchy and updates the component reference designators to match. This makes working on a board much easier since you can locate all the components. The download includes a user manual, Windows executable and instructions for compiling to run on Linux.

  • KiPadCheck - KiPadCheck provides additional basic DRC checks to KiCad with lists to make tweaking pads for stencil creation easier. Functions include pad list, drill list, drill to drill spacing check, drill to track spacing check, stencil aperture check vs. stencil thicknesses, stencil aperture width vs. paste type, silk to pad spacing check.

  • Layer View Set - A gui for saving and loading ViewSets and interacting with a stack of ViewSets for quickly changing the currently visible layers and renders within KiCad.

  • Teardrop - A gui to teardrop the vias, pads and "T" tracks connections in the Pcbnew.

  • Replicate layout - This Kicad Action plugin replicates layout section. The replication is based upon hierarchical sheets. Basic requirement for replication is that the section for replication is completely contained within one hierarchical sheet, and replicated sections are just a copy of the same sheet.

  • svg2shenzhen - An Inkscape plugin to export SVG layers to KiCad PCB layers. You name your layers what they would be called in KiCad (F.Cu, B.Cu etc.), draw things on them and can then turn them into a kicad_pcb or a kicad_mod. Accepts arbitrary shapes on most layers (unlike svg2mod) by using PNGs as an intermediate step and automatically converting them with a fork of KiCad's own bitmap2component.

  • HierPlace - A PCBNEW plugin that creates an initial arrangement of parts into groups that reflect the hierarchy of the design.

  • PadPainter - This PCBNEW plugin identifies pins that meet specified criteria and highlights the associated pads on the PCB. This is helpful for identifying sets of related pins when physically planning the layout of high pin-count packages such as FPGAs.

  • WireIt - This PCBNEW plugin lets you add wires between pads on a PCB, delete them, and swap wires between pads. This is helpful for physically connecting sets of related pins when doing the layout of high pin-count packages such as FPGAs.

  • flexRoundingSuite - Python script to round the corners of Kicad Pcbnew traces for RF / FlexPCB applications

  • DRMgr - A plugin that allows you to extract the design rules from a KiCad board and store them into a file, and then load the file into other boards to replicate the design rule settings.

3d Model tools

  • kicad StepUp - A tool to allign 3d files to their respective footprint. To use these models in kicad they can be exported as step and correctly scaled wrl. This tool is also capable to export a KiCad PCB as a step file.

  • cadquery 3d model generator - 3d model generators using freecad and the cadquery plugin. The scripts generate step and scaled wrl files similar to kicad stepup.

  • pcbmodelgen - Convert KiCAD PCB files to models for import in openEMS

  • fcad_pcb - The original purpose of these tools was to do PCB milling in FreeCAD. It can do much more now. It can generate gcode from kicad_pcb directly without going though gerber stage. It can let your modify the PCB directly inside FC (done already), and potentially export back to kicad_pcb (partially done). And finally it can generate solid tracks, pads and plated drills to enable FEM and thermal analysis on KiCad pcb boards.

Manufacturing Output Tools

  • kiplot - A python module and program that lets you run and script KiCad's various manufacturing outputs such as Gerbers and other plots in a configurable way.

  • obra/kicad-tools - Productivity-enhancing tools primarily focused on automating generation of fabrication outputs and commandline productivity for projects tracked in git.

Version Control Tools

Half-Baked Tools

If you have an interesting tool that's not quite ready for prime-time, post it here! Maybe someone else can move it forward or use it as a starting point for their own tool.

  • footwork - Unfinished footprint editor that tries to mix the s-expression footprint format with Racket (Scheme) to programmatically create footprints.

  • fpmagic - Web based, Chrome only, SMD only experimental footprint editor. Draw footprints using the constraints from a datasheet drawing.

Plumbing

These are libraries/packages/modules that can help when creating tools like the ones listed above.

  • KinJector - Inject/eject JSON/YAML data to/from KiCad Board files. Primarily used to read/write design rules, net classes, net class assignments, and part (X,Y)/orientation/top-bottom positions.

  • kinparse - A parser for KiCad schematic netlist files that are output by EESCHEMA. Just pass a file containing a netlist to the parse_netlist() function and it will deliver a pyparsing object containing all the netlist's information.

  • pykicad - The aim of this project is to provide high quality and well tested support for reading and writing KiCad file formats.

  • kicad-python - An abstraction layer for the KiCad python interface. (Be aware this is in initial development and the interface can change anytime!)

License

CC0

To the extent possible under law, XESS Corp. has waived all copyright and related or neighboring rights to this work.

You can’t perform that action at this time.