This chapter is from the book

Circuit design applications can be divided into two categories: those intended for large design firms and those intended for everyone else. Applications in the first category provide high reliability, a wide range of features, and responsive technical support. But these advantages come with a hefty price tag. A perpetual license for Altium Designer costs more than $7,000 and Cadence’s OrCad suite costs nearly $10,000.

Applications in the second category are less expensive, and this makes them accessible to students, individuals, and small-to-medium businesses. Unfortunately, they tend to be unreliable and plagued with bugs. Without technical support, there may be no way to work around these difficulties. What’s worse, the companies that release these tools tend to be as flaky as their software and may disappear before their support contracts expire.

But not CadSoft’s EAGLE. The Easily Applicable Graphical Layout Editor provides the best of both worlds: the quality of a first-tier design application for the price of a second-tier application. EAGLE has been around since 1988, and with each year, it has improved in capability and reliability. It provides a complete set of features for designing circuit boards, and despite thousands of hours of use, it has never crashed on me. If problems arise, users can visit multiple online forums or read through the many online articles.

EAGLE has one major drawback: its user interface. If you’re a frequent Windows user, you’re accustomed to applications behaving in a certain manner. You’re used to a common set of toolbar items and mouse gestures. But EAGLE has its own unique behavior, and it’s impossible to simply start the application and figure out how everything works. It takes time to understand the many editors, dialogs, menus, and commands. And because circuit design is such a complex task to begin with, many newcomers to EAGLE give up.

The goal of this book is to ease the process of learning EAGLE. In these chapters, I’m going to walk through the process of designing circuits, starting with a simple circuit (a noninverting amplifier), proceeding to an intermediate circuit (the Arduino Femtoduino), and finally reaching an advanced circuit (the BeagleBone Black). During the course of this presentation, I’ll describe both the EAGLE interface and the general process of desiging circuit boards.

In addition to point-and-click design, a significant portion of this book is devoted to automation. EAGLE has a rich command language that can be accessed through scripts and User Language programs, or ULPs. When you have a solid grasp of how to create circuit designs in code, you can perform long, repetitive tasks with a single command. With this automation, your errors will decrease and your productivity will skyrocket.

1.1 A Whirlwind Tour of EAGLE

EAGLE is a software application that makes it possible to design circuit boards. Boiled down to its essentials, EAGLE consists of six features:

Component library—The set of devices that can be inserted into a design

Schematic editor—An editor that makes it possible to draw the circuit’s preliminary design

Autorouter—A tool that automatically determines how circuit elements can be connected

CAM (Computer Aided Manufacturing) processor—A tool that reads in a board design and produces files for the board’s fabrication

This section briefly describes each of these features and how they relate to the overall process of circuit design.

1.1.1 The Component Library

One of the most important features of any circuit design tool is the set of available parts. This set of components is called a library, and the larger the library, the less time the designer needs to spend defining new devices.

Thanks to its longevity, EAGLE’s set of libraries has expanded to thousands and thousands of components, from vacuum tubes to field programmable gate arrays. No matter how complex the design, the odds are that EAGLE will have most of the required parts. If it doesn’t, the site http://www.cadsoftusa.com/downloads/libraries provides more libraries for free download. If a part still can’t be found, Chapter 8, “Creating Libraries and Components,” explains how to design custom parts.

One new feature of EAGLE 6 is the format used by the library files. Each library is defined within a *.lbr file, and the format for this file is the eXtensible Markup Language (XML), which is popular throughout the world of computing. Appendix A, “EAGLE Library Files,” describes the XML schema that defines the structure of EAGLE’s library files.

1.1.2 The Schematic Editor

After you verified that your circuit’s components are available, you can select and connect them inside a schematic design, as shown in Figure 1.1.

As with most schematic editors, this keeps track of four important pieces of information:

Which components are present in the design

Connections between the components’ pins

Names and values associated with the components

Properties of the components’ connections

EAGLE’s schematic editor makes it easy to design a preliminary circuit. Just select a part from the library, move it to a position, and draw connections between it and other components. Afterward, you may assign names and values to the component, such as a resistor’s resistance in ohms. Chapter 3, “Designing a Simple Circuit,” and Chapter 4, “Designing the Femtoduino Schematic,” discuss the schematic editor in detail.

1.1.3 The Board Editor

After a schematic design is complete, EAGLE can generate a board file (*.brd) that defines the layout of the actual circuit board. Board files are modified in EAGLE’s board editor, as shown in Figure 1.2.

In this editor, the designer positions the real-world devices corresponding to the components in the schematic. This position includes not only x and y coordinates, but also whether the components are on the top or bottom layer.

1.1.4 The Device Editors

If the EAGLE library doesn’t contain a crucial part, the device editors make it possible to design a new one. This process has three steps:

Create a design for the schematic editor. This is called a symbol.

Create a design for the board editor. This is called a package.

Create an association between the symbol and its package. This is called a device.

EAGLE provides editors for laying out a component’s symbol and package. These are collectively called the device editors, as shown in Figure 1.3.

The left side of the figure displays the symbol for Analog Devices’ SSM2167 component. The right side displays the component’s package, which can be used in the board design.

Don’t be concerned about terms like symbol, package, and device just yet. These topics will be explored throughout this book, and Chapter 8 presents the entire process of designing new components. Appendix A explains the file format used by EAGLE to store these designs.

1.1.5 The Autorouter

After the boards’ devices are in place, the next step is to create the connections between them. This is called routing, and even with high-end design tools, this process can be complex and time-consuming.

EAGLE’s autorouter simplifies the routing process and provides insight into how circuit components can be connected. But for large-scale circuits, it generally isn’t capable of completely routing a board on its own. However, if a designer manually creates initial routes, it will help the autorouter do its job. Chapter 6, “Routing,” explains all the different routing methods supported by EAGLE.

When the Process Job button is pressed, the processor executes a sequence of tasks called a job. A designer can load a job from a file (*.cam) or create a new job from scratch. As a job executes, each of its tasks reads a portion of the board design and creates a file of the selected type.

To fabricate a circuit board, most manufacturers require two types of files. To define a circuit’s geometry and connections, the accepted file format is RS-274X, also called the Gerber format. To specify drill diameters and drill locations, the accepted format is the Excellon format. The CAM Processor generates files of both types.