user7572: I bought 10 Arduino Nanos for a project, each with all of their headers soldered in place.  Each was going to go into a tiny space, so I found myself needing do desolder the ICSP headers.
This led to a bit of a moral conundrum.  What would I lose by removing these useful looking headers.  They cover quite a lot of space on the nano, so they must be important right?  Am I going to regret removing these things when I finally realize how useful they are (I thought to myself.)
In the end, I did remove the ICSP headers, but the event got my thoughts going.  What is this header all about?  Why is it there?  What can I do with it?  I began to search for things that I could do with the ICSP header, but engaging results were not forthcoming ( except for this project:  https://www.arduino.cc/en/Hacking/ParallelProgrammer )
Anyway, I was more interesting in things that flash, move, jump, sing, and such, so are there any interesting things that can be done with the ICSP header?

user7572: One interesting thing I just came up with: you could use this header to attach a simple control panel for your Arduino.  
Imbed the Arduino in any place/box/machine you like. Then use a cable with a 6 pin connector to connect the header to a small control panel.  The panel could have 3 buttons or LEDs, a reset button and a power plug.

user368: 
You can use every single last byte of flash on the device.
Since you're performing low-level programming of the device you get the entire chip to play on, without having to worry about bootloaders and such.

You can debug (breakpoint, single-step, watch, disassemble, etc.) the code on the chip using software on your computer.
Admittedly the devices you'd need in order to do so are more expensive than a simple ISP programmer and it only works with specific pieces of software, but it can be done.



7572: <p>I bought 10 Arduino Nanos for a project, each with all of their headers soldered in place.  Each was going to go into a tiny space, so I found myself needing do desolder the ICSP headers.</p>

<p>This led to a bit of a moral conundrum.  What would I lose by removing these useful looking headers.  They cover quite a lot of space on the nano, so they must be important right?  Am I going to regret removing these things when I finally realize how useful they are (I thought to myself.)</p>

<p>In the end, I did remove the ICSP headers, but the event got my thoughts going.  What is this header all about?  Why is it there?  What can I do with it?  I began to search for things that I could do with the ICSP header, but engaging results were not forthcoming ( except for this project:  <a href="https://www.arduino.cc/en/Hacking/ParallelProgrammer" rel="nofollow">https://www.arduino.cc/en/Hacking/ParallelProgrammer</a> )</p>

<p>Anyway, I was more interesting in things that flash, move, jump, sing, and such, so are there any interesting things that can be done with the ICSP header?</p>
 7572: <p>One interesting thing I just came up with: you could use this header to attach a simple control panel for your Arduino.  </p>

<p>Imbed the Arduino in any place/box/machine you like. Then use a cable with a 6 pin connector to connect the header to a small control panel.  The panel could have 3 buttons or LEDs, a reset button and a power plug.</p>
 368: <ol>
<li><p>You can use <em>every single last byte</em> of flash on the device.</p>
<p>Since you're performing low-level programming of the device you get the entire chip to play on, without having to worry about bootloaders and such.</p>
</li>
<li><p>You can debug (breakpoint, single-step, watch, disassemble, etc.) the code on the chip using software on your computer.</p>
<p>Admittedly the devices you'd need in order to do so are more expensive than a simple ISP programmer and it only works with specific pieces of software, but it can be done.</p>
</li>
</ol>
