Tim and Andrew put on a 2 hour workshop for the EAGLE PCB CAD tool. For more information - along with a free download - see http://www.cadsoft.de/. Why did we choose EAGLE? Well, in the PSAS we like to use freely available tools which work under both Linux and Windows. EAGLE fits the free, cross platform bill, with some limitations:
- The schematic editor can only create one sheet.
- All components must be placed within 100 x 80 mm (4 x 3.2 inches).
- Only two signal layers can be used (Top and Bottom).
But these are all fine since we're usually doing small boards anyway.
1) How to make a PCB A) Draw up a schematic (Schematic - .sch files) 1. You'll probably need to generate some custom parts (Library - .lbr files) B) DESIGN REVIEW - FOR GODS SAKE, HAVE ANOTHER PERSON LOOK AT YOUR DESIGN. C) Run an ERC - electrical rule check. Ignore stupid power warnings. Fix everything else. D) Do the board layout (Board - .brd files) 1. Place components (minimize crossing of airwires in the ratsnest) 2. Route (or autoroute) traces (power, power planes, high frequency, general signals) 3. Optimize? E) DOUBLE CHECK ALL MECHANICAL INTERFACES. REALLY. F) Do a DRC - design rule check. Fix all errors, check into warnings. G) Generate CAM (Computer Aided Machining) files 1. Decide what files you need to produce (e.g. Gerber RS274x files: .top, .bot, .drl, etc.) 2. Setup a CAM program to output those files 3. Edit drill rack if you only have some drills available 4. Tile boards in gerbertiler if necessary H) DOUBLE CHECK ALL CAM FILES WITH A 3RD PARTY VIEWER (e.g. gerbiewer, gcprevue, etc) I) Send off CAM files to a board house, or load them into a PCB router tool. 2) "Let's make a board!" - step by step demonstration of the schematic editor, library editor, board editor, and CAM processor. 3) Traps/Trips/Techniques/Other Demos.
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 Board Layers:
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
.brd -- Boards .sch -- Schematics .lbr -- Part Libraries .scr -- Scripts .ulp -- User Language Programs .cam -- Computer Aided Manufacture script (or job) .dri -- Drill Info .gpi -- Gerber Plotter Info file .dru -- Design RUles .def -- Device Definitions .epf -- Eagle Project File (per project settings) .key -- Eagle key file (Generated from freeware key at 1st run).
GERBER files: .cmp -- Component side foil .ly(n) -- inner signal layers (Not light version) .sol -- Solder side foil .plc -- Component side silk screen (PLace Component) .pls -- Solder side silk screen (PLace Solder) .whl -- aperture (Wheel) shapes .stc -- Component side solder mask .sts -- Solder side solder mask Drill files: .drd -- NC drill file .drl -- Drill Rack File
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:
- 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
- FIND name
- CUT/PASTE are defined on groups, COPY works on objects/elements.
- Trying to delete a part with many gates? Use SHIFT-DELETE. Else you'll kill all the gates but the part will still be floating around. Use INVOKE to find hidden gates (which may give strange ERC errors).
- Selecting objects requires their origin be visible
- Forward/Backward annotation requires .brd/.sch to have the same name/directory
- 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
- Start NETs from already named NETs to preserve the name and avoid the annoying dialog box
- Define your own key bindings! goodkeys.scr
- Enter points as (x y), note spaces separate
- Add Erc.AllowUserOverrideConsistencyCheck = "1" to .eaglerc (see doc/UPDATE) (allows F/B annotation even if "required" consistency check fails)
- OPTIMIZE may help in joining separate wire segments (is on by default but good to run).
- SMASH to allow placement of part numbers etc.
- 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 "*"
- "SET Used_Layers" turn on basic layers only: (All, none==basic, Name, Number). See scr/mylayers.scr.
- Polygon fill -- Activate w/"Ratsnest" Deactivate w/Ripup (Must hit outer edge)
- Also: "set polygon_ratsnest off;" turns off fill for planes
- Ripup; -- Ripup everything
- Ripup ! GND VCC -- Ripup everything except ...
For possibly updated scripts and the latest PSAS eagle library plus other useful information
SEE THE EagleCad PAGE.