{"id":945,"date":"2015-08-04T16:02:33","date_gmt":"2015-08-04T15:02:33","guid":{"rendered":"http:\/\/www.kanda.com\/blog\/?p=945"},"modified":"2017-01-26T11:15:36","modified_gmt":"2017-01-26T10:15:36","slug":"program-arduino-avr-isp-programmer","status":"publish","type":"post","link":"https:\/\/www.kanda.com\/blog\/microcontrollers\/avr-microcontrollers\/program-arduino-avr-isp-programmer\/","title":{"rendered":"How to Program Arduino with AVR ISP Programmer"},"content":{"rendered":"

If you have been using Arduino to develop your code but want to move on to develop your own AVR based circuit or want to program your Arduino board with an external programmer to give more code space, you will need to understand how to use an AVR ISP or In System Programmer. This post covers the information you need<\/p>\n

<\/p>\n

Step 1 – Find your Hex file<\/strong>
\nThe ISP needs a hex file (.hex), also called output binary in Arduino speak. This is hidden by the Arduino IDE in temporary folders in your user folders, typically something like this:<\/p>\n

C:\\Documents and Settings\\your_username\\Local Settings\\Temp\\build3526495849735274299.tmp.<\/p>\n

You need to find the latest folder and hex file for the programmer. You can change Arduino settings to make this more sensible as shown in How to find Arduino Hex files<\/a>.<\/p>\n

Step 2 – Connect your AVR ISP<\/strong>
\nArduino boards and circuits use a standard Atmel 6-way ISP header to connect the programmer but it doesn’t have any labels or key way for orientation. All AVR ISP leads have a keyway, which is shown on this picture next to Arduino ISP header.<\/p>\n

\"Connecting<\/a>
Connecting 6-way ISP to Arduino Board<\/figcaption><\/figure>\n

Make sure the key way on your programmer matches the orientation in the picture.<\/p>\n

Step 3 – AVR Fuse Settings<\/strong>
\nThere are lots of fuses that set how the AVR microcontroller will run. The important ones for Arduino are these<\/p>\n