Introduction: ArduinoISP Wire Harness

After playing around with Arduino Uno, I grew my hunger for more I/O pins and urge to get Arduino like functionality for cheap.

I came across Sanguino page [link] and RepRap page detailing about loading bootloader to Sanguino (Atmega16A) chip [link].

I experimented with breadboard and some Atmega16A chips.

I found it cumbersome to each time wire the whole circuit on breadboard. But at the same time using Arduino as ISP is lucrative.

I designed this harness to connect Arduino and Atmega16A chips and be ready for downloading programs to target chip in no time

Note 1: I have written this Ible with Arduino Uno and Atmega16A as my target chips.

Note 2: Please take care about Uno and the Atmega16 chip and double check all connections before powering up. These chips can easily get destroyed.

Step 1: Harness Circuit

This wire harness is very simple and uses idea from Sanguino page detailing about programming Atmega644 with Arduino ISP.
In schematics, you can see harness wires originating from Arduino and their corresponding end-points at Atmega16A.

List of items needed for wire harness
1) Some wires
2) PCB pins
3) heat shrink tubing
4) LEDs
5) 0.1 Micro ceramic capacitor
6) 1 K ohm resistor

Solder wires to PCB pins and use heat shrink tubing to insulate pins. Connect LEDs, 1K resistor and capacitor as per schematic.

In addition, you need to connect 16MHz crystal to pins 12 and 13 of Atmega16A. Also connect harness Vcc and GND pins to corresponding Atmega16 pins.

Step 2: Hex File

Write your code in Arduino IDE, compile and locate the resulting HEX file (check this to know where HEX files are) or be ready with you HEX file

Step 3: Be Ready With Arduino Uno

Find out the port at which Arduino is connected
Download program ArduinoISP to Arduino Uno

Step 4: Connect Uno to Target Chip

Connect Arduion Uno and Atmega16A (on breadboard) using the harness as per schematics given.

Step 5: Burn HEX File to Target Chip

Go to command prompt on Windows machine
Navigate to folder where HEX file is placed
Type command as follows and press Enter

avrdude -p m16 -P COM6 -c avrisp -b 9600 -U flash:w:test.hex

TX and RX LEDs on Arduino will blink

If everything goes fine, you should see writing action, reading action and finally something like this in command prompt window

avrdude.exe: verifying ...
avrdude.exe: 132 bytes of flash verified

avrdude.exe: safemode: Fuses OK

avrdude.exe done. Thank you.

Three LEDs in the harness will also blink and show status.

Note: Do not touch or try to remove any wire while programming is in progress. This will brick Arduino or the Atmega16 chip or both.


BraunPhilipp (author)2015-05-20

I have tried to adjust your tutorial to use it on an Atmega8 chip. After this command: "avrdude -p m16 -P COM6 -c avrisp -b 9600 -U flash:w:test.hex" I get the following error :/

avrdude: stk500_getsync(): not in sync: resp=0xff
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xff

priaps (author)BraunPhilipp2015-12-30

Apologies for late reply. This post can help you