Eagle FAQ
This page is a list of Frequently Asked Questions (most of which have answers!) for ["Eagle"], the schematic/PCB layout program. This list includes entries from the [http://eagletips.swiki.net/1 original Eagle FAQ], since that site is often unavailable.
Other FAQ's
Here is a [http://www.boerde.de/ewiki?EagleFAQ German FAQ]
You can always ask a question on one of the many [http://www.cadsoft.de/forum.htm Eagle newsgroups]
Schematic Editor
- Where are ordinary resistors?
- They are in the rcl library -- this is the resistor-capacitor-inductor library.
- How come my wires do not connect reliably?
You should use the Net tool for wires in a schematic, and ... It is due to your non standard grid settings (or the component being created on a non-standard grid) - the pad must be exactly on a grid traversal for connection. Look at the user language programs called cmd_snap_board.ulp and cmd_snap_schematic.ulp to help get your components to all line up properly. See Eagle help on ULPs or download the Eagle help system exported in PDF format at [http://www.puresoft.co.uk/downloads/help.pdf http://www.puresoft.co.uk/downloads/help.pdf] - start at page 150 for ULPs. --Regards, Philip Hodgers.
- Since the loading time of the "add" command is too long for my system, I want to disable some libraries in control panel. However, if I restart Eagle, all libraries will become enabled again. How can I solve this problem?
- The information on which libraries are in use is stored in the current project file. If there is no project loaded, the information won't be saved.
- Can one copy gates? Or must I always go fetch a ground gate every time I want to ground a net? Copying a gate yields a warning that I cannot copy gates.
- NOTE: More recent versions of Eagle do let you copy gates using the COPY tool. Otherwise, click GROUP (dotted square), surround the gate(s) with LEFT MOUSE BUTTON clicked. Click CUT (scissors symbol) and use RIGHT MOUSE BUTTON on item(s). Then click with LEFT mouse button on PASTE, and place the component. This also works to copy stuff from one library to another, although it is slow as you have to close and open libraries.
- How can I connect the implicit power pins?
- If you choose the supply parts with the appropiate SUPPLY parts (e.g., VCC, GND), then your parts will connect automatically, and you will be able to see airwires on the board. Alternately, you can INVOKE the part; a popup will let you add the supply pins to the schematic.
- If I have INPUT pins on an IC, but I don't want to connect it, how can I eliminate the message error "unconnected INPUT Pin"?
By convention, INPUT pins must be connected. If you have pins that can be optionally used but also left open, you should set them as PASSIVE. You need to do this is the library editor. Use the Change->Direction->pas to change the pins that you want to be passive.
- How do I split an existing schematic so that I can have it on two seperate sheets?
- Make copies of schematic and board (for safety).
- Close the board - annotation is turned off by this.
- Select a group you want to move to another sheet, and CUT it.
- Delete the group (right mouse key).
- Load the board again (schematic still loaded).
- Select the target sheet and PASTE the group there.
- Run ERC to regain annotation. Normally, schematic and board should be consistent again.
- How can I have a small grid for better placement, but fewer lines?
I never realized the usefulness of this option, but it helped in this case. As stated above, I found it a nuisance to have to keep switching the board GRID spacing from 0.05mils to 0.01 mils (back & forth), just to "align" parts badly placed by the editor. Well, I found that if I set (or leave the default) value of spacing at 50 mils, but changed the MULTIPLE to 2, I end up viewing a normal 0.10 inch spaced grid (twice 0.05), but with active and mouse "reachable" 0.05 inch grid positions (which have invisible grid lines). Now I can more easily shift the placed parts onto the 100 mil through-hole grid from the odd 50 mil placement - without the need to keep switching back to the GRID command each time. And, as the actual 50 mil spacing is invisible, in this case, it is less confusing to view and work with. Since the project uses 0.1 in components exclusively, I think I will set the Grid MULTIPLE to 2 in the Eagle startup file. That is a more appropriate "standard" default.
- How do you renumber a bunch of sheets at once?
- I agree being able to renumber sheets would be a "very-good-thing"!, here is my work-around. When I have completed the schematic...
- Add as many new sheets as there will be in the finished schematic.
- Close the PCB file for the duration (this is the ONLY time I work on a schematic file with annotation deliberately disabled!)
- Find what you want to be the last sheet of the schematic. Turn on all layers group, cut everything using the lower left corner (0,0) as the insert point (helps to have the grid set fairly coarse, ideally at .1" --Delete the group you just defined and cut
- Move to what is now the last page in the project.
- Paste at point (0,0) REMOVE the now empty sheet.
- Repeat the above steps until all sheets have been cut-pasted into the correct order.
- Open the board file and run ERC to make sure you haven't lost consistency.
- It would be REALLY useful to have notes on a schematic
Here is the workaround I have used. I create a component called "NOTE" which only has a >NAME and a >VALUE. I then add a number of NOTE parts to my drawing, and for the part name I call them 1, 2, 3, 4, etc. (Note there is no letter in front of the number. This seems to work.) Then I add text by the component, "See note 1". Note 1 says R1 is a 10 watt wirewound by Gymcrack Corp or whatever. The cool thing is that NOTE 1 SHOWS UP IN THE BOM when I export a BOM using BOM.ULP. So it is really easy to add a note to your component BOM list. A couple of suggestions:
- Put your "NOTES" on a layer which you leave undisplayed when printing the schematic.
- Make the "NOTES" text a really really tiny font.
Board Editor
- How do I flip a SMT device to the solder side?
- In the board layout window, select the Mirror tool, and select the device.
- How do I adjust the DRC (I'm assuming the restring settings) so I get a pad diameter of .1? Which leads me into another question: If I have pads using a fixed diameter/drill size, why do the restring values affect the size? Is there a way to turn this undesirable feature off?
- The settings in the Design Rules, Restring tab affects all pads and vias. From the manual:
- "...Example: The ring around a hole with 40 mil diameter is 10 mil (25%). It therefore lies in between the maximum and minimum values. If the hole is only 24 mil in diameter (e.g. for a via), the calculation yields a restring value of only 6 mil. For a board made in standard technology this is extremely fine, and cannot easily be made. It might well involve extra costs. In this case a minimum value of 10 mil is given. If you like to define a restring with a fixed width, use the same value for minimum and maximum. The value in percent has no effect in this case...."
- The settings in the Design Rules, Restring tab affects all pads and vias. From the manual:
- Why can't I zoom more?
- The following snippets are from the UPDATE.TXT file in DOC directory:
Release notes for EAGLE 4.0BR Screen display:BR - By default the zoom factor in editor windows is limited so that the resulting virtual drawing area does not exceed the 16-bit coordinate range. This is necessary to avoid problems with graphics drivers that are not 32-bit proof. If the graphics driver on a particular system can handle coordinates that exceeed the 16-bit range, "Options/User interface/Limit zoom factor" can be switched off allow larger zoom factors.
Release notes for EAGLE 4.01 BR Bugfixes: BR - Fixed not limiting the zoom factor for small drawings.
- The following snippets are from the UPDATE.TXT file in DOC directory:
- Can I have different trace widths?
Yes, go to EDIT:NET CLASSES and you can set up default widths and clearances for various nets. Then in your schematic, go to CHANGE:NET CLASS and change the type of each track. Your autorouter will use these settings to autoroute wires, and DRC checking will use the settings also to check for clearances and width problems.
- How do you cope with different board outlines?
- My approach to this is to create a custom library of PC Cards as components. Draw the PC board outline with mounting holes and other details as a PACKAGE. For the schematic half of this "Device" I just use text on the symbol layer that says something like "using PCB #12345". That way this text shows up on the schematic for documentation purposes. NOTE: I even include dimensioning info for the dimension gerber in the "PACKAGE". This has the added advantage that you can NOT accidentally move a PCB edge dimension line or mounting hole during the PCB layout process.
- How can I place a ground plane in my circuit?
- Type "poly gnd" and draw a polygon around your board. Then press the RATSNEST button - hey presto! You can turn this off by typing "set polygon_ratsnest off" or just "set polygon_r off".
- What do the Layers mean?
Here is the EagleLayoutLayerList for the board editor. For the schematic editor:
- Nets Nets
- Busses Buses
- Pins Connection points for component symbols with additional information
- Symbols Shapes of component symbols
- Names Names of component symbols
- Values Values/component types
- Is there a way to enlarge the pad size of ALL the resistors/capacitors without going through each one individually?
Under DRC -> Restring tab -> Set PAD percentage higher
- Could somebody explain what to expect when diameter = auto in a via?
- The outer diameter is calculated automatically based on drill diameter and the "restring" setting in the DRC parameters. The same applies to pads in packages of which the diameter has been set to "auto".
- How do I delete a via connected to power? When I try to delete it the PCB program gives a message stating that the operation must be done in the schematic. I don't see the via in the schematic so I cannot delete it.
- Use ripup to delete it. Delete will try to delete the whole signal.
- How do I add a PLCC socket on my board (namely the S44)? I tried adding it using the add command but it says: "can't backannotate this operation. Please do this in the schematic". But this socket isn't available in the schematic section since the sockets are a package-only library. What do I do?
- Add the socket as a package to the library that contains the IC in question (if it's not already there), and add it as a package variant for the specific device (if it's not already there). Then you can use CHANGE PACKAGE to swap between direct soldering and socket.
Drawing Parts
- How to clone a part (from R.W. Davis):
- Open the library where the new part is to be added.
- Under Drawing, Select SYMBOL to get a blank part.
- On the Control Panel, expand the list of libraries.
- On the Control Panel, select the library containing the SYMBOL to be copied, and expand the library to show the parts.
- Drag and drop the SYMBOL (highlighted name from library list -- NOT the picture) from the control panel onto the target library. This automatically copies any packages associated with the old part.
- Under the list of packages to the right, right click on and delete any packages that are not associated with the NEW part.
- IF the package for the new part is on the package list, go to STEP 12.
- Click the NEW button below the package list. IF the right package is listed, click on it and go to STEP 12.
- In the open Library window, click Package in the Library pull down menu. Using the same method used for the part, find a package in a library and Drag and drop the PACKAGE. (Can be a different library than the Symbol came from.)
- On the Symbol editor (right side), right click on any packages that don't apply and delete them.
- On the package list, again, click NEW and then select the correct package from the list.
- If an exclamation mark in a yellow circle shows up next to a package, click the package, and then click on CONNECT. Link the correct pad names and net names to map the schematic to the part.
- In the library menu, select RENAME and enter the new part name.
- Save the library.
- How do I make a part with multiple symbols? I want to break it up into logical functions (such as the power pins, config pins, generic I/O, specific I/O, etc).
- Overview:
- Do same as for any device, define package, and symbol(s), finally create the DEVICE.
- Draw the complete package as one part, all 240 pads.
- Draw as many schematic symbols as you would like, for example a box with just the power pins, or perhaps, even just the power pins themselves. Ditto for the I/O pins, maybe you'd like to group them, or maybe you'd like just a box or "flag" shape with one input or one output pin, NOTE: for the single I/O pin approach, you only need one symbol each for an input pin or an output pin.
- When you create the device, use the ADD symbol icon (looks and acts almost like the add symbol icon in the schematic editor. Although it makes a mess in the device window, I eventually move/place all my symbols directly over the insert point (the little + in the window) this makes it easier to grab the gate when editing the schematic as you know the "handle"/insrt point for the gate is somewhere near its middle. Add as many symbols as you like/need to cover all 240 pins/pads.
- Finally use the connect function of the device creation window to connect the pins of the symbols to the respective pads. You will then probably want to "name" each of your gates (I usually have to experiment a bit to get this part to my liking). Use the appropriate ADDLEVEL and SWAPLEVEL for each gate. For example, the I/O pins you probably want all the input pins at 1 swaplevel, say 10 for example, and all the output pins at another say 11 for example. This will allow you to swap input pins or output pins but not allow you to swap an input with an output. I'd probably use addlevel "next" for the I/O pins and "must" or "can" for the power pins.
- Overview:
- How do you make package Variants?
- The correct way, as you have tried, is to add a variant to the device. To do this open up the library for editing and select your device, IRF9630. First rename the current package variant from the default setting by right clicking and selecting rename. Then click on the "new" button below the window showing the current packages. Select the desired package from the list and give it an appropriate variant name as above. Now connect the device up, click connect and either make the connections between the symbol and package manually or by copying over from the original part by selecting the device from the list that can be accessed just above the cancel button. Check that the connections are correct. You should then have the device variant available, after updating the library in your project of course (in the control panel right click on the library and select update.)
- I am mounting the power switch on my pcb board. The terminal is in rectangular shape but the pad in eagle is round. Is there a way to create a custom pad shape?
- Not without a fair bit of trouble. You will have to find a board company that will cut the hole out for you. Most people accept the round hole, unless it's obviously a bad solution.
Part Libraries
- How do you copy devices from one library to another?
- See "How to clone a part" above for a method that works with more recent versions of Eagle. For older versions:
- Open Source Lib, FILE/EXPORT/SCRIPT
- Open Destination Lib, FILE/EXPORT/SCRIPT
- Open source and destination script files using text editor.
- Copy .pac, .sym, and .dev from source into destination (placing the .pac, .sym. and .pac into correct sections of destination file).
- Save destination script file.
- Open Eagle, from Control Panel select FILE/NEW/LIBRARY
- Run destination script using FILE/SCRIPT
- Save destination library with same name as original destination, overwriting it. Using this method, you don't have to recreate the device
Routing/Autorouting
- What does "99.5% finished in Autorouter" mean? If it means 0.5% left, how can I find the unrouted wires?
- Use the RATSNEST command and in the info bar there should appear a message like:
- 5 airwires left
- Use the RATSNEST command and in the info bar there should appear a message like:
- I have a complex schematic that I want to autoroute, but it leaves too many unrouted tracks. My question is: how do I start a new autoroute? Playing with options/parameters doesn't give any better results? What can I do to start auto route without all this mess? What are the differences in the direction signs? "/ \ . |"
- Use the Group tool to select all the traces in the board view, then use the Ripup tool, but RIGHT click the board, all the traces should revert to air-wires. Also reroute with the Routing Grid set to 10 (I think the default is 50, and that is usually too big). [David]
- To delete an existing route, use RIPUP ALL. Autorouting in general is a complicated subject, and the Eagle manual contains a reasonable bit of information on it. You really do need to read the manual. The autorouter is not intended to be an "idiot proof" feature.
- If you have too many unroutable traces, then you may need to reduce the track width closer to the PC house limit and make the routing grid finer. However, you can only throw so much brute force at it before the results will taper off. In the end a good layout is the most important single factor. If you've done all the right things and it's still not routable, then consider adding a layer or two (For example, there is no point to a 3 layer board. The board house will probably use a 4 layer process and charge you accordingly anyway.) [Olin]
- before reducing the dimension of the traces, you might try to change the directional organization of the routing. There are two menus (left up) with TOP and BOTTOM preferred direction. Choose the star and see how much it helps. Then start decreasing the number 50. Go to 30, 20 and below in steps of one... DO not choose a parameter too small (5 or 8) otherwise traces are too thin and close each other. [Stefano]
- There are times when the airwire connection generated by the ratsnest command are not ideal (from an electrical point of view. Unfortunately, the program doesn't seem to like it if I route the connection by a different route. Is there any way to force the airwire to move to a different connection?
- Here's a "trick" I often use when hand routing. Route the airwire from the component end, near to a trace you want to "T" into, but stop short. Use the grid so you know where to do what comes next. In line with the end of the trace you just left dangling, use the "split" command, and click on the trace you want to T into. Do another ratsnest command and behold the airware from the end of your dangling trace should jump to the split you just made, provided it's closer to the split than any other "vertex" of that net.
Generating CAM data
- I'm new to Eagle and need some guidance on Gerber file creation.
Try this link, look at the two .doc files [http://www.apcircuits.com/html/eagle.html http://www.apcircuits.com/html/eagle.html]. Also take a look here for some more info on Gerber [http://www.pcbmilling.com/tutorial.htm http://www.pcbmilling.com/tutorial.htm]. Also try this link: [http://www.precma.com/informatica/tutorial.htm http://www.precma.com/informatica/tutorial.htm].
- I need to provide assembly documentation for the solder side of my board. My documentation includes a frame. I need a method to provide a mirror image of the board but retain the non-mirrored frame? If there was a utility to mirror the frame library part, I could use the Mirror option in the CAM processor. Any suggestions/utilities?
- No answer yet.
- I used drillcfg.ulp and drilegend.ulp to create a Drill Table and noticed that the table says I have Non-plated Vias. How can this be? How do I control whether a drilled hole/via is plated?
- No answer yet.
We are interested in using Advanced Circuits ([http://www.4pcb.com http://www.4pcb.com]) for a project. Does anyone have advice on the necessary CAM files to send?
- I have used Advanced Circuits several times and actually have a job in there now. I zip all of the files including a text file that has the following job specific info in it:
General Info: BR Material: FR4 - ~0.62" BR Layers: 4 BR No layers were intentionally mirrored. All should have been outputted as if you were looking through the board from the top/component side. We request a BLUE solder mask. White non-conductive silkscreen on the top/component side.
combo.pdf - pdf file of the board, the gnd plane layer(s) was omitted for clarity. BR combo.dri - drill info file BR combo.drd - excellon drill data BR combo.drl - drill rack data BR combo.gpi - gerber info file BR combo.cmp - top/component side layer data BR combo.gnd - ground plane (layers 2 & 3) data BR combo.sol - bottom/solder side layer data BR combo.stc - solder mask top/component side BR combo.sts - solder mask bottom/solder side BR combo.plc - silkscreen data for top/component side BR
Make sure you use their [http://www.freedfm.com http://www.freedfm.com] service first. That will help you figure out which files to send and will also verify the manufacturability of your board. Also, the text file with job-specific info should also have your contact information in case they need to clarify something.
- I have used Advanced Circuits several times and actually have a job in there now. I zip all of the files including a text file that has the following job specific info in it:
- My CAM package can't handle octagons in Gerber RS274X format, and has all sorts of errors when displaying output from the Eagle CAM processor.
Open up the eagle.def in your %eagledir%/bin folder. Scroll down to the entry [GERBER_RS274X] BR and uncomment the line: "Octagon = "%%AD%sC,%6.4f*%%\n" ; (code, diameter)" (looks like there is no octagon, so we take a circle) BR and comment the line: "Octagon = "%%AD%sOC8,%6.4f*%%\n" ; (code, diameter)" BR then save your work, restart Eagle and re-generate your CAM files. BR
How Do I....?
- How do I generate the component list of a circuit?
- Use EXPORT PARTLIST or RUN the ULP file BOM.ULP.
- Is there any software that can automatically draw a 3D image of board with components in either wireframe or rendered from the board file
Yes, Check out [http://www.matwei.de Eagle3D]
- I'm using Eagle to create a small board that is 3" x 3". Is there any easy way to create the output files with a 3x3 grid of my little board?
- Do all the following steps with a copy of your board file:
- Use panelize4.ulp to copy the device names into a separate layer (so they won't be renamed there during multiplication).
- Enter DISPLAY ALL and then GROUP the complete board. CUT it into the buffer, and don't forget the final mouse click to set the reference position. PASTE it as many times and where you like it.
- Save the panelized board at another name.
- For CAM data generation, use _tnames instead of tNames for the silkscreen file.
Alternatively, you can use [http://claymore.engineer.gvsu.edu/~steriana/Python GerbMerge] to panelize one board multiple times, or panelize different jobs into a single board. It is a free (GPL) program.
- Do all the following steps with a copy of your board file:
- I'm a hobbyist and want to have pads with more copper, i.e. a full pad with maybe a small centre hole for drill alignment. How do I accomplish this sort of thing?
First off if you want fully filled pads you can go to the board window and via the 'Options>Set...>Misc' menu set the 'Display Mode' option to 'No Drills' to remove the drill holes - you will see all pads are completely copper filled now. If you're wishing to have all pads nearly filled, with just a small alignment hole, use the dril-aid.ulp that comes with EAGLE. You run this and specify the drill diameter, all your pads are then done in one go. If for particular reasons you only want to do the above with some pads of a particular device on your layout, then you need to edit that library separately and use the CHANGE DIAMETER and CHANGE DRILL commands for each pad or group of pads as you wish in that device. Then UPDATE that library in your board layout to propagate your new changes
- Everytime I open EAGLE, I have to size the schematic and PCB window. In this modern day and age, it should be possible for the program to save its window position and open in that position when used the next time!
- In short: the window sizes and positions are saved in the project file, which is a powerful feature. Take care to have a project open when you leave EAGLE, and don't close sch/brd windows separately before.
Bugs & Crashes
- I am a getting a message that Board and Schematic are not consistent. For some reason the new parts were not added to the schematic. What gives?
- The board and shematic get out of sync if you accidently close one, and continue to work on the other. Once they are out of sync, then new parts won't be added to the board. You have two options, both might be painful.
- Delete the board and redo the board from scratch. Ouch, this can be painful if it is a big board.
- Carefully read the ERC file, and make the changes required to fix the outstanding differences. Use "show r27" etc. to locate the offending parts. This can be painful, if you had added a lot of parts. I have recovered a board by doing this.
- The board and shematic get out of sync if you accidently close one, and continue to work on the other. Once they are out of sync, then new parts won't be added to the board. You have two options, both might be painful.
- Look in the project directory - it is possible to rename two of the *.b#? and *.s#? files to *.brd and *.sch, respectively, to restore inconsistant files. I've done this by examining the modification times, deleting the *.brd, *.sch and *.erc files to a time before the problem happened...back up your work and only attempt this on a copy of your project. Good luck, you may save the effort of re-layout of your board!
- My screen seems to get corrupted and/or I can't seem to get the text labels and component names to print out along with my schematic - What's the problem?
- After running for 5-20 minutes, the display starts acting strangely (disappearing text, grey box over upper-left corner of screen, etc), and eventually, if I don't exit, it will crash.
Set the 'Options->User Interface->Always vector font' setting in your EAGLE Control Panel. This is due to some video cards having problems implementing scalable bitmap fonts - by switching to vector fonts this problem is overcome.
- I recently purchased the 4 layer version of Eagle 4.09 and 2 layer layouts that were done in the free version don't seem to be allowed to have the 2 additional layers added.
- A board file that comes from a Light Edition simply does not have the inner layers implemented (this is one of the restrictions of the Light Edition). You have to create these inner layers if you need them. Use the LAYER command, for example:
LAYER 2 Route2;BR LAYER 15 GND;
- A board file that comes from a Light Edition simply does not have the inner layers implemented (this is one of the restrictions of the Light Edition). You have to create these inner layers if you need them. Use the LAYER command, for example:
