# gsch2pcb

## Overview

gsch2pcb is a frontend to gnetlist that will automate the process of moving a design from gschem to PCB. It takes the footprint and part value information from your schematic (or set of schematics) and runs them thru the netlister. The end result is a set of files that, in PCB, are the basics of your design: the part footprints, the netlist that shows all of the connections from one part to another, the physical circuit board and whatever other physical information you included in your schematic as graphical objects (like board outlines).

gsch2pcb is included in gEDA/gaf. It is installed by default with gEDA/gaf. Run it from the command line with ./gsch2pcb.

## gsch2pcb Resources

- Bill Wilson's gsch2pcb outstanding tutorial: tutorial.
- sch2pcb wrapper script for gsch2pcb.

## Where can I download gsch2pcb?

gsch2pcb is part of gEDA/gaf, in the utils. It is normally installed by default (along with everything else) if you install the entirety of gEDA/gaf. If you don't have it installed on your machine for some reason you can either download the whole gEDA/gaf tarball from:

- http://geda-project.org/download.html

or grab it directly from git at:

- http://git.geda-project.org/geda-gaf/tree/utils/src

## gsch2pcb can't find some of my footprints, or errors out. What can I do to diagnose my problem?

Try running gsch2pcb in double verbose mode: “gsch2pcb -v -v”. This will produce lots of spew telling you where gsch2pcb is looking while it tries to find footprints. It will also tell you where it does find the footprints it uses.

## I don't like the default layer stack of gsch2pcb. How can I change this?

Edit $INSTALLDIR/share/gEDA/scheme/gnet-gsch2pcb.scm to reflect your preferred layer stack. In particular you may have to modify the line that defines the layer groups:

        (display "Groups(\"1,2,3,s:4,5,6,c:7:8\")\n" port)

and the layer stack itself:

    (lambda (port)
        (display "Layer(1 \"bottom\")\n(\n)\n" port)
        (display "Layer(2 \"bott.-poly.\")\n(\n)\n" port)
     ...
        (display "Layer(8 \"lineout\")\n(\n)" port)
        (display "Layer(9 \"ignored\")\n(\n)\n" port)
        (display "Layer(10 \"ignored\")\n(\n)" port)
        (newline port)))

Note, the last two layers will map to silk on both sides of the board. So you will have to define two more layers than you want for your copper layout.