www.mathertel.deArduino ProjectsUse an ISP Programmer to upload Sketches to an Arduino Board

Using an USB ISP programmer together with the Arduino environment

When starting with my DMX Shield project I often had to disconnect the shield from the board for uploading a new sketch to the board. This is because my layout uses the hardware serial interface that is also used by the Arduino bootloader an conflicts occur.

To end his situation I bought a cheap USB ISP programmer.

I had to search around the web for several hours go get it work with the Arduino environment by editing several setting-files by using a standard text editor (aka notepad).

Disclaimer and Recommendation

Make a backup of these files and close all Arduino windows before you start editing!

When the Arduino environment version 1.0 will be made availabe these settings may change. This description corresponds to version 0.22. If you not sure what version you are using look into the menu "Help" ->"About Arduino":

Arduino Start Screen

All the settings are made on your own risk !

So here are the tricks:

Registering the programmer

The Arduino environment knows about the available ways that can be used to communicate. The most often used by Arduino of course is using a serial port and the bootloader mechanism that listens for a new sketch just a few seconds after each reset.

Using a programmer is another option and all of these are configured in the file Programmers.txt that you can find inside the folder .\hardware\arduino\ in your Arduino installation.

Here you can find the available settings. The first word of each line is the technical identification of a programmer and you have 3 settings for each: the readable name, the communication and the protocol.

The USB ISP programmer I bought uses a protocol named "stk500v2" that is well known to the avrdude tool that the Arduino environment uses internally to upload so I had to add my programmer by using a new technical identifier (avrispv2) and the following textlines:

avrispv2.name=AVR ISP v2
avrispv2.communication=serial
avrispv2.protocol=stk500v2

There are other settings available so if you have another programmer you might have to adjust them too.

Selecting the programmer for uploading sketches

This must not be adjusted any more starting with Arduino IDE version 1.0 because you can select whether to use the regular upload and the upload using a programmer in the file menu.

The second setting you have to adjust in older Arduino environments can be found in the settings file (User Dir)\AppData\Roaming\Arduino. This file stores all the settings that you can change by using the built-in mend/dialog "File" -> "Preferences" but also other settings that you can change by using a text editor. The file is written each time you exit the Arduino environment so be sure that you have no Arduino environment running when changing the settings directy.

In this file you have to change the textline

upload.using=bootloader

to

upload.using=avrispv2

by using the new programmer identifyer I created in Programmers.txt.

Now start the Arduino environment and have a try !

In the newer Arduino environments you can use the menu entry "Upload Using Programmer" instead of patching the settings file.

This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx

Links