OnWorks favicon

dfu-programmer - Online in the Cloud

Run dfu-programmer in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command dfu-programmer that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



dfu-programmer - USB firmware upgrading for Atmel microcontrollers


dfu-programmer target[:usb-bus,usb-addr] command [options] [parameters]
dfu-programmer --help
dfu-programmer --targets
dfu-programmer --version


dfu-programmer is a multi-platform command line Device Firmware Upgrade (DFU) based
programmer for the flash memory on Atmel AVR, AVR32, XMEGA and 8051 based microcontrollers
which ship with a USB boot loader. It supports In System Programming (ISP) for developers
and potentially product updates in the field. Those boot loaders are patterned after the
standard USB DFU 1.0 class specification, but depend on extensions defined by Atmel to the
extent that standard DFU drivers will not work.

To use it, first connect the device to be programmed and ensure that it comes up in DFU
mode. The microcontrollers come up in that mode as shipped by Atmel; or they may reenter
that mode after a special hardware reset. Then invoke this program to issue one or more
DFU commands. You will normally need to start by issuing the "erase" command; the default
security policies prevent extracting firmware, to prevent reverse engineering of what is
usually proprietary code.


These chip names are used as the command line "target" parameter.

8051 based controllers:
at89c51snd1c, at89c51snd2c, at89c5130, at89c5131, and at89c5132.

AVR based controllers:
at90usb1287, at90usb1286, at90usb647, at90usb646, at90usb162, at90usb82,
atmega32u6, atmega32u4, atmega32u2, atmega16u4, atmega16u2 and 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, at32uc3b1512, at32uc3b0512, at32uc3c064,
at32uc3c0128, at32uc3c0256, at32uc3c0512, at32uc3c164, at32uc3c1128, at32uc3c1256,
at32uc3c1512, at32uc3c264, at32uc3c2128, at32uc3c2256 and at32uc3c2512.

XMEGA based controllers:
atxmega64a1u, atxmega128a1u, atxmega64a3u, atxmega128a3u, atxmega192a3u,
atxmega256a3u, atxmega16a4u, atxmega32a4u, atxmega64a4u, atxmega128a4u,
atxmega256a3bu, atxmega64b1, atxmega128b1, atxmega64b3, atxmega128b3, atxmega64c3,
atxmega128c3, atxmega256c3, atxmega384c3


There are no mechanisms to implement gang programming. By default, the first device that
matches the id codes for the given target is selected. Many targets share the same id
codes. Accordingly, you will usually avoid connecting more than one device of a given
family (AVR, XMEGA, AVR32 or 8051) at a time.

The target may be qualified with the USB bus and address number of the device you wish to
program. This allows programming multiple devices of the same family at the same time.

All of these commands support the "global options". Unless you override it, commands
which write to the microcontroller will perform a validation step that rereads the data
which was written, compares it to the expected result, and reports any errors.

Note that unlike Atmel's BatchISP program, dfu-programmer will only perform a single
operation at a time. Erasing and programming require separate commands.

configure register [--suppress-validation] data
Bootloaders for 8051 based controllers support writing certain configuration bytes.

Reads all the available flash memory, and writes it as binary data to stdout.

Reads all the available eeprom memory, and writes it as binary data to stdout.

Reads the user space flash on the AVR32 chips and writes it as binary data to

erase [--suppress-validation]
Erases all the flash memory. This is required before the bootloader will perform
other commands.

flash [--suppress-validation] [--suppress-bootloader-mem] [--serial=hexbytes:offset] file
Writes flash memory. The input file (or stdin) must use the "ihex" file format
convention for a memory image. --suppress-bootloader-mem ignores any data written
to the bootloader memory space when flashing the device. This option is
particularly useful for the AVR32 chips trampoline code.

--serial provides a way to inject a serial number or other unique sequence of bytes into
the memory image programmed into the device. This allows using a single .ihex file to
program multiple devices, and still give each device its own unique serial number. For
example, --serial=ABCDEF01:0x6000 would program the byte at 0x6000 with the hex value AB,
the byte at 0x6001 with the value CD, and so on. There must be an even number of hex
digits, but the sequence can be any length. The offset is assumed to be given in hex if it
starts with a "0x" prefix, octal if it begins with a "0", otherwise is it assumed to be

