2
\$\begingroup\$

I'd like to get a little PCB manufactured with a basic circuit that I can populate with components of various sizes. E.g. have a place where any of a range of possible capacitor sizes could go. So I would have a chain of leads, like this, for example, where depending on size, I would use a closer or further-apart lead for the component in question:

---O-O-O O---

I'm finding it difficult to convince KiCad or Fritzing to let me do that. They seem to think that any component has exacly one size, and I can't find an "empty lead" part to add either.

Any advice how to best go about this?

\$\endgroup\$
2
  • 6
    \$\begingroup\$ 1) Put extra capacitors on the schematic, value "DNF" (Do Not Fit) if the rule checking is lax enough to let you put the footprints on top of each other. Or, 2) create your own footprints with all the extra pads. \$\endgroup\$
    – user16324
    Commented Oct 5, 2019 at 20:14
  • \$\begingroup\$ I agree with option 1 of Brian. This is the correct way to go about this. Everything else is a bodge that will bite you in the long term (Will you remember 2 or 3 years down the line what parts could fit without this being made clear in the schematic/BOM?) I would however advise against overlapping footprint pads as it will make soldering harder and less reliable (worst case can even lead to shorts). A board with such a high degree of part selection flexibility will simply need to trade it for space. \$\endgroup\$ Commented Oct 6, 2019 at 9:12

4 Answers 4

3
\$\begingroup\$

I make double and triple footprints in KiCAD quite regularly and it works out quite well. You need to be careful about production constraints (avoid holes in SMD pads, etc), but KiCAD does allow you to do what you want.

There are several ways to go about it:

  • Superpose all the footprints one on top of the other. You need to ignore the specific DRC errors about overlapping courtyards, and sometimes place holes very precisely in the same location.
  • Create a specific footprint. In your example, you would give the same PAD index number for a group of PADs. Once you do your PCB layout, the router will request you to add the traces between the PADs that have the same indexes. So you still have some freedom on how you want to route this.

Here is an example where I superpose two different rectifying bridges. The center is slightly different so that the PADs do not superpose:

Two superposed diode bridges

The 3D view, with only one bridge shown, you can see two PADS of the other bridge under it

Here is an example where I can put one out of two fuse holders using a single footprint:

Footprint for two fuse holders

And another case where I superposed two RJ45 connectors - one SMD and one THT - the "holes" are superposed:

Superposed MAGJACK footprints

\$\endgroup\$
3
\$\begingroup\$

while I remember there being a few more flexible footprints (especially, the "hand soldering" SMD footprints), this simply screams "you want something oddly specific, so, go and design your own footprint". It's surprisingly easy!

If you want, you can also do the nice FOSS thing and then upstream your new footprint to the kicad-library.

\$\endgroup\$
20
  • 2
    \$\begingroup\$ I need to disappoint you here. A footprint like this violates the rules of the official lib and would never be accepted. (A footprint must represent one package and be made in accordance to manufacturer suggestions or an industry standard.) \$\endgroup\$ Commented Oct 6, 2019 at 9:09
  • \$\begingroup\$ The correct way of doing this is having all different options for part selection in the schematic/BOM and mark all but the selected one as DNF. Then place all footprints next to each other while avoiding pads to overlap as that would negatively impact the solder process. (The trade of is between part selection flexibility against board space) \$\endgroup\$ Commented Oct 6, 2019 at 9:17
  • \$\begingroup\$ @RenePöschl you're doing the opposite of disappointing! You're giving exactly the information OP needs. I'd argue that your comments, as valuable as they are here, would be even better as a competing answer – which I'd upvote! \$\endgroup\$ Commented Oct 6, 2019 at 9:26
  • \$\begingroup\$ @RenePöschl "violates the rules of the official lib and would never be accepted" Umm... accepted by whom? I understand what you are saying, but manufacturer's suggested layout is just that - a suggestion. In reality there are situations when different footprint is beneficial. "hand soldering" mentioned above is one example (BTW, it is part of "official" library). Specific thermal requirements is another. Or small modification of SMD choke footprint allowing mounting of a resistor jumper instead. There are countless examples like that and I see nothing wrong with them. \$\endgroup\$
    – Maple
    Commented Oct 7, 2019 at 8:29
  • \$\begingroup\$ @Maple I'm not involved with maintaining the kicad library, but I maintain a relatively medium- to large-sized FOSS project: Accepted by the people having to watch over the quality of the library. They set up a relatively extensive document, and some footprints simply aren't allowed by that – for reasons of quality assurance, even if these footprints look reliable. A lot of "legacy exception" rules apply to such projects – if I was to kick out all legacy code that doesn't meet my modern standards, my project's C++ code base would be looking a lot emptier than it does :) \$\endgroup\$ Commented Oct 7, 2019 at 8:32
