hey viewer, we're moving!

We are currently transitioning to a new web system, so we are not updating this wikisite anymore.

The public part of the new web system is available at http://www.ira.disco.unimib.it

PCB Design: Eagle

From Irawiki

Jump to: navigation, search

IMPORTANT: Be prepared to get a severe headache! ;)


Suggested Eagle setup


Custom grid settings

It is strongly suggested to ALWAYS use a grid in inches, preferably 0.1 inches for every component or wire and 0.1 or 0.01 inches for labels. To this end it can be convenient to define a custom grid in eagle: in the schematic/board editor, click on the grid button and set the desired values for the grid. Finally, to save the custom setting right click on the grid button, select "New.." and give a name to the new setting. The following are the suggested settings:

  • Option 1: Size=0.1 inches, Multiple=1, Style=Lines
  • Option 2: Size=0.01 inches, Multiple=10, Style=Lines

Keyboard shortcuts to the grid settings

It is also possible to create a keyboard shortcut to each grid custom setting. This can be done selecting Options-->Assign-->New and specifying the command "grid grid_setting_name" along with the preferred combination of keys. (E.g. Ctrl-1 for the 0.1 inches grid and Ctrl-2 for the 0.01 inches grid).

Best practices, tips & tricks and advices

Schematic design

Units and Grid

DO NOT use metric units (mm) unless you are really sure that you know what you are doing! Read more about the metric vs imperial unit problem here and here. I also strongly suggest you to read the guides linked at the end of this page. As a general rule, ALWAYS use a 0.1 inches OR 0.01 inches grid!!


Be sure to use NET command and not the WIRE command when drawing your schematic: the netlist (made with nets) tells the autorouter connect A to B while the wire command just creates signals, and will confuse the heck out of the autorouter (if you dont care about the autorouter, then it doesn't make much difference).

How to delete or move components' labels

The button "Smash" allows you separate the label from the component. Afterwards it will be possible to move, rotate or delete the label without affecting the position of the component.


Tools --> Erc will check if there are errors in the schematic.

Board design


The package of a component defines the shape of the component and, most importantly, the position of the pins. If you need a component that is not in the library, it is strongly suggested to check out if at least the package is already in the library. It is very easy to create a new component when the package is already available!


Please note that the TOP layer is the one with the components, so the "default" drawing layer for wires should be the BOTTOM one. This is usually wrong in most of the iralab boards designed so far. Also, the suggested width of the wire is 0.016 inches.

Sometimes it is not possible to keep every wire on the bottom of the board, in this case you have to use the top to connect somefara pins with little wires. This is far more complicated and unreliable, but sometimes it is not possible to avoid it. To accomplish this draw a little wire on the bottom part, then change the layer of the wire while you are still drawing it and draw the wire on the top layer. When you are near the destination pin switch back to the bottom layer and draw the last piece of wire on that layer. Eagle will automatically draw little holes to allow you to solder the wires on the top layer and connect them to the wires on the bottom. The suggested minimum width for these holes is diameter 0.07 inches and drill 0.04.

Wire angles

When a board is designed, it is often preferable to draw the wires with very specific angles (90° or 45° are the most used). When you are drawing or modifying a wire, use the right button of the mouse to quickly cycle through the most used angles. This is also useful to avoid the creation of little lines (or even points sometimes) when two wires are connected in two slightly different positions.


Rastnet (under the Tool menu) is a very useful tool with essentially two different functions: it reroutes the unconnected wires (the yellow little lines between unconnected pins) and it shows the number of unconnected wires in the bottom-left corner of the screen. The first function is critical when you are drawing a wire one step at the time: if you don't reroute the unconnected wires sometimes Eagle will not allow you to continue a not completed wire. Also, sometimes it will not connect the wire in the right place if you moved the component and he still thinks that the pin is in the old location. The second function is very useful when you think that the board is complete to check that every pin is connected.


Tools --> Drc will check if there are errors in the board, such as wires that are too close one to each other or holes that are too small or too close to the end of the board or to other elements, etc.

Ground plane

To create a ground plane select the Polygon tool, then click on the board to draw the contour lines (you can double-click to automatically close the polygon). When the polygon has been drawn, select the Name tool, click on the polygon and change its name to "Gnd" (or whatever the name of the ground signal is in your board). Finally use the Rastnest tool to fill the polygon with the ground plane. Note that you can force eagle to leave more space between the ground plane and the wires by using the change tool (wrench icon) and assigning a value to the isolate property of the ground plane (suggested dimension: 0.02). Remember that you have to click on its contour to select the ground plane.

Text inside the ground plane

When you write text on multiple lines (using the shift+enter combination inside a text box) Eagle will often cover a part of the text with the ground plane. You can avoid this by drawing a rectangle/polygon an add it to the group bRestrict(42) or tRestrict(41): this tells Eagle not to draw inside the rectangle/polygon. You can then use Rastnest to redraw the ground plane as usual.

How to add a component to a library

Main parts of a component in an Eagle library

  • Package: it defines the physical shape of the component (e.g.: the position and dimension of the pins; the same for the holes, where applicable; the external shape of the component)
  • Symbol: it defines a symbol to be used in the schematics (e.g.: the triangle with a vertical line at the end, to denote the diode)
  • Device:: finally, a device is a composition of one package with one or more symbols

Steps to create a new component

To create your own component in a library you have to:

  1. Open the Eagle control panel
  2. Open the desired library (double click) in the Libraries list (usually a new user-defined library)
  3. If you need to draw a new package, open the Library-->package menu, in the New field write a name for the package, then click Ok. Draw the package as desired and save it.
  4. The same applies to symbols.
  5. Remember that the most commonly used measure unit is imperial (inch) and that usually the grid is set to 0.1 inch. Always use this grid when you draw a new symbol: the schematic doesn't need to be accurate, having the grid set to 0.1 inch should assure that the component will be easily connected to nets and other components when you use it in a schematic. Should you use a different grid to draw a package, it is better to set it back to 0.1 inches when you have finished. The units will be automatically converted in inches and hopefully you will be able to use the component to create a board without losing weeks trying to connect the routes to the pins.
  6. Finally create a new device (open the Library-->device menu, etc..), add the package(s) and the symbol(s) and connect the pins on the package(s) to the pins on the symbol(s).

Trick 1: if you want to create a new symbol or package beginning from an existing one, you can open the existing component (from the library), select every part (drawing a selection box with the selection-box-tool), select copy from the edit menu and finally open your new component and select paste from the edit menu.

Trick 2: you can use the command "copy componentX@libraryY" to create a copy of the componentX from the libraryY in the library that you are currently editing. You can then rename it and modify it if you want.

Useful links: Tutorials & similar

Newbie Eagle tutorial (in english)

Tips and tricks (in english)

Newbie Eagle tutorial (in italian)

Useful links: Eagle downloads

Libraries@Eagle's official site

Libraries@element14 (farnell)

Modified version of Eagle providing additional libraries, utilities and scripts original link was in this page

Personal tools