• Stars
    star
    745
  • Rank 60,881 (Top 2 %)
  • Language
  • Created almost 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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.
  • If your tool supports the new KiCad V6, please add this badge at the beginning of your entry:

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 oder of multiple sub-sheets in a schematic project

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

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 - (⚠️ 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.

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.

More Repositories

1

skidl

SKiDL is a module that extends Python with the ability to design electronic circuits.
Jupyter Notebook
1,037
star
2

RPi_Hat_Template

KiCad template for a Raspberry Pi B+ Hat PCB.
HTML
212
star
3

KiPart

Python package for generating multi-unit schematic symbols for KiCad from a CSV file.
Python
174
star
4

myhdl-resources

A collection of awesome MyHDL tutorials, projects and third-party tools.
92
star
5

KiCad-Schematic-Symbol-Libraries

Schematic symbol libraries for FPGAs & microcontrollers.
Python
88
star
6

HierPlace

KiCad PCBNEW plugin that arranges parts into groups that reflect the design hierarchy.
Python
81
star
7

WireIt

KiCad PCBNEW plugin that lets you add wires between pads on a PCB, delete them, and swap wires between pads.
Python
80
star
8

KiField

Edit/insert/delete part fields in KiCad schematics or libraries using a spreadsheet.
Python
70
star
9

FpgasNowWhat

Source for the "FPGAs?! Now What?" Book
VHDL
61
star
10

CAT-Board

The CAT Board is a Raspberry Pi HAT with a Lattice iCE40HX FPGA.
Jupyter Notebook
59
star
11

myhdlpeek

Monitor and display signal waveforms from your MyHDL/nMigen digital design in a Jupyter notebook.
Python
39
star
12

PadPainter

PCBNEW plugin that highlights pads on a PCB that meet specified criteria (part, unit, number, name, and function).
Python
24
star
13

kinparse

A Parser for KiCad EESCHEMA netlists.
Python
22
star
14

DRMgr

A PCBNEW plugin that saves and restores design rules for a KiCad PCB.
Python
22
star
15

pygmyhdl

MyHDL hardware design language encased in the tasty PygMyHDL wrapper.
Python
19
star
16

circuitsascode

CSS
15
star
17

tang_nano_user

User-centered experiments with the Sipeed Tang Nano FPGA Board.
GLSL
13
star
18

RPi_Hat.pretty

Module containing components footprints used in the KiCad template for the Raspberry Pi B+ Hat.
12
star
19

kinet2pcb

Utility to convert a KiCad netlist into a PCBNEW .kicad_pcb file.
Python
12
star
20

kinjector

Inject/eject JSON data to/from KiCad files.
Python
12
star
21

RepoRecon

Gather and display information on Github repositories that match a given topic.
11
star
22

Hardware-Sorters

Jupyter notebook describing, simulating, and comparing two hardware-based circuits for sorting a list of numbers.
Jupyter Notebook
9
star
23

zyc

GUI utility for searching and selecting parts and footprints for use with SKiDL.
Python
9
star
24

docker_kicad

Building a Docker image to run KiCad 5, 6, 7, ...
8
star
25

Awesome-Stochastic-Computing

A curated collection of papers, books and repositories about stochastic computing.
7
star
26

hackspace_kicad_tutorials

A compilation of KiCad tutorials originally published by HackSpace magazine.
Shell
5
star
27

pynqer

Unskilled experimentation with the XILINX PYNQ board.
Jupyter Notebook
4
star
28

Maker-s-Toolbox

Design files for a postcard with information about analog and digital electronic design.
Python
4
star
29

Coulda-Been-a-Tweet

Short entries arranged chronologically about stuff I've seen.
4
star
30

KiCon

My KiCon presentations.
JavaScript
4
star
31

Maker-Faire

Source code for Maker Faire projects
VHDL
3
star
32

bayes-pool-ball

Python notebook showing the use of Baye's Rule to estimate the position of an unseen cue ball on a pool table.
Jupyter Notebook
2
star
33

mighty85_demo

A demonstration of how to bring up and use the Mighty85 using the Arduino IDE.
2
star
34

psswrd

Simple script with a GUI that generates pronounceable passwords and places them on the clipboard.
Python
2
star
35

nutrinews

Use OpenAI's GPT to remove bias from news articles.
Python
2
star
36

discosuck

Suck the posts out of a Discourse forum.
Python
1
star
37

birthday_bromides

A bromide for every year I've been alive!
1
star
38

litterbox

A set of tools to manage all the crap for the CAT Board.
Python
1
star
39

locknotey

Simple script that stores encrypted data within itself and allows you to modify it using any editor.
Python
1
star