Bread Head

Posted: 23rd September 2011 by Quinn Dunki in Hacks

A breadboard programming header for AVR microcontrollers


I’ve been working with AVRs quite a bit lately, and I wanted a quick way to program them on a breadboard. Something that would be durable, and easy to stick into an existing circuit for rapid iteration of code.

This is what I came up with. I call it the Bread Head.

This is designed for 8-pin AVR microcontrollers. Note that Pin 1 is marked, as is the "notch" on the standard 6-pin programming header. I'm a huge fan of the ATtiny13a, and I use a lot of them, so this was a logical form factor for me.


This little guy was easy to make, and has been a real time saver when iterating on a breadboard. The trick is upside-down protoboard, and longer-than-usual headers! Read on to see how it’s built.

The connector on top is just two rows of snappable header, three pins long. The trick is that they are soldered to the top side of an upside-down piece of protoboard. Soldering under the plastic bits without melting them was a bit tricky. It's important that the pins do not stick through the protoboard. They are flush with the non-copper surface.

The two rows of four pins on the bottom are also snappable headers. The trick with these is that they are longer than usual. These are 13mm long (shown here, next to standard 10.37mm headers). They must not be any shorter than 13mm. Longer is fine.

The four-pin underside connectors are simply solder to the copper pads on top of the protoboard (which is normally the underside!). Next, very carefully run jumpers from each pin on the topside header to the appropriate pins on the underside headers.

Here's another angle on this process. These connections are a bit tricky and space is tight, so take your time.

Here it is all assembled, and ready for testing!

The other side. Purple is the prettiest wire colour.

Now we're ready to test it. You can see how it fits over the microcontroller. All you have to do is leave an empty row of holes immediately surrounding the chip. Otherwise, you just prototype your circuit as you normally would.


Here it is fully inserted, with the programmer attached. Notice that I wasn't kidding about the 13mm headers or the flushness requirement of the topside pins. The non-copper side of the protoboard is tight against the top of the microcontroller.

Once I knew it worked, I slathered the whole thing in epoxy. It's going to get yanked in and out a lot, so it needs to be tough. I also marked pin 1 and where the notch would be if I wasn't too cheap to buy a 6-pin boxed header. Note how leaving an empty row of holes around the chip is all that is needed. Prototype away!

Here's the header doing its thing without complaint in the real world.

That’s the Bread Head. This has been such a success, that I think I will make other sizes for other common AVRs, such as the ATtiny2313.


  1. Neuport says:

    Great idea. I did something similar but with a socket and the header extending from the end.
    I have another built with a 28 pin socket and along with the header I included a pair of female headers and caps so I can plug in a XTL if I want external XTL timing.

  2. Doug says:

    Brilliant in it’s simplicity. Thanks for sharing!

  3. lams_007 says:

    nice idea I will make one for 28 pins avrs looks great and easy to use and build, yo can also do debugging with that :D via ISP

  4. Akoi Meexx says:

    Love this idea! I’ve been using Attiny13′s quite a bit lately as well, and have been thinking about setting up an easier way to connect them from breadboard to programmer rather than jumper wires. My solutions aren’t nearly as elegant as this, great job!

  5. Ragnar says:

    I love the idea, and will adapt it a bit, as I found the square pins widen the breadboard quite a bit, I will try a cut-in-half IC socket with round pins as platform, they are not as wide. Experience might vary with breadboard manufacturers.

    • blondihacks says:

      Interesting- I have noticed that the square pins are more difficult to insert than round leads. Stands to reason that they would result in more stretching of the connections. Some lengths of snap able SIP socket could be of use here- nice single rows of .1″ spaced round pins.

  6. Ray Moore says:

    Just a thought, to make it even tighter and simpler, use an 8-pin socket to build on. The kind with strong but flat pins. Then you just slide it down over the top of the chip and voila. The pins will make contact with those of the chip directly rather than going into the next row of holes on the breadboard. This is handy if you want to reprogram a chip already soldered onto a board. I’ve used this method to make test connections on boards for many years.

    Ray Moore

    • blondihacks says:

      Good idea, Ray! I seen people do this with pogo pins as well. For me personally, I like something that I can leave connected and will stay solidly in place under its own power. This allows me to go back and forth from code to circuit very often.

  7. Rando says:

    Sweet! You have skills…

  8. I love this a lot. I made a PCB version since my soldering skills aren’t as good as yours with loose wires. Photos:

    Eagle files here:

  9. Pedantite says:

    Your blog inspired me to make my own version of the Bread Head:

    For a JTAG connection for a ATmega 644 40 pin DIP. The biggest departure I used from you technique was to use plastic (“Shapelock”) instead of epoxy to hold it together. I also considered hot glue, but I can’t seem to glue stuff without making a huge mess.

  10. Derek Lewis says:

    I really wish someone would make a proper PCB for this (and for other AVRs) so I could just order one and solder headers onto it. I’ve been wishing that for a while, maybe it’s time I was that someone. Unless you know of a PCB design out there for this already… ?

  11. Derek Lewis says:

    The perfboard solution definitely has the “making do with what’s at hand” awesomeness to it. :)
    At only $2.30 (free shipping) for 3 of them from though, it’s hard to go wrong.