29 December 2020


BTR3 might be the most popular one of FIIO's bluetooth DAC/amp series. It supports all bluetooth CODECs and can work as a USB DAC. One thing I like very much is that I can use it while charging it (via USB type C port). However, when I wanted to upgrade its firmware to version 1.2 (mainly for "8. Improved the alert sounds and reduced the volume level"), I found myself (as many others) was stuck because FIIO only provides an upgrade tool for Windows. Actually, it can be very easily done using dfu-util (and a live Ubuntu USB stick if you are running maxOS).

macOS users need a live Ubuntu USB stick because all my attempts of upgrading the firmware with dfu-util + macOS failed with the following error:

$ sudo dfu-util -D BTR3-1.2-0531.dfu
dfu-util 0.10

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2020 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Opening DFU capable USB device...
ID 0a12:ffff
Run-time device DFU version 0101
Claiming USB DFU Runtime Interface...
Determining device status: state = appIDLE, status = 0
Device really in Runtime Mode, send DFU detach request...
Resetting USB...
dfu-util: error resetting after detach: LIBUSB_ERROR_NO_DEVICE

After some research, it appears to me an issue of libusb in macOS. Therefore, I need a Linux box. To me, rebooting the MacBook from a live Ubuntu USB drive is the simplest approach to get a Linux environment.

Below is how I managed to upgrade the firmware for my BTR3:

  1. Firstly, Create a bootable USB stick on macOS and reboot the MacBook into Ubuntu.
  2. In Ubuntu, build the dfu-util from source (or install the package using apt-get).
  3. Put BTR3 into DFU mode and connect it to the MacBook.
  4. Verify that the device is recognised by dfu-util


  5. Optional: backup the current firmware from the device.



  6. Write the new firmware to the device.


blog comments powered by Disqus