Overview
- Overview
- Things to get
- About EAGLE CAD
- Starting the process
- EAGLE Overview
- Starting the Schematic Diagram
- Schematic Commands
- Schematic Design Review
- Make yourself a board
- About Board Layout Editor
- Placing Components
- Routing Airwires
- Layers
- Ripping Up Routes
- Vias, Holes and Drills
- Grids
- Semi-Advanced: Polygons
- Advanced: Autorouting
- Design Rule Check (DRC)
- Layout Sanity Check
- Bill of Materials
- Fabrication ('fab') Methods
- Computer Aided Manufacturing (CAM)
- CAM Processor
- Advanced: Tile Gerber Files Together
- Advanced: Checking and Editing Drill Sizes
- Checking with a Third Party Viewer
- Send Off Your Files
- "Stuffing" your boards
- Library Editor
Things to get
About EAGLE CAD
freely available but not open source
- http://www.cadsoft.de/
- Available for Linux, Mac, Windows
- Components: project manager, library editor, schematic capture, board layout, autorouter, and gerber generator
- Schematic editor and autorouter are separately licensed modules
- Light: 100mm x 80mm (4 in x 3.2 in), two layer boards, single schematic sheet, $49/complete. Free for nonprofit use.
- Standard: 160mm x 100mm (6.3 in x 4 in), four layer boards, $199/module. $125/complete for nonprofits.
- Professional: No arbitrary limits, $399/module.
- Best features:
- Scripts/scriptable
- User language programs
- Command line!
Starting the process
- Figure out what you're doing: Requirements!
- Do your research. Too many people skip this. Read datasheets. Read design books.
- Make some block diagrams, hand sketches.
- Start thinking about mechanical issues, early is better.
- You should have what amounts to a problem description and solution document.
EAGLE Overview
- Launching EAGLE opens 'Control Panel'.
- Set paths to external libraries and projects.
- Use it to browse scripts and user language programs
- We don't use EAGLE projects
- Forces you to store projects in one folder
- Not very feature-full.
- Start new schematics from the control panel (in Linux just type
eagle name.sch
)
Starting the Schematic Diagram
- Misfeature: EAGLE forces you to choose a whole device - including package! - before a schematic symbol can be used. Symbols and packages are always connected within a device.
- Solutions, in order of decreasing worseness:
- Pick right symbol but wrong package.
- Pick the wrong symbol, but something close.
- Throw together a new device (you'll be forced to do this sooner or later).
- Set grid to 0.050" with a skip of 2.
- Start by using ADD to add devices.
- Then use NET to draw connections.
- Things to demo: ADD, NET, MOVE, DELETE, NAME, SHOW, INFO, MIRROR, VALUE, SMASH, COPY, GRID.
Schematic Commands
ADD
- Use Options:Directories in the Control Panel to set the paths to all your libraries; use ":" to separate paths.
- You have to select the libraries with USE in order for them to show up on your ADD dialog. By default, all standard EAGLE libraries are selected for use.
- Type the first letter of the library name to jump around in the selection window.
- Use arrow keys to open and close selection tree branches, Enter makes a selection.
- You can search with asterisks: for example, '*sot*89*' to search for everything in a SOT-89 package.
- Sticky ADDs: use 'Esc' to stop adding a part.
NET
- Use NET to wire between devices.
- Name the nets!
- Use NET <name> or use the NAME command later on to rename them. This will be very important later, when you're navigating around the board.
- WIRE should be used for drawing things that aren't wires(!!) Likes boxes around sub-schematics. Choose the Symbols layer, NOT the net layer.
- Use mouse <Right button> / <Shift right button> to switch between 'bending' styles.
- Misfeature: you can overlay a net on a pin and in certain circumstances, it won't connect to the pin.
- Use SHOW on a net to make sure the pins light up.
- Use MOVE to shake a device; the nets should rubber band.
- Might need to reset the grid: try setting the grid to 0.050" with a 'skip' of two - the default 0.1" grid is unusable.
- Use JUNCTION to explicitly connect to nets; merely crossing nets will NOT connect them.
- We're serious: check your connections. If there are missing connections, this will be a giant pain in the butt during layout.
- Are any junctions missing?
- Have you shaken all your components and flashed your nets?
- CHECK THE ERC (see below): it'll warn you if there are two things which are close but not connected.
MOVE, GROUP, ROTATE
- <Right click> while moving rotates, <Center button> mirrors.
- Use the ROTATE command to spin without changing the origin of the device (these days you can actually enter an arbitrary angle, like 45 degrees. Ooooooh ahhhh).
- Use MIRROR to reflect the part across its center.
- Useful to clean up the schematic (removes crossed wires)
- Use GROUP to select multiple devices and wires.
- Define a group with a box (click and drag) or polygon (multiple clicks, with right click closing polygon).
- You can ROTATE, COPY, DELETE, etc. groups... so they're very useful.
- Only one group at a time :(
COPY, CUT, PASTE
- You can copy devices but not multiple symbol devices (e.g. 7404)
- Use COPY to copy and paste devices
- To copy and paste groups:
- Use GROUP to select the group.
- Use CUT to copy! the group into the buffer. Click to select a reference point.
- Use PASTE to copy the buffer into the schematic.
NAME, SHOW, INFO, MIRROR, VALUE, SMASH, LABEL
- Use NAME to set the name of devices and nets (e.g. IC1 or Vcc)
- Set the name to ' ' to make it go away.
- Use VALUE to set the value of the device (e.g. 47k)
- Use SMASH to separate the name and value from a device symbol so you can move them around
- Use INFO to pop up a dialog box about a part.
- Use SHOW to show the name in the status bar and highlight it (VERY useful for nets).
- Cool Feature: SHOW also highlights the same nets on the board! Uh, sometimes.
- Use LABEL if you want the name of your net or bus to be displayed.
DELETE
- shift+DELETE deletes an entity as opposed to a symbol or segment
- control+DELETE deletes a point on a wire (to straighten a wire)
- <Right click> to delete groups
- Multi-level undo!
Advanced: Devices with Multiple Symbols
- INVOKE calls in remaining symbols (including power leads sometimes!!).
- GATESWAP switches between identical symbols (e.g. swapping 7404 devices).
- PINSWAP will swap equivalent pins (e.g. the inputs of an OR gate)
- shift+DELETE deletes a device with multiple symbols.
Advanced: Buses
- Use BUS to create a single thick wire with multiple nets in it.
- Use NAME to name the bus' nets or type it with the bus command.
- BUS NAME:SIGNAL1,SIGNAL2,...
- Use NET, starting on the bus, to choose which signal you're extracting.
Electrical Rule Check (ERC)
- Run ERC in order to double check your schematic.
- You may ignore everything, BUT READ THE OUTPUT.
- Lots of power warnings you can ignore: if you call the power supply net one thing, and it disagrees in name with the symbol or device pin, then you'll get a warning.
- Do NOT ignore the warnings about things to close together. Fix them.
Schematic Design Review
- Don't even think about starting your board yet.
- Review your design.
- Get SOMEONE ELSE to review your design. REALLY.
- Now is a good time to prototype weird or questionable circuits.
Make yourself a board
- Just type BOARD on the command line and choose "Yes" in the pop-up.
About Board Layout Editor
- Mostly the same commands as the schematic editor
- Added features for routing traces.
- 'Airwires' are the funny thin rubber-banding wires that connect pins
- A 'ratsnest' is all the airwires together.
Placing Components
- Place components to minimize crossed airwires.
- Or, cross all the airwires and prepare to do a row of vias.
- Use MIRROR to flip components to the other side of the board.
- You can't place component origins or pads outside of the size restrictions.
- You CAN run traces outside!
Routing Airwires
- Use the ROUTE command to route airwires.
- Choose which side you want to route on (top, bottom).
- Switching a route in progress from top to bottom will automatically add a via.
- Routes will snap to pads if within tolerance (??? find where this is set)
- Completing a route - getting rid of an airwire - will cause a beep.
- Your job: get rid of all airwires without violating the design rules.
- Use RATSNEST a lot. Cleans up the airwires.
- <Right button> and <shift right button> cycle through 'bending modes'.
- Rule of Thumbs:
- It's best to route one direction on one layer, and orthogonally on the other.
- Prefer round or octagonal vias. Square ones are dumb except for marking something.
- USE WIDER TRACES. We're not kidding: thicker = better if you can do it.
Layers
- Use the DISPLAY command to display the various layers of your board.
Understanding your layers is important!
- TOP -- Top side copper
- BOTTOM -- Bottom side copper
- ROUTEn -- Inner signal layers (not Light version)
- PADS -- Through hole device pads
- VIAS -- Plated through holes w/o associated devices
- UNROUTED -- Airwires
- DIMENSION -- Board and Hole outlines, appears on silk screen
- t/b DOCU -- Package element; only shows up in Eagle
- t/b PLACE -- Silk screen
- t/b ORIGINS -- Package crosshairs
- t/b NAMES -- Package names, appears on silk screen
- t/b VALUES -- Package values
- t/b STOP -- Solder mask
- t/b CREAM -- Solder cream
- t/b FINISH -- ???
- t/b GLUE -- Glue
- t/b TEST -- Test info
- t/b KEEPOUT -- No-Go areas for packages
- t/b/v RESTRICT -- No-GO areas for tracks
- DRILLS -- Plated through holes
- HOLES -- Non-plated holes
- MILLING -- Areas to be removed by milling
- MEASURES -- ???
- DOCUMENT -- Additional documentation
- REFERENCE -- Reference marks
Ripping Up Routes
- It's often necessary to totally reroute a net.
- RIPUP on a routed trace turns it back to an airwire.
- RIPUP on an airwire rips up until it hits another airwire or a pin.
- RIPUP; rips up everything (remember, you do have an undo command!)
- RIPUP <name> rip up a named nets, RIPUP !<name> rips up everything but those named nets.
- Ripping up will ONLY affect the visible layers, so you can easily rip up just the top or bottom parts of a board.
Vias, Holes and Drills
- The VIA command makes plate-through holes. Vias are fun!
- Vias have names. If the via is added automatically during routing, it'll be named automatically.
- Note that if you're connecting to a named signal, you'll have to name the via to match the signal name.
- Vias plate through, but holes may or may not plate through, so be careful about tolerances.
- Usually any copper touching the edge of a hole will mean the hole will plate through.
- For those using AP Circuits or any other service that demands certain sized drills:
- Use Options:Set:Drills to set the default possible drill sizes
- There is a script (apc_freedrill.scr) attached here EagleCad to set the APC free drill list.
- Check you are using the right via and hole sizes.
- For devices, it's difficult to change the pad drills, so consider doing this in the CAM step.
Grids
- Grids will cause you no end of misery: metric parts on an English grid and vice-versa
- Snapping a trace to a pad may take the end of the trace off grid.
- Routing and component placement are both done on the current grid.
- Using the 'ALT' grid is VERY handy: while moving, hold down the 'Alt' key and the snap-to grid will change to the (typically much finer) ALT grid.
- If a package or trace is off grid, use 'Ctrl' while moving to force it to snap to the current grid.
Semi-Advanced: Polygons
- Polygon fill -- Activate w/RATSNEST Deactivate w/RIPUP (Must hit outer edge).
- Control from menu Options-Set-Misc-Ratsnets processes polygons or SET POLYGON_RATSNEST ON/OFF;
- Delete on polygons deletes single points; the polygon is deleted when only two points remain.
- Cool Feature: Use polygons to create automatic ground planes!
- You can also use polygons to make automatic power planes - this is useful for high current applications.
Advanced: Autorouting
- Autorouting is nice, but it often doesn't do what you want.
- Component placement is critical to getting a good autoroute.
- Hinting the autorouter by manually routing important signals helps.
- Use the weights in the autorouter too.
- AUTO GND -- auto route GND
- AUTO ! GND -- auto route everything except GND
- Net CLASS determines the properties of autorouted traces: e.g. a power class which has thick traces
Design Rule Check (DRC)
- This is an absolute MUST DO.
- Only visible layers are checked
- Choose DRC:Select to rubber-band the area to check
- Post-DRC dialog graphically finds errors
- Violations leave behind highlights which can be cleared in the Post-DRC dialog
- When to care:
- Do NOT violate your board house's fabrication limits for your traces.
- Care more if you are using automated assembly
- When not to care:
- Do NOT care if your text violates the rules: smudgy text is irrelevant
- Ignore clearance errors when you are really trying to connect two things and EAGLE doesn't understand
Layout Sanity Check
- Print out board and place components on the printout (stick through hole components through the printout!)
- Double check mechanical interfaces:
- Make sure there's room for wires that come out of connectors
- Make sure that the connectors face the right way
- Check if there is some order that you have to place components (e.g. a large connector near a small surface mount part)
- If you're in for a bit of work, then you can make a 3D model:
Bill of Materials
- You can EXPORT a parts list from the board editor
- For a nice 'bill of materials', run the EAGLE ULP 'BOM': RUN BOM
- Now do your parts order, so that your parts get to you when your board arrives
Fabrication ('fab') Methods
- A steady hand and an Exacto knife (small boards only)
- Do it yourself, using bare copper board, an iron, and nasty chemicals (pretty icky)
- Get access to the PSU PCB router (fun, but no plated through holes)
- Send the design to a commercial firm which makes two layer, plated-through-hole prototype boards for dirt cheap:
- http://www.apcircuits.com/: $46 setup charge + $0.65/sq. in.
- http://www.pcbexpress.com/ $60/9.9 sq in... see their table (less expensive for more and bigger boards)
- http://www.33each.com/: Advanced Circuits $33/each deal for students
Computer Aided Manufacturing (CAM)
- You need to export your board layout in a form that a fabricator can use.
- "Gerber" files, originally for old Gerber photoplotters but became industry standard called RS-274x
- "Flash", "move", "stroke" apertures between X,Y coordinates: think of a lamp with a mask on an X-Y table.
- "Excellon" files, originally for old Excellon drill presses.
- X-Y coordinates with tool codes for drilling holes and vias.
- Extended Excellon files contain mappings from the tool codes to drill sizes.
- EAGLE uses the CAM processor to generate Gerber and Excellon files.
CAM Processor
- The CAM processor has 'sections' which create a single file.
- You need three sections for a double-sided board: top, bottom, and the drill list.
- Here are the explicit directions for setting up CAM output for a commercial fabricator:
- From the board, choose File: CAM to run the CAM processor.
- Or, run the CAM processor from the control panel and load in a board.
- "TOP" section:
- Change 'Section' to the section name, usually 'TOP'.
- Set 'Device' to
GEBER_RS274X
- Type in the file to save the Gerber: usually *.TOP
- Choose Layers for the file: Top, Pads, and Vias
- Hit the 'Add' button to add a section
- "BOTTOM" section:
- Change 'Section' to the section name, usually 'BOTTOM'.
- Set 'Device' to
GEBER_RS274X
- Type in the file to save the Gerber: usually *.BOT
- Choose layers for the file: Bottom, Pads, and Vias
- Hit the 'Add' button to add a section
- Change 'Section to the section name, usually 'DRILL'.
- Set 'Device' to
EXCELLON
(this is the extended Excellon file with tool mappings) - Type in the file to save the drill list: usually *.DRD
- Choose the layers for the drill list: Drills and Holes
- Hit 'Process Job' and ta-da, you have three ASCII text files that describe how to make your board
Advanced: Tile Gerber Files Together
- You can make larger boards by Tiling boards together at the Gerber level. A pain, but possible.
- You can put lots of smaller boards on a panel to reduce cost (but you'll have to saw out the boards)
- Use 'GerberTiler', written by our own Ted Havelka, at http://sourceforge.net/projects/gbtiler
Or try Gerbmerge
Advanced: Checking and Editing Drill Sizes
Sometimes you need to constrain your drill sizes: e.g. free drill list from AP Circuits
- You can either:
- Attempt to do this in the board editor
- Make sure your vias and, as possible, library parts have the right drill sizes
- There's a tolerance feature in the EXCELLON_RACK device which allows you to snap close drill sizes to an existing drill rack
- Hand edit the .DRD file to change the tool codes:
- The preamble in the .DRD file shows the diameter of the drill in inches; simply change the "T" codes to the right diameter
- You can repeat drill sizes; for the more obsessive compulsive, you can collapse sections of tools.
Checking with a Third Party Viewer
- DO NOT SKIP THIS STEP.
- Use a third party Gerber viewer to check and view the output of the CAM processor
- Open source: 'gerbv' from http://gerbv.sourceforge.net/
- Commercial but free: 'GC-PREVUE' from http://www.graphicode.com/
- Commercial but free: 'ViewMate' from http://www.pentalogix.com/
- Look for weird things:
- Drills not centering in the pads
- Offsets between layers
- Oddball artifacts
Send Off Your Files
- Zip up your files and ship them off
- Takes about 3 days!
"Stuffing" your boards
- Saw apart as necessary, or sand edges to get exactly the right size.
- Start with small parts, work bigger.
Library Editor
Here is a nice Howto on making a custom part. http://www.instructables.com/ex/i/5E196AEE010A102980EC001143E7E506/
Symbols
Packages
Devices
EAGLE Nomenclature
SIGNAL -- airwire
NET -- schematic wire
ROUTE -- board trace
BUS -- graphical collection of nets
NAME -- Device
VALUE -- Device
LABEL -- Signal (Schematic BUS or NET)
PINNAME -- Pin
EAGLE File Extensions
These extensions are entered by the user and output by the in the CAM processor when making gerbers:
.top -- Component side foil (deprecated .cmp)
.bot -- Solder side foil (deprecated .sol)
.drd -- NC drill data
.ly(n) -- inner signal layers (Not light version)
example: .ly2 is just below top
.tsk -- Top SilK screen (deprecated .plc)
.bsk -- Bottom SilK screen (deprecated .pls)
.tsm -- Top Solder Mask (deprecated .stc)
.bsm -- Bottom Solder Mask (deprecated .sts)
.tsp -- Top Solder Paste
.bsp -- Bottom Solder Paste
.xln -- Excellon drill CAM file w/rack (industry std. drill file)
.dim -- Milling file, defines outer edge of boards
.tpl -- Top component PLacement
.bpl -- Bottom component PLacement
These are output by device scripts from the CAM processor:
.dri -- Drill use summary from the Excellon devices
.drl -- Drill Rack File (Obsolete, newer eagle EXCELLON device incorporates
this information into the Excellon output file.
Still useful for consultation though.
EXCELLON_RACK device gives old behavior.)
.gpi -- Gerber Plotter Info file from the RS274X device
These file extensions are also user selected, but are less commonly used:
.oln -- OutLiNe, boarder around project, useful for tiling.
.sco -- SCOring file, for V-groove milling, allows board to be snapped apart.
.tgl -- Top GLue
.bgl -- Bottom GLue
.whl -- aperture (Wheel) shapes
These extensions are enforced by Eagle:
.sch -- Schematic
.erc -- Electrical Rule Check (Output of the ERC command)
.brd -- Board
.epf -- Eagle Project File (per project settings)
.lbr -- Part Libraries
.scr -- Script (Command batch file)
.ulp -- User Language Program
.cam -- Computer Aided Manufacture script (or job)
.dru -- Design RUle file
.def -- Device Definitions for CAM processor, usually we don't care.
.key -- Eagle key file (Generated from freeware key at 1st run).
Other files
Scripts
EAGLE script files (.scr) are EAGLE commands that you could have typed into the command line box bundled together in a file. Not every single command can be done from a script (e.g., you can't mouse click in a script) but most can.
- Type "script _filename_ " to run a script.
- Scripts are stored in the "scr" folder under the EAGLE directory.
Useful scripts include assigning keyboard shortcuts (e.g.: assign.scr, goodkeys.scr), making pre-built board outlines (e.g.: euro.scr)... anything you want to do over and over again.
User Language Programs
The Eagle User Language Program (.ulp files) is some strange pascal like language which allow you to just about anything in EAGLE. It's a cool feature, but of course we haven't bothered to learn the language. In any case, there are some good ULPs out there, and many can be downloaded from www.cadosft.de site.
- Type RUN <filename to run a ULP
- ULPs are stored in the "ulp" folder under the EAGLE directory.
- Some good ULPs:
- RUN FIND <name>
- Finds <name>, whether it be a label or signal name, and centers it on the screen
- RUN FIND R202 -- also SHOW R202
- RUN FIND GND ALL
- Only for boards:
- COUNT -- count drills pads etc
- DRILLCFG -- lists drill sizes by drill number
- LENGTH-FREQ-RI -- info on every signal on a board
- ROTATE -- generates a library w/rotated package (only for libraries?)
- UNROUTED -- finds very, very tiny airwires you didn't realize are floating around
Gotchas
- Selecting objects requires their origins be visible
- Forward/Backward annotation requires .brd/.sch to have the same name/directory
- Many operations can only be done on the schematic
- Little tiny airwires: EAGLE has a way it wants to join wires, try to avoid a fight: If you don't hear a click or bell, then you haven't really finished and there's a micro-tiny airwire somewhere (see ULP file unrouted.ulp)
- Distinguishes Pads, Vias, SMD `pads', uses different commands.
- REPLACE by default requires same names, can try:
- SET REPLACE_SAME COORDS;
- REMOVE sounds dangerous
- Proportional fonts may render oddly, often must use ugly vector font
- Options:User Interface:Always vector font
or
SET VECTOR_FONT ON/OFF
- Options:User Interface:Always vector font
Techniques
- Define your own key bindings! goodkeys.scr, see the EagleCad page
- Enter points as (x y), note spaces separate parameters
- Add ERC:AllowUserOverrideConsistencyCheck = "1" to .eaglerc (see doc/UPDATE) (allows forward/backward annotation even if "required" consistency check fails)
- If your middle mouse button is unavailable try: Interface:UseCtrlForPanning = "1" in .eaglerc
- OPTIMIZE may help in joining separate wire segments (is on by default but it never hurts ;).
- Do your own menus (turn on "Command Texts" in "User Interface", "SCRIPT menu")
- Set a MARK to measure from (i.e. relative coordinates)
- Use of "(@)" (=current position of mouse) and ";" and non-use of "*"
"(@)" can also be used to to make pins with the same function show the same name on the schematic. Example: GND@1, GND@2. Only characters before the "@" will be seen on the schematic. See the Eagle documentation on the PIN command under "Pins with the same Name".
"SET Used_Layers" turn on basic layers only: (All, None, Name, Number). See scr/mylayers.scr.
Files
goodkeys.scr Keybindings script for Eagle
EagleWorkshop.zip Demo files for Workshop 2009.02.17
teach eagle.zip Older demo files