AVR ISP Header for Breadboards

The correct ISP layout is illustrated in the Atmel application note AVR 910: In-System Programming. 


Although a 10-pin header is also commonly seen, the 6-pin version is more desirable as it reduces board space and simplifies the design. Many commercial programmers use a cable containing both 6 and 10-pin versions including the USB programmer I typically use from Sparkfun. In almost every how-to guide I have ever seen with pictures, the illustrator has connected the programming cable to the breadboard by jamming wires into the ends of the cable. This is a huge mess and does not (easily) allow the use of multiple MCUs as I have mentioned before. It also means that every time you want to test your circuit without the programmer attached, you will have to look up the correct pin out (unless you have a better memory than me) to reconnect the cable for further programmer. Enter my design.

  • Find some single row, breakable headers. I prefer white for this project because I like to add color with a sharpie to better distinguish what pin is what. These can be picked up at pretty much any electronics supplier.

  • Break off three 4-pin sections for each header you would like to make. It's pretty handy to have a few lying around, especially if you use multiple MCUs like me, so you had might as well do it all at once!

  • Using a pair of pliers, remove the outside two pins. The edge of a table can be used to get them started, but be careful not to leave an indention in your furniture! Don't lose them, they will be put back in later.
  • Bend the remaining two pins toward the outside of the sections.
  • Push the two removed pins back through their holes in the opposite direction so they stick out the other side.
  • Solder the inside and outside pins together.
  • Color one side of one section red and another black.
  • Using super glue, adhere the three sections together such that the red corner represents VCC, and the black corner represents GND.

The finished product should fit perfectly across the center section of a standard breadboard. With this header in place, the programming cable can easily be removed for testing or programming additional devices. The appropriate data sheet should be consulted for the connections between this programming header and the correct micrcocontroller pins. If a 10-pin header is desired, these same steps can be used by increasing the broken pin sections from three to five and adjusting the location of the VCC and GND pins.

It may also beneficial to color one corner of your programming cable red for easy alignment with this header; however, this can be difficult because of the typical black plastic used in for the female header at the end of the cable. In such cases, the use of paint or a piece of red tape may be necessary.