Just finished designing a PCB and sent the Gerbers off to my board house (Bittele) and they have requested that I also provide them with a pick and place file.

Using Eagle, I ran mountsmd.ulp and generated a pick and place file for my board.

Looking over the file and comparing its output to my board layout file, I noticed that the centroid of my FET component appears to be located off of the body of the component:

enter image description here

enter image description here Is this a mistake?

I think this Eagle ULP takes the centroid of each pad, determines which pads are at the extremities of the component (i.e. if it was a 6-pin sot23 device it would take the four corners) and then finds the geometric mean of these pads.

In my example this ends up being off of the body of the component.

For larger components like this one, does the pick and place machine automatically make an adjustment on-the-fly so that it picks up the component by its body?

  • \$\begingroup\$ Did you want them to quote assembly or just fabrication? If they're asking you for a centroid file, they're quoting fabrication as well. Make sure you're both on the same page. \$\endgroup\$
    – Matt Young
    Aug 9, 2017 at 2:30

1 Answer 1


Pick and place machine does not use the file that you provide to pick up components - only to place them. When picking up, it uses internal library of components with defined dimensions, picking points and rotations.

When it comes to coordinates of centroid - in my opinion it is correct. I think your marker is located at the center of the outline of the component, not the center of body itself. But, to be honest, it does not matter that much. Most of the time, the PnP machine operator still needs to correct positions of "odd" components by hand. Components like DPAK-s, connectors, sockets etc.

  • \$\begingroup\$ Thanks, my mind is at ease. But, just to clarify, the best practice for creating a pick and place file is to go by the center of the "outline" of the component? So if I were creating a part in a custom Eagle library, I would want the origin to be at the center of an imaginary square projected 90° down onto the board that bounds the entire physical components' geometric features? \$\endgroup\$ Aug 8, 2017 at 23:13
  • \$\begingroup\$ Or, I guess depending on the way the eagle script works, maybe all I have to do is make sure to draw a square on the Outline layer whose center is the geometric center of the part (as viewed from above to board), and not worry about where the origin is. \$\endgroup\$ Aug 8, 2017 at 23:27
  • \$\begingroup\$ Yes, it's a good practice to place origin in the centre of the outline but it is not necessary. I don't know if all, but at least some of the other EDA programs generate PnP files with both coordinates. You get 2 columns with coordinates in relation to part origin (X-REF, Y-REF) and 2 columns with coordinates in relation to centre of the outline (X-MID, Y-MID). The latter ones generated on-the-fly by the software. And, from my experience, most of the time the MID-X and Y coordinates are used when programming the machine, simply because they are more universal than the "reference" coordinates. \$\endgroup\$
    – desqa
    Aug 9, 2017 at 6:22
  • \$\begingroup\$ Also, regarding the "good practices" there are a few things worth remembering (if you want to make assemblers job a little easier): 1. If you can, use the standard "zero rotation" of components in your library (you can check it in IPC documents or datasheet of your component, blogs.mentor.com/tom-hausherr/blog/tag/ipc-standards), 2. Place origin of your PCB in some characteristic place (edge of the PCB, fiducial, small hole etc.), 3. Add fiducials to the PCB (and, if you can, export them to PnP file). \$\endgroup\$
    – desqa
    Aug 9, 2017 at 6:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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