pre-programming the smd version of atmega328?

I want to make some PCBs that employ atmega328s, and I prefer to have the Arduino bootloader and an FTDI breakout (like Arduino Pro Mini), versus relying on an ICSP. But other than de-soldering a Pro Mini, how would I go about getting some pre-programmed atmega328 chips?

Somebody suggested programming the SMD chip while holding it pressed (by hand) to the pads.
Another solution, expensive though, would be using a ZIF socket:
http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=A450-ND

I was thinking about using a modified SMD stencil for this purpose. Only made of thicker material. Glued to a suitable PCB it would keep the chip from sliding off the pads. Without it they tend to slide off, especially on PCBs with a HASL finish (pads are not necessary 100% flat).

So far I only couldn’t find suitable materials with proper thickness (0.25mm / 10mil). Mylar/Kapton films are too thin, acrylic sheets too thick.

madworm, stencilsunlimited offers stencil with a thickness of 0.016" (0.4mm):
http://www.stencilsunlimited.com/product_info.php?products_id=356

Well, I won’t shell out 99$ for a small piece of laser cut plastic foil.

So far I’ve had a look at Ponoko, but they don’t have the right material.

You might as well figure out a way to include an ISP header and then use the normal methods of programming. Just consider what will be necessary if something ever goes wrong with the Arduino bootloader! No one ever regrets putting an ISP header in their design. If the normal header is too big, maybe try a smaller one: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=S9015E-03-ND

Half pitch 2x3 header. And here’s a matching female 2x3 connector for your adapter: http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=S9009E-03-ND

It’s close to the size of a 0.1" 2-pin header.

I want to make some PCBs that employ atmega328s, and I prefer to have the Arduino bootloader and an FTDI breakout (like Arduino Pro Mini), versus relying on an ICSP. But other than de-soldering a Pro Mini, how would I go about getting some pre-programmed atmega328 chips?

Could you make a bare-bones temporary icsp connection on your custom board - it’s only 4 pins plus power and ground.

If that’s a no-go, there’s a company called schmartboard(yeah, stupid name) that makes easy-solder smd boards with deep tinned grooves that might work.

Seems to me though, that any sort of press-and-program dealie is going to expose the chip to mis-connection and static destruction.

How does Sparkfun (or Seeestudio for that matter) do it? Do they use ZIF sockets to program the bootloaders onto the chip?

Sparkfun uses a bed of nails for at least part of their testing and production. Check out their “pogo pins” and a related article.

http://www.sparkfun.com/commerce/tutorial_info.php?tutorials_id=138

-j