Skip to main content

Simple scripts supporting open hardware development using CadSoft EAGLE

Project description

Eagle automation

Python’s Eagle Automation (PEA) provides a more Unix-like and scriptable interface to the CadSoft Eagle electronics design package. It is meant to make open hardware development a bit more convenient for anyone that is used to the procedures usually employed by open source software projects (for example using source control tools and one-step builds).

This repository currently contains the following:

  • pea diff

  • Commandline diff tool for schematics, board layouts and libraries that is compatible with git-difftool. For schematics and board layouts, a visual diff is displayed. For libraries, a textual comparison of library elements is shown.

  • pea export

  • A tool that exposes a unified commandline interface to various different ways Eagle offers for exporting artwork. It currently supports exporting Eagle files to Gerber, PDF and PNG formats, generating Excellon drill files and files needed for pick & place machines.

  • pea drill

  • Generate .drl files from .dri without any annoying dialogs.

  • pea bom

  • Generate .json file with the full list of components

  • skel/Makefile

  • An example Makefile that demonstrates how fabrication and assembly documentation for a project can be generated automatically with GNU Make.

Installation

From pipy, do:

% pip install eagle_automation

From the sources, run:

% python setup.py install
% git config --global --add difftool.eaglediff.cmd 'pea diff $LOCAL $REMOTE'

Note these scripts have only been tested using Eagle ≥5.11.0 (and 7.2)

Usage

You can find a Makefile in the skel/ subdirectory that shows how you can automatically build your project’s documentation using make from .sch and .brd files.

To show differences to the design that have not yet been committed:

% git difftool -t eaglediff

To show differences between two tagged versions:

% git difftool -t eaglediff v1.0..v2.0

Note that Eagle windows will blink on and off during the use of these tools. Try not to touch anything while they are doing that.

Also, Eagle sometimes behaves weirdly if more than one instance of it is running: it might occasionally stop in the middle of a script or throw a random error dialog. Because of the closed nature of this software there is nothing that can be done about that. If that bothers you, consider switching to a free EDA tool.

Develop

install buildout pip install zc.buildout and run:

% buildout
% bin/pea --help

from the sources’ root.

Then you can run python setup.py develop to install a global instance linked to current sources. Or python setup.py install to install it the old fashion way.

Configuration

These tools make a distinction between “export layers” (e.g. layer names used on the pea export command line) and “Eagle layers” (layer names as they appear in the Eagle user interface). One export layer typically corresponds to one mask and consists of one or more Eagle layers.

For example topcopper export layer by default includes Top, Pads and Vias Eagle layers.

A configuration file provides a mapping between export layers and Eagle layers and some other tweakable settings. Default configuration is installed by setup.py. It should work for most simple one- or two-layer boards.

Should you want to adjust something, you can place your own configuration file to one of the following locations. Settings in later locations override earlier ones:

/etc/eagle_automation.conf
$HOME/.config/eagle_automation.conf
./eagle_automation.conf

You can use the eagle_automation/default.conf file as a template.

Known problems

When exporting to PDF using pea export, default print settings are used. To set them, go to File -> Print setup, make changes, then quit Eagle so that the settings are saved.

Exporting and diffing multi-page schematics doesn’t work well. Only one page can be compared at a time and you have to specify the page number on the command line using –page.

Contributors

Copyright (C) 2014  Tomaz Solc <tomaz.solc@tablix.org>
Copyright (C) 2015  Bernard Pratz <guyzmo+github@m0g.net>

License

Eagle automation, set of commandline tools for use with CadSoft Eagle
Copyright (C) 2014  Tomaz Solc <tomaz.solc@tablix.org>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eagle_automation-0.1.8.tar.gz (11.5 kB view details)

Uploaded Source

Built Distributions

eagle_automation-0.1.8-py3.4.egg (26.5 kB view details)

Uploaded Source

eagle_automation-0.1.8-py2.7.egg (26.0 kB view details)

Uploaded Source

File details

Details for the file eagle_automation-0.1.8.tar.gz.

File metadata

File hashes

Hashes for eagle_automation-0.1.8.tar.gz
Algorithm Hash digest
SHA256 3a0b6ab00427f7869a56a1b7bca82cce478c8941aa033cfbc959a915c481cf02
MD5 3bb47796277cb87c6b76075436645227
BLAKE2b-256 d463cfa9aabc63846a1b33e62aad2a4f8cf7e05bfc8f334ea7999d59c78a726a

See more details on using hashes here.

File details

Details for the file eagle_automation-0.1.8.macosx-10.10-x86_64.tar.gz.

File metadata

File hashes

Hashes for eagle_automation-0.1.8.macosx-10.10-x86_64.tar.gz
Algorithm Hash digest
SHA256 a1a49a3737b1b75663f01755128d0c37b865d07861e35323828b2c6cfd4ce124
MD5 be21d762682139c7add47746a29204b7
BLAKE2b-256 0185a064676cab90d040e873b324a195b52266d3d804d0a679e2d133770c89ee

See more details on using hashes here.

File details

Details for the file eagle_automation-0.1.8-py3.4.egg.

File metadata

File hashes

Hashes for eagle_automation-0.1.8-py3.4.egg
Algorithm Hash digest
SHA256 bc6f8b7e1eec123374b30fcd6f677a3d0e5c3707c38bf76654ef5e5b8c9cdb2a
MD5 dff11320b3f47810e08d243e3eed0874
BLAKE2b-256 a8039c27dd30f3afdb52523c38fdda59221715b9ab97448a0f468f2ac8bfe389

See more details on using hashes here.

File details

Details for the file eagle_automation-0.1.8-py2.7.egg.

File metadata

File hashes

Hashes for eagle_automation-0.1.8-py2.7.egg
Algorithm Hash digest
SHA256 b7ccfb786276ed331ee232e664e0d4e8a0c9f41f9ae99a08f03f0d5aa9290022
MD5 e63a55536982001d3928a849910105a3
BLAKE2b-256 50e4251999af442f2701f2b6d9622e0cffdfe53d40239b68b99e4f6b7ee8a272

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page