Footprint for component with some flying leads?

I hereby certify that I am not simply asking someone else to design a footprint for me.

I’d like to know which footprint feature(s) to use to add TH pads that receive a component’s flying leads, such that those pads are free to be moved at layout time.

The case in point is for a transformer (2cm x 2cm) which has some fixed pins, plus several additional flying leads for taps that could not be accommodated on the standard pins. The fixed pins obviously lend themselves to fixed TH pads. Additional fixed TH pads could be used for the flying leads, but for various reasons, that restricts the layout too much. Those pads need to be movable independently.

  1. I wondered if ordinary pads in a footprint could be moved in KiCad’s PCB editor, but I did not find a way to do so.

  2. I wondered if there was a way to create a footprint with multiple sections, which could be moved independently. (Possibly requiring multiple sections in the EESchema symbol, but that’s acceptable.) I did not see docs or posts on how to do that.

Are either of these approaches possible, or some other approach?

Thanks. Graham

Thanks. Graham

You can set pads of a footprint to be “freely movable”, but it is for all pads of the footprint.

The simplest solution (workaround?) is to use a completely separate schematic symbol and footprint for the extra winding. If you edit the properties of a footprint in Pcbnew, you can set this with:

1 Like

If I were you, I would design a footprint with fixed pads and another footprint for each of the flying leads, which would be a simple pad.

Of course with this method you should put multiple symbols for the transformer. This would be the price for the flexibility.

1 Like

FYI, in the unstable development version 5.99 (nightly build) each pad can be locked/unlocked individually.

2 Likes

Wow! Within 15 minutes, three helpful answers already! Thanks everyone!

So, short of using the 5.99 version of KiCad, so far the best answer seems to be to have one symbol and footprint for the transformer’s fixed pins, and a second symbol and footprint, set so its pads are unlocked, for all the flying leads.

Sadly, the flying leads are not for completely separate windings, which could have made for two well-combining schematic symbols. But I guess with some careful drawing of the two symbols I can make them graphically interleave nicely on the schematic.

Unfortunately, this is probably the best solution even for 5.99 (eventually 6.0). The issue that I’m seeing here is while you can move pads of a footprint around on the PCB (this is an old feature), if you find you need to update your modified-on-board footprint (because you need to fix drill diameter issues, want to update the silkscreen, etc) to a newer version in your library, all the pads that you moved before will snap to their original (in library) location and you will have to manually move them again. Seems to me that introduces a potential forgotten step that will result in an unusable board. Forgetting to re-align the schematic symbol if you make changes to that will not result in an unusable board. For that reason I’d leave a potential oversight in the schematic and not the PCB.

But, as always, this is just IMHO. You may choose to skin your cat differently than I.

@SembazuruCDE If “Update footprint from library” is supposed to leave the footprint in the existing position, it should surely also leave the movable pads in their modified positions too, shouldn’t it?

If instead it changes the position of the movable pads, that would seem like a bug.

I guess it runs into the difficulty that a footprint in the library might have been revised deliberately to move the pad locations. In that case, “Update footprint from library” should override the positions of the pads on the PCB that had not been “manually moved”. So that would precipitate a need for the PCB data to capture not just the pad position, but whether or not the pad position had been manually moved.

@paulvdh By the way, thanks for going to the effort of including that screen capture to make things crystal clear.

The existing position is relative to the insertion point. If you moved the insertion point in the footprint (from, say, center of part to pin 1), the updated footprint will shift location on you. AFAIR any rotation will be reset back to zero and you’ll have to re-rotate the footprint.

How is KiCad supposed to know what features you want to load from the library and what features you don’t want to load from the library. If the change was to widen the placement of the pads because they are too close together in the first iteration, should KiCad just not update the board with the new pad placements? If the library had the correct position of “moveable pads” that you want to get back to (either you accidentally moved a pad to the wrong location or you realize that the original location works better for your layout, but the original location isn’t on a grid), how frustrating would it be to not have KiCad reposition moveable pads to the original location?

If you want to keep things simple:

Just put everything in a single footprint, and use different models of pads for the “moveable” and the “static” pads. Then also add a text note (for example on a Fab layer) to which pads can be moved.

To make the distinction you can experiment a bit with Oval, Rectangular, Rounded Rectangle etc.

The disadvantage is that that “static” pads can also be moved accidentally, but there are 2 easy solutions that mitigate the risc for this.

  1. After moving the correct pads, you can set the “lock pads” option in the footprint itself again (see previous screenshot).
  2. When in doubt, you can re-load your library footprint again. (With Footprint Properties / Update Footprint from Library…

Note that Pcbnew stores copies of all used footprints in the PCB file, and such edits are therefore specific to the project you’re working on.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.