WINDOWS USERS: Recent versions of the BSP include a pre-compiled version of feather_dfu for Windows. If you are using Windows as a platform, look in the 'tools/win32-x86/feather_dfu' folder for the executable file to use.

This python tool is used by the Arduino IDE to perform common operations like resetting into DFU mode, updating the flash contents of the MCU, performing a factory reset, or getting some basic information about the modules.

While the tool is intended to be used by the Arduino IDE, you are also free to use this tool from the command line.

Location: /tools/feather_dfu/feather_dfu.py

On Windows, the BSP package that contains the tools folder is normally found in the '%APPDATA%\Local\Arduino15\packages\adafruit\hardware\wiced\0.6.0' folder. On OS X it can usually be found in the '~/Library/Arduino15/packages/adafruit/hardware/wiced/0.6.0' folder..
'feather_dfu.py' depends on 'sdep.py' in the same directory, which handles sending SDEP commands over USB. If you wish to talk to the WICED Feather over USB using SDEP commands, this may be a useful reference to look at.


feather_dfu.py exposes the following commands:


This command will flash your user code (the code compiled in the Arduino IDE) to the appropriate section in flash memory.

You must provide a .bin file as an argument with this command, for example:

$ python feather_dfu.py arduino_upgrade mycode.bin


This command will flash the FeatherLib section of flash memory.

You must provide an appropriate .bin file as an argument with this command, for example:

$ python feather_dfu.py featherlib_upgrade ../../stm32/featherlib/featherlib.bin


Causes the WICED Feather to enter DFU mode.  You will know if you are in the special DFU/Bootloader mode because the LED will blinky at a faster than normal rate.

$ python feather_dfu.py enter_dfu


Running this command will provide some basic information about your WICED Feather, and can be used when trying to debug issues in the support forums, etc.

When you run the 'info' command you will see results resembling the following:

$ python feather_dfu.py info
Feb 26 2016

In order of appearance these values signify:

  • The firmware family (normally 'Feather')
  • The MCU version (normally 'STM32F205RG*')
  • The unique serial number for this MCU
  • The 48-bit HW MAC address for this chip
  • The bootloader version
  • The WICED SDK version
  • The FeatherLib version
  • The ArduinoCode verison (may be user defined, or may mirror FeatherLib)
  • The date the flashed FeatherLib was compiled


This command will perform a factory reset on the WICED Feather, erasing the Arduino user code as well as resetting the non-volatile config memory to factory defaults.

$ python feather_dfu.py factory_reset


Resets to non-volatile config memory to factory default settings (but leaves the Arduino user code intact).

$ python feather_dfu.py nvm_reset


Causes the WICED Feather to perform a HW reset.

$ python feather_dfu.py reboot
Last updated on 2017-04-16 at 11.45.54 AM Published on 2016-03-23 at 01.29.37 PM