AVRDUDE - AVR Downloader/UploaDEr

AVRDUDE is an open source utility to download/upload/manipulate the ROM and EEPROM contents of AVR microcontrollers using the in-system programming technique (ISP).

AVRDUDE has once been started by Brian S. Dean as a private project of an in-system programmer for the Atmel AVR microcontroller series, as part of the Opensource software tools collection available for these controllers. Originally, the software was written for the FreeBSD operating system, maintained in a private CVS repository, and distributed under the name avrprog.

Due to the growing interest in porting the software to other operating systems, Brian decided to make the project publically accessible on savannah.nongnu.org. The name change to AVRDUDE has been chosen to resolve the ambiguity with the avrprog utility as distributed by Atmel together with their AVRstudio software.

Main features

The major features of AVRDUDE include:

  • Command-line driven user interface for all downloading and uploading features (including handling fuse bytes), for easy automation e. g. by inclusion into Makefiles.
  • Interactive examination and modification of various memory regions in so-called terminal mode. Also offered is an option to modify the operational parameters of an Atmel STK500 board (target voltage, VAref, master clock frequency).
  • Known to run on FreeBSD, MacOS X, Linux, and Win32 platforms. By using FreeBSD's ppi(4) or Linux' parport(4) drivers, secure parallel-port access without root privileges can be maintained. On Win32 platforms, parallel port access requires the previous installation of a driver (giveio.sys) that grants a user process direct access to the IO registers. Will possibly also run on other Unix systems like Solaris (except for parallel-port programmers), but this has not yet been tested.
  • Supports a wide range of programming hardware, from cheap ISP plugs that connect the AVR's ISP interface directly to a computer's parallel port (no additional circuitry) or serial port (some additional circuitry needed), more advanced ISP adapters using a buffer/driver chip (like a 74HC373), up to (more complex) serially connected programmers like AVR910-style ISP devices, the Atmel STK500 board, and the Atmel JTAG ICE mkII. Most popular adapters come pre-defined, adding a new parallel-port adapter is as simple as editing a configuration file (no recompilation needed).
  • Supports Intel Hex, Motorola S-Record, and raw binary files for input and output, as well as direct memory contents specification on the command-line (useful e. g. for fuse bytes). On input, the file format can be auto-detected.
  • In "terminal mode", the device's memory areas can be examined, and possibly modified. This allows to set fuses interactively, or to modify a few EEPROM cells.

To get support for AVRDUDE, or get in contact with other users of this tool, see the avr-chat mailing list.

People who want to contribute in some way to the project can subscribe to the avrdude-dev mailing list, and get in contact with the developer team there.

If you are certain you found a bug in AVRDUDE, you can open a bug report.

Some more information is available at Brian's private site.


Last modified: Fri Sep 23 23:21:06 MET DST 2005