When I was first working with AVR microcontrollers, I relied a lot on tutorials I found on the web, but nearly all of them raised the question of how to attach a programmer to the microcontroller when you aren't using a development board. Most of the time, I would see people shoving pieces of wire into the end of the programming cable to connect it to a bread board, but this is clunky and is too easy to get messed up. Plus, what do you do when you are working on multiple devices at once? You would have to continuously move the wires back and forth between your devices and probably have to look up the connections in the datasheet each time. Other people had built circuits with the header on one side and pins to go down to the appropriate breadboard sockets on the other side, but this is a bit ridiculous and not everyone has the time or tools to make a printed circuit board. I decided enough was enough and came up with a simple but effective way to connect an ISP programmer to the breadboard.
Step 1: Required Materials
The standard AVR programmer comes with a 10 pin or 6 pin connector; many have both. I prefer the 6 pin version because it is more compact, but this guide can still be followed to create a 10 pin version as long as the correct connections are used.
Thing You'll Need
AVR ISP Programmer - Not exactly required, but why else would you be doing this?
Row of breakable header pins - You'll need 12 pins for the 6 pin header, 20 pins for the 10 pin header.
Needlenose pliers - helpful for breaking the header pins apart
Red and Black Marker (optional)
Step 2: Creating Pin Sections
Break the headers into sections of 4 pins. You will need 3 sections for the 6 pin header and 5 sections for the 10 pin header.
Step 3: Rearrange the Pins
Next, the outer two pins are removed from each header section, but don't lose them! This can be done easily by pushing the pin down onto the edge of a hard surface. The pins sometimes have a sort of ledge to keep them in place, so if it doesn't come out easily, try pushing in the other direction.
The two inner pins then need to be bent out towards the outer edge of the header.
Step 4: Replacing the Pulled Pins
The pins that were pulled out should now be pushed back in the opposite direction. They can then be soldered to the pins that were bent outwards in the previous step. If you used white headers, this is a good time to color them for identification. I color one red and one black to signify power and ground.
Finally, the sections need to be glue together. The only thing that matters here is to put the colored pins in the correct place. Refer to the image in Step 1 for the 6 pin header. Instead of holding the header to dry, it can be inserted into a breadboard so it keeps the proper form, just be sure not to actually glue the header to the breadboard!
Now, you have a simple header to connect your programmer to your AVR chip that should fit perfectly across the center gap of a standard breadboard!
I have made of a few of these for use with multiple devices. Now, I only have to look up the correct ISP pins on the chip once. The colored corners also make it really easy to figure out which way the programming cable should be connected. It may help to color one corner of the programmer red to line up with the red corner of the ISP header, but this can be difficult since most of the cable terminations are black.