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?
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.