Multiple PCBs from Single Schematic, take 2

Back in 2016 (v4.x?) I posed this question… can I have one schematic connected to multiple PCBs? There are many situations, but for example, a through-hole and SMT version of the same design. I learned that it was not possible, because the footprint mapping file was not actually a file, but embedded into the schematics.

I’m running into a similar situation again. Any chance that this is now possible in v6.0?

PCBs which render a schematic either with or without jumpers

Well the schematic still points to the footprints (unless you omit that information.) So I think you could have the same starting schematic, but would then have to make a copy in which you change the footprint information. I am no expert but I have been using 5.99>6.0 for some time and that is the way it works. Sorry I guess that is not the answer you wanted.

Another thing…I recently cheaped out and ordered a board which is only two layer so include a bunch of jumpers to try to keep the ground plane more solid. I guess there is no way to have jumper with the same net on both ends. That also seems unfortunate but even if I designed my own CAD software it is difficult to imagine a way around it. I use this as an example of…lets say you wanted to do a two layer and four layer board based on the same schematic. If the two layer used jumpers then those would need to be in the schematic and would introduce new nets.

1 Like

I think that you can have the same schematic sheet included in multiple schematics as a simple, complex or flat hierarchical sheets. Although, if I understand correctly you are not able to have different footprints on the different instances.

You are basically adding a bunch of PTH zero ohm resistors, so it would be strange not to have them in the schematic and not have their pads on different nets.

When only making a one layer pcb its easier. Then you can route the wires on layer two, and then just ignore layer two during manufacturing. As long as the vias is big enough to solder a wire, you can “produce layer 2” by adding the wires/jumpers manually instead of using the actual layer 2 from KiCad.

When I think of it, you should be able to do the same with a two layer board? Add a third layer on which you draw your jumpers as wires, then omit it when generating gerbers.

@thestumbler
You can now just copy/paste the whole schematic into a new project and go from there.

@thestumbler A similar question was asked a week ago in this thread, please read it for details.

I personally believe that it would be extremely rare being able to use the same schematic for both through hole and smt versions of the board. That means that all your pth components would need to have not just the same number of pins but also the same pin numbering as your smt components. One single difference between the two would ruin the concept.

But if you have other use cases then you can absolutely use the same sheet in more than one schematic (even though it’s not located in the project directory).

And another problem:
How many footprints can you assign to a symbol?
It appears, only one!

@jmk That’s exactly the point I was trying to make. But in a possibly unnecessary complicated way. :slightly_smiling_face:

Nahhh, probably my selective memory or poor comprehension.
I’ll blame it on age. :crazy_face:

Maybe that was a bad example, although in the project I mentioned from back in 2016 that was the case. Many of discrete logic chips like 7400 or 4000 series had pin-compatible versions for thru-hole and SMD. But I see your point, discrete logic designs aren’t common anymore. Perhaps a better example would be the same design but multiple form factor PCBs.

Yes, I could copy the schematic into two different projects. But then, when the design changes, you have to keep them up to date manually.

I was hoping v6.0 would bring back the “footprint mapping file” as a thing, and allow us to specify independent footprints for each dash number variant of a circuit board.

Anyway, it’s not a huge deal, as this kind of thing isn’t common in my workflow (it’s been 5 years since I last needed it).

-Chris

Then yes, it’s possible as long as all versions of the PCB uses the same footprints. :slightly_smiling_face:

I see your point. But personally I want nothing else than a 1:1 mapping between symbols and footprints. With our internal part number for each symbol. That means that a 100 ohm 0603 symbol will have a different name/value than 100 ohm 0402.

“Not able” is of course relative, and maybe too strong phrase, considering that KiCad has open file formats. “Not without scripting or other extra step” would be more realistic. It’s possible to write a custom netlist exporter which changes the footprints and then import the alternative netlist to the pcb editor. One of the projects could be primary, using the normal update system, and the other could use the custom netlist.

Another way could be to create project specific footprint libraries for the two projects with identical footprint names but different actual footprints.

4 Likes

@eelik Nice thinking outside the box! I didn’t think of any of those solutions but sure, that seems like feasible work arounds.

I’m the complete opposite, but maybe my brain is just weird. :sunglasses: I’ve learned to live with the current state of affairs and it honestly isn’t a big deal to map 1:1, as you point out, for 99% of my work.

[SOAPBOX_ON] There’s a well established set of procedures for documenting circuit board assemblies, stretching back many decades. One of those concepts is that the “controlling” document for circuit board assembly is the assembly drawing and its associated lists and documents, the schematic of course being one of those. But it is not the schematic. After all, the very definition of schematic is that is a simplified and usually incomplete diagram. Furthermore, one assembly could have multiple kinds of schematic prepared for different reasons. One could be prepared for engineers to understand the overall circuit, leaning towards the block diagram level. Another could be prepared to aid technicians in troubleshooting, where the schematic closely resembles the physical arrangement of the board. There can even be schematics in an assembly completely unrelated to electronics (this was a real eye-opener when I worked on a device that had high pressure gas plumbing in addition to electronics). My point is that if I had to pick another drawing to be the controlling document describing an assembly (besides the top-level assembly drawing which we rarely prepare these days), I would probably pick the parts list, not the schematic. [SOAPBOX_OFF]

