BoMOptions parameters

  • columns : [BoMColumns parameters] [list(dict) | list(string)] (default: computed for your project) List of columns to display. One entry can be just the name of the field (a string).
    If you want to import the columns used in KiCad internal BoM tool add an entry _kicad_bom_fields, this will be replaced by the list from KiCad.
    In addition to all user defined fields you have various special columns, consult Columns available for the BoM.

  • csv : [BoMCSV parameters] [dict] (default: empty dict, default values used) Options for the CSV, TXT and TSV formats.

  • format : [string] (default: 'Auto') (choices: “HTML”, “CSV”, “TXT”, “TSV”, “XML”, “XLSX”, “HRTXT”, “KICAD”, “Auto”) format for the BoM. Auto defaults to CSV or a guess according to the options.
    HRTXT stands for Human Readable TeXT.
    KICAD is used to get the options from KiCad project. In KiCad you can configure CSV like options.

  • group_fields : [list(string)] (default: ['part', 'part lib', 'value', 'footprint', 'footprint lib', 'voltage', 'tolerance', 'current', 'power']) [case insensitive]List of fields used for sorting individual components into groups. Components which match (comparing all fields) will be grouped together.
    Field names are case-insensitive.
    For empty fields the behavior is defined by the group_fields_fallbacks, merge_blank_fields and merge_both_blank options.
    Note that for resistors, capacitors and inductors the _Value_ field is parsed and qualifiers, like tolerance, are discarded. Please use a separated field and disable merge_blank_fields if this information is important. You can also disable parse_value.
    When using _kicad_bom_fields in the columns you should use [] for this value, so the fields selected in KiCad are used.
    Note that when user defined fields are different we merge the fields using sep_for_merged. Also note that you can merge different Value fields using merge_values.
    If empty: [‘Part’, ‘Part Lib’, ‘Value’, ‘Footprint’, ‘Footprint Lib’, ‘Voltage’, ‘Tolerance’, ‘Current’, ‘Power’] is used.

  • hrtxt : [BoMTXT parameters] [dict] (default: empty dict, default values used) Options for the HRTXT formats.

  • html : [BoMHTML parameters] [dict] (default: empty dict, default values used) Options for the HTML format.

  • ignore_dnf : [boolean] (default: true) Exclude DNF (Do Not Fit) components.

  • normalize_values : [boolean] (default: false) Try to normalize the R, L and C values, producing uniform units and prefixes.

  • number : [number] (default: 1) Number of boards to build (components multiplier).

  • output : [string] (default: '%f-%i%I%v.%x') filename for the output (%i=bom). The extension depends on the selected format. In the case of the KICAD format the extension comes from the name you selected in KiCad’s internal BoM. Affected by global options.

  • sort_style : [string] (default: 'type_value') (choices: “type_value”, “type_value_ref”, “ref”, “kicad_bom”, “field”) Sorting criteria.

    • type_value: component kind (reference prefix), then by value

    • type_value_ref: like type_value but use the reference when we don’t have a value

    • ref: by reference

    • kicad_bom: according to the options of the KiCad BoM tool

    • field: using the sort_field field/s.

  • units : [string] (default: 'millimeters') (choices: “millimeters”, “inches”, “mils”) Units used for the positions (‘Footprint X’, ‘Footprint Y’, ‘Footprint X-Size’ and ‘Footprint Y-Size’ columns).
    Affected by global options.

  • xlsx : [BoMXLSX parameters] [dict] (default: empty dict, default values used) Options for the XLSX format.

  • aggregate : [Aggregate parameters] [list(dict)] (default: []) Add components from other projects. You can use CSV files, the first row must contain the names of the fields.
    The Reference and Value are mandatory, in most cases Part is also needed.
    The Part column should contain the name/type of the component. This is important for passive components (R, L, C, etc.). If this information isn’t available consider configuring the grouping to exclude the Part.

  • angle_positive : [boolean] (default: true) Always use positive values for the footprint rotation.

  • bottom_negative_x : [boolean] (default: false) Use negative X coordinates for footprints on bottom layer (for XYRS).

  • component_aliases : [list(list(string))] (default: [['r', 'r_small', 'res', 'resistor'], ['l', 'l_small', 'inductor'], ['c', 'c_small', 'cap', 'capacitor'], ['sw', 'switch'], ['zener', 'zenersmall'], ['d', 'diode', 'd_small']]) A series of values which are considered to be equivalent for the part name. Each entry is a list of equivalen names. Example: [‘c’, ‘c_small’, ‘cap’ ] will ensure the equivalent capacitor symbols can be grouped together.
    If empty the following aliases are used:

    • [‘r’, ‘r_small’, ‘res’, ‘resistor’]

    • [‘l’, ‘l_small’, ‘inductor’]

    • [‘c’, ‘c_small’, ‘cap’, ‘capacitor’]

    • [‘sw’, ‘switch’]

    • [‘zener’, ‘zenersmall’]

    • [‘d’, ‘diode’, ‘d_small’].

  • cost_extra_columns : [BoMColumns parameters] [list(dict) | list(string)] (default: []) List of columns to add to the global section of the cost. Can be just the name of the field.

  • count_smd_tht : [boolean] (default: false) Show the stats about how many of the components are SMD/THT. You must provide the PCB.

  • distributors : [string | list(string)] (default: []) [comma separated] Include this distributors list. Default is all the available.

  • dnc_filter : [string | list(string)] (default: '_kibom_dnc_CONFIG_FIELD') Name of the filter to mark components as ‘Do Not Change’. The default filter marks components with a DNC value or DNC in the Config field.
    This option is for simple cases, consider using a full variant for complex cases.

  • dnf_filter : [string | list(string)] (default: '_kibom_dnf_CONFIG_FIELD') Name of the filter to mark components as ‘Do Not Fit’. The default filter marks components with a DNF value or DNF in the Config field.
    When using KiCad variants the default is ‘_null’.
    This option is for simple cases, consider using a full variant for complex cases.

  • exclude_filter : [string | list(string)] (default: '_mechanical') Name of the filter to exclude components from BoM processing. The default filter (built-in filter ‘_mechanical’) excludes test points, fiducial marks, mounting holes, etc.
    When using KiCad variants the default is ‘_null’.
    Please consult the built-in filters explanation to fully understand what is excluded by default.
    This option is for simple cases, consider using a full variant for complex cases.

  • exclude_marked_in_pcb : [boolean] (default: false) Exclude components marked with Exclude from BOM in the PCB. This is a KiCad 6 option.

  • exclude_marked_in_sch : [boolean] (default: true) Exclude components marked with Exclude from bill of materials in the schematic. This is a KiCad 6 option.

  • expand_text_vars : [boolean] (default: true) Expand KiCad 6 text variables after applying all filters and variants. This is done using a _expand_text_vars filter.
    If you need to customize the filter, or apply it before, you can disable this option and add a custom filter to the filter chain.

  • fit_field : [string] (default: 'config') [case insensitive]Field name used for internal filters (not for variants).

  • footprint_populate_values : [string | list(string)] (default: 'no,yes') [comma separated] (must contain 2 elements) Values for the Footprint Populate column.

  • footprint_type_values : [string | list(string)] (default: 'SMD,THT,VIRTUAL') [comma separated] (must contain 3 elements) Values for the Footprint Type column.

  • group_connectors : [boolean] (default: true) Connectors with the same footprints will be grouped together, independent of the name of the connector. In order to work the symbol must be from a library containing connector in its name.

  • group_fields_fallbacks : [list(string)] (default: []) [case insensitive]List of fields to be used when the fields in group_fields are empty. The first field in this list is the fallback for the first in group_fields, and so on.

  • group_not_fitted : [boolean] (default: false) Enable it to group fitted and not fitted components together. This is how KiCad’s internal BoM behaves.

  • int_qtys : [boolean] (default: true) Component quantities are always expressed as integers. Using the ceil() function.

  • kicad_dnp_applied : [string] (default: 'global') (choices: “global”, “yes”, “no”) What we do with the KiCad DNP flag. global means we apply the kicad_dnp_applied global option.
    yes means we always remove DNP components.
    no means we ignore the DNP flag and let filters do its work.

  • merge_blank_fields : [boolean] (default: true) Component groups with blank fields will be merged into the most compatible group, where possible.

  • merge_both_blank : [boolean] (default: true) When creating groups two components with empty/missing field will be interpreted as with the same value.

  • merge_values : [boolean] (default: false) Merge the values of different components in a group. Used when you abuse the value field, i.e. for connectors where the Value is the connector purpose.

  • no_conflict : [list(string)] (default: computed for your project) [case insensitive]List of fields where we tolerate conflicts. Use it to avoid undesired warnings.
    By default the field indicated in fit_field, the field used for variants and the field part are excluded.

  • no_distributors : [string | list(string)] (default: []) [comma separated] Exclude this distributors list. They are removed after computing distributors.

  • normalize_locale : [boolean] (default: false) When normalizing values use the locale decimal point.

  • parse_value : [boolean] (default: true) Parse the Value field so things like 1k and 1000 are interpreted as equal. Note that this implies that 1k 1% is the same as 1k 5%. If you really need to group using the extra information split it in separated fields, add the fields to group_fields and disable merge_blank_fields.

  • pre_transform : [string | list(string)] (default: '_null') Name of the filter to transform fields before applying other filters. This option is for simple cases, consider using a full variant for complex cases.

  • ref_id : [string] (default: '') A prefix to add to all the references from this project. Used for multiple projects.

  • ref_range_separator : [string] (default: '-') Separator used for ranges in the list of references. Used when use_alt is enabled. Ignored when using the KICAD format.

  • ref_separator : [string] (default: ' ') Separator used for the list of references. Ignored when using the KICAD format.

  • right_digits : [number] (default: 4) Number of digits for mantissa part of coordinates (‘Footprint X’, ‘Footprint Y’, ‘Footprint X-Size’, ‘Footprint Y-Size’ and ‘Footprint Rot’ columns) (0 is auto).

  • sep_for_merged : [string] (default: ' ') Text to separate multiple field values of components merged in the same group.

  • sort_ascending : [boolean] (default: true) Sort in ascending order.

  • sort_field : [string | list(string)] (default: 'Reference') [case insensitive]Field or fields used for the field sort_style.

  • source_by_id : [boolean] (default: false) Generate the Source BoM column using the reference ID instead of the project name.

  • tilde_is_empty : [boolean] (default: true) Interpret fields that just contains ~ as empty fields. But don’t mark them as empty in the HTML.

  • use_alt : [boolean] (default: false) Print grouped references in the alternate compressed style eg: R1-R7,R18. Ignored when using the KICAD format.

  • use_aux_axis_as_origin : [boolean] (default: true) Use the auxiliary axis as origin for coordinates (KiCad default) (for XYRS).

  • use_ref_ranges : Alias for use_alt.

  • variant : [string] (default: '_kibom_simple') Board variant, used to determine which components are output to the BoM. The _kibom_simple variant is a KiBoM variant without any filters and it provides some basic compatibility with KiBoM. Note that this output has default filters that behaves like KiBoM.
    The combination between the default for this option and the defaults for the filters provides a behavior that mimics KiBoM default behavior.
    If you want to use KiCad 10 variants: use the name of the KiCad 10 variant, Default is the default variant.

Used dicts