Supported hardware

Supported operating systems

Installing the driver

Removing associations to other drivers

Co-existance with other Bluetooth implementations

Updating the driver

Instructions for installing the FreeBT Generic Bluetooth USB Driver

This document describes how to install and uninstall the FreeBT Generic Bluetooth USB Driver and other 3rd party drivers.

Supported hardware

The FreeBT USB Driver is written in accordance with the Bluetooth USB HCI spec. Any device that follows the recommendations set down in that spec should be compatible with the FreeBT driver.

The FreeBT .inf will, by default, install any USB dongle that identifies itself with Class 0xE0 (Wireless Controller), SubClass 0x01 (RF Controller) and Protocol 0x01 (Bluetooth programming), in accordance with the USB HCI spec.

Specifically, FreeBT USB has been tested with the following devices:

  • Acer BT-700 (Class 1 device)
  • D-Link DBT-120 (Class 2 device)
  • Any CSR or Silicon Wave-based USB devices
Actually, both of these devices incorporate a CSR BlueCore01 chip, (as do most of the commercially available Bluetooth dongles at present), which (apart from their amplifiers) makes them identical.

A user has confirmed that the Alpha 2 release, in which the driver is slightly modified, works with SiliconWave devices.

If you would like to donate other USB hardware to the FreeBT cause, please contact me.

Supported operating systems

The current release has been tested entirely on Windows XP. I expect it to work equally well on Windows 2000 and while it should work on Windows 98 SE and Windows ME, I have not tested it at all and have serious doubts about its worthiness on those platforms.

Installing the driver

In the unlikely event that you don't already have a Bluetooth USB driver installed for your USB dongle, installing the FreeBT driver is quite simple. Insert the device, point Windows at the src/driver/fbtusb directory and after you accept the warning about the driver being unsigned, it will install automatically.

Removing associations to other drivers

You are much more likely to have a driver from another vendor, such as Widcomm, installed on your system and while you don't need to remove that driver, you do need to persuade Windows to forget the association of the USB dongle to the other vendor driver. The process is not entirely straight forward and not something I would encourage the inexperienced to try.

To remove the reference to your existing driver, carry out the following steps:

  • While the device is attached, locate it in the Device Manager, and delete it.
  • Under the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB, you will find an entry that corresponds to your USB dongle. If you know the USB Vendor and Product IDs of your device, you will easily be able to locate the device, because the registry key that defines the device is built up from these values. For example, if the device is using a CSR BlueCore01 and the manufacturer has chosen not to change the Vendor and Product ID (as indeed most of them don't) the devices registry key will be HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_0a12&Pid_0001

    If you don't know the USB Vendor and Product IDs of your device, you will have to find it by searching through all the USB keys. Typically the values DeviceDesc, LocationInformation, Mfg and Service will give you a pretty good idea of what you are looking at.

  • Once you have located the key that represents your device, delete it. You may encounter a permissions error when you attempt to do this, in which case you can simply change the permissions for the key using RegEdit (right-click the key and select Permissions).
  • Reboot your machine and follow the procedure above for a clean install of the driver.
Of course these steps apply equally well to the FreeBT driver itself, so you can carry out the same procedure again to remove the FreeBT driver.

Co-existance with other Bluetooth implementations

FreeBT can happily co-exist with other Bluetooth implementations, however the process is slightly tricky and requires a certain amount of discipline. It involves using dedicated physical USB ports for each seperate Bluetooth implementation, as well as temporarily modifying the .inf files supplied with the other implementation.

A pertinent example might be FreeBT co-existing with Microsofts Bluetooth implementation, which is a part of Windows XP Service Pack 2, although the following instructions will work with any Bluetooth implementation:

  • Make sure you have two SEPERATE PHYSICAL availabile USB ports, we'll refer to them as PORT1 and PORT2
  • Insert the USB device into PORT1 and install the associated (not FreeBT) software
  • Remove the USB device
  • Locate the driver inf file for the device. In the case of Microsofts Bluetooth implementation, this is %SystemRoot%\Inf\bth.inf. Other instances of the file named oem*.inf may exist.
  • Comment out the lines that describe the USB device. These lines will have the format USB\Vid_USB_VENDOR_ID&Pid_USB_PRODUCT_ID. The following example shows the section where CSR devices are defined in Microsofts bth.inf:

    [Cambridge.NT.5.1]
    ;Generic Bluetooth Radio= BthUsb, USB\Vid_0a12&Pid_0001
    ;CSR Nanosira= BthUsb, USB\Vid_0a12&Pid_0003
    ;CSR Nanosira WHQL Reference Radio= BthUsb, USB\Vid_0a12&Pid_0004
    ;CSR Nanosira-Multimedia= BthUsb, USB\Vid_0a12&Pid_0005
    ;CSR Nanosira-Multimedia WHQL Reference Radio= BthUsb, USB\Vid_0a12&Pid_0006

    Lines are commented out by prefixing them with a semi-colon as the example shows.
  • Insert the USB dongle into PORT2 (NOT PORT1). Windows should fail to find a driver for the device. Follow the instructions for installing the FreeBT driver, above.
  • To use the MS stack, insert the device into PORT1. To use the FreeBT stack, insert the device into PORT2

Updating the driver

If you have already installed the FreeBT USB driver and want to update it to the latest version, you can do so quite easily by carying out the following procedure:

  • Remove ALL USB Bluetooth hardware
  • Restart the computer
  • DO NOT start any programs which use the FreeBT libs or driver and DO NOT insert any Bluetooth hardware
  • Copy the new driver file (fbtusb.sys) into %SystemRoot%\System32\drivers, overwriting the existing file
NOTE: If the driver is busy, Windows will silently ignore your attempt to overwrite the driver and it will appear as though the file was successfully overwritten. ALWAYS remember to remove all hardware and stop any FreeBT programs!