Bluetooth sucks. Why isn't there a better wireless protocol for peripherals?

Continuing the discussion* from Why the lack of [wireless] USB-C mouse's?, where the OP was trying to find a good wireless mouse that doesn’t suffer from Bluetooth latency issues.

It seems to me that Bluetooth in general is plagued with so many issues: pairing in general is a pain in the ass, device switching is a HUGE pain (like when you want to use one pair of headphones with your computer, phone, TV, etc.). For highly latency-sensitive devices like gaming mice, it doesn’t have enough bandwidth. It’s not fast enough to use for big peer-to-peer file transfers. It’s not reliable or fast enough to use for smart device setup. It only seems to work for the most trivial of use cases, but for any prosumer/professional setup, manufacturers will either include their own wireless dongle using their own protocol, or else use some alternative means of communication (piggybacking off Wi-Fi, or using UWB or supersonic transmissions, etc.). It has limited ability to transmit metadata (like remaining battery life, or even whether a sensor is connected at all, like in Bluetooth Low Energy bike sensors). Clearly all these problems can (and have) been solved through alternative proprietary protocols, but Bluetooth still remains the default.

Why doesn’t the industry have a better wireless peripherals standard than Bluetooth, after all these years? I can’t think of any other protocol in widespread use that’s as crappy and unreliable and laggy and confusing as Bluetooth – enough that every serious manufacturer of mice, keyboards, headphones, speakers etc. decides to implement their own proprietary wireless protocol instead. I mean, yes, HDMI is a mess, USB-C is a mess, but at least they mostly work once you have the right cables. Bluetooth is shitty even when it’s working correctly.

Apple, at least, improved their Bluetooth stack by supplementing it with their own H2/H3 & U1 UWB chips in their audio peripherals, which add things like easy device switching, spatial positioning, etc. They’re still Bluetooth for the most part, but the sideband upgrades make those peripherals work a lot better with other compatible Apple devices than when they’re used with a typical Windows PC or Android phone.

But why haven’t we seen a truly better industry-wide wireless standard evolve over the years? If even things as niche as Firewire and Thunderbolt can gain a market foothold, certainly something better than Bluetooth is worth aiming for…? It’s been 20 years and Bluetooth seems barely any better than it did back in the day it launched, despite 5 major versions (or is it 6 now?). It annoys me.

First world problems :smiley:


* (Side note: Thanks, @What_Exit , for introducing me to the “Reply as linked topic” feature!)

I agree 100% and will extend it to Bluetooth in devices that make no sense for a wireless connection at all. Like a pH meter or sousvide immersion circulator. It’s a crappy complication that, even if done well, relies on some bogus proprietary app with deadend support.

It’s arguably ok for brief connections like phone-car and headsets, party speakers.

Coming up with an audio standard was always going to be a mess. Bluetooth sort of worked early on so that’s what they went with for everything. Bluetooth for devices, wifi for networks.

I used some Bluetooth to RS232 adapters for a few projects and they are reliably iffy in situations where all else is ruled out. The Zigbee (802.15.4) versions of the same devices are superb and over quite some time.

Much of the problem here is that Bluetooth was designed as an interface protocol, not an application protocol (like Zigbee or Z-wave) with a schema which specified support for all of the things that you list. It was specifically intended for use with low power devices such as earbuds and wireless peripherals, and also to limit interference by attenuating the range at which it will work. Most of the connectivity problems you list stem not from the Bluetooth protocol itself but the poor way it is implemented by devices (i.e. not offering a way to easily disconnect or seek out an active device) or being used for applications beyond what it was intended (large file sharing, low latency gaming peripherals).

The newer generations of the Bluetooth protocol have actually addressed several of the issues you list, such as providing device metadata, but that is reliant upon device manufacturers a) implementing the newer protocol, b) using those features, and c) producing and testing reliable firmware. There are, as you note, alternative protocols such as HaLow (IEEE 802.11ah) which would provide higher bandwidth and connectivity over longer distances but it just hasn’t been broadly adopted because device manufacturers would either have to switch over to it or integrate a second transmitter/receiver. By virtue of being lower frequency it will also penetrate barriers and transmit further, potentially creating a lot of interference in high traffic areas that can produce latency as receivers struggle to receive conflicting signals, and given the experience with Bluetooth we can expect that manufacturers would struggle to develop reliable implementations for the first few product cycles.

In short, Bluetooth remains the dominant protocol for generic use because it is ubiquitous, supported by the vast amount of mobile and embedded wireless devices such as smartphones, car entertainment systems, fitness devices, speakers, et cetera, and it works well enough (at least, in quality devices) that there just isn’t an impetus to abandon it, nor a demand to implement HaLow or other competing standards in non-proprietary devices.

Stranger

In my experience, sometimes it works surprisingly well and easily, other times it is indeed a huge pain. I haven’t yet figured out what makes the difference.

The one that gets me is my wireless bluetooth speaker. If I have a device paired to it that it can see, nothing else can pair to it. I have to dig up the offending device and disconnect or even “forget this device” before I can pair something else with that speaker. If I put the speaker in Pair mode, it should just connect to the next device that asks.

That isn’t a problem with the Bluetooth protocol; it is a problem with the implementation of the speaker’s prioritization algorithm. Some devices will preferentially (or even exclusively) try to link up with the last device it was connected to; some will look for the first Bluetooth receiver; some will link up with two devices simultaneously and then do some kind of voodoo to figure out which of them should take priority (often dropping or alternative between them in a most annoying fashion), but none of that is controlled by the Bluetooth protocol itself. You should be able to kick a device off by putting the speaker into seeker mode and then linking to your intended device but then sometimes it will not recognize any known devices, or sometimes (particularly on really cheap speakers) it will force you to reinitialize the pairing relationship entirely.

Stranger

I’ll second Stranger’s analysis, with the caveat that my direct knowledge of the stack is rather old. I worked on an early implementation when the spec was at version 0.88, if I remember correctly.
I did a little work at the baseband level, much more at LMP (link management protocol) and some of the higher level pieces. It was actually fairly elegant in solving some complicated problems. I was simultaneously working on the stack for our first Bluetooth headset and a test system to drive it from a PC, since our phones didn’t have a functional stack yet.

The protocol handled most of the stuff we find annoying today. The pain points I experience are in the user interface, trying to tell the components what I want to do.

we are a family of 5, out of which 4 peeps use my (quite nice) “stereo set”, via bt-streaming from probably a total of 10 different computers/celphones/whatnot …

the typical “rebel-yell” in our household is “who’s connected to the D50”??? (the DAC) … of course after checking that its not my computer who has taken the connection when I try to stream from my cel…

newer protocol devices are better, as they allow 2 simultanious connections, it seems …

on the upside, soundquality with the LDAC codecs has improved no-ends over time and is now even lossless.

I have two bluetooth headsets, and one can connect to two different things, and also, if it doesn’t immediately connect with whatever it talked to last time, will scroll through its list of computers it knows, and try each one in turn. That usually works. The other one is a huge nuisance to pair.

But even the first works reasonably well because the headset tells you what it is doing. So it’s not just sitting there dead with you wondering whether it’s going to work. It is giving you explicit feedback that reassures you it’s going to work, or that it won’t and you have to tell it to connect to something new. A mouse doesn’t have any obvious way to give that kind of feedback. I REALLY don’t want to depend on a bluetooth mouse.

Maybe if I only had one device in the house that it might ever pair with, I’d be willing to give it a try. But I have several. Not going down that path.

What’s it doing? Shouting out the name of each device?

Yes. It doesn’t shout, but it says, “pairing with puzzlegal’s pixel 9”… “Puzzlegal’s pixel 9 paired”. It if the phone isn’t around, it goes through the list of the other devices I’ve paired it with. (But it attempts to pair with two, so actually, it usually pairs with my phone and then tries to pair with one of my laptops.)

“pairing with puzzlegal’s pixel 9”… searching for puzzlegal’s pixel 9”… dammit, where is that thing? … it must be around here somewhere … ah, screw it … pairing with pixelgal’s laptop…”

Exactly!

I have a set of earbuds that works that way. It pairs with the most recently used device if it can find it. If not it tries the next most recently used device, etc. If you want to change what it’s paired with, there’s a button on the earbud case that you press and it will disconnect from the current device and connect to the next most recently used device. Press again to pair to the second most recently used device and so on. And it always announces what it is trying to pair with. It works very well almost all the time.

An anecdote at how bad the programing on some of these devices can be: I have a Bluetooth speaker which works fine playing music (A2DP Bluetooth profile), and if it doesn’t play any music for 5 minutes it turns off. So far, so good.

It can also act as a speaker phone with its built in mic (HSP profile). It sounds great in speaker phone mode. However it will turn off after 5 minutes of speaker phone, because it hasn’t played any music. Best guess is the sleep timer is only reset by the A2DP profile, because when playing music it will run until the battery dies.

I always feel like Bluetooth works pretty well, with a few quirks, but that’s mostly because I remember the Bluetooth of 25+ years ago, when it was really bad. Back then you had to pay attention to what brands of phone and headset you bought, because some just refused to ever work together.

Heh, apparently we had some threads from back then (well, 15 years ago): Why hasn't Bluetooth really taken off? - #8 by Bijou_Drains

The ancients were also complaining about how shitty it was. And they pondered whether women would ever deign to wear such hideous devices on their precious heads. Guess Apple answered that question for us, at least.

Speaking of “the ancients”. I visited the US research lab of one of the big Japanese consumer electronics labs in, I think, 2000.

They were working hard on a unified media networking system. Very simple devices, stripped down Java, Bluetooth connectivity. A perfect melding of stupidity.

They were also one release behind in Java versions. I was certified in the current Java. There were some changes that would make their plan even less realistic. Uncompressed video over Bluetooth in 2000 on cheap hardware? Right. And of course truly encrypting such streams was absurd.

None of their stuff ever came close to being marketed.

While the technology has gotten better, things like 4k and surround sound have kept it tricky.