Kai-Martin Knaak

Kai-Martin Knaak
email: kmk@familieknaak.de

General remarks

The catalog of symbols and footprints presented here is self consistent. That is, the default footprint attribute of a symbol points to one of the footprints given in the footprint section.

Note: All my symbols, footprints and scripts are licensed GPL 2 or GPL 3 for distribution, and unlimited for use. See http://www.gnu.org/licenses.gpl.txt for the details

New Geda Project Script

new_geda_project.sh is a little convinience script to start a new geda project. When given a project name, it creates a directory structure and populates it with some config files (gafrc, attribs). It creates a default documentation file in lyx format in a doc folder. In addition, the bash helper scripts for printing copied to a print folder (see below for the helper scripts). When started with the option "--git", the new_geda_project script initialize a git repository project on the local git server. The git server is expected to be listening at the URL http://localhost/git/ .

Script to print a bill of materials (BOM)

The almost trivial bash script bomdruck.sh uses gnetlist to derive two versions of a bill of materials. The first lists one component per line. The other collates all components with the same value.

Scripted print of pcb layouts

The bash script layoutdruck.sh uses PCB actions on the command line of pcb to produce a set of printouts for use in documentation. The print is geared to facilitate population and debugging of prototypes. It produces a multi page PDF with top and bottom layout, each with values and with refdes. The layout can be spread between several sheets for large layouts.

The option "-s" adds a bottom view overlayed with a mirrored view of top silk. This x-ray view comes handy with thru hole designs.

The option "-p" provides a photo realistic PNG export of top and bottom side. A drop shadow is added to the PNG to make the image even more photo realistic. This drop shadow needs the command "convert" from the imagemagick package of image manipulation tools.

Note, there is a watchdog in pcb that prevents the execution of some actions when printing from the command line. The print script uses an action command to switch to the bottom view of the board. However, the watchdog function of pcb thinks, this kind of action only be initiated by the GUI. The printing script does not start the GUI. Consequently, the watchdog script pulls the trigger and immediately exits pcb. The trivial patch hidnogui-actionscript.patch prevents this premature exit of pcb. It needs to be applied to the source of pcb. And pcb needs to be recompiled for the script to print the bottom side of the layout. It was presented to the bug tracker. But developers felt, it is more important to keep the watchdog alert than to allow scripts print the bottom of a layout.

PDF export of all schematics in a hierarchy

The bash script schaltplandruck.sh uses the command "gaf export" from the geda suite and a couple of external tools to create PDF output of all the schematics of a hierarchical project. It recursively descends into subsheets and prints every unique schematic it encounters. These external tools are used:
resize and potentially rotate the schematic for printing on A4 paper
merge the single pages into one multi page document
convert to PDF
open the output with the preferrred PDF viewer as defined by the users desktop environment.
These tools are available as packages from the Debian repository.

More scripts

  1. set_pinnumber.sh: Emits the footprint file given on the command line with the value of all pin and pad names set to the value of their number. Requires awk.
  2. set_name_value_description.sh: Sets name, value and description to the same string. I use this script for footprint collections in the library.
  3. set_clearance.sh: Sets the polygon clearance and mask clearance of pins and pads. This is useful for footprint generation or to comply with specific fab requirements.
  4. set_linewidth.sh: Sets the width of silk lines in footprints. Default width is 0.2 mm.
  5. extract_footprints.sh: Extracts all footprints of a layout and writes them to individual files in the currrent working directory.
  6. find-missing-symbols.sh: Searches all *.sch in $PWD and sub dirs for missing symbols.
  7. collect_gedaconfs.sh: Collects the config files in $HOME/.gEDA and $HOME/.pcb into a compressed tar file.
  8. set_number_of_pages.sh: Sets the attribute "number_of_pages" of all schematics files in the current working directory. This is a work-arround for the absence of methods to handle global attributes in gschem.
  9. set_net_of_port_symbol.sh: Sets the net attribute of port symbols to the value given by the refdes. With this setting gnetlist connects all ports of a kind. Else, only the first instance of the port with a given refdes receives connection to the parent sheet.
  10. set_width_of_selected_lines.sh: Manipulates the width of selected lines. Divides or multiplies line width by 10. This can be useful to temporarily suppress DRC warnings. E.g., if some layers require tighter DRC rules than others.
  11. layer_content.sh: Cut, or paste the content of a layer wholesale from a layout.


Essential Lib

The essential lib is an effort to put together an improved default library for geda/pcb. Unlike the current default libary it is supposed to be usable as is.


The symbols in this sections are designed according to the following design criteria:
  1. they contain a default footprint attribute.
  2. the footprint attribute is visible on the schematic and printed with a smaller font size than the refdes and the value of the symbol.
  3. they contain a human readable description
  4. power pins of integrated circuits are split off to a seperate power symbol
  5. pin numbers are hidden, if they follow a generally accepted standard

