A project is using a SOM module which has two identical connectors. Due to that the dimensions etc… must be correct, went for one footprint that has two headers as tow rowx of pads, each row being one connector that should be placed on the PCB. .
The schematic symbol has two units, one each for each of the two connectors. Pins a named B1…Bn and A1…An… The SOM itself lives at the higher level in the BOM of the product as it’s not part of the PCB.
The BOM generates one BOM item component J1. Though the PCB needs two connectors.
Would like to to know if it is possible to generate a component for each unit in the symbol ?
Ofcourse manually adding J1A and J1B on the silkscreen and modify the BOM output manually to add J1A and J1B. Though it would be nice if the CAD BOM could do this so that the correct number of components needed is generated . Should this be posted in “Feature Requests” for example add a check, “Generate a BOM item for each unit ?”
some time ago I had the same issue when designing an IoT-device for a startup company. In my opinion, there is no perfect solution to this in KiCad, because a device can consist of multiple symbols, but only of one footprint with exactly one origin. There is no way to have two footprints for one (multi-)symbol.
From my experience I found these solutions depending on the situation you are in:
If the device is going to be assembled at any EMS or together with the PCB at the PCB house, then separate the symbol in two pieces with individual footprints. This is inconvenient, because you have to make sure that both footprint are in the correct relative position to each other. Still it can be done by using the “special tools / position relative to”-command inside pcb new and then grouping the two footprints. This will also result in the correct BOM for the PCB as both connectors are stated, but most important also in the correct pick-and-place positions for both individual connectors. If you then also want to include the SOM itself, you can do this by adding a dummy-symbol without footprint to your schematic. I do this all the time for e.g. for casings.
If the device is going to be hand assembled anyways, I would pack both connectors in one footprint and maybe add a dummy symbol for the BOM in the schematic OR add both MPNs separated in the MPN filed of footprint. KiCost for example can handle this.
Thanks for the link and suggestions. The footprint was already created and would like to keep the footprint 1:1 linked to the symbol and the 3D model file. The module also has mounting holes that need to be on the exact position. Having the conectors, mounting holes etc… all together make it very easy reusable and avoid future mistakes. Specially if someone else wants to use it. The only problem is the BOM and position file.
I found the following alternate approach:
Create one footprint for J1 with connectors, mounting holes, silk screen etc… for the module
Create one symbol with two units, ons for each connector. Each connector with different pin names, here the are J1A and J1B in the schematic.
Create a “dummy” footprint for each connector. That is, all pads move to “Eco layer” so that they are not used in Cu layers. (Seems some work as it seem not easy to select all pads and move then all at once to another layer). Name those J1A and J1B and place their names also on the silk screen. Position the J1A & J1B footprints exactly over the pads of the original J1 and then “group” J1A/J1B and J1 together so that when J1 moves, J1A and J1B move as well. The same can be done for any parts that need to be soldered on the mounting holes, such as standoffs.
The position file output shows J1, J1A and J1B.
Remove J1 (the original footprint)
The BOM file shows J1
Add J1A and J1B and remove J1
As an extra check, create a script to compare the kicad BOM & Position file with a BOM file that
goes to the FAB (with all partnumbers) to check for an descrepancies between those.
It’s a kind of a hack but a pretty simple workflow.
As what I understand, (good) FABs will review the whole gerber and need to change the position file anyhow for their PNP machines (i.e. after adding rails etc…) They even may make changes to the gerber for reflow to make sure everything matches up. Upon a trial run in SMT any PNP mismatch between the part and pad has to be corrected before running all the boards.
Did I overlook something ? Wondering how other CAD software deal with this ? There are lots of boards in professional equipment that have with piggy back and mezzanine boards., so it is not that uncommon suppose.
My method is less sophisticate.
I edit the BOM file and put 2 in the quantity cell.
For the pick and place file I also edit the file and add a second line (J11 and J12). I do not forget to modify the coordinates of both connectors.