*** This is an older draft of the concept - differs sometimes from the way things are done in gta02-core. *** BOM matching ============ BOMs are matched with inventories in the following way: - a .lst file with the BOM is generated by KiCad - using a ruleset, component characteristics are translated to a canonical format and default values may be used for unspecified characteristics - part catalogs are searched for matches with the canonical component descriptions. This yields a list of supplier-specific part numbers for each component. Parts can be characterized by either specifying their properties or by equating them to another part. E.g., a Digi-Key part may be defined as an NXP part which in turn is equivalent to a TI part. - this list is then matched against inventories, using a suitable optimization strategy (e.g., prioritize inventories and try to pick as many suitable components as possible higher priority ones before moving to lower priority ones) E.g., local stock could be the first-level inventory, followed by more distant warehouses, followed by distributors, followed by manufacturers. Inventories could also include pricing information. - TBD: it would be good if parameters gathered in the matching process could be fed back into KiCad (as some sort of annotations, similar to the expanded view of schematic symbols), such that under-specifed parts yielding mismatches can be spotted by manual review. Catalog ======= A catalog contains part characteristics and the reference number(s) assigned to them. Basic syntax ------------ Catalog entries consist of "words" in the sense that each word does not contain any whitespace and words are separated from each other by whitespace. Whitespace can be included in a word if it is enclosed in double quotes. Each entry begins in the first column of a line. If an entry needs more than one line, the words on the continuation line(s) must be indented by whitespace. Trailing whitespace is ignored, and so are comments beginning with a hash mark. Blank lines end any entry and are also ignored. Each catalog entry begins with the part number followed by a part type designator. Characteristics have the form =, where the fields follow the pattern outlined below. The value is some description of the value of that characteristic, typically a number and a unit (e.g., 4.7uF) or a name (e.g., X5R). Numbers use a decimal point where necessary. Mantissas are normalized such that they fall into the range 1 <= n < 1000. E.g., instead of 0.1uF, write 100nF. There is no space between number and unit. The Omega of Ohm is written as "R". Fields ------ Each General fields - - - - - - - FP Footprint H Height (overrides any height implied by footprint) TOL Tolerance, with percent sign. Split tolerances are indicated as n/m% DSC Free-format description Resistors - - - - - RES Part type designator R Resistance, with unit P Maximum power dissipation V Maximum volatage Capacitors - - - - - CAP Part type designator C Capacitance, with unit M Material, e.g., TANT, NP0, X5R, etc. V Maximum voltage ESR ESR, with unit Inductors -- - - - Diodes - - - DIODE Regular diode STKY Schottky diode Vf Maximum forward voltage Vr Maximum reverse voltage If Maximum forward current Ir Maximum reverse current C Capacitance LED Ligh-emitting diode COL Color, multiple colors are separated by /, e.g., blue/red ARRAY If multiple diodes form an array, this parameter describes its structure: CA = common anode, CC = common cathode, SEQ = tap-A-C-tap-A-C-tap sequence ZENER Zener diode Vz Zener voltage TVS Transient voltage suppressor Vac Working voltage, AC Vdc Working voltage, DC E Energy