Footprint anchor and component origin for SMT part i KLC

Hi,

Using KiCad 5.1.9.
I don’t really understand how to get a surface mount footprint to comply with KLC when the pick n place pickup point does not coincide component centroid. I need the pick and place machine point to be off center from the part itself. But as I understand (or misunderstand) KLC the footprint anchor will coincide with pick and place pickup point?

When using the check_mod.py script I get errors for saying that anchor is not place in center of fab or pads. So how do I comply with KLC and still have a pick and place pickup point not centered? What am I missing?

This is not an answer to your question (my designs are not pnp), but related issue was recently discussed here: https://gitlab.com/kicad/code/kicad/-/issues/5073

The question here is why your Pick and Place machine needs “off center” reference points, and what are then those reference points? Does it use the center of pad 1 or something else? Is this a personal PnP machine or are you using some service? Maybe it is a setting in your machine you can adjust.

KiCad is used worldwide, and the KLC is a (pretty good) attempt to have a set of standard rules for libraries that work for most people, and also bring uniformity into the libraries. But this does not mean that libraries conforming to the KLC also work for you. In the end it is far more important to be able to manufacture your PCB then conforming to some set of rules such as the KLC. Sometimes you can’t have it all.

1 Like

I am trying to comply with KLC that states that footprint anchor should be pick and place pickup point.
In this case is a SMT connector that have pads on one side and a shape that gives the pick n place pickup point off center. From both fab and pad layers.

I think there is an exception noted in KLC just for such cases, but I do not understand why check_mod.py gives an error.

Yeah, but I thought I missunderstood (or maybe still do) the KLC so it would be possible to have an automatic check that my footprint comply with KLC. I would prefer it, if it is possible.

Fab?
You probably mean courtyard.

I just had a look at the library footprint of a TO-263. That is the SMT variant of a TO-220 with bent leads and cut of tab, and it has the anchor point in the center of the courtyard, with 8.32mm both left and right.

For this, you’d expect the optimal pick and place point to be in the center of the thick housing, as it provides the room for the biggest suction cup and is also close to the center of gravity for this part.

I’m not sure anymore if the anchor point is also supposed to be the pickup point for PnP machines. Partly because of the discussion linked to by poco. The KLC does bring uniformity into the libraries, and that is at least a good thing.

The KLC is also neither complete nor cast in stone. In section 4.1 for example:

Section 6.2 also makes an explicit exception for connectors, with the Molex Pico-Lock as an example.

Yes, that why I get so confused that check_kicad_mod.py fails. The exception case in F6.2 fits perfectly my situation.