Saturday, September 12, 2009

Bluetooth Dongle Trouble

Cellular phones and kids under 3 don't mix. My wife and I have had each of our phones either fixed or replaced after being thrown without being caught, chewed upon and drowned in the toilet.

In at least two of these happy occasions the contents on the phone, namely photos, address book, calendar and messages, were wiped clean by the oh-so-competent cellular phone service provider. Well, I did sign a paper allowing these guys to do just that, either deliberately or by mistake.

Every time I hand over a phone to be serviced, I get the same response when I ask for a backup: "I can't backup your phone without USB". True enough, both our phones (low end Nokia 2600c) have no USB interface and can only be interfaced with over Bluetooth. But why should this make backups impossible? it shouldn't.

Our First Dongle: Window$

I was at the local Office Depot a few days ago, and while waiting in line to pay, I noticed that they had several Bluetooth to USB adapters on display. I made a decision that I lived to regret, and purchased one of these dongles.

I got the one that was mid-priced, simply because it had the Tux logo on it, along side the Window$ and Mac logos. "Any vendor who claims compatibility with Linux is likely to be technically superior than his competitors," I thought to myself, "their products are likely to be better engineered and better tested."

The dongle is marketed under a local brand name, so I have no idea what make it really is, otherwise I would strongly suggest you stay away from it. It came with an installation CD, and a leaflet that instructed me to install the software prior to connecting the dongle.

Being a sucker for manuals, I did as I was told and installed the software on my wife's Window$ XP laptop. The installation went along nicely, and then I was asked to connect the dongle. I did just that, and after a bunch of ballooned notifications appeared and disappeared near the system tray area, a little Bluetooth icon appeared there, and Window$ assured me, with yet another balloon, that the device was ready to use. Goody.

The dongle software, however, rewarded me with an error message:

Bluetooth Software license file not found.[2]

I hit the OK button and a standard file selection dialog appeared, allowing me to search for and open a file named license.dat. I found it on the installation CD, selected it and hit OK. The error message appeared again, and the process repeated itself, only that this time I hit Cancel when asked to find the file, disconnected the dongle in disgust, and uninstalled the software.

I sat there, weighing my options, and decided to attempt to return the dongle and purchase a different one.

Our First Dongle: Linux

But before returning the dongle, I decided I'd try to connect it to my Debian GNU/Linux laptop. I did not expect much.

At first I used lsusb to list the USB devices connected, and the dongle was there as Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode).

So far, so good.

I searched for packages whose names contain the word "bluetooth":

aptitude search bluetooth

and decided to install two packages:

aptitude install bluetooth gnome-bluetooth

Afterwards, I launched the GNOME control center and clicked the newly installed Bluetooth icon. This opened the Bluetooth Preferences, I clicked "Setup new device...", and a wizard appeared, prompting me to press "Forward" in order to scan for Bluetooth enabled devices. It didn't find any device, and I was somewhat disappointed, but not too surprised.

Well, after I enabled Bluetooth connectivity on the phone (ARGHH!), it was discovered by the wizard just fine.

The next step was to pair the phone with the computer: I was shown a set of digits and was asked to type them in on the phone.

After some more tinkering I found that with the gnome-bluetooth package came bluetooth-applet which showed a nice little Bluetooth tray icon after being launched. I right-clicked the icon and a menu appeared. I clicked "Browse files on device...", which launched the Nautilus file manager. I navigated through the directories, found the photos I made with the phone, and was able to copy them over to a directory on my hard disk.

Amazing!

I never expected to have a piece of hardware run (perfectly) only on Linux and be completely broken on Window$.

Our Second Dongle: Window$

The guy at Office Depot was very nice. He let me replace the dongle with a different one. I picked a more expensive dongle (made by Dynamode), paid the difference and went home.

There was no leaflet this time. The installation instructions were printed on the back of the package: load the enclosed CD-ROM into the computer's optical drive, install the software and connect the dongle.

I tried doing this on my wife's PC. It didn't work. There was no Bluetooth tray icon, like I had with the first dongle, and I could not start the Bluetooth software (Bluesoleil) after it was supposedly installed. I clicked and double clicked all the icons that seemed relevant, but nothing happened.

It took almost half an hour of futzing around before I decided to restart the computer. And guess what? it helped. In hindsight, it did seem odd that neither the instructions on the back of the package, nor the Bluesoleil installer, didn't even hint that a restart is advisable.

I was then able to use the overly animated Bluesoleil user interface in order to pair my phone to the computer, and browse the files on the phone.

Thank you very much.

Our Second Dongle: Linux

I had to try it on my box, and, basically, it just worked.

I did find out that frequent removals and insertions of the dongle sometimes required me to restart Bluetooth support:

invoke-rc.d bluetooth restart

But other than that, it just worked.

I also found out about hcitool - a command line utility that's part of BlueZ (the official Linux Bluetooth stack, that's installed automatically when you install the bluetooth package). It can be used, for example, to scan for Bluetooth enabled devices:

hcitool scan

Bad Dongle

All seemed fine, until Bluesoleil started crashing.

At first I thought this had to do with my wife's laptop resuming from hibernation, but I did not have the energy to investigate it any further.

Instead, I downloaded a software update for Bluesoleil, in the hope that this would fix the issue. But the setup program that I downloaded managed to remove the version installed on the box, and nothing more. So lame.

Oh, and the plastic casing of the dongle fell apart after two days of use.

Unbelievable.

Our Third Dongle

The guy at Office Depot was very nice. Again.

This time I picked a no-name made-in-china thumbnail sized dongle - the smallest and cheapest yet. It came with no software, and Window$ would not recognize it, even after a reboot. I pretty much expected this to happen.

I then removed any trace of Bluetooth device drivers from the computer, by following the instructions in the article "Removing unused device drivers from Windows XP machines" (open the device manager with the environment variable devmgr_show_nonpresent_devices set to 1), restarted the machine and re-plugged the dongle.

Window$ managed to find and install the drivers for the dongle with no external assistance and no extra software. I right-clicked the Bluetooth tray icon, and was able to scan for and find my phone, and then pair it with the computer - very similar to my Linux experience.

I have a hunch that either of the previously mentioned dongles would've worked just fine without installing the software that was bundled with them.

More Fun with Dongles

If you have a Nokia phone, I recommend that you install Nokia's PC Suite - it's a pretty cool, free of charge, integrated suite of applications that lets you control and manage your phone from your PC.

Linux has Gnokii and Gammu for doing pretty much the same tasks, from the command line or your own scripts/programs. There are also graphical frontends (XGnokii and Wammu, respectively), which aren't as polished as Nokia's PC Suite, but they do provide support for non-Nokia devices.