During my design work, I often have to order parts for both prototypes and small production runs. This task is usually done using a combination of Excel and a lot of Cut & Paste. I have always felt that a lot of time was wasted in trying to merge together different BOMs (Bill Of Materials) made with different tools. This is especially true if you have to order from multiple distributors and for multiple projects at the same time.
Since I’m the kind of guy who likes to automate and streamline tedious processes, I came up with the MergeBOM program to solve this problem in my workflow. The program is written in the portable Python language and uses Tkinter (Tcl/Tk) for its GUI, so it runs on every platform that has a Python interpreter (Windows, Linux/X11, *BSD/X11, MacOS X).
The idea is simple: MergeBOM reads standard CSV or TSV BOM files, combines the parts with the same ordering number and then outputs one CSV file per distributor. Thus, you get a single list that can easily be used with every distributor’s Text File Import feature. You can also use the resulting files in Excel to match with other parts of your flow.
The features of MergeBOM are as follows:
- Simple GUI interface with built-in documentation
- CSV and TSV BOM files reading in “Qty/Part Number/Distributor” format
- Merging of quantities from loaded BOM files for identical part numbers
- Single BOM file output with merged parts for each distributor
- Multiplying of BOM quantities for multiple orders of a same design
- Handling of Digikey “Project References” to track source project for each part
- Handling of multiple parts per line-item (ie: connector and plug)
- Loading/Saving of task lists to replicate an order
- Text file previewing
- Warning window for malformed data identification
- Portable single-file execution on all platforms
I’m sharing MergeBOM free of charge in the hopes it might be useful to other users. Sources are included in the archive, as well as a Windows executable so that you don’t have to install Python to use it. Please read the instructions by clicking on the “Instructions…” button before asking questions about how to use it 🙂
This program is especially well-suited to BOM editing with EAGLE and the BOM-AM series of BOM scripts, since it can output CSV file with any column order and handles arbitrary parts databases. I have also used this program successfully with BOMs generated from Altium DXP and Orcad.