flash-user [--suppress-validation] [--serial=hexbytes:offset] file or STDIN
Writes to user space flash on the AVR32 chips. This block of flash is out of the
normal range of flash blocks and is designed to contain configuration parameters.
The input file (or stdin) must use the "ihex" file format convention for a memory

flash-eeprom [--suppress-validation] [--serial=hexbytes:offset] file or STDIN
Writes to eeprom memory. The input file (or stdin) must use the "ihex" file format
convention for a memory image.

Sets the security bit on AVR32 chips. This prevents the content being read back
from the chip, except in the same session in which it was programmed. When the
security fuse is set, almost nothing will work without first executing the erase
command. The only way to clear the security fuse once set is to use a JTAG chip
erase, which will also erase the bootloader.

get register
Displays various product identifier bytes.

Resets microcontroller using watchdog timer

Starts the application firmware by having the microcontroller jump to address zero.

Global Options
--quiet - minimizes the output

--debug level - enables verbose output at the specified level

Configure Registers
The standard bootloader for 8051 based chips supports writing data bytes which are not
relevant for the AVR based chips.

BSB - boot status byte
SBV - software boot vector
SSB - software security byte
EB - extra byte
HSB - hardware security byte

Get Register
bootloader-version - currently flashed bootloader version
ID1 - device boot identification 1
ID2 - device boot identification 2
manufacturer - the hardware manufacturer code
family - the product family code
product-name - the product name
product-revision - the product revision
HSB - same as the configure_register version
BSB - same as the configure_register version
SBV - same as the configure_register version
SSB - same as the configure_register version
EB - same as the configure_register version

Use dfu-programmer online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    itop - ITSM  CMDB OpenSource
    itop - ITSM CMDB OpenSource
    IT Operations Portal: a complete open
    source, ITIL, web based service
    management tool including a fully
    customizable CMDB, a helpdesk system and
    a document man...
    Download itop - ITSM CMDB OpenSource
  • 2
    Clementine is a multi-platform music
    player and library organizer inspired by
    Amarok 1.4. It has a fast and
    easy-to-use interface, and allows you to
    search and ...
    Download Clementine
  • 3
    ATTENTION: Cumulative update 2.4.3 has
    been released!! The update works for any
    previous 2.x.x version. If upgrading
    from version v1.x.x, please download and
    Download XISMuS
  • 4
    Modular headtracking program that
    supports multiple face-trackers, filters
    and game-protocols. Among the trackers
    are the SM FaceAPI, AIC Inertial Head
    Tracker ...
    Download facetracknoir
  • 5
    PHP QR Code
    PHP QR Code
    PHP QR Code is open source (LGPL)
    library for generating QR Code,
    2-dimensional barcode. Based on
    libqrencode C library, provides API for
    creating QR Code barc...
    Download PHP QR Code
  • 6
    Cuckoo Sandbox
    Cuckoo Sandbox
    Cuckoo Sandbox uses components to
    monitor the behavior of malware in a
    Sandbox environment; isolated from the
    rest of the system. It offers automated
    analysis o...
    Download Cuckoo Sandbox
  • 7
    Play YouTube video on LMS (porting of
    Triode's to YouTbe API v3) This is
    an application that can also be fetched
    Download LMS-YouTube
  • More »

Linux commands

  • 1
    2vcard - convert addressbooks to VCARD
    format ...
    Run 2vcard
  • 2
    xml2 - convert xml documents in a flat
    format 2xml - convert flat format into
    xml html2 - convert html documents in a
    flat format 2html - convert flat format
    Run 2xml
  • 3
    cpupower - Shows and sets processor
    power related values ...
    Run cpupower
  • 4
    CQRLOG - Advanced logging program for
    hamradio operators DESCRIPTION: CQRLOG
    is an advanced ham radio logger based on
    MySQL database. Provides radio control
    Run cqrlog
  • 5
    gammu-smsd - SMS daemon for Gammu ...
    Run gammu-smsd
  • 6
    gammu - Does some neat things with your
    cellular phone or modem. ...
    Run gammu
  • More »