@maui components are currently matched on the following fields:
- Part Name / Library
- Value
- Footprint
So for example, two parts which are identical in these fields but have different tolerances (or digikey part numbers, etc, etc) will be put into the same group.
I have been thinking about how to improve this. There are two directions I could go:
a) Add the ability for the user to designate extra grouping fields. For e.g. if you have a field named “Digikey” then you can specify that components should be grouped based on this field (as well as all the default ones).
b) Components should be matched based on ALL available field data (so if you have two components with conflicting tolerance values, they will be put into separate groups). I prefer this approach as it means the user does not have to specify.
However, there is a reason I have not implemented this yet - what happens if you have a component with blank fields? As an example case, say you have three resistors, and each component has a “Tolerance” field. One says “1%”, one says “0.1%”, and one is blank. Which group does the blank one go in? Or should a third group be created for the blank one?
The way that I currently specify BoMs for my boards is to select one component within a group, and specify values for various fields. Then all the other components that are grouped with that one get the same field values in the output BoM file. So I only have to specify part numbers (etc) for one component - this makes it very simple to change the part number rather than having to do so for dozens of schematic components.
Having the ability to back-annotate component fields and change those data in the BoM would be very handy for this purpose.
Currently you can work-around the grouping problem by specifying the part value as something like “10K 1%” or “10K 0.1%” (but ideally you would have a tolerance field, or similar).
I’m happy to receive input from any interested parties on this, it’s a non-trivial problem.