5) We now need to copy the folder called “stk500v2” from the ZIP file and place this into the bootloaders folder as it is. The boot loaders folder is located at “/Resources/Java/hardware/arduino/bootloaders”
6) Restart Arduino.
7) Arduino will now have extra options for a “min 1284p – stk500v2 loader w/20MHz ATmega1284p”
Programming the boot loader
Setup the 1284p on the breadboard as per the instructions earlier but we also need to setup the ICSP header. The ICSP header shares 4 pins with the normal IO plus 5V and GND.
1) Connect the 5V line from the arduino board to the 5V on the breadboard.
2) Connect the GND line form the arduino board to the GND on the breadboard.
3) Look at the 6 pin header from the programmer.
4) Pin 1 is the hole nearest the red wire on the side of the plastic bump/key. This is MISO and goes to pin number 7 of the 1284p
5) Pin 2 is the other hole at the red wire side, this is 5V, connect this to the 5V on the breadboard too.
6) Pin 3 is the middle hole on the key side, this is SCK and goes to pin 8 of the 1284p.
7) Pin 4 is the middle hole on the other side, this is MOSI and goes to pin 6 of the 1284p.

Pin 5 is the bottom hole on the key side, this is RST and goes to pin 9 of the 1284p.
9) Pin 6 is the bottom hole on the other side, this is GND and goes to the GND on the breadboard too.
You can get break out board to use the ICSP header with breadboard or you can just use 6 breadboard wires.
This is a method that works using AVR studio 5 & AVR ISP mk II.
1) Install AVR Studio v5
2) Extract the HEX file from the ZIP folder
3) Under TOOLS locate “AVR Programming”
4) Select tool “AVRISP mkII”.
5) Select device “ATmega1284p”
6) Select interface “ISP”
7) Click “Apply”

Under “Interface settings” move the speed slider all the way to the left.
9) Under “Device ID” click “Read” and you should see the Device ID “0x1E 0x97 0x05”
10) Under “Target voltage” click “Read” and you should see the voltage 4.8V
11) Under “Memories” we can now program the Flash memory, click “…” and select the HEX file.
12) Click “Program”
13) You WILL get a time out warning, click that you want to give it longer (you may have to do this 2-3 times)
14) Click “Verify” and again give it longer.
15) Now we can change the fuses (these are just settings)
16) Click “Fuses” and change the values to EXTENDED = 0xFD, HIGH = 0xD8 & LOW = 0xF7 then click “Program”
17) You can now change the speed of the interface if you like, click on “Interface settings” and slide this to 4MHz.
18) Try programming and verifying again and these should work almost instantly.
This is a method that works using the Arduino IDE & AVR ISP mk II.
1) Under boards locate the correct one for your needs
2) Under tools select "Boot Loader" and "w/ AVR ISP mk II"
3) Disconnect everything and then re-attach breadboard to Arduino board
This is a method that works using the Arduino IDE & USBtiny !!.
1) Under boards locate the correct one for your needs
2) Under tools select "Boot Loader" and "w/ USBtiny"
3) When the Arduino IDE fails with a communication error.....
4) Disconnect everything and then re-attach breadboard to Arduino board
This is NOT an example of my brilliance in the use of all this kit but more an example of the joint effort of several people on the forum and elsewhere.
My thanks to : Andy Kirkby
http://aka47.adsl24.co.uk/serendipity/index.php?/pages/Min644pWarez.html, Skyjumper, RetroLefty & Crossroads.
http://www.cowasaki.co.uk/Arduino/1284p.zip