When I started using KiCad in 2016, I was quite impressed when I saw the concept of a footprint mapping file, I thought, “finally, a PCB CAD program that matches existing drawing standards”. I’m kind of sad to see it go away, but practically speaking it doesn’t really impact me one way or another. I do understand the desire to keep it simple, with only a 1:1 mapping. Even with the old way I described above, if you have more than a few variations, it can get overly complicated pretty fast.

Straps (off-topic)

My message is not really on topic but although it respond to yours, I think that it might be useful to some people.

Hi BobZ,
Yes, it’s possible to have straps with the same net on both ends ! Look at the attached archive, it contains some examples as well as my custom connector library that contains the strap symbol at line #1000. I also rared my strap footprint made with two oval pads and a surface mount pad, all connected together with the same net.

The only thing to do is to include the strap symbol into the schematics in order it can appear on the PCB. I don’t know if this trick is fully in line with Kicad policies but it works, at least with ver. 5.1.4 (I didn’t make any PCB since!).
Note that the 3 pins corresponding to the 3 objects of the footprint are superimposed on the symbol. The 2 & #3 being hidden.

Enjoy!
Strap.rar (107.3 KB)

PCBs which render a schematic either with or without jumpers

Thanks. I have downloaded and opened your schematic library in KiCad…but I am somewhat confused by it. If a strap has two pins, I think I need to either connect the two pins to the same net (with zones or tracks) or not.

If I connect them to the same net then they will not bridge from point A to point B.
If I do not connect them to the same net then KiCad will assign different nets, right?

Straps, cont’d

The strap footprint is made of 3 pads: two oval or round ones and one SMD one, all connected together, not externally but inside the footprint.
In consequence, the 3 parts operate as ONE pad with two holes hence being on the same net. I put my whole strap footprint library i.e.
image
in the attached Rar,
My_Straps.pretty.rar (8.1 KB)

I also added a small project
strap_test.rar (11.0 KB)
out of my sandbox to illustrate how they work but I’m afraid you may not be able to correctly display it because my own libraries aren’t embedded and I’m lacking some knowledge for exchanging complete projects. Help very much appreciated (Kicad 5.1x, I can’t run ver 6 for the moment and probably for some months).

The symbol I already uploaded is common to all the straps.

Let me know if you still have issues with them.

PCBs which render a schematic either with or without jumpers

Thanks a lot for posting the simplified project folder. I was going to ask you to do that. It seems to me that the footprint and symbol must be embedded somehow because I simply opened the project, and from that opened the schematic and pcb file and it all opens OK in 6.0. I get a notice that the file was created by an older version of KiCad etc. but that is not a problem. I am sort of late in responding to your last post and I wanted to thank you for it…but I still need to ponder what you did!! :expressionless:

OK…This strap which I am looking at has 3 pads. Sorry I guess you said as much. There are two through hole pads connected by one long narrow SMT pad. So really the strap is a long narrow pad. The schematic shows all three pads connected at one point in the schematic.

So now I have brought your strap symbol into the local high school biology lab and dissected it. (I am exaggerating) It was difficult to see what I had so I selected a pin and moved it. Indeed there were two more in the same place. There were three pins superimposed. If anyone else can bale in and help make sense of it, that might be good. I think you have done a Captain Kirk and cheated on the Kobayashi Maru Test! (No I am not really a Trekky but I was desperate for a metaphor.)

One thing…my use of jumpers is an example of how the layout can drive the schematic. The jumper is not planned but rather I find that I need it when doing the 2 sided layout.

Another thing…I observe that your schematic shows the net to which the jumper is connected but might not show which components are on which end. So it is sort of depriving the schematic of some information. Of course, the schematic also does not show tracks per se, and the strap is just a replacement for a track. So maybe that is the important point of all of this.

@BobZ what drawbacks/problems do you see with using my method?

Make sure the vias to this layer is large enough so thst you are able to solder wires to them as normal plated through holes.

Solder actual wires to the board in place of all wires on layer three.

This doesn’t need any changes to the schematic.

Straps, cont’d
Some additional pieces of information:

I didn’t remember if I tried to put 3 pins side by side in the symbol but in case it seems more relevant, why not ! There’s no reason why it wouldn’t work.

While designing a layout, at any time you can put a strap footprint where needed and add it to the schematics as well, then refresh the PCB in order the nets are updated.

About the schematics deprivation, since the symbol is related to the net name, you can put it anywhere you want and arrange the components around in a way such they match their layout position. When the schematics and Layout windows are displayed at the same time, the “net show” button activated on both, clicking on a net on one window enlightens the same net on the other window.

What drove me in this approach is that I needed to list the straps in the BOM. Otherwise, I think that straps can be put into the layout and their nets filled by hand but take care because next time the PCB is refreshed (I never check it but) I’m persuaded that straps will disappear.

Happy this helped

PS. BobZ, may I ask you to edit your related post with something like “straps” as sub-object ? My intention is to ask a moderator to split the thread. Thanks.

PCBs which render a schematic either with or without jumpers

OK; why is it a strap and not a jumper? My guess is that the word “jumper” would be more widely understood among electronics folks designing pcbs. To me a strap is something hanging in an old subway car or something you use to mount a saddle to a horse.

This shows the results of two searches at Digikey:

The rest of your logic sounds agreeable. As I said, a schematic does not show tracks. So if a wire acts like a track, we do not seem to lose much information relative to a schematic which does not include them.