Title blocks

These title blocks include attributes for date, author, project name and page number. These port symbols connect subsheet nets with pins of subsheet symbols on the master sheet.


Some convenience templates for symbol creation.


Various Discretes



Generic integrated analogs




Regulators and references

Specific analogs


I don't do much digital electronics except for some basic 74xxx components...



CPLD Altera MAX II EPM240T100

Clock Dividers

Analog Switches


Power symbols




These are blocks of subcircuits I frequently use. They contain some of the above symbols. Add them to a circuit with the option "Include-as-individual-objects" checked. See the geda wiki for details. For some blocks preview does not work correctly because I did not embed the symbols. This is deliberate, because I want the blocks to track my changes to symbols in the library. Consequently, there is no way for gschem running on the geda-symbols server to find the symbols contained in the blocks. However, these blocks will work, if you have installed my symbols locally.


template pcb

The footprint_template.pcb may be used to start drawing footpints with the pcb GUI. Layers and sizes are set to reasonable default values.


These footprints are meant to supersede the ones from the default library. They are designed to meet the requirement of densely populated boards with too little space to place the refdes or value between the components. Therefore the text is placed inside the frame. Pad size is generous for easy manual soldering.

pin headers

misc. connectors


  • BNC_LAY_BOTTOM.fp - like BNC_LAY.fp, but to be mounted on bottom layer with silk on top layer
  • BNC_LAY.fp - BNC socket, model telegärtner J01001A0037 or J01001A0038, horizontal mount
  • BNC_LAY2.fp - model telegärtner J01001A0037, can be mounted vertically too
  • BNC_VERT.fp - model telegärtner J01001A0037, to be mounted vertically, on either side of the pcb
  • BNC_VERT2.fp - model telegärtner J01001A0037, to be mounted vertically
  • BNC_VERT3.fp - model telegärtner J01001A1945, or J01001A1944, vertical full metal recepticle
  • BNC_DUAL_BOMAR364.fp - BOMAR series 364, dual BNC, stacked vertically
  • HF_multi.fp - multiple model HF connector. Fits various generic BNC and SMA recepticles
  • SMA_LAY.fp - SMA recepticle, telegärtner J01151A0191
  • SMA_VERT.fp - SMA recepticle, telegärtner J01151A0931
  • SMA_edge.fp - SMA recepticle, soldered to the eddge of the PCB. E.g Amphenol 132255
  • SMA_edge2.fp - Same as SMA_edge.fp but no ground pads on the top layer
  • DVI


  • PS_1x2PIN.fp - JAE model IL-G, 10 pin
  • PS_1x2PIN_LAY.fp - same as above, horizontal mount
  • PS_1x3PIN.fp - JAE model IL-G, 10 pin
  • PS_1x3PIN_LAY.fp - same as above, horizontal mount
  • PS_1x4PIN.fp - JAE model IL-G, 10 pin
  • PS_1x4PIN_LAY.fp - same as above, horizontal mount
  • PS_1x5PIN.fp - same as above, horizontal mount
  • PS_1x5PIN_LAY.fp - JAE model IL-G, 10 pin
  • PS_1x8PIN.fp - same as above, horizontal mount
  • PS_1x8PIN_LAY.fp - JAE model IL-G, 10 pin
  • PS_1x10PIN.fp - JAE model IL-G, 10 pin
  • PS_1x10PIN_LAY.fp - same as above, horizontal mount





    Discrete Components














    1. VISHAY_T18.fp - multi turn cermet potentiometer, length 19 mm, series VISHAY T18, or BI technologies model 89
    2. panel_mount_BI898.fp - panel mount for multi turn cermet potentiometer, lengthhole BI technologies model 898
    3. trimmer_VISHAY_T93YB.fp - multi turn cermet potentiometer, height 10 mm, series VISHAY T93YB, or BI technologies model 67Y
    4. trimmer_VISHAY_T93YA.fp - multi turn cermet potentiometer, height 10 mm, series VISHAY T93YA, or BI technologies model 67W
    5. ALPS_RK09K111.fp - potentiometer by ALPS, horizontal mount
    6. ALPS_RK11K112.fp - smooth potentiometer by ALPS, horizontal mount
    7. ALPS_RK11K113.fp - smooth potentiometer by ALPS, vertical mount
    8. BI_MODEL35.fp - miniature SMD single turn trimmer, e.g, BI technologies model 35
    9. SPECTROL_534.fp - cost effective precision potentiometer, series SPECTROL 534




    A changelog of this section of geda symbols is here

    Copyright 2015, all rights reserved unless specified otherwise.
    gedasymbols.org is maintained by DJ Delorie