User Tools

Site Tools



by Brad Campbell

This guide outlines how I organize and create board files for eagle. You may not agree or like my particular style, but the upside is I have many convenient scripts that automate packaging and converting files.

Also see our tips page for tricks when actually designing a board.

1. Folder Setup

When creating board files, I start by creating a hardware (or sometimes eagle) folder in the project folder or repository. Inside of that folder, all of the folders are names of the boards I create. Let's say I'm creating a PCB called “First Board”. I would then create the first_board folder inside hardware.

Now, we know that boards often need to be updated, changed or fixed. Therefore, we must support revisions of our boards. To handle this I create folders like rev_[a|b|c|…] inside of the particular board folder. For the first revision I create the folder rev_a.

At this point the folder tree looks like:

<project repo>
 -- hardware
    -- first_board
       -- rev_a

2. Board Naming

Then I create the eagle .sch and .brd files. I name these first_board.sch and first_board.brd.

3. Schematic Creation

When designing schematics I always start with the frame from the shed/eagle/lbr/frames.lbr library. This frame has a built in block M, is designed for letter sized paper, and is very compact.

The frame supports three global attributes in order to fill in its fields. In Eagle, go to the Edit menu then Global Attributes. The REV attribute should be set to A, B, C… depending on the revision. The TITLE attribute should be set to the name of the board, in this case First Board. The AUTHOR attribute should be set to the name of the creator of the board.

4. Finishing the Board and Schematics

5. Creating Gerbers

Once you are happy with the board you need to create gerber files you can send to a board house. I use sunstone's CAM process. In the board editor run (for two layer boards) shed/eagle/cam/ and shed/eagle/cam/

6. Create a BOM

Creating a Bill of Material is crucial for being able to assemble a board in the future. To get a start, in Eagle Schematic mode go File → Run ULP then select bom.ulp. Change “List Type” to “Values” and “Output Type” to “CSV”. Then save that to a file (like first_board.csv.

Open that CSV file in Libre Office or Excel. Now you want to clean it up. I always start by sorting by the “Parts” column. Warning, anal-retentive: Then I manually update the part names (of resistors, capacitors and inductors) so that the larger the part name the larger the value. For instance, if I had two capacitors, one 1nF and one 1uF, I would make the 1nF cap C1 and the 1uF cap C2. This is maybe a bit extreme, but it does turn out to be very nice to all discrete parts of the same value in consecutive numbers. That is, all the 1uF caps might be C4-C10. This helps when assembling boards.

Make sure all the parts are accurately represented in the BOM. There should be a DIGIKEY column that contains the digikey part numbers for all of the parts. If a different place carries the part then add that as a column as well. For instance maybe only mouser sells a part. Then add a column called MOUSER and put the part number in that column.

Save the bom as <board name>_bom.xlsx. In my example this would be first_board_bom.xlsx. Yes, it's a little weird to use Excel format, but it is the industry standard. All assemblers will accept and understand it and that just makes everything easier.

7. Package Things Up (AKA, run the magic script)

Once you have done all the setup work, it's time to let my scripts take over. These scripts will do several things:

  1. Put all the gerbers in a zip. This you can upload to the board house who will make the PCB.
  2. Put all the gerbers and a couple addition files in a zip for the assembler. This you can send to an assembler when getting a quote/boards assembled.
  3. Create a documenting PDF. This will but the schematic, pictures of all of the copper layers, a good graphic to use when assembling the board, and a copy of the bom into a PDF.
  4. Convert the bom to txt and csv formats. These are not as useful but are good for using grep.
  5. Package everything into a master zip. This zip could be distributed or posted online and serves as a record of a board.

To run them, simply:

in the same folder as the .brd and .sch files.


8. Send the PCBs to a Fab

We often use Sunstone Circuits, Advanced Circuits and QuickturnPCB. I would avoid Streamline Circuits.

ref/eagle/start.txt · Last modified: 2017/01/19 14:48 by rohrer