Skip to content
This repository has been archived by the owner on Jun 19, 2024. It is now read-only.
/ pcb-tools Public archive

Tools to work with PCB data (Gerber, Excellon, NC files) using Python.


Notifications You must be signed in to change notification settings


Repository files navigation


pcb-tools is currently without a maintainer. Code is provided as is. Check #228 to a list of possible alternatives. PyGerber or other forks of pcb-tools might be what you need.


CI Coverage Docs

Tools to handle Gerber and Excellon files in Python.

Usage Example:

import gerber
from gerber.render import GerberCairoContext

# Read gerber and Excellon files
top_copper ='example.GTL')
nc_drill ='example.txt')

# Rendering context
ctx = GerberCairoContext()

# Create SVG image
nc_drill.render(ctx, 'composite.svg')

Rendering Examples:

Top Composite rendering

Composite Top Image Composite Bottom Image

Source code for this example can be found here.

Install from source:

$ git clone
$ cd pcb-tools
$ pip install -r requirements.txt
$ python install


PCB Tools Documentation

Development and Testing:

Dependencies for developing and testing pcb-tools are listed in requirements-dev.txt. Use of a virtual environment is strongly recommended.

$ virtualenv venv
$ source venv/bin/activate
(venv)$ pip install -r requirements-dev.txt
(venv)$ pip install -e .

We use pytest to run pcb-tools's suite of unittests and doctests.

(venv)$ pytest