AVRDUDE - AVR Downloader/UploaDEr
is a utility to
download/upload/manipulate the ROM and EEPROM contents of AVR
microcontrollers using the in-system programming technique (ISP).
Documentation can be downloaded from the
or read online here.
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 and free 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
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.
In 2022, the project moved from Savannah to
to benefit from the tooling that eventually evolved around the
Git version control system.
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 all major POSIX-style operating systems, as well as Win32 platforms. By using
existing operating system drivers on the POSIX-style systems, 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.
- 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.
How to get help or report bugs
To get support for AVRDUDE, or get in contact with other users of
this tool, see the avr-chat
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
If you are certain you found a bug in AVRDUDE, you can open a bug
There is not much developers' documentation for AVRDUDE so far.
There is a Developers' Corner with
some random articles.
Some more information is available at Brian's private site.
Last modified: Fri Jan 8 09:14:46 CET 2010