Partlocater

– August 20, 2019 RA

Partlocater is a GUI-based python app that queries Digi-Key's part database for specific part and saves the information into a local database. Most eCAD packages support lists of component properties (name/value pairs) that can be used with the Bill of Materials and Schematic Layout. For example, all parts have manufacture name, manufacture part number, cost, link to datasheet and category. Each category may have up to one hundred different additional properties related to that type of part. The information that we save to database is basically what you see on a detailed web page except for the images. We may add additional properties to link the component to a schematic symbol and to a PCB footprint.

Partlocater GUI uses tkinter and ttk which is a thin wrapping around a old library of widgets. This means some of the elements, such as treeview, are "funky". It also means this probably would work under Linux; however, it hasn't been tested as that requires devoted perseverance of getting python, pip, and mariadb-connector to play correctly. On the other hand, having the database on a local intranet linux server works very well and that can be shared among engineers even over VPN. Just do not use partlocater on a database that is visible on the internet - despite our best efforts, SQL injection is still a possibility in partlocater. This implementation has been tested on Windows 7 and Windows 10 with Altium and provides an alternative to Octopart.

Partlocater was written almost in its entirety by my son, Alex Alkire, a recent CS graduate. He happens to like python.

Out of frustration with Altium having a serious bug for two years with their supplier search, I specified partlocater and Alex wrote the initial version.

Partlocater needs a number of applications in place and a portal account with Digi-Key is needed - some assembly is required. If your interested in a more Microsoft solution, Digi-Key has examples on their site.

Requirements

The details for installing and setting up is documented in the partlocater git repo in docs/partlocater.pdf. Get the repo and start by reading that document first.

Features

Other than being customers, we aren't associated with Digi-Key. Digi-Key has a diverse and huge inventory of components with a reputation for having accurate data. Once notified, they have been known to fix errors in their data within hours. They completely redesigned how electronic distribution worked and I think in a good way.

Flow

When I've narrowed down a part, it's usually after many web searches and usually end up with the part spec page on Digi-Key. I copy the Digi-Key part number from the web page to partlocater and press locate. The properties should fill out within a few seconds. I scroll down and add the schematic symbol to the Library Ref and the PCB footprint to Footprint Ref. Then push commit button to write it to the database. If the symbol or footprint don't exist, they can be added. If I go into Altium and select the category, the part number should show up in the library list and the part can be placed. Opening a placed part properties window should show all the properties that are on the Digi-Key part page.

Updating the BOM is slow since partlocater has to go to Digi-Key for each line item. Digi-Key can manage BOM online and we use that instead for pricing. If the BOM has a large number of line items, it can exceed the daily budget of searches. For alternate distributors, we use findchips.

Partlocater Screen Shot

Download

Our scripts are provided publically under 3-clause BSD license. Partlocater can be downloaded from github either as a git repository or zip file.

Partlocater Github Download

I use this tool all the time and on occasion have decided to squash bugs, or make changes to something to make it more useful. It should be updateable by reinstalling from zip (make sure your config file is safe) or using git pull to update the files.