This is the help page for the ULP we've written to get real-time component pricing and generate online component orders directly from our Eagle schematics.

You can download the ULP here.

bom-xs.ulp dialog

How to Generate the Bill Of Materials

Build Quantity

Enter the number of boards to be built in the Build Quantity field.

List Types

The BOM format is selected by clicking one of the following radio buttons.

Output Formats

You have the following output formats available when you view or save a BOM:


The buttons along the bottom of the dialog box perform the following actions:

Common BOM Operations

Preparing the Schematic

You will need to add the following attributes to the parts in your schematic if you want to use the real-time pricing or online ordering features:

The bad news is you have to lookup and enter these attributes for all the parts in your schematic that you want included in the real-time pricing and/or the online ordering. To assist with this chore, use the attrib-copy ULP to copy the attributes from a single part across all identical parts.

To save effort, you can also add these attributes directly to the parts in the library. But this won't work if it's a generic part like a resistor whose resistance value will affect it's part number. It also won't work for ICs that have multiple package options (for example, SOIC and TSSOP) since those also affect the part number.

The good news is you don't need to enter all these attributes for every part to use the ordering/pricing features. For example, parts without a Mouser part number simply aren't included in a Mouser order list.

Viewing the BOM

Click on the View button to get a preview of the BOM output. Use the List Type and Output Format radio buttons to change how the BOM is displayed.

Saving the BOM

Click on the Save button to save the BOM to a file. Use the List Type and Output Format radio buttons to select the format and type of data to store.

Pricing the BOM

Click on the Price button to get current pricing information from Digi-Key. Pricing will be adjusted based on the quantity you have entered in the Build Quantity field. (Pricing from Mouser is not currently supported.)

Ordering Parts

To order parts for your design from Digi-Key or Mouser, select either the Digikey Order or Mouser Order radio button in the List Type box and then click on the Order button. This will open the appropriate order-entry web page in your default browser and display a dialog window with your BOM in the correct import format. (You will have to register and login to each site before you can reach the order-entry page.) Select the parts list in the Parts Order window. Then right-click on the selection and pick Copy from the pop-up menu that appears. Go to the order-entry field in your browser and paste the parts list. Then proceed to complete the order on the particular site you've chosen.

Database Operations

You can pull in additional information about the used parts by loading a database file with the Load button.

A database file must consist of lines of text, each of which contains one record consisting of CSV (Comma Separated Values) or TSV (Tab Separated Values) data. The very first line must contain a \"header\", which defines a unique name for each column, and the first column of every following line must contain a unique (non-empty) key for this record.

An example for a valid database file would be:

Key              Manufacturer       Order Code Price 
74LS00N          Texas Instruments  123-456    0.20 
R-EU_0204/5:4k7  Somebody           RES4k7     0.10 
Note that the columns are separated by a tab character (you may also use a semicolon (';') to separate the columns, but then you will have to make sure none of the data items contains a semicolon). The keys for looking up records in the database are built from the parts' values. If a part's device has defined \"value on\" it means that the user needs to specify a particular value for this part, as for example with a resistor. In such a case the key consists of the device name and the user defined value, separated by a colon (':'). If the device has \"value off\", only the device name is used as key (if the user has edited the value of such a part and insisted on changing it, the edited value will be used).

Creating a new database

Click on the New button to create a new database. You will get a dialog in which you can define the names of the column headers for your new database. The first column always contains the key for database lookups and can't be deleted (you can edit it, though, to give it a different name than the default \"Key\"). This first column will not be visible in the generated list, so you don't really need to worry about it.

Editing the database

If you have loaded a database you can either double click on a line in the list, or select a line and press Enter (or click on the Edit button) to bring up a dialog in which you can edit the database entry for this part. If the database has been modified you will be asked if you want to save it before leaving the program or loading a new database.


Original Author:

Modified by: Dave Vandenbout / XESS Corp. -