To setup the WICED Feather on Linux (Ubuntu 14.04 was used here) the following steps are necessary:

UDEV Setup

On Linux you will need to add a small udev rule to make the WICED board available to non-root users. If you don't have this rule then you'll see permission errors from the Arduino IDE when it attempts to program the board.

Create or edit a file called /etc/udev/rules.d/99-adafruit-boards.rules and add the following lines:

PID 0008 = DFU Mode, 0010 = Application Mode/CDC, 8010 = Application Mode/CDC + USB Mass Storage
# This file is used to gain permission for the WICED Feather module
# Copy this file to /etc/udev/rules.d/

ACTION!="add|change", GOTO="adafruit_rules_end"
SUBSYSTEM!="usb|tty|hidraw", GOTO="adafruit_rules_end"

# Please keep this list sorted by VID:PID

# WICED Feather in DFU mode
ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0008", MODE="664", GROUP="plugdev"

# WICED Feather in Application mode
ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0010", MODE="664", GROUP="plugdev"
ATTRS{idVendor}=="239a", ATTRS{idProduct}=="8010", MODE="664", GROUP="plugdev"


Depending on your distribution you might need to change GROUP="plugdev" to a different value like "users" or "dialout". The dialout group should work for Ubuntu.

Then restart udev with:

sudo restart udev

Or on systemd-based systems like the latest Debian or Ubuntu 15.04+ restart udev with:

sudo systemctl restart udev

Install dfu-util

The WICED Feather uses USB DFU to perform firmware updates from the Arduino IDE.  To enable to Arduino IDE to talk to the board you will need to install dfu-util.

Many Linux distributions include a binary version of dfu-util in their package management system, but they are often out of date and lower than the 0.8 version required by the WICED Feather.

If you are using Ubuntu 15.04 or higher, you can install dfu-util 0.8 via the following command:

sudo apt-get install dfu-util

If you are using an older version of Ubuntu or if 'dfu-util -v' displays an older version like 0.5 you will need to buid dfu-util from source, as described below.

Building dfu-util From Source (Ubuntu 14.04 etc.)

Ubuntu 14.04 and several other distributions use dfu-util 0.5 which is too old for the WICED Feather (which requires dfu-util version 0.8 or higher).

To build dfu-util from source run the following commands (Ubuntu 14.04 is assumed here), first install the required build dependencies:

sudo apt-get install git
sudo apt-get build-dep dfu-util
sudo apt-get install libusb-1.0-0-dev

Then download the git repo containing the dfu-util source:

git clone
cd dfu-util

Then build the dfu-util from source:

./configure  # on most systems

You can then install and verify dfu-util via the following commands, which should show version 0.8 or 0.9 for dfu-util:

sudo make install
hash -r
dfu-util -V

Testing the Installation

You can check if dfu-util was installed correctly by running the following command with the WICED Feather connected:

dfu-util --list

This should give you the following output:

dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to

Found DFU: [239a:0008] ver=0200, devnum=6, cfg=1, intf=0, path="2-1", alt=0, name="@Internal Flash   /0x08000000/02*016Ka,02*016Kg,01*064Kg,07*128Kg", serial="00000000001C"

Install Python Tools (BSP <= 0.6.2)

As of BSP release 0.6.5 and higher the feather_dfu Python tool has been converted to a binary tool called wiced_dfu, and the section below should only be followed on earlier versions of the BSP. Version 0.6.5 and higher ship with pre-compiled versions of wiced_dfu, or you can build the binary yourself using the makefile in the tools/wiced_dfu folder.

The WICED Feather BSP uses a few Python based tools to allow the Arduino IDE to talk to the hardware in a platform-independent manner (specifically tools/feather_dfu/

To use these Python tools, you will need to have Python available on your system (which most Linux distributions do by default), but you will also need a few additional libraries to make the python scripts work.

Running the following command from the command line will install these dependencies:

sudo pip install --pre pyusb
sudo pip install click

Testing the Installation

You can test if Python is setup correctly by going to the '/tools/feather_dfu' folder in the WICED Feather BSP and running the following command with the WICED Feather connected:

cd tools/feather_dfu
sudo python info

This should display something resembling the following output:

Mar  8 2016

Optional: Install AdaLink

If you ever need to reflash the USB DFU bootloader on the WICED Feather (which will require either a Segger J-Link or an STLink/V2), you will also need to install a utility called AdaLink.

AdaLink acts as a simple python-based abstraction layer between various HW debuggers, and the different ARM MCU families that we use at Adafruit.

For installation instructions on AdaLink see the Readme file in the git repository.

External Resources

For further details on setting up Linux for the WICED Feather see the following links:

This guide was first published on Mar 23, 2016. It was last updated on Sep 14, 2016.

This page (Linux Setup) was last updated on Mar 09, 2016.

Text editor powered by tinymce.