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.
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
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
At this point the folder tree looks like:
<project repo> -- hardware -- first_board -- rev_a
Then I create the eagle
.brd files. I name these
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.
This guide is not going to go into how to design or layout PCBs. Places you might want to look:
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)
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
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.
Once you have done all the setup work, it's time to let my scripts take over. These scripts will do several things:
To run them, simply:
in the same folder as the
We often use Sunstone Circuits, Advanced Circuits and QuickturnPCB. I would avoid Streamline Circuits.