I was working on many PCB softwares, but today i think KiCad is the best. I am very happy watching
how it develops. But… (always there is some but…) in my projects i miss one functionality - PCB variants.
PCB variant is a situation, when there are many products based the same circuit board.
For example in one variant some parts aro not populated (not fitted, etc.)
or have different value (for example resistor value change).
Deal with PCB variants should affect at lest:
- BOM - automatically generate bill of materials for every variant specfied in schematics,
- P&P - automatically generate pick and place files for every variant specified in schematics,
- Assembly drawing - automatically change visibility/value of parts specified in schematics.
- Schematic print - automatically change visibility/value of parts specified in schematics.
Currently there is no such functionality in KiCad, except BOM. There is amaizing script
named KiBOM, which could deal with PCB variants in bill of materials.
At this moment i manually edit Pick and Place files removing parts which are marked as do not fit.
Making assembly drawing is a little more complicated. I add to footprint simple field “X”. When
i want to mark component as not fitted i just change visibilty of this field and plot fabrication
In schematic i just change visibilty of BOM field.
For now ,for every PCB variant, i manually mark if some parts are not fitted
and actually i don’t have idea how to deal with value variants.
But (always there is some but…) KiCad has great ability - it work with python scripts.
I have idea (partially written above) how to deal with PCB variants. I think in schematic
there schould be added fields in every part that should be changed in PCB variants like below
In Variant A Q11 schould be marked as DNF in assembly and removed form BOM and P&P.
In variant Production Q11 should have changed fields value and Part Number.
Then some scripts can be written/run:
- KiBOM - with some changes, to achieve functionality like above,
- script to change P&P - remove parts (from basic P&P) if marked as DNF or change value ,
- script to change Assembly drawing - i think it is most dificult. I think there are two solutions.
Firs change visibility of field “X” to mark DNF or use additional layer (two for each side of PCB)
to draw lines on footprint position. Change value schouldn’t be a problem.
For now i don’t have idea how to deal with schematic using scripts.
Is there someone interested in this solution (spend some time on writing scripts).
Maybe someone have other idea how to deal with PCB variants? Or maybe there is exisiting
solution, and I don’t know it?
I think it could be a great functionality in this software. Every comments are welcome.