How to easily find or create parts for Eagle schematic/board layout
(1) Finding existing Eagle parts already created by other people out there: I recommend the following four sources ( aside from Googling "partname Eagle" ;-) ):
You can look in Cadsoft's searchable collection of Eagle libraries
You can use Jason Tribbeck's Eagle part/package/device search, which allows wildcard/partial-term searches
You can use Esawdust's Eagle part search which also allows wildcards and regular expressions in search terms.
You can get the library that Sparkfun mains; it's a huge collection of common parts called Sparkfun.lbr, which is located at this page.
A WORD OF CAUTION (courtesy of user @Grant)... When using others' libraries or parts, first compare it to the datasheet, and/or print it out on paper for comparison to actual part. There are some untested and/or incorrectly dimensions footprints out there.
(2) Creating your own parts: It is not that hard at all to make Eagle parts for most things; frankly, if you are able to construct a schematic and a layout, making parts yourself will be hardly a step beyond. I have four pointers:
- For learning part creation, I suggest you start with these three tutorials; the creator spent the effort to make them very beginner-friendly: Tutorial #12, Tutorial #13, and Tutorial #14 on this Eagle tutorial-page.
- Start learning with simple examples such as a resistor, a DIP part, or even an SOIC-8 part to understand how it works; the clarity of understanding will then readily carry over to more complex parts.
- If the part has a footprint that is a common one (such as SOIC-8), just copy an existing part's footprint.
- Follow the manufacturer-recommended layout: Nearly all parts' datasheets prescribe dimensions for a recommended footprints/layout for the part; if you follow those precisely, life will be easier and you'll have a part ready in no time.
For any serious work, you won't want to get parts made by someone else because they won't adhere to your conventions. I always make my own parts, which is really not that difficult.
I have certain requirements for parts, like attributes for automatic BOM generation, and text at particular sizes and and layers for the silkscreen, the assembly drawing, etc. Others aren't likely to make parts just the way I want them, and to inspect and vet someone else's parts would take at least as long as just making my own in the first place. When you do this for business and your reputation depends on it, you have to be picky.
However, hobbyists can be more lax. Others are welcome to use my parts and a bunch of other Eagle-related utilities I have developed over the years. Go to my downloads page and install the Eagle Tools release. This contains a bunch of libraries with parts, but also various ULPs, scripts, and host programs I use around Eagle. For example, there is a whole system for genering the BOM from the schematic and board, and then creating the labels for the kit. Start with the CSV_BOM documentation file in the DOC directory and follow the cookie crumbs.
To give you some idea of how the BOM generation system works, here is most of the EAGLE_ATTR documentation file:
This document describes the Embed Inc conventions for using optional attributes in Eagle, which were first made available in version 5. In previous versions a part could only have a few fixed attributes built into Eagle, such as VALUE and NAME. In version 5 these fixed attributes still exist but arbitrary additional attributes can be created by the user. This document specifies certain attributes that are expected by parts of the Embed Inc system, mostly to aid in automatic bill of materials (BOM) generation. The process of generating a BOM from a eagle board or schematic is desribed in the CSV_BOM program documentation file. The Eagle optional attributes that have special meaning within the Embed Inc system are: MANUF Manufacturer:partnum; manufacturer:partnum; ... The PARTNUM fields and their leading colons may be omitted, but is a bad idea unless only a single manufacturer is listed. PARTNUM Generic part number or part number within single manufacturer. SUPPLIER Supplier:partnum; supplier:partnum; ... The PARTNUM fields and their leading colons may be omitted, but is a bad idea unless only a single supplier is listed. BOM Whether this part should be included on the BOM. Some "parts" are only features on the board, like pogo pin pads for example. These should not be listed on the BOM because they do not need to be bought and will not be installed. Supported values are: YES - Include this part in the BOM. This is the default if the part has a package. NO - Do not include this part in the BOM. This is the default if the part does not have a package. VALSTAT Indicates how the VALUE attribute is used. The choices are: VAL - Normal part value, like the resistance of a resistor. The part value will be listed on the BOM and used to distinguish different parts. For example, a 10K ohm resistor is a different part than a 330 ohm resistor. PARTNUM - The part number. The value field will be shown in the BOM and used to distinguish different parts, like VAL. However, the part number field will be set to VALUE unless the part number is otherwise explicitly set. VALSTAT PARTNUM is for generic library devices where the value field is used to show some or all of the part number on the schematic. For example, the library might contain a generic 14 pin opamp device, and the value set to LM324 to show the type of opamp on the schematic. In this example, VALUE is only set to the generic part number without package type, temperature grade, etc. In this case the PARTNUM attribute should be used to specify the exact part number, but VALSTAT should still be set to PARTNUM. LABEL - Label intended for the silkscreen. The value field will not be transferred to the BOM and will not be used to differentiate parts. This might be used, for example, to label a LED on the board. Different LEDs might be labeled "Power" and "Error", but they are the same physical part and should be listed on the same BOM entry. SUBST Sets the substutions allowed field for the part on the BOM. Valid values are "YES" and "NO". The default is YES if SUBST does not exist or is empty. DESC Explicit description string for the BOM. By default, the BOM description is derived from the library name and the device name within that library. If the DESC attribute is present and not empty, its contents will override that default. DVAL Detailed part value. If present and not empty, this field overrides the part value string on the BOM and will be used to differentiate parts. DVAL is always assumed to be the true part value, so is not effected by VALSTAT. The purpose of DVAL is to provide more information than reasonable to show on the schematic. Generally the standard VALUE attribute will be shown on the schematic with DVAL shown on the BOM.
I built a crawler to help with this problem. I totally agree you shouldn't use parts found on the public internet without careful inspection, but I find it saves time to start with something that someone else has built, and I often find they are more meticulous than I am so I have a better starting point.
You can search for and download parts that my crawler has found here:
http://www.schematicpal.com
No charge, just give feedback at the feedback link if you have any problems.
-Jim