1
\$\begingroup\$

I generally would not suggest combining multiple components into one footprint/symbol. This will hide a lot of information from a reader of the schematic. It is much better to have one symbol per possible alternative in the schematic (connected in parallel). This allows you to create a BOM for every variation as required. (This could lead to false positive ERC errors/warnings depending on how the symbols are designed. Sadly there is no "do not show this one message in the future" option in KiCad.)

You can then overlap the footprints as needed in pcbnew, but make sure not to overlap pads as this can create trouble with soldering. There simply is a tradeoff between component selection flexibility and board size. (This restriction also applies when making a single footprint for all possible components.)

Another benefit to having one symbol/footprint per possible combination is that you are still get one centroid per possible part in the pos file which is required for automated manufacturing. Meaning combining different options within a footprint will likely restrict your options for automated manufacturing. (You never know if you might not in some future want to go this route for some of your projects.)

\$\endgroup\$
6
  • \$\begingroup\$ "you are still get one centroid per possible part in the pos file which is required for automated manufacturing". Carefully prepared footprint should not create any problems for manufacturing house, I think. For example I recently made a board with 3-pad soldering jumper made by adding a third pad to standard 0603 resistor footprint. The center was left between NC contacts and component was added to BOM as 0603 jumper. The assembly shop had no problems with this whatsoever. \$\endgroup\$
    – Maple
    Commented Oct 7, 2019 at 8:35
  • \$\begingroup\$ A solderjumper is a bit different though. It does not require something to be placed by the pick and place machine. (And if you used a 0ohm 0603 resistor then you need to have two footprints, one with placed on position 1 with the center being aligned with that and one with position 2. Or you need to have a symbol that indicates where the resitor will be placed and connect it such that it agrees with that. Will save you one footprint but that one still needs the centriod to agree with one of the two possible positions) \$\endgroup\$ Commented Oct 8, 2019 at 9:09
  • \$\begingroup\$ And of course you can still use a pick and place machine with the centroid (of the footprint) being not aligned with the pick and place center of the component. But it will make programming the machine harder and could mean that your manufacturer will charge extra or flat out refuse to take on the job. \$\endgroup\$ Commented Oct 8, 2019 at 9:32
  • \$\begingroup\$ Since the symbol can be easily rotated and/or mirrored, and in case of a jumper the pin numbering makes no difference whatsoever, I do not need two symbols or footprints. A third pad is added without paste layer and center is left between first two pads, so as far as manufacturing house is concerned, they are working with simple 2-pad 0603 component. No problem for pick and place and all the rotation/positioning data is generated properly. \$\endgroup\$
    – Maple
    Commented Oct 8, 2019 at 11:14
  • \$\begingroup\$ Here is another example - I had to make sure the board can accommodate different DC-DC modules, depending on installation requirements (hand-soldered after manufacturing). All 24 modules with compatible footprints had different values for external decoupling caps and EMI filters. Unlike caps, wirewound chokes have vastly different footprints even within one manufacturer. So I went through literally hundreds of datasheets collecting footprint dimensions, then calculated one footprint that fits any one of them. \$\endgroup\$
    – Maple
    Commented Oct 8, 2019 at 11:35
0
\$\begingroup\$

You could do this in Fritzing using a 1 x n pin header component to add the n extra holes (a 1-pin header is your 'empty lead component'). Place the header on the PCB layout first, place the copper tracks as you want them, then go back to the schematic view and tidy up there. You'll probably want to hide the silkscreen for the header.

This won't leave you with a fully professional looking schematic, but if you needed that you wouldn't be using Fritzing. It should achieve what you need on the PCB though.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.