Two PCB for one Schematic?

I want to create a second, alternate PCB from the same schematic. This board will be electrically the same, but use different parts packages and have a smaller overall size. As far as I can figure out, this should be possible, just a different footprint mapping file, and of course different PCB file. Does this workflow fit in the existing “project” concept? Or should I start a separate project with identical schematic file? Are there any tips I need to be aware of before I give this a try? I don’t want to mess up the existing design.

-Chris

1 Like

That’s the way to go if you don’t want any nasty surprises.
Afaik there is no footprint mapping file (as cvpcb would suggest) but that information is being stored in the schematic file along with the symbols (which essentially makes them parts after the fact).
Example:

$Comp
L VoltRef_MAX6034_2.5V_SOT323 U104
U 1 1 56FFEB13
P 1500 7475
F 0 “U104” H 1575 7225 50 0000 C CNN
F 1 “VoltRef_MAX6034_2.5V” V 1300 7475 50 0000 C CNN
F 2 “SOTx:SOT-323” H 1500 7475 10 0001 C CNN
F 3 “E:\Datasheets\Electronics\IntegratedCircuits\VoltageReference\Maxim_MAX6034.pdf” H 1500 7475 10 0001 C CNN
F 4 “MAX6034BEXR25-T” H 1500 7475 10 0001 C CNN “Manf#”
F 5 “Maxim” H 1500 7475 10 0001 C CNN “Manf”
1 1500 7475
1 0 0 -1
$EndComp

It contains essentially a link to the footprint that is being used.

Oh, so this means one feature of KiCAD that I really liked (and others seem to hate), the logical separation of schematic symbols from footprints, isn’t something I can take advantage of in a real design. Hmmmm…

‘Hate’ is the wrong word. Personally I had too much trouble with the post-assigment of footprints (wrong footprint by accident, etc…) so I went the way of defining parts instead of symbols/footprints and use cvpcb merely as a check if I forgot the footprint in a part definition. More work upfront, less errors later :wink:

As for your problem… yeah sorry, that there is no assignment-file.
Your most practical approach is to make a new project, stick the schematic in there… open cvpcb, clear all footprint assignments (there is a button for that) and then assign the ones you need for the other version.
Naturally if you change anything in the schematic and want that translated to the other board version… eek.

1 Like

Another possibility is to make a Git repository and work in two different branches. However, this is fraught with so many potential complications that I hesitate to suggest it. As others have pointed out, creating a separate project is the most failsafe approach to take. You can make one a VCS fork of the other and share stuff back and forth that way.

1 Like

Eventually I just made a separate project. And as it turns out, there were actually some extremely minor changes in the schematics. Seems a shame that Kicad workflow suggests this kind of independent mapping but doesn’t actually allow it, in fact.

Next up, I have to learn Kicad back-annotation. I can’t wait!

-Chris

You could do it with an external script, but when they get Python into the SCH then this will be rather easier to manage.

2 Likes

can you please tell me how you’re doing this?

This can be done by Library editor -select part - edit properties - Footprint Filter and setting the wanted footprint
Then the choice of footprint reduces to only the one option

1 Like

This thread has more details:

2 Likes