Arduino to PCB - Bootloading an SMD ATmega328p

Hi all,

I'm primarily a software developer, but I am now getting my own Arduino project set to PCB production very soon. The board layout for the gerber/schematic files are being done by a third party.

My main question is, if I am getting my ATmega328p surface mounted, do I need the ICSP pins on my board exposed so I can bootload the chip with the Arduino bootloader? (I don't mind the ICSP pins being exposed on the board)

Do I need to leave any specific pins/lines free in my project for bootloading?

Thank you all.

Yes - need access to Vcc,Gnd, Reset, SCK, MOSI, MISO.
Either as pins in a header, see 2x3 header here, pinout found on Uno schematic


access to the pins at the edge of the board via breakout cable from the programmer,
or plug on an programming adapter.

Be sure the pins SCK, MISO, MOSI are either not connected to outputs from another device, and if they are, that the other device can have its outputs tristated/disabled.

If Atmel AVR ISP MKii is used for programming, it only monitors the voltage on Vcc pin, it will not power the board (unless it is modified - AVR ISP MKII Modification to provide power to circuit being programmed - Microcontrollers - Arduino Forum )

Either that or program them before they are mounted with a QFP socket like this:
http://www.aliexpress.com/item/Free-shipping-Universal-IC-Adapter-Socket-LQFP-TQFP-QFP-32-to-DIP32-TQFP32-QFP32-to-DIP32/1466727083.html

I've even heard of people using a QFP breakout board and clamping the chips to do the programming.