[gta02-core] BOM processing: things to review

Werner Almesberger werner at openmoko.org
Tue Jan 26 23:16:15 CET 2010

A quick update on the BOM to "shopping list" conversion. Here's an
overview of the workflow:


Don't worry, it'll get more complicated before too long :-)

To run the whole thing, update to the latest SVN revision, then
generate the BOM from eeschema, and run "make -C bom". Don't
worry about the "374/452 unmatched" at the end for now.

What this does it that it takes the FIC inventory, breaks it into
two files, .equ to equate FIC part numbers with the various
manufacturer part numbers, and .inv to record the current stock.

The BOM, the equivalences, and a list of "virtual stock" (in this
case, the test pads) are then converted into a list of all
possible part numbers for each component.

This list is then checked against the inventories and a heuristic
picks a supplier (or multiple) and sets the order quantity.

The later stages of this process don't have much to do yet. The
part that could use some reviewing already is the conversion of
FIC's inventory. In particular, bom/fic/fic.equ should adequately
map FIC part numbers to manufacturer part numbers.

To make sure that not too many copy & paste errors creep into
this conversion, I've written a small Perl script, fic2vendor,
that extracts the vendor references from the free-format
description field of the inventory.

The file formats are described in bom/README

What's next:

- some parts normally identified by their part number don't use
  the same number in the schematics and in FIC's inventory.
  Such mismatches can be corrected in the schematics, in the
  translation of the inventory, or by substituting fields in the

- parts normally identified by their characteristics need a
  mechanism for converting the information in the BOM in a
  canonical format and for matching this against data from the

- for parts we replace, we need inventories from Digi-Key et al.
  Ideally, inventory information would be downloaded directly
  from their Web site.

This is all rather quick and dirty. Also, I'm trying to take a
shortcut with the manufacturer part numbers, avoiding the
distinction between the part number and the order number. Let's
see how this goes.

How you can help:

- as I mentioned, the data we extract from FIC's inventory should
  already be reasonably correct and ready for reviewing.

- some parts may be suitable for matching by name, but there's a
  trivial difference that prevents this from happening. In this
  case, it may make sense to adapt the part's description in the
  schematics. (If in doubt, please check on #gta02-core or here
  on the list.)

Thanks !

- Werner

More information about the gta02-core mailing list