Bluetooth is a venerable technology. Dating back to 1998 – a year in which many of its users probably weren’t born! – it is still the most widely used short-range method of communication between portable devices. So after all those years of refinement, why does it still have so many problems?
Many of Bluetooth’s issues exist because it’s massively, massively complex. That’s a gentle way of saying “overengineered”. The years of refinement haven’t simplified things; on the contrary, each new version has added features which add complication. At the time of writing, the current Bluetooth specification runs to 3,085 pages, and that’s just the basics. If you want to do anything useful, like play audio, there’s even more to read and implement.
An amusing comparison is with IPv4, the 1981 specification which still powers much of the internet. That runs to just 44 pages. There’s beauty in that simplicity.
The complexity of Bluetooth is both its strength and weakness. What’s good about those 3,085 pages is that they cover all possible angles, including for example what happens if things go wrong, how to ensure security, and what to do to save battery. But the weakness is that the specification is so large that it’s practically impossible for a developer to implement it all correctly. And that is the source of most of your Bluetooth reliability problems.
A different connection
When two Bluetooth devices talk, a combination of their software, hardware and situational requirements will dictate what parts of the Bluetooth specification they will use. Given the breadth of features that must be implemented, it’s quite possible – probable, even – that neither device has ever used precisely that combination of features before. In short, every Bluetooth connection is technically different.
From a development perspective this makes Bluetooth practically impossible to test effectively. If you’ve just invented a new pair of headphones, the only way to test whether it will work with the top 500 models of phone is to buy all 500 and test each one separately. Even then, regional differences and the exact OS version and patches will still affect things, as will details like distance and how many other Bluetooth devices there are nearby.
So it’s only through diligent testing that your Bluetooth invention can actually be made to work. But in that testing process you’ll find mutual-exclusives. Say there is a bug in the way a particular 3-year-old Sony phone handles a part of the Bluetooth spec. It might be easy to work around, but in doing so, you’ll make your device incompatible with a particular 2-year-old Samsung phone. There are hundreds of examples like this, and in every case you have to forgo compatibility with one device to ensure it works with another.
From a consumer’s perspective, this is maddening. Why can’t the car which cost you the earth communicate with the phone which cost you a small fortune?
Bluetooth is the best technology we have for short-range communication, and it doesn’t look like it will be superseded any time soon. It works really well in a lot of situations, in some of which there would be no alternative. But it’s too complicated for its own good, and I look forward to the day when it’s either simplified or a new technology can replace it.