Skip to content

Software tools/utilities made by others to augment the KiCad PCB EDA suite.

Notifications You must be signed in to change notification settings

devbisme/kicad-3rd-party-tools

Repository files navigation

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 adding a tool to the list.
  • If you find a tool that no longer works with KiCad, please enter an issue report.
  • Depending upon the version of KiCad your tool supports, please add the appropriate badges at the end of your entry:

NOTE: The entries on this page were contributed by the originators/maintainers of these tools. As such, the list is going to be incomplete. Go here for a larger table of KiCad utilities that is automatically extracted from the repositories on Github. Tools will be automatically included in this table if they include the terms "KiCad" and "utility" or "plugin" in their Github repository description.

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 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.

  • KiCad Sheet Rearranger - Simple tool for defining a certain order of multiple sub-sheets in a schematic project

  • KiCad2sycira - Symbolic circuit analyzer for the Maxima computer algebra system. Using KiCad Eeschema for circuit enrtry.

  • KiCadEditBusAliases - Simple tool for easy edit of Bus Aliases across hierarchical sheets.

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 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. (Built for KiCad 4, this may not work with KiCad 5!)

  • 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.

  • KiCad CSV Symbol Libraries - (:warning: Support limited to KiCad V5 and older versions) Manage KiCad symbol library files using CSV format. The purpose of this tool is to translate back and forth symbol library data (stored in “.lib” and “.dcm” files) into the CSV format.

  • Ki-nTree - Fast and automated part creation tool for KiCad and InvenTree. From a manufacturer or Digi-Key part number, Ki-nTree uses Digi-Key's API to fetch the part specifications and automatically generates a KiCad symbol and/or InvenTree part.

  • easyeda2kicad.py - Convert any LCSC components (including EasyEDA components) to a KiCad library (symbol and footprint)

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.

  • KiCad JLCPCB BOM Plugin Eschema plugin to produce BOM compatible with JLCPCB SMT Assembly BOM format. Also includes a script to convert the Footprint Position file into the format required by JLCPCB.

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.

  • KiBuzzard - A tool to create inverted labels on silk screen layer.

  • easyeda2kicad.py - Convert any LCSC components (including EasyEDA components) to a KiCad library (symbol and footprint)

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.

  • RF-Tools for KiCAD - A Kicad Action plugin suite to help in RF and Flex pcb design. Footprint wizards for designing mitred bends, tapered track connectors, and arc tracks (radius bends) for RF layout included. Round track corners routing, track length measurement and a mask expansion tool for direct pcb routing. Via fencing tool for RF via shielding. Live demo available on line.

  • Qucs-RFlayout - A tool to export Qucs RF schematics (microstrip) to PcbNew board layout or footprint.

  • dren.dk/kicad-util - Java utility for PCB layout cloning and panelization.

  • KiKit: Automation & panelizaton for KiCAD - Tool to automatically produce panels, export gerbers and board presentation pages.

  • SchematicPositionsToLayout - A script that takes a Kicad 5 schematic (.sch) and a PCB Layout (.kicad_pcb) file and arranges all the components on the PCB to mimic their positions in the schematic.

  • Stretch - Provides a bidirectional path so functional layout in PCBNEW can be iteratively combined with artistic design in Inkscape.

  • FilletEdge - Fillet the Edge inside KiCAD.

3d Model tools

  • KiCad StepUp - A FreeCAD Workbench for collaborative electrical + mechanical design which allows:

    • Export of KiCad board and parts as STEP and WRL models.
    • Precise alignment of kicad_mod footprints with their mechanical models.
    • Editing of KiCad PCB outlines in FreeCAD Sketcher.
    • Adjustment of PCB part positions between FreeCAD and KiCad.
  • 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 you 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.

  • kibot - A much more advanced fork of kiplot.

  • kicad-exports - Auto generate files (schematics, gerbers, BoM, plots, 3D model) for any KiCAD project. You could run it locally or on every git push with Github Actions.

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

  • GerberZipper - A plugin that plots Gerber-files and Zip it for a specified PCB manufacturer.

  • PcbDraw - Script that converts PCB to nice looking 2D drawing.

  • Board2Pdf - A plugin which creates customized high resolution searchable pdf files from the PCB.

  • gerber_to_order - A plugin that creates zip compressed gerber files for PCB manufacturers.

  • PCBWay Plug-in for Kicad Plugin to automate generation of Gerber files, IPC-Netlist file, BOM file and Pick-n-Place file in the appropriate format for PCB manufacturing and assembly at PCBWay.

  • KiCAD JLCPCB tools Plugin to automate generation of Gerber files, Excellon files, BOM file, CPL file in the appropriate format for PCB manufacturing and assembly at JLCPCB.

  • KiCAD Test Points CLI to create test-point reports for making bed-of-nails jigs. Allows any pad to be set as a testpoint. Reports are generated in the JigsApp format. Also available as a PCM plugin.

Version Control Tools

  • KiCad-Diff - Python3 script for performing image diffs between pcbnew layout revisions in Git, SVN and Fossil VCS. Recent SVG based diff for significant speed improvements.

  • Massaging your git for kicad - Instructions how to integrate KiCad with Git VCS

  • PlotKicadsch - PlotKicadsch is a small tool to export Kicad Sch files to SVG pictures.

  • Scripting KiCad Pcbnew exports - How to plot properly formated SVG files from pcbnew for VCS diff-ing

  • Improving open source hardware: Visual diffs - Using ImageMagick for visual diff file generation

  • KiCAD to SVG Converter - Scripts for headless SVG generation of schematic files using eeschema.

  • kiri - Kicad Revision Inspector (KiRI) that combines PlotKicadSch and KiCad-Diff into a single website, for Git repositories, having a visual and interactive revision system for schematics and layouts.

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!)

  • pykicadlib - A Python library to read and write KiCAD footprints and schematic files.

  • kicad-utils - KiCAD library / schematic / pcb parser and plotter written in TypeScript (JavaScript)

  • KiCad-RW - A Python library to read/write KiCad 6 Sexpr file format. In addition this library can compute the netlist of a circuit. (It actually only implements a .kicad_sch reader)

Cheatsheets

These are handy guides for using KiCad and related tools.

  • KiCad Cheatsheet - Lists common operations and keyboard shortcuts for KiCad.

  • KiCad StepUp Cheatsheet - A set of concise descriptions on how to do mechanical CAD tasks on KiCad PCBs with the StepUp tool.

  • Git Cheatsheet - Summarizes common operations on Git repositories that are often used to store KiCad libraries and projects.

License

CC0

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