dfu-programmer is a multi-platform command-line programmer for Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting ISP. Most Atmel devices having a USB port come pre-programmed with the bootloader, and this is a lightweight alternative to Atmel's own FLIP/BatchISP program. This is a mostly Device Firmware Update (DFU) 1.0 compliant user-space application.



dfu-programmer 0.7.2 released (04 Feb 2015)

This is a minor release fixing a longstanding problem with memory ranges on XMega

dfu-programmer 0.7.1 released (03 Jan 2015)

This is a minor release adding one experimental feature and mopping up a few bug fixes

dfu-programmer 0.7.0 released (02 Aug 2014)

This release contains a major internal reworking in several areas

dfu-programmer repository moved to GitHub (25 May 2014)

After many years hosted on SourceForge we have taken the decision to migrate the repository to GitHub. We hope users will benefit from the enhanced support for open source collaboration that is offered by GitHub, and that we will benefit from more user input.

You can find the new repository here.

Downloads will continue to be hosted by SourceForge.



You can download the source distribution from the project files page. Windows users can download a pre-compiled executable, a set of USB drivers and the HTML help file in a separate zip file from the same page.


Supported Chips

8051 based controllers:

at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, at89c5132

AVR based controllers:

at90usb1287, at90usb1286, at90usb1287-4k, at90usb1286-4k, at90usb647, at90usb646, at90usb162, at90usb82, atmega32u6, atmega32u4, atmega32u2, atmega16u4, atmega16u2, atmega8u2

AVR32 based controllers:

at32uc3a0128, at32uc3a1128, at32uc3a0256, at32uc3a1256, at32uc3a0512, at32uc3a1512, at32uc3a0512es, at32uc3a1512es, at32uc3a364, at32uc3a364s, at32uc3a3128, at32uc3a3128s, at32uc3a3256, at32uc3a3256s, at32uc3a4256s, at32uc3b064, at32uc3b164, at32uc3b0128, at32uc3b1128, at32uc3b0256, at32uc3b1256, at32uc3b0256es, at32uc3b1256es, at32uc3b0512, at32uc3b1512, at32uc3c064, at32uc3c0128, at32uc3c0256, at32uc3c0512, at32uc3c164, at32uc3c1128, at32uc3c1256, at32uc3c1512, at32uc3c264, at32uc3c2128, at32uc3c2256, at32uc3c2512

XMEGA based controllers:

atxmega64a1u, atxmega128a1u, atxmega64a3u, atxmega128a3u, atxmega192a3u, atxmega256a3u, atxmega16a4u, atxmega32a4u, atxmega64a4u, atxmega128a4u, atxmega256a3bu, atxmega64b1, atxmega128b1, atxmega64b3, atxmega128b3, atxmega64c3, atxmega128c3, atxmega256c3, atxmega384c3, atxmega16c4, atxmega32c4


Why dfu-programmer?

The need for this tool came about when Wes Schmidt needed to flash an at89c51snd1c chip that had the USB bootloader on it, but the Atmel-provided tool (FLIP) didn't support USB flashing in linux.

After a few days of web searching and scraping together a windows machine to do the job, he found that Atmel provided a document describing the communications protocol used, and happily spent the next week hacking together the start of dfu-programmer.


Contact Information

The mailing list is the preferred communication method.

GitHub logo
SourceForge.net Logo