gEDA, or GPL Electronic Design Automation, is a suite of free software tools for designing electronics. The gEDA project has produced and continues working on a full GPL’d suite and toolkit of Electronic Design Automation (EDA) tools. These tools are used for electrical circuit design, schematic capture, simulation, prototyping, and production. Currently, the gEDA project offers a mature suite of free software applications for electronics design, including schematic capture, attribute management, bill of materials (BOM) generation, netlisting into over 20 netlist formats, analog and digital simulation, and printed circuit board (PCB) layout.
The gEDA project was started because of the lack of free EDA tools for POSIX systems with the primary purpose of advancing the state of free hardware or open source hardware. The suite is mainly being developed on the GNU/Linux platform with some development effort going into making sure the tools run on other platforms as well.
The gEDA Scheme API, documented in this manual, is a set of Scheme functions which can be used to enhance gEDA applications by adding new functionality or modify existing behaviour.
gEDA has always used a Scheme interpreter for interpreting configuration files, managing keybindings in gschem, and implementing netlist exporter backends in gnetlist. However, for a long time the utility of embedding a Scheme interpreter was diminished by the lack of a low-level API for inspecting and modifying schematic documents. The Scheme types and functions documented here were added to gEDA to address that need.
gEDA uses the Guile Scheme implementation (otherwise known as the GNU Ubiquitous Intelligent Language for Extensions) as its embedded Scheme. For more information about Guile, please visit http://www.gnu.org/s/guile/.
If you think you have found a bug, please file a bug report in Launchpad: http://bugs.launchpad.net/geda. Please add the tag ‘scheme-api’. It will help us to fix your bug quickly if you can describe in detail how to reproduce the bug.
If you have a question about using gEDA, or about extending gEDA using Scheme, you may wish to send a message to one of the gEDA mailing lists. You may also find additional information in the gEDA wiki.
Both the mailing lists and wiki can be accessed from the main gEDA website: http://gpleda.org/.
If you find a typographical error in this manual, or if you have thought of a way to make this manual better, we would love to hear from you! Please submit a report in Launchpad: http://bugs.launchpad.net/geda, with the tag ‘scheme-api’.