• CUWB 2.0 (Archimedes)
DWUSB Firmware Update

Overview

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.

User Interface

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.

DFU Main UI Window

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.

Devices List

DFU Device Information

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.

Update Process

DFU Update Progress

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.

DFU Target Version

Troubleshooting

A single DWUSB device shows up as two devices; each is labeled as a Ceramic DWUSB with SN FF:FF:FFFF?

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.

A single DWUSB device shows up as one device labeled Ceramic DWUSB with SN FF:FF:FFFF?

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:

  • Unplug the device for 5 seconds then plug it back in
  • If the issue continues, try marking the device for update anyways and see if the update process successfully completes
  • If the device is still not responding, this means the device is either running an incompatible FW version, or is loaded with a corrupted firmware. In order to recover the device, a full device erase needs to be performed

How do I perform a full device erase to put the device in Bootloader mode?

In order to perform this step, you need physical access to the device board.

  • Open the device plastic casing
  • Get a pair of fine tweezers
  • Connect the DWUSB to USB for power
  • Make sure you are facing the top side of the DWUSB (the side containing the large ICs)
  • Using the tweezers, short the two small jumper pads directly next to the USB port for 1 second (see photos below)
  • Run the DFU again to update the device

DFU DWUSB Reset Full

DFU DWUSB Reset Zoom

The DFU hangs during the update process or is having issues updating devices

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.

The DFU hangs during the update process for all devices, and removing Modem Manager service didn’t solve the issue.

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.