KiField Hierarchical BOM issue


#1

Hi Everyone,

I just started with KiField, so forgive me if missed something simple. I wanted to add part numbers to a board that has 10+ instances of the same hierarchical sheet (each instance discretely named but with the same file- KiCad correctly annotates them with discrete names related to which sheet they are on).

KiField loads all the parts perfectly but when I upload everything back to KiCad, I end up with each part that has duplicates with several instances of the metadata.
Here is the BOM output:

> <comp ref="P501">
  <value>CONN_01X02</value>
  <footprint>Socket_Strips:Socket_Strip_Straight_2x01_Pitch2.54mm</footprint>
  <fields>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf">Molex</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
    <field name="Manf#">22-28-4361</field>
  </fields>
  <libsource lib="Accel_mgr_fan_ctrl-cache" part="CONN_01X02"/>
  <sheetpath names="/Thermistor_circuit1/" tstamps="/58EC3D42/"/>
  <tstamp>58EBDB50</tstamp>
</comp>

For reference, if I make this change directly in KiCad, i only get one entry:

<comp ref="P501">
  <value>CONN_01X02</value>
  <footprint>Socket_Strips:Socket_Strip_Straight_2x01_Pitch2.54mm</footprint>
  <fields>
    <field name="Manf">Molex</field>
    <field name="Manf#">22-28-4361</field>
  </fields>
  <libsource lib="Accel_mgr_fan_ctrl-cache" part="CONN_01X02"/>
  <sheetpath names="/Thermistor_circuit1/" tstamps="/58EC3D42/"/>
  <tstamp>58EBDB50</tstamp>
</comp>

The multiple entries seem to prevent KiCost from properly reading the xml.

Any ideas on how to get KiField to work with this hierarchical sheet, or just bite the bullet and do it the slow way via the standard KiCad menus?

Thank in advance,
Michael.


#2

@devbisme is probably the man to ask


#3

It looks like the issue is with the recursive (-r flag) call not playing nice with several iterations of the same sheet file being used. As a work around I simply ran the command without the recursive call on each layer of the hierarchy and upload them separately, it works fine this way.

-Michael.