Pin 1 Markings and PCB Assembly
3 minute read
Most pick and place files are programmed by hand. Remember this and repeat it to yourself whenever you’re checking your files for PCBA manufacturing. There’s a great talk by Chris Denny from KiCON 2019 where he discusses this issue in depth youtube link.
Assembly layers are a great utility to supplement the silkscreen to help out the guy programming the pick and place. We want to make their lives as easy as possible to cut down on unpleasant surprises. For reference designators the KiCAD library default of placing the reference designator under the part on the assembly layer is a big help.
KiCAD's default footprint format. The ${...} means replacement with variable, just like shell scripting. The grey bit is the assembly layer which isn't actually on the physical board.
Silkscreen can be difficult when you’ve got a tightly packed board. You need to move parts around and usually end up with designators moved away from the part itself.
Not the silkscreen is not placed directly next to each part. This is designed for someone working on a board to be able to find the part.
Moving the silkscreen can be ambiguous and it can easily be misleading. Leaving the reference on the assembly layer directly under the part removes this risk. Several years ago I was using Diptrace which doesn’t make using the assembly layer easy. The silkscreen was misleading and I ended up with several hundred boards with two passives swapped.
Today I have a far worse issue.
Rotated QFNs.
QFNs are typically rotationally symmetrical so there are 4 ways to screw up placement. I’m using the KiCAD QFN library for my footprint and I’ll got to say it: this is not a good pin one marking in silkscreen.
This is a TERRIBLE pin one marking. The assembly layer is fine, showing an obvious pin one marking. The silkscreen however...
There are CAD programs which don’t do much with the assembly layer so the silkscreen is the default and the first line of defense.
Here’s the improved footprint. You can’t miss that pin one marking, any mistakes are enemy action. Guess which version my design was using? The assembly layer should have been used. It was not. The centroid (pick and place file) is correct, the parts alignment step is correct. The assembled boards are not correct.
I will be making my markings as obvious on the silkscreen as possible from here on out. Now I’ve got to sort out a few hundred QFNs with the wrong orientation.