Working with Design Rules

Design Rules

One of Eagle's more important but less flashy features is its support for design rule sets. These are sets of rules for things like spacing between board features and minimum sizes that all correspond to the tolerances and capabilities of a board manufacturer. Setting these design rules will help you design your board in a way that will fit the requirements and capabilities of your board manufacturer. 

The board house will specify these tolerances like on this page for OSH Park and you can manually create your own design rule sets based on these requirements, however in our case we're going to download and use the design rule files that OSH Park provides. 

Keep in mind that these design rules are for the minimum size that a manufacturer will produce, not the only size! In most cases, it is wise to use larger sizes than the minimum as the closer, smaller and tighter your design, the more "fragile" your design will be, meaning it will be susceptible to problems occurring from the normal and expected variances that occur during manufacturing.

Using Design Rule Files

Go to the OSH Park Eagle design rule page and download the "oshpark-2layer.dru" design rule file. Once downloaded, while in the board window, open the Edit menu  and select Design rules...
In the window that opens, click Load, select the OSH Park design rule file you just downloaded, and click OK.

Once you have loaded the new design rule file, let's run a design rule check to see if the board as it is now has any design rule errors.

By default Eagle will continuously check for Design Rule errors. You can turn this behavior on or off using the "Live DRC" checkbox under Options>Set..>DRC tab

Click the DRC button to open the DRC window, and click Check

This will pop up a dialog that will list any current board feature that violates the design rules.

When you run the design rule check, it will highlight several errors; the first is Airwires which are connections from nets that have not been completed using traces. This is to be expected because we have not created any traces yet.

The second class that might appear are dimension errors that come from the pads for the headers being too close to the outline of the board. One of the design rules that OSH Park and other board houses specify is how much clearance there must be between the board outline and anything on the copper layers.

We can use the move tool to adjust the position of the board outline and headers to provide an appropriate amount of clearance. 

Make sure NOT to move the individual Trinket headers by themselves! Use the group>move command to preserve their spacing

You will likely discover however that you can only make relatively coarse movements

The movement flexibility, in steps, is due to the default size of the grid.

Grid

Eagle allows you to specify a grid that board features will snap to when being moved or created. The units you specify will also determine the units used for measurements throughout Eagle. When routing a board I prefer to set the grid size somewhere between 2.5 to 10 mils. This allows for a fair amount of flexibility and, since design rules are often in mils, using mils for the units helps me make sure I'm keeping the design rules in mind while working on the board.

Open it by clicking the Grid icon. It will ask you to specify the grid size value and units like millimeters or mils (1/1000th of an inch). Set the size to 10 and the units to mils and the Alt to 2.5.

Now that you have adjusted the size of the grid, select the Move tool again and move the position of the board outline to remove the dimension errors. If you hold Alt (Option on a mac) while moving something, you will temporarily change to the alternate grid that you've set to a finer pitch, allowing you to make even finer adjustments. After working working in Eagle for a bit you'll likely develop your own preferences and can set the grid accordingly.

This guide was first published on Feb 05, 2019. It was last updated on Feb 05, 2019.
This page (Working with Design Rules) was last updated on Aug 06, 2020.