Summarizing only a tiny fraction of the complaints:
- Connecting can make devices do weird stuff (play default songs, etc.)
- Pairing multiple devices leads to unpredictable behavior (random switching, switching when you don't mean to)
- Can't connect multiple headsets to one device (why do my wife and I need to share earbuds watching a movie on a plane?)
- Can't connect multiple devices to one headset (why can't I listen to music on my computer but still get calls from my phone?)
- ...
Why don't we have something better already?
I'm sure the answer spans a number of different fields/challenges. Standardization, security, adoption, regulation. Are there ongoing efforts to create a new protocol that solves for the problems so apparent with Bluetooth? Are there specific (seemingly) insurmountable roadblocks to improving the status quo?
Asking from pure curiosity. And because I spent 5 minutes getting something to correctly pair this morning.
Notice that everything appears to be there: very detailed specs and information about testing. However, when you try to implement one of these specs you quickly realize that you cannot do it with the spec alone. You need example code, base implementations, test suite software and test data to build conformant software. Unfortunately, the Bluetooth SIG hides these resources behind a membership wall. Guess what happens then? You get lots of implementations of these specs that are a little bit off and don't handle all edge cases.
If I were to wave a magic wand I would like to see Bluetooth SIG change to a donation based financial model and for them to make all resources freely available. Right now they make money from branding, certification and country club membership fees. No wonder the ecosystem is one big tire fire.
I think it's the same reason why so much of our software is poor quality: taking something from "works" to "works well" is a cost sink. It will cost you and yet doesn't add much to the bottom line to compensate.
It's sad that my family uses the available Bluetooth devices less than if there was a wire we could just plug into.
We think of technical innovation as a straight line forward but sometimes it goes back the other way.
From my sideline perspective it's probably because Bluetooth was developed without knowing how successful and expansive its use would become. It was developed by mobile phone companies to connect wireless earpieces to mobile telephones, and that was it. The entire scope of the product that is Bluetooth. They didn't even expect it to be used for stereo (or more channels) audio, _just_ for telephony ear pieces.
It has since been used for many things that it just wasn't engineered to do.
However, it _is_ (or rather has become) a rather ubiquitous protocol through lack of alternatives, and now is the must-use option for any hardware vendors wanting to connect to nearby devices. Pragmatism/apathy.
The flip side is that consumer electronics manufacturers are horrendously cheap when it comes to BOM cost. If your component doesn't directly provide a feature list item consumers will recognize, it's not going in the device. Similarly, consumers don't care about radio protocols that aren't universal. This leads to a chicken and egg problem where manufacturers won't introduce new things, and when they do consumers won't use new things because new things don't stick around.
As for why BT sucks, it's a combination of very few chipset manufacturers (at one point it was basically just Broadcom and CSR, now both part of Qualcomm) that suck at software owning the entire market, legacy protocol design decisions constraining future capabilities (this is why audio sucks), and simply being too complicated.
For music, I bought a DLNA renderer (more like a Chromecast), and just assumed that lots of software could remotely talk to it. But about the only software that almost works with it is something with a poor UI from yesteryear on Android. And music service support is hit and miss. So I'm edging towards Bluetooth now.
That said, yesterday I resorted to CDs. And today, I've jacked a spare phone into an auxiliary port. And I won't use my phone for Bluetooth music mainly because if I walk out the room or want to take a call it all goes tits up.
I've had Bluetooth on Debian Linux on my Thinkpad for years, and different releases have been hit and miss for things like file transfer. And address book syncing. And that's not confined to Linux either.
When it works... It does feel like magic.
Really I want to easily route sound from one app to a particular device or devices with easy remote management. Voice control is a bit hit and miss. But hands free remote is a good idea.
UI is very esoteric, like when you are offered a list of Bluetooth services. A phone I had would offer itself as a remote device or something, but I never figured out how and what it did. Or the worry that your phone might turn into a data access point accidentally.
As evidence, sticking with a single vendor means I don't have weird stuff happen, and can in fact connect multiple pairs of AirPods to a single Apple TV unit so my partner and I can watch together in outward silence.
I still cannot, as far as I know, connect a single pair of AirPods to more than one device, but that doesn't seem like a feature anybody would have considered when initial developing the BlueTooth spec. Perhaps such a feature will come soon, at least with a single vendor solution like Apple's.
It's only very recently that I discovered that you could use it to transmit files from Device A to Device B. No middleman app or cloud sync service needed! Considering how awful USB file sync is between Mac OS and Android, I don't even break out the cable to transfer files anymore.
The downside is that transmission speeds are very slow, approx. 5 seconds to transfer 1 MB. That's fine for EPUBs and text-heavy PDFs, but not for anything bigger.
As for "can't connect multiple devices to one headset", as mentioned by others you can do this if you get the right hardware. I have a few headsets which support multipoint.
- connecting does nothing confusing, just changes default output speaker for most software
- pairing multiple devices just needs a splitter then it works the same as pairing one device in terms of ux
- can connect multiple headsets to one device
- can connect multiple devices to one headset
- can purchase replacement 3.5mm cables cheaply at any convenience store around the world
- can repair this equipment yourself with soldering or even just a wire stripper and tape
- doesn't need charging or any external power supply, everything from the connection to even the output speaker in the case of headphones is powered by the device which makes ux easier (just one thing to keep charged)
- can use brand new equipment or decades old equipment all the same. my headphones are 10 years old and will last decades longer easily
I have no reason to let go of my 3.5mm cables and adopt this inferior system.
But the touch on all of the things that you brought up in your original post related to like real time audio. I swear there are implementations where multiple headsets on one device or multiple devices to one headset do exist. I don't think the problem has much to do with Bluetooth as a standard even though the standard is extremely complicated I think it all has to do with software and implementation on the part of the host device like the computer or the phone and the playback device. Like if there was a standard reference device example for both of these things that did everything correctly I'm pretty sure all of the things that you brought up work. Although I would like to be corrected on this.
It’s a cable.
Apple has also used out-of-band pairing mechanisms to enhance the customer experience. But again, there is only so much they can do.
There are many problems built into the standard and so there was only so much they could do.
Ironically, the standard itself is preventing better experiences.
It's been over 10 years now since BLE came out. Many companies have crashed and burned or abandoned products or just accepted poor user experiences in those 10 years.
The Bluetooth SIG is a monstrosity. I bet you would have to break off to fix the problems in under 10 years. And the SIG would probably sue to prevent that.
https://www.thisisant.com/consumer/ant-101/what-is-ant/
But phone manufacturers opted for Bluetooth instead. Go ask them why. Sony still supports ANT+ on their phones, but it's mostly only used to connect to fitness equipment (which has also mostly moved to Bluetooth because it is what most phones support.)
Most importantly, an extremely detailed and ambiguous foundation was established so that copyrighted implementations which would far outlast patents would continue to provide an income stream once the patent expired and the hardware was in the public domain.
Just so happened to be an approach to short-range PC radio communication.
Cross vendor implementation of software is where I see a big potential for problems. As a protocol specification Id imagine all this has been thoroughly thought out. Where the rubber meets the road in the software, its probably not been so faithfully implemented (it works with my laptop - SHIP IT!).
Just my thinking on the backside of finally getting a new phone paired with my car.
- It is incredibly hard to make something so versatile work well everywhere, all the time, for everything
- It is even harder to get multiple stakeholders to do this consistently
- And it harder still to do this if the business case doesn't allow for (long-term) support
This is mostly a business problem and not really a technical problem. Wi-Fi is similarly pretty badly implemented, for similar reasons, but the upside is that it doesn't have a billion specialised profiles, it generally just has to pretend it's encapsulating network frames the same way ethernet does. As long as it can do that, people can make use of it.
I think a lot of the time it can be devices that implement the protocols poorly because I share your pain with my airpods max. However, I have a pair of a bluetooth headphones that have been amazing for 5 years.
Honestly the JBL Charge speaker has the best and simplest solution to this: it just lets two devices pair to it simultaneously.
I'm sure a few people have. But it's not like you choose a car or phone because of it.
The main issue with Bluetooth is the sound quality sucks. That is actually due to the Bluetooth standard.
People who prefer wireless are anyway accustomed to things that suck.
2. It has brand-name recognition.
3. People who need it know that its the "wireless thing" for audio and music, often without their being able to articulate precisely what it does.
4. It's baked into enough hardware that a competing technology would struggle to enter the market.
I've got a bluetooth game controller and headset for my phone (Pixel 4a), but the latency makes using them both at once impossible. If I switch to a wired headset the controller bluetooth gets better and the game becomes playable.
I'd like more features but really on a pure consumer elevel. it works out of the box and does what i want fairly reliably.
Bluetooth 5.0 allows connecting two headsets simultaneously.
If you stick to the stuff that works with every device (no automated switching, no proprietary codecs, no out of spec bandwidth and timing requirements) Bluetooth works quite well in my experience. Only when companies try to invent their own solution or very cheap, crappy, standards avoiding devices get involved does Bluetooth really start to break down.
Another issue is driver stability. I swear to god, Windows just hates Bluetooth. Somehow, Windows drivers for even common chipsets are worse than Linux drivers. On the other hand, on some Linux kernels, having Bluetooth on while putting a device in sleep can cause a kernel panic... It's all so unstable. There's nothing in the spec that says your software must hang and become unresponsive when an (un)pairing attempt fails, but here we are!
As for some of your complaints:
- connecting devices will make them behave like they were made to do. If they play default music, that sounds like a product feature that's off, not a protocol problem.
- pairing multiple devices is not governed by the spec (nor should it be, in my opinion). What a device will do depends on what makes sense for a device; a party speaker may want to connect to whatever device is available, but headphones or a keyboard prefer connecting to the device they were last connected to. Again, this is more of a device implementation feature, not really a protocol thing.
- connecting multiple headsets to a device is possible. In fact, I've done so in the past. You're limited by the throughput of your Bluetooth version (quite high, these days!) and any interference, but there's nothing preventing a device from playing to two devices at once. In Linux you can create a dummy device to stream to multiple audio endpoints through some config or command lines; on other platforms you'll need custom applications. This is an OS design issue, not a protocol issue, and it's no different from playing audio to both your TV and your headphones (quite useful for watching movies together with people with hearing aids and the like!)
- Can't connect multiple devices to one headset: this is a protocol issue. Devices join a piconet which needs to be synchronised and is controlled by a single master device. In theory that master device could be your headphones, with both other devices acting as clients, but in practice this is often not the case. Such a system can be quite finicky to work with when one or both devices go out of range or if multiple devices try to send high definition audio over the same channel at the same time.
Like all things Bluetooth, I've often wondered why WiFi Direct hasn't been more of a success. It'll eat more power, but it solves so many issues with Bluetooth, especially with modern 5.2GHz WiFi. For battery life purposes we'll be stuck with Bluetooth for a while, but I'd like to see WiFi Direct get a second chance for sharing files. Hell, it could even work as a cross platform Airdrop alternative (though Apple will obviously never join in).