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?

  • Mostly useless. You can always add them back if you need to, or use the other pins (as the ISP header pins are the same as pins 11,12,13,RESET,GND,VCC)
    – Gerben
    Sep 5 '15 at 9:20
  • Are they the same pins for all Arduinos (mega, nano, etc.)?
    – Hoytman
    Sep 5 '15 at 15:57
  • Not necessarily. Pins 11, 12, 13 are MOSI, MISO, SCK on the ATMega328 based boards (like Uno and Nano).
    – Gerben
    Sep 5 '15 at 18:59
  1. 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.

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


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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.