Bluetooth firmware upgrade information

by Marcel Holtmann


1. Introduction

Every Bluetooth chip uses somekind of firmware that implements the baseband and link manager implementation. The storing of this firmware differs and depends on the use the Bluetooth chip. In the case of a USB dongle the firmware is stored on an extra flash chip or it must be loaded by the operating system at plugin time.

The later version depends on a special runtime firmware loading mechanism, but for an upgrade to another firmware version only the files on the harddrive must be exchanged. Examples for such chips or dongles are the Broadcom BCM2033 and the AVM BlueFRITZ! USB. For the versions with a flash chip it is necessary to flash a new firmware. The default way of doing this is Device Firmware Upgrade (DFU) which is an USB specification. Not every chip manufacturer supports DFU, but mostly all CSR based modules and dongles support DFU. Other manufacturers uses a vendor specific way for the firmware upgrade.


2. The DFU specification

The usage of DFU is specified in Universal Serial Bus Device Class Specification for Device Firmware Upgrade.


3. The Apple Bluetooth update

Apple provides a firmware update for their internal dongles of their PowerBooks and PowerMacs. They also support the D-Link DBT-120 (revision B2 or later). The Apple update includes Bluetooth 1.2 support, HID Proxy and full 128 bit encryption. Even if D-Link say they already support 128 bit encryption, they don't. The firmware on their dongles is limited to 56 bit encryption keys.

The firmware update is available on the Apple Mac OS X website, but they only provide the files in form of an Apple UDIF disk image (identified with disktype). There is no known way to extract files from BluetoothFWUpdate1.1.dmg with Linux. A Mac OS X is needed to do this job. After that a file named GenericCSR.dfu can be used to update a D-Link dongle the Apple way.

The only successful upgrade with a D-Link DBT-120 has been done with the revision B3 dongles. Others may work, but it can also end up with a dead dongle. So using the upgrade mode of the btdfu utility is done without warranty of any kind.


4. Download

btdfu-0.1.tar.gz (113 KB)
btdfu-0.2.tar.gz (113 KB)
btdfu-0.3.tar.gz (123 KB)

Starting with bluez-utils-2.17 this utility is integrated into the BlueZ core package as dfutool.


5. Firmware upgrade utilities for Windows

Jon's Guides - USB Device Firmware


6. Other public statements

Revive your MacWireless Bluetooth USB Dongle
How to convert apple/mac .dmg to .iso images?
De-bricking your Bluetooth Dongle


Copyright © 2004 Marcel Holtmann Created on June 5, 2004
Last modification on June 6, 2004