comparison ueda/doc/bom_model.txt @ 0:cd92449fdb51

initial import of ueda and ifctf-part-lib from ifctfvax CVS
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 20 Jul 2015 00:24:37 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:cd92449fdb51
1 Bill of Materials (BOM) handling in uEDA
2
3 There are a number of reasons why one may want to have a BOM for a board design:
4
5 * To have a list of all components outside of schematic drawing files
6 * To have a list of PCB land patterns for pre-layout (see prelayout.txt)
7 * For purchasing or other part procurement
8 * For handing to assemblers (those who populate the parts on the board)
9 * For quick reference
10
11 Although one is often tempted to get away with keeping the "BOM" information in
12 his head, a formal BOM is a good thing to have.
13
14 OK, so we are going to have a BOM. But what exactly is the BOM in precise
15 terms, and what is its format? uEDA provides several different facilities for
16 BOM handling.
17
18 The MCL
19
20 Whether or not you are interested in any of the other BOM formats, you have to
21 have the MCL. It is a critical part of the design source code in the uEDA flow
22 model. It's a human-created and human-edited text file described in great
23 detail in mcldoc.txt.
24
25 Having a simple and intuitive text-based format, MCL can be readily viewed and
26 printed. As it contains the complete information about all components in the
27 design, i.e., all BOM information, it is in itself a type of BOM. It is in a
28 way "the ultimate BOM". There are, however, a few situations in which other
29 BOM formats are desirable.
30
31 Procurement BOM
32
33 You write the MCL for your design. For each component you enter all the
34 attributes that you may need for procurent: manufacturer,
35 manufacturer_part_number, vendor, vendor_part_number, etc. But now it's
36 actually time to order the parts. What quantity of what part numbers do you
37 order? All necessary information is in the MCL, but it isn't at all obvious
38 for filling out order forms. One really needs a distilled BOM for procurement.
39
40 The ueda-mkbom utility generates a procurement-oriented BOM from the MCL.
41 First it reads the MCL and makes note of all components that have been reduced
42 to parts. (Components that haven't been reduced to parts are ignored, though
43 the user can request that a warning be issued. You need to reduce all
44 components to parts for this function to be useful, see mcldoc.txt for the
45 details.) All multiple instances of each part are tallied together.
46 Finally, output is emitted which is centered around parts with a quantity for
47 each, rather than around reference designators. (A list of refdes'ed components
48 using each part can optionally be emitted.) Each entry is given a heading and
49 usually some comment lines based on part attributes from the MCL which are
50 deemed relevant to the procurement BOM. See mcldoc.txt for the details.
51
52 One can generate procurement BOMs for different population options, see below.
53
54 The procurement BOM generated by ueda-mkbom is plain text formatted on the
55 assumption of 80 columns of fixed character spacing. It is thus suitable for
56 both online viewing and printing.
57
58 Short BOM
59
60 For purposes other than procurement of parts, component reference designators
61 do matter, and a BOM organised and sorted by the component refdes is the right
62 format. MCL is such a format, and oftentimes it serves quite well.
63
64 Sometimes however, it is desirable to have a "short BOM" that is ordered by
65 the component refdes like the MCL, but follows a tabular format with one line
66 per component and with columns corresponding to a few attributes deemed most
67 useful.
68
69 The ueda-shortbom utility generates such a "short BOM" with 4 columns: refdes,
70 manufacturer, part number and description. The manufacturer and description
71 columns are taken from the identically named MCL attributes; the part number
72 column is taken from the manufacturer_part_number= attribute if one is defined,
73 otherwise the device= attribute is used instead. If neither attribute is
74 defined, the string "unknown" is substituted. The same holds for the
75 manufacturer column. The description column is left blank if no description=
76 attribute is defined.
77
78 The intent is that the MCL would be used directly only by the board designer
79 himself, who would of course be intimately familiar with the UNIX environment,
80 the workings of uEDA and its file formats, and the way his particular MCL is
81 structured, whereas the short BOM would be given to lab technicians and others
82 who are not UNIX-based intellectual creators.
83
84 ueda-shortbom can generate plain text output that is directly usable for viewing
85 and printing in a fixed character spacing environment, but it usually ends up
86 needing more than 80 characters per line and thus a pain to work with.
87 ueda-shortbom can also produce output with columns separated by ASCII tab
88 characters irrespective of field widths; such output is useful for post-
89 processing. UNIX tbl(1) and troff(1) can be used to produce a very pretty
90 hard copy (PostScript) version of the short BOM.
91
92 Assembly BOM
93
94 An assembly BOM is exactly the same as the short BOM described above, but has
95 one difference: if a component is to be socketed, the information put in the
96 corresponding columns of the assembly BOM is that for the socket part, rather
97 than for the component to be pushed into the socket. The assembly BOM is thus
98 exactly what you need to give to those who will be stuffing parts on your board
99 and running it through the reflow oven.
100
101 An assembly BOM is generated by the ueda-shortbom utility with the -a option.
102 Since one would need to generate different assembly BOMs for different
103 population options (assuming that the document is intended for those who will
104 follow it blindly), ueda-shortbom supports population options as well.
105 See the ueda-shortbom(1) man page for details.
106
107 If your design uses no socketed parts and no population options, the short BOM
108 and the assembly BOM would be identical.
109
110 Population options
111
112 uEDA supports designs with population options, i.e., ones in which some
113 components may or may not be populated as a manufacturing option. They are
114 described in this document because the BOM is really the only part of the uEDA
115 flow for which population options matter. The PCB obviously has to have
116 footprints for all components that may ever be populated on it and the
117 schematics normally show the interconnections for all possible components as
118 well. The BOM is the only part that is made in multiple versions for different
119 population options.
120
121 In order to support population options, each component in the design (i.e., in
122 the MCL) is assigned to a numbered population group. Population groups are
123 identified by integers and a component is assigned to a given population group
124 via the population_option= attribute in the MCL. Components without this
125 attribute are assigned to population group 0, the default.
126
127 When generating a BOM for a given population option, specify the list of
128 population groups to be included (see ueda-mkbom(1) and ueda-shortbom(1)).
129 The default population option consists of population group 0, i.e., running
130 ueda-mkbom or ueda-shortbom without any options counts only those components
131 which do not have a population_option= attribute.