Introduction
For open source projects, I usually create a table containing the parts details or bill of materials (BoM), but it is tiresome to then re-enter all that information into the Farnell or Newark website, to order the bits.
The March 2019 update to the element14 website contains the ability to paste BoM content and it will auto-convert into a nice table with hyperlinked buttons to go directly to the Farnell/Newark product page for each component, or a single-button to purchase all.
For more information, see the March 2019 Site Update by mcollinge .
I still use EAGLE, so I wanted a way of getting the component values from the schematic into blogs. I messed around with an EAGLE user program (known as an EAGLE User Language Program or ULP) and the results are usable! I edited the EAGLE-supplied bom.ulp file and called it bom-new.ulp, attached to this blog post.
Using It; Build your Schematic
To use it, when you create your schematic in EAGLE, as you add each part, make sure you add a couple of attributes (there's an icon on the toolbar for that, or just right-click and select the option called Attribute).
Here I right-clicked on the resistor, selected Attribute and then clicked on New to add FARNELL and NEWARK attributes, with the part codes, and a MANUFACTURER attribute with the manufacturer name (e.g. Vishay).
You could also name the attributes to something similar, like FARNELL_PARTCODE for instance, as long as the text FARNELL or NEWARK is part of the attribute name. If MANUFACTURER is too long to type for attributes, use MNFR.
Running the bom-new User Language Program
Once you've completed the schematic, click on File -> Run ULP and select the new bom-new.ulp program!
Select Values, and ensure List attributes is selected. You'll see the attributes on the right. Select the output format to be element14 and click on Save!
There should now be a comma separated value (.csv) file in element14 BoM format on your file system. Double-click on it to open with Excel or similar.
The bom-new.ulp program combines some of the columns of data, into a single column, so you may wish to edit the first column to something nicer (or it could be done later when it is in the blog post).
Copy all of it to the clipboard (Ctrl-A followed by Ctrl-C) and now your're ready for pasting into the blog post, as described below.
Working with the Blog Post
Create your blog post and describe the project as normal. and then when you're ready to insert in the BoM contents at the current cursor position, on the toolbar, select the >> icon, and go to Product Link :
Three tabs appear. Click on Paste BOM:
Provided you've got the BoM content in your clipboard, you can now click in the blue circled area, and then paste (Ctrl-V) the clipboard. Then click on Insert.
The BoM will now be inside the blog post. It may take a minute or so to entirely process.
If you wish, edit the Product Name column content to something easier to read. That's it. When you publish the blog post, the table will look like this:
Bill of Materials
Product Name | Manufacturer | Quantity | Buy KitBuy Kit |
---|---|---|---|
- LED5MM [LED5MM] // LED | 1 | Buy NowBuy Now | |
- OS102011MA1Q [OS102011MA1Q] // OS Series C&K Components, example is OS102011MA1QN1OS102011MA1QN1 Farnell 1201431 | 1 | Buy NowBuy Now | |
- SIL2 [SIL2] // | 1 | Buy NowBuy Now | |
- SW-BOURNS-1543-OR-TACT-NEW [SW-1543-TACT] // Switch Bourns 1543 or generic TACT switch, e.g. from ALPS, slightly better schematic symbol | 1 | Buy NowBuy Now | |
1.27mm pitch - M50-3500542M50-3500542 [DIL2X5-1.27MM] // SMD 10WAY DIL header (2x5) 1.27mm spacing Harwin M50-3500542M50-3500542 Farnell 1022305 | 1 | Buy NowBuy Now | |
100n - C-EU050-025X075 [C050-025X075] // CAPACITOR, European symbol | 2 | Buy NowBuy Now | |
10u - CPOL-EUE2.5-6 [E2,5-6] // POLARIZED CAPACITOR, European symbol | 2 | Buy NowBuy Now | |
180R - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 1 | Buy NowBuy Now | |
1k - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 1 | Buy NowBuy Now | |
1n - C-EU025-025X050 [C025-025X050] // CAPACITOR, European symbol | 1 | Buy NowBuy Now | |
1u - C-EU050-025X075 [C050-025X075] // CAPACITOR, European symbol | 2 | Buy NowBuy Now | |
2.2k - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 2 | Buy NowBuy Now | |
22k - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 1 | Buy NowBuy Now | |
32.768kHz - XTAL-32768-WIRE-ENDED [XTAL-32KHZ-WIRE-ENDED] // 32.768kHz crystal, wire ended. Example is AEL Crystals X32K768L104X32K768L104 8mm x 3mm Dia, 12.5 pF, 20 ppm Farnell 9509682 | 1 | Buy NowBuy Now | |
330R - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 1 | Buy NowBuy Now | |
47R - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 1 | Buy NowBuy Now | |
47k - R-EU_0207/10 [0207/10] // RESISTOR, European symbol | 1 | Buy NowBuy Now | |
BC547 - BC547-2 [SOT54A] // BC547 | 1 | Buy NowBuy Now | |
MCCOG21605B6W-BNMLWIMCCOG21605B6W-BNMLWI - MCCOG21605B6W-BNMLWIMCCOG21605B6W-BNMLWI [LCD-ALPHA-MCOG-2X16] // MCCOG21605B6W-BNMLWIMCCOG21605B6W-BNMLWI | 1 | Buy NowBuy Now | |
MCP1702-3302E - MCP1702 [TO92] // MCP1702 LDO Voltage Regulator example is MCP1702-3302E Farnell 1331485 | 1 | Buy NowBuy Now | |
MSP430G2553 - MSP430G2553 [DIL20] // MSP430G2553IN20MSP430G2553IN20 PDIP20 Farnell 2113748 | TI | 1 | Buy NowBuy Now |
R-78E5.0-0.5R-78E5.0-0.5 - R-78E [R-78E] // Recom R-78E series DC-DC converter, example is R-78E-05-0.5 (5V 500mA) Farnell 2078564 or R-78E-3.3-0.5 (3.3V 500mA) Farnell 2218602 | 1 | Buy NowBuy Now | |
SD5620-001SD5620-001 - SD56X0 [TO18-] // Honeywell SD5620 or SD5630 Optoschmitt Detector, e.g. SD5620-001SD5620-001 Farnell 327610 | Honeywell | 1 | Buy NowBuy Now |
Summary
The bom-new.ulp program could be improved or customized further. It may be buggy (although it works for me, I've only tested it with one schematic) but the code is easy to edit even with little .ulp code familiarity.
If you have any comments or improve the bom-new.ulp file, or come up with other techniques to work with BoMs, please do share!