Table of Contents

What's the best way to learn to use gEDA?

The first thing to do is to read and understand Bill Wilson’s excellent gschem -> gsch2pcb -> PCB tutorial. This should get you started.

Also be sure to check out the other gEDA documentation available on this website.

However, perhaps the best way to learn the gEDA Suite is to download it and try it out yourself! If you consult Bill Wilson’s tutorial while trying the suite for yourself, you will become an expert in no time!

What does the design flow in gEDA look like?

Here is a quick graphic for simple PCB design flow using the gEDA Suite:

design_flow.jpg

In words, the design flow for a simple PCB proceeds as follows:

  1. Create your schematic using “gschem”.
  2. Check your schematics with the DRC checker. Learn about it here.
  3. Assign reference designators to your components using “grenum” or “refdes_renum” (or just attach them manually from within “gschem”).
  4. Assign other component attributes (such as component footprints) using “gattrib” (or just attach them manually using “gschem”).
  5. Create a preliminary layout file and netlist using “gsch2pcb”.
  6. Lay out and route your board using “pcb”.
  7. Output Gerbers from within “pcb” using “File → print layout”, and select “Gerber/RS274X” as the output file type.

If you make changes, or add to your schematic or attributes while in layout, update your board file like this:

  1. Edit your schematic and/or attributes (”gschem” or “gattrib”).
  2. Check your schematics with the DRC checker. Learn about it here.
  3. Forward annotate your changes using “gsch2pcb”.
  4. From within “pcb”, update your components using “File → load layout data to paste buffer”, and then click on the drawing area to place the components.
  5. From within “pcb”, update your netlist using “File → load netlist file”.

Usually, users invoke the individual tools from the command line. A project manager (”geda”) exists, but needs improvement.

What limitations exist for the gEDA tools?

The most important thing to keep in mind about gEDA’s limitations is this: GEDA is an open-source software project. It has some limitations, but unlike many instances of commerical software, its limitations are not artificial, arbitrary, or driven by marketeering. That is, gEDA is neither nagware, crippleware, demoware, nor “limited student edition”-ware. Any limitations to the gEDA tools exist because the programmers haven’t yet implemented that particular feature. Since the code is open for all to see and modify, anybody is welcome to implement a new feature or remove a limitation, and then submit their patches to the project. If you are a hacker and are interested in making a contribution to the gEDA project, consider tackling one of the limitations listed below! You will make a lot of friends, and earn international exposure!

What local configuration files are used for a project?

A typical PCB design requires the following config files in your local directory:

Further detailed information about each configuration file is provided in the documentation for each facility.

What are the names and locations of the RC files used with gEDA/gaf applications?

The various gEDA/gaf applications (gschem, gattrib, gnetlist, etc.) use a set of RC files to set various configurable options in the tools themselves. These RC files are read in by each application upon start-up. Philosophically, there are three places where a gEDA/gaf application looks for RC files:

The RC file system has evolved over time. Originally, each gEDA/gaf application used its own RC file (for example, gschem used gschemrc, gnetlist used gnetlistrc, and so on). However, as the number of gEDA/gaf applications grew, it became clear that the individual RC files held a lot of redundant information, and that new users were confused by all the different RC files. Therefore, the different RC files were consolidated into a single file, called “gafrc”. However, because gschem needs all kind of special customizations, we decided to keep the system gschemrc in addition to all the gafrc files. Also, in order to preserve backwards compatibility, the old RC file system is still maintained in the system directory. Accordingly, the current RC file configuration looks like this:

Also loaded by the system-gschemrc is the gschem-darkbg or gschem-lightbg color definitions.

Finally, note that gEDA/gaf applications will look for up to six configuration files upon startup:

  1. system-gafrc
  2. system-gschemrc (or whatever)
  3. ${HOME}/.geda/gafrc
  4. ${HOME}/.geda/gschemrc (or whaver)
  5. ./gafrc
  6. ./gschemrc (or whatever)

If you get a warning that your app can’t find one or another of these files, don’t worry. Most of them are optional. The only required files are the system RC files.

What about a project manager?

The individual components in the gEDA design suite do not have the concept of an end-to-end project. Rather, they deal with their own files (e.g. “gschem” → .sch, “pcb” → .pcb). However, there is a project manager, called “geda”, which you can invoke from the command line. It’s goal is to help manage your design as a whole as you take it from concept, through schematic capture, attribute attachment, layout, BOM generation, and so on.

Unfortunately, development of “geda” has not kept up with the rest of gEDA/gaf. In particular, “geda” does not use the latest tools or methods to accomplish the individual design tasks. Therefore, we recommend that user simply invoke the individual tools (e.g. gschem, gattrib, gnetlist, gsch2pcb, etc) from the command line. Meanwhile, if your are a hacker are looking for a smallish project to adopt, polishing up “geda” would make a nice introduction to the gEDA Suite, and you would make a lot of friends by doing so!