The djboxsym program is a tool for quickly producing a gschem symbol from a minimal description. Yes, it's like tragesym, with a few differences:

Download: djboxsym

FYI there's even online symbol creator using djboxsym!


$ djboxsym myfile.symdef > myfile.sym

A table of all pin information will be printed to stderr. Note that labels are assigned negative pins internally, and show up in the table that way.

The symdef file is a simple text file, with sections denoted by [section] markers. Here's a sample file and the symbol it generates (note: the edge triggers were added for demonstration purposes). Each section will be documented separately, but the program doesn't care what order the sections are in, and you can list each section multiple times - the program will treat it as if the contents of each section were concatenated.

Any line that begins with # (pound/hash symbol) is ignored. Otherwise, leading and trailing spaces are trimmed, and other whitespace is treated as if it were a single space.


Lines beginning with '--' are considered options. Options should be given before any pins are listed. Currently these options are supported:
Vertical mode - pin labels for pins along the top and bottom edge of the symbol will be drawn vertically, rather than the default horizontally.
Compact mode - reduced spacing between pins
Square mode - symbol is made wider if needed to keep the box outline square.


The labels section is for textual labels and attributes that aren't associated with any pins. Each line in this section corresponds to a single label. The label may be preceeded by a ! (exclamation mark) to make the label invisible by default.

If the label is of the form name=value it is assumed to be an attribute, and the name= portion will be hidden. Visible labels are placed in the center of the symbol. Invisible labels are placed outside the upper right corner of the symbol.


One line per pin on the left side of the symbol. Each pin line is of the form:
pinnumber [opt-flags] pinlabel

Note that "pinnumber" need not be numeric; common BGA pin numbers like C3 are allowed as well.

The optional flags may be ! (exclamation point) to include an inversion bubble on the pin, and/or > (greater than) to include an edge-trigger on the pin.

In addition to pin lines, there are some "special" lines. First, any blank line between pins causes a gap to be included between those pins in the symbol. Second, a line with only .bus on it causes the next group of pins (up to the next line) to be spaced closer together (bus spacing). Third, a ".skip N" line skips N grid units of space in addition to any other space that would be skipped at that point. For reference, pins are normally spaced 200 grid units apart (100 for bus mode).

Pins should be listed in the order you want them to appear on the symbol, from top to bottom.


Like for the left side, but for the right side.


Like for the left side, but for the top. Note that .bus is not allowed here. Pins should be listed in left to right order. Blank lines are ignored, as pins are spaced according to the width of their labels.


Like for the top, but for the bottom.


List any pins that have no connection here; one pin number per line (no flags or labels). The program will ensure that all pins are listed exactly once each; this section lets you list pins that would otherwise be considered missing.

Copyright 2010, all rights reserved unless specified otherwise. is maintained by DJ Delorie