Before a printed circuit board is designed, it is best (though not necessary) to capture the schematic of the circuit. The schematic of a circuit represents how components are logically connected. Because a line in a schematic (called a net) is not exactly a physical trace on a circuit board, there is no need to worry about crossing lines.
Components in a schematic typically have captions for pins and values. This significantly improves the efficiency of circuit design.
gschem is an X Window application. This means that it won’t run native in Microsoft Windows. Most Linux distributions (such as Debian, Ubuntu and Fedora) should be able to run gschem once X Window is installed.
If you use Microsoft Windows, it is best to use a virtual machine to run Linux, and use gschem (and other gEDA tools) in the virtual machines.
gschem comes with a fairly rich library of components. Each library component is a “symbol”. A symbol has a graphical representation, such as zigzag lines to represent a resistor. In addition, a symbol has “pins”. A pin is not just a graphical representation, but it also represents a real pin of the device represented by the symbol. Though optional, each pin also has additional properties like pin caption, number and type.
Although gschem has most common components like capacitors, resistors, voltage regulators and etc., it does not include more custom and rare parts. As a result, the first step to design a circuit is to create all the necessary components in the library.
The process to create a library component is similar to creating a schematic itself. However, you need to use lines (has no meaning in terms of the schematic) to draw the graphical representation of a component, then use pins to represent electrical connections to the component. You can also use boxes, arcs and even pictures to enhance the graphical representation of a component.
When you design a component (as opposed to a schemtic), it is important to “translate” the coordinate system so that the origin is the lowest left corner. It is optional, but somewhat important to add attributes to the component itself.
Use the online help of gschem to learn how to create your own symbols. Particularly, once you have gschem installed, use this link (file:///usr/share/doc/geda-doc/wiki/geda_scg.html) to view the manual.
You can also try your luck at http://gedasymbols.org/ and see if someone else has created the symbol(s) that you need.
Once you are done creating library symbols and the schematic, you need to enter the “footprint” attribute of all the components in the schematic. The footprint of a component indicates the physical configuration of a component. One symbol may correspond to multiple footprints, but each instance of a symbol can only have one single footprint.
Note that all different footprints that are applicable to the same symbol must agree on the physical pinouts.
Although it is possible to design footprints using the pcb GUI, it is generally better to generate footprints using a script. This is because a script can compute the location and width of pins much more easily and accurately than a person can design using a GUI.
Use this document (http://www.brorson.com/gEDA/land_patterns_20070818.pdf) as a guide to write your script to generate the necessary footprints.
Once you generate a footprint, you can test it using the “pcb” program. Use “File | Load Element Data to Paste Buffer”, then select the footprint file. Next, click to place the footprint, then examine the footprint.
Be sure to read the the specifications of the component data sheet carefully. Next, think about how you will solder the component onto a circuit board. If you will be hand soldering the component (surface mount), leave additional pad length for soldering.
Also, do not ignore the “silkscreen”. Use that to indicate the physical size of a component. This will help you greatly when you need to place components on a PCB.