I recently bought Arduino Uno rev 3 board and I spent a lot of time trying to figure out the function of each individual pin. I googled all the fancy terms like IOREF, SDA, etc. and one by one I figured out the functional purpose for most of the pins.

However, there are few pins (actually pin groups) which have no labels around and I find it really difficult to figure out what these pins are supposed to do.

Again, I googled around and found this schematic from which I figured out that the 6-pin group at the bottom is about something called ICSP (or at least this is what is written there). When I googled this term, I found this excellent explanation about the serial communication protocols.

However, at this point I am really confused.

  • The explanation about the serial protocols doesn't mention at all ICSP. By googling even further I only get more and more confused. Yes, I found the ICSP wiki page but I am not 100% sure that the bottom 6 pins are related to ICSP.
  • From the same schematic which I found I see there are 4 additional soldered pads with label JP2 right above them. Currently I have no clue about the function of these pads. Question 1 - what are these soldered pads for?
  • Right next to the JP2 stuff is a group of 6 pins (3 rows, 2 columns). The schematic is not clear about these pins. Question 2 - what is the purpose of these pins? Question 3 - where can I find the actual schematic (layout) about each individual pin?
  • I am not 100% sure that the bottom group of pins (2 rows, 3 columns) is related to ICSP. Maybe that's the case, maybe it's not. Question 4 - what is the purpose of these pins? Question 5 - where can I find the actual schematic (layout) about each individual pin?

Thank you in advance for your help!


1 Answer 1


The ICSP pins have two functions:

  1. For programming the ATMega328P directly using a hardware programmer (In Circuit Serial Programmimg)
  2. SPI connections for shields in a standard place.

They are used for SPI because different boards have the SPI pins on the main headers in different locations. All boards should have this 6-pin block in the same place though meaning that shields can then work with more boards.

On the Uno they share the same physical connections as digital pins 11-13 plus reset and power.

JP2 and the other 6-pin block are connected to the USB interface chip (ATMega16U2). The 6 pin block provide ICSP for programming that chip. The other 4 (unpopulated) pins connect to GPIO pins on that same chip. They can be used for anything you like if you replace the firmware on the USB chip.

For now ignore those two pin groups. They aren't really anything to do with the Arduino side of things, only the USB interface.

You can find all this on the official Uno schematic which is on the official Uno product page: https://www.arduino.cc/en/Main/ArduinoBoardUno

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