The Device Firmware Update (DFU) utility is an x64 Linux application that is used to update the firmware on DWUSB devices. The latest DFU can be downloaded from the Downloads section.
Each DFU release comes bundled with a specific firmware binary that is embedded into the DFU binary. The DFU automatically scans DWUSB devices connected via USB and lists their serial number, device state, and software version number. The user may then update the firmware on some or all the devices to the target firmware version that is bundled with the DFU binary.
The DFU is a command line interface (CLI) application that is launched from the Linux terminal. It is recommended to resize the terminal window to at least 900x400px for the best UI view.
A : DFU Version Number - The version numbers for the DFU utility. This version number is not related to the version of the firmware that’s going to be updated to by the DFU.
B : Target FW Version Number - The version number of the firmware that’s bundled with this DFU binary. All devices that are selected for update will be updated/downgraded to the version number shown here.
C : Devices List - This list shows all connected devices to the PC. If no devices are connected, a “Waiting for USB devices…” message is shown.
D : Keyboard Shortcuts Legend - Description of keyboard shortcuts used in the DFU.
A : Operation
Keep: Keep the firmware as is. No changes will be made to this device
Downgrade: Downgrade the firmware to the target version
Update: Update the firmware to the target version
B : Device Path - The system path for the DWUSB’s virtual serial port
C : Device Serial Number - The Ciholas unique device serial number
D : Device Type - SMA is the Ciholas-made DWUSB device
E : Device State -
Firmware: The device is running a version of the UWB firmware
Bootloader: The device is in the Atmel’s SAM-BA bootloader mode
Unknown: The device is either in an unknown state, or is running a
firmware version that is older than 0.6.0.0
F : Current FW Version - The version of the firmware that’s currently installed on the device
G : Target FW Version - The firmware version the device will be updated to
Navigation : Use the arrow keys on the keyboard to move the cursor between devices. Press Space to change the operation. Press Enter to start the update process.
Devices selected for Update or Downgrade will be put into bootloader mode first and then are automatically updated to the target FW version. During the update process, keyboard shortcuts are disabled.
Once the update process is complete, devices selected for update should now show the target FW version as their current running firmware version.
This issue occurs when DWUSB devices running firmware version < 0.6.0.0 are connected to the PC. In order to update the device to the target FW version, just mark both device entities for update and start the update process. The device should be updated normally just like devices with recent firmwares do.
This issue means that the DFU is not able to properly poll the firmware information from the DWUSB device. Try the following solutions one at a time to resolve the issue:
In order to perform this step, you need physical access to the device board.
One issue that may cause the DFU to not work properly is if the USB device it’s interacting with is being accessed by another process. Some Linux distros come bundled with a service called Modem Manager that sometimes accesses and starts communicating with USB devices once they are plugged in. This is an undesired behavior and can causes issues to the DFU operation.
In order to resolve the issue, the modem manager service needs to be either stopped or removed.
In order to stop the service, run the following command from the terminal:
[Ubuntu 14.04]
sudo service modemmanager stop
[Ubuntu 16.04]
sudo service ModemManager stop
Stopping the service will only temporarily resolve the issue until next reboot. In order to completely resolve the issue, we recommend removing the Modem Manager service. We’ve never encountered issues where the system needed the modem manager service to be installed.
In order to remove the service, run the following command from the terminal:
[Ubuntu 14.04]
sudo apt-get remove modemmanager
[Ubuntu 16.04]
sudo apt-get remove ModemManager
Once the service is stopped or removed, unplug all DWUSB devices and plug them back. Then run the DFU and update their firmware normally.
Run the DFU with the command line parameter “--debug” without quotes. For example ./uwb_dfu-0.6.9.0 --debug
After the DFU hangs, hold Ctrl then press C to exit the DFU. A log file (output.log) will be generated next to the DFU binary location. Send the log file to Ciholas alongside information about you computer’s software, hardware, and any USB hubs or USB accessories that are used.