Learning   Examples | Foundations | Hacking | Links

Burning sketches to the Arduino board with an external programmer

If you have an external programmer (e.g. an AVR-ISP, STK500, or parallel programmer), you can burn sketches to the Arduino board without using the bootloader. This allows you to use the full program space (flash) of the chip on the Arduino board. So with an ATmega168, you'll get 16 KB instead of 14 (on an ATmega8 you'll get 8 KB instead of 7). It also avoids the bootloader delay when you power or reset your board.

Editing the Arduino preferences file

To use an external programmer for all boards you need to make some small changes to the Arduino preferences.txt. Make sure to edit this file when the Arduino IDE is not running.

This preferences file is found in this folder:

    * /Users/<USERNAME>/Library/Arduino/preferences.txt (Mac)
    * c:\Documents and Settings\<USERNAME>\Application Data\Arduino\preferences.txt (Windows)
    * ~/.arduino/preferences.txt (Linux) 

Note that when you upgrade Arduino, this folder may not be deleted. If you are having trouble, delete this folder. Upon launching Arduino a new file and preferences.txt will be created.

Change: upload.using from bootloader to the identifier of one of the programmers in hardware/programmers.txt (e.g. avrispmkii).

If you would rather use an external programmer for only an individual board, you can edit the boards.txt file in the hardware/ sub-directory of the Arduino application directory. Set the board.upload.using parameter to the identifier of one of the programmers in programmers.txt.

Burning the sketch

After you've made these changes, you can burn sketches to the board with the normal upload button or menu item in the Arduino environment. The board needs to be powered, but you don't have to press the reset button before uploading.

You must specify which Arduino board you are using, but you do not have to specify a serial port (on Mac at least).

Going back to normal USB/serial upload

To go back to uploading sketches over the USB or serial port without an external programmer, you'll need to set the upload.using preference in preferences.txt back to bootloader; or remove the board.upload.using parameter from boards.txt. You'll also need to burn the bootloader back onto the chip on the Arduino board.

Burning Sketches to the Arduino Mini

To burn sketches to the mini you must first make a cable to interface between your programmer and the mini board. Gian Pablo Vilamil has written a very good tutorial on Bootloading the Mini. To burn sketches, follow the instructions on bootloading the mini.

Once you have made the proper cable, instead of choosing bootloading from the arduino menu, you can use the instructions on this page to burn sketches directly to the Mini.