If your DIY tinkering tends to lean toward the programming side, there's a good chance you're familiar with AVR microcontrollers. There's also a good chance that you may have been confused when, right out of nowhere, Atmel (the company who designed the AVR family) changed the AVR in-system programming (ISP) interface from 10 pins to 6 pins. Even worse, Atmel’s terrific USB ISP programmer, the AVRISP mkII uses only the modern 6-pin interface. No legacy support for your older AVR-related hardware here, folks. So what’s a poor budding AVR programmer to do?
Create a two-headed AVR programmer with legacy ISP support. That’s what!
Lest you think that 10-pin ISP interfaces are a thing of the past, check out the fantastic product lineup from Olimex. The 10-pin ISP interface is alive and well, thank you very much. So, an AVR programmer that can handle the modern Arduino 0010 Diecimila and the Olimex AVR-MT would be a versatile tool, indeed.

If you don’t already own the AVRISP mkII, you can purchase one for around $36. Regardless of whether you already own a Mark II or purchase a new one, this simple mod only requires one low-cost part for enabling you to program any ISP AVR.
Wow, what a gaff. Atmel manufactured some Mark IIs (between October 2007 and January 2008) that can’t program a target ISP AVR. If you own one of these cranky ISP programmers, rush to Atmel for a free firmware update release that will fix your broken programmer. Now your Mark II should work.
Time: 1 hour
Cost: $1.50
Difficulty: Easy
1. Download Application Note AVR042. Refer to page 5 for connecting our 10-pin cable to the Mark II’s 6-pin header. NOTE: the Web is rife with wrong wiring connections for the 10-pin interface. Use this Atmel Application Note and you won’t have any troubles.
2. Carefully snap apart the AVRISP mkII plastic shell. Release the two plastic ears that hold the PCB in place and lift the board out of the plastic shell. Identify the 6-pin ISP header and turn the PCB over. The underside of this 6-pin header is where you will be soldering the 10-pin ribbon cable. On the underside, pin 1 is identified with a square.
3. Snip one of the headers off the 2x5 pin IDC ribbon cable. Carefully, separate each of the ten wires; about one inch of length will do. Strip, twist, and tin each wire.
4. THIS STEP IS CRITICAL--TAKE YOUR TIME. Identify wire 1 from the 2x5 pin IDC ribbon cable. This is MOSI for the 10-pin ISP. Pin 4 on the 6-pin Mark II interface is MOSI. Locate this MOSI pin on the underside of the 6-pin interface of the Mark II. REMEMBER the 6-pin interface is UPSIDE DOWN. Make sure that you have correctly located pin 4 and then solder wire 1 to the UNDERSIDE of the Mark II PCB’s 6-pin interface. Got it? Read this step over a couple of times, study the Application Note diagram, then make the connection.
5. Repeat the same ID process for each of the remaining 9 pins of the 10-pin interface. Connect wire 3 of the 2x5 pin IDC ribbon cable to ground. Also, wires 4, 6, 8, and 10 are all connected to pin 6 of the Mark II 6-pin interface. These are ground (GND) connections. I used a black extension wire to bundle all of the GND wires together prior to soldering just the extension wire to the Mark II GND pin 6.

6. Check all of your solder connections with a multimeter, then refit the PCB into the plastic shell, feed both the 6-pin ribbon cable and the 10-pin ribbon cable out through the slot in the Mark II plastic shell and snap the case back together. It’s a tough fit, but once the case snaps together it’s a sweet mod.
7. Try to program an AVR from within the FREE AVR Studio 4.13 (build 528) environment with the 10-pin ISP connector on an Olimex AVR-MT PCB (or, choose another 10-pin ISP dev board). It should work without a hitch.
Enjoy your incredible two-headed AVR programmer. Special Note: this programmer will be used in an upcoming project.

Stay up to date on the latest news of the future of science and technology from your iPhone with full articles, images and offline viewing
Featuring every article from the magazine and website, plus links from around the Web. Also see our PopSci DIY feed
Share links with friends, comment on stories and more
In our December issue, Popular Science names the 100 best innovations of the year: bombproof wallpaper, self-parking cars, the fastest helicopter, and 97 more. Plus inventor profiles and videos.
Check out the best of what's new here.




Rather than soldering directly to the AVRISP board, you could make an adapter cable and keep your warranty intact. Or for a super-clean solution, SparkFun also carries an “AVR Programming Adapter” board for just under a dollar. They advertise it for connecting older 10-pin programmers to newer 6-pin ISP devices, but it works both ways:
http://www.sparkfun.com/commerce/product_info.php?products_id=8508
(header pins/sockets are also available, but not included)
I recently encountered an unusual AVRISP problem, but with a quick easy fix. The mkI programmer has polarized 6 pin and 10 pin sockets, but the AVRISP mkII just has six bare header pins. A forum-friend recently received one with the header cable plugged in backwards internally (new, out of the box, straight from Digikey!), and it took forever to figure the problem out. I’m sure this is rare, but watch out!
-Adam
P.S. How’s the 136 year archive coming along?