Vinnies Definite Straddling Header
From Just in Time
After some months of struggling with the programming header breakout boards I had a new insight; the programming header could be placed OVER the AVR microcontroller to 1) save space and 2) make fast and easy connections.
The first prototype was for the Attiny2313 and did just that; it connected the programming header pins to the appropriate pins. This is the basic straddling header. I made two separate versions; one for the Attiny2313 that I was using at that time, but the Atmega8 and Atmega88 were beginning to become my favorites, so I designed some for those too. Unlike Danny's version, I choose to have the cupper on the underside of the board. That way the pins would be more stable on a downward force. However, removing the boards had to be done with care.
For a class of students I designed the 'definite' straddling header, that also included some stuff that almost every AVR circuit needed: decoupling capacitors. By adding these, I made sure that some microcontroller crashes that sometimes occur by switching larger currents (that cause voltage drops) wouldn't bother them too much. For some circuits, timing is essential and you need a crystal. However, crystals on breadboards are bothersome because of the necessary capacitors with weird, never used values that you know you have somewhere but you can never find. The thin wires on those pF capacitors make brittle contact and are the cause of unpredictable behaviour. Therefore, it is much easier to place a crystal of the highest frequency the specific AVR can handle on the board, including the SMT capacitors. To avoid a faulty connection of the programmer, it's better to use the correct IDC socket.
For the pins I now use extra long pin headers. These can be fed 'through' the board for included stability. The plastic on the top side, combined with the solder on the bottom side creates a very sturdy design. I also added a second pin besides the reset pin (for strength) and two dummy pins on the other side of the board for extra stability. Since the board now rests on four pillars, it's easier to connect and disconnect the programming header. The extra pin besides the reset pin is on pin D0, so I could as well add a led there to make it easy to flash your first blinkled program to the AVR. The only downside there is, that if you are going to use the serial on higher speeds, the Led could be bothersome. A next version might have a jumper there to disconnect the led if necessary.