Ask HN: Bluetooth kinda sucks. Why don't we have something better?
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.
164 comments
[ 3.3 ms ] story [ 231 ms ] threadI 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.
https://www.v-moda.com/us/en/products/crossfade2-wireless
and I have a pair of these at home
https://www.poly.com/us/en/products/headsets/voyager/voyager...
I wound up getting these after having been deeply dissatisfied with Bluetooth headphones and I think they've been a very good investment.
My current complaining is about the host devices.
My work laptop is a thin Dell Latitude, the performance of Bluetooth is great on that, in a metal frame office building I am able to listen to audio in the bathroom a considerable distance from my office. My personal computer is a huge Alienware (also Dell). Bluetooth is OK when I am sitting directly in front of it but if I go to the next room it only works if I am careful to tilt my head the right way. I think it's a poor radio and/or a badly designed antenna.
Apple devices on the other hand seem to refuse to play music over WiFi with Bluetooth. Most people don't seem aware of this because they use iPhones with cellular connections but I can't do it with my iPad and we always have visitors to our cell phone dead spot (most of upstate NY) try to play streaming music from their phone to bluetooth speakers and fail.
My experience as well-- just gonna put a little plug here in for the Jabra Elite bluetooth headset, that works really well for me.
I specifically buy wired gaming headphones, wired mice and wired keyboards - if there is any sensible wired option I'll take it every time, I even have an extra long network cable I can throw across the living room for the laptop.
Wireless stuff is just less reliable and always seems to throw issues when you really need it to work.
But that's not the answer. Why? It's not that much data. WiFi doesn't seem to have some of these problems. Why is Bluetooth so shit?
That is probably true but part of the problem is that, as I recall from years of Intel Developer Forums, Bluetooth was originally focused on mobile headsets and there were a bunch of other wireless technologies floating around for other purposes.
However, for whatever historical reasons, Bluetooth through a number of iterations pretty much ended up gobbling up all the non-WiFi wireless use cases (other than cellular and NFC of course). And it arguably wasn't really suited for a lot of them.
Their dongles for wireless audio work like magic too - as close to zero latency as I've found in wireless computer headphones.
My cordless phone in the 90s dropped less calls than my cell phone today, how have cell phone companies not managed to copy it?
While my children were yelling their joy (we could hear all children in the neighborhood), I sat at Amazon to order three 20 m ethernet cables. They were part of our home decoration for a year and a half, laying across the house to reliably connect to the switch and fiber.
This seems unnecessary unless you have high latency requirements, like for FPS or fighter gaming, but even then WiFi (and network coding for these games) has gotten so good that lag is barely noticeable anyway.
I say this as someone who has my desk hardwired with an unmanaged switch because it seems silly to not take the time to hardwire a stationary PC and the place where I spend the majority of my time working: if I go downstairs with my work laptop then I'm going going to drape an ethernet cable across my living room just so my connection is 1 Gbps still instead of 400+ Mbps.
If you're getting 20ms to your AP you're in a pretty poor environment or you need to upgrade away from 802.11b.
While on a video call on my laptop just now, while my home theater receiver is streaming internet radio over WiFi, while I've got a dozen other devices active on my WiFi, my average latency to my router is ~1ms. Running a speed test on my phone pushing pulling >500Mbit, my latency spiked...to 12ms!
Just like with the rest of this discussion about Bluetooth being bad, if you've got poor equipment and a poor environment you're gonna have a bad time. I have some cheap USB WiFi adapters which are terrible and struggle to get good performance. I don't use those except for temporary things or when I just don't care about network performance. I don't have issues with the Intel WiFi chips on my desktop or laptops or my Ubiquiti APs.
Are you missing the word "not" in there somewhere? Or being really obtuse? Your comment makes little sense as is. Initially you encourage hard wired unmoving appliances, but then also get behind draping a cable across a room to make sure movable appliances also get the best possible bandwidth?
My wireless headphones work all throughout the house without having to have a device physically on me. I can be listening to a call on my computer, get up and walk to the kitchen, make a snack, and walk back to my office and never miss a beat.
Same if I need to find something in a shelf.
That is pretty much the only reason I use bt headset.
Otherwise agree for keyboard, network, headphones,... Wires work.
Basically, there's a gap between "it works" and "it's effortless" and that's a pricey gap that doesn't net you a lot in return financially.
So the trick is to make sure you have a nice feature set which works well enough so that you can gaslight consumers into thinking the failure is their fault. So if it only works half the time, that's fine. Just tell them to turn their bluetooth off and on or to reboot their device. It'll probably fix it and now they think they are at fault.
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.
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.
The problem I have are the parts where they are not top of their game, ie earbuds. If your only requirement is good call quality then their products can be titled best if paired with ie iphone. But I don't care about that at all. I bought ones which sound for music significantly better than airpods pro, have much better battery life (also their case has better battery for recharging and overall stamina). When yet better ones come (or I lose mine), I will go again for the best within my budget, easily from another manufacturer since brand loyalty is rather meaningless fluff for me, only quality of specific product matters.
But - I can't connect them to any apple product via high quality variations of codecs. So instead of using aptX HD to play my flacs in phone, I would have to resort to some basic implementation and effectively cut off some quality of those flacs. I am sure some wouldn't mind, but I do.
Hence you do shopping around, because in +- apple price bracket you have tons of options for quality hardware, be it notebooks, tablets, different headphones and so on.
This opinion doesn't take into account things like apple's stand on privacy on phones, which for many puts them above rest of the market. Suffice to say for me its more a case of clever marketing than actual proper security of such an important device, especially since I am not an US person and some US laws see me as sub-human, thus US 3-letter agencies act accordingly. But maybe I am completely wrong on this part, it would actually be great since I am already spending same dollars, just for other brands. Just haven't seen a single solid proof of that, and quite a few in contrary.
I would not rank Bluetooth itself as being high on the list of wants for a car, but I would rank quality wireless Carplay / Android Auto functionality pretty high (along with a wireless charging mount). If it is possible, but I have not seen that it is yet. Until then, wired CarPlay / Android Auto works fine. And lack of CarPlay / Android Auto is a dealbreaker.
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.
Not anymore. New distributions have moved to pipewire audio, so since about this year you can open qjackctl, Carla or any of the audio routing apps and drag and drop audio from a chosen app to any number of outputs. (not sure if you'd count not built into the traybar mixer panel as default or not)
And yeah, there are apps like qjackctl and Carla and others which do let you do this kind of mixing. But yeah, I'm talking about the basic sound settings that most users are going to instinctually mess with and make quick changes. As mentioned, there are software stacks that will let you mix inputs and outputs on Windows using synthetic devices, but that's not the natively exposed tools present on a standard install. On most modern Linux distros, you could get it done with some fancy CLI work out of the box, or you'll want to install tools like qjackctl.
I expect that soon the extra features are going to hit the default mixers too - we just need a bit of time for that.
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.
Examples of applications include Collaborative Maintenance, Mobile Worker, Medical Sensing, Data Synchronization, etc. Examples of devices, which can be networked, include Computers, PDA/HPCs, printers, microphones, speakers, bar code readers, sensors, displays, Pagers, and Cellular & PCS Phones.
https://grouper.ieee.org/groups/802/15/pub/par/5C.html
Funnily enough, it's the very last thing they mentioned, cellular phones, that ended up being the primary user!
Pedantic note: IEEE 802.15 was a grab-bag of various PAN proposals, with Bluetooth (IEEE 802.15.1) really the only one to go mainstream, although low-rate networks (802.15.4) like ZigBee were eventually adopted in the IoT world as well.
As a result, saying "let's invent a better Bluetooth" contains a hidden trap: it requires reinventing that really good core, which is probably really expensive, which then would not leave much to build better app profiles and we would end up with a similar problem.
We should not be inventing a better Bluetooth but fixing the app profile certification. I'm not sure what the right solution there is.
Devices all have bluetooth chips already, which is probably the hardest part of adoption.
Then you can define a new system on top, and even swap out the bottom if this new "red tooth" catches on.
Ofc you still have a massive uphill battle, particularly getting manufacturers to agree to a more sane spec than what we have currently (which I wouldn't hold my breath on, that's for sure)
Apparently I have a PAN. First time I'm hearing the term!
I use BT to quickly transfer images and PDFs I find online from my phone to my laptop. All I needed to do was select "Share to Bluetooth" menu on my Android phone and select my MacBook from the list of available devices.
I'm also older than that. I was referring to the initial Bluetooth papers by Ericsson Mobile in the early 90s.
I remember being surprised when the first BT capable (Motorola?) phone I had couldn't send photos to a laptop, maybe twenty years ago. iPhones never got that ability over bluetooth. Airdrop is still hit and miss.
Bump.me was the closest thing to perfection, unfortunately Facebook acquired and immediately threw it in the dumpster.
I've had to resort in the past of putting a small web server on the phone, just to get files off it via WIFI. But of course that's clunky.
If peer to peer networking were easier, trustable etc, it could be a real life saver. There's some feature in Google Files that's WIFI sharing, but I haven't tried it.
It used a mix of geolocation and wireless signals to determine the match and worked flawlessly. You could even do the same with a computer by bumping the phone against the spacebar!
This was over a decade ago. It’s very depressing to see great tech like this just disappear into the void.
I don't buy this line of reasoning.
Bluetooth is at version 5.3, it's not stuck at specification from 1998. The original revision might have been designed for only a few use cases, but later revisions added support for a lot of new things (e.g. multipoint) and I wouldn't be surprised if the protocol has been (several times) completely rearchitected to better support the new reality.
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.
I can easily bike with my Beats wireless headphones.
I can easily run.
I can get up from the computer while watching a YouTube show or if I'm in the middle of a video chat and still want to listen in while I make a quick tea or something in the kitchen.
I've literally gone swimming with my wireless headphones. Heads up front crawl, but still. These things are awesome. Why on earth would I want to be shackled with my computer or phone or worry about tripping on a cable while exercising?
To me the hard part is finding the right headphones. Sound quality isn't perfect, but a reliable bluetooth connection and easy ergonomics for skipping a song are near-perfect on these Beats.
Don't forget the various BT and battery issues, (not to mention spending another hundred+ dollars) which are documented extensively elsewhere on this page.
I'm sure a few people have. But it's not like you choose a car or phone because of it.
Over the decades, airlines have found more ways to put more seats in the same space, more ways to optimize a full plane even if it means more people are bumped, etc. They've made more money but it has also made flying a much poorer experience. Not patently horrible, but not comfortable either.
Since everything else I cared about (price, legroom, etc) was basically the same, the brand I went with was the one who's stereo worked better with my iPhone.
As of 2022, there isn't even a solution, only the hope that BT5 might be have standardized support for marginally acceptable quality, provided vendors actually implement it. Of course, you can't buy BT5 hardware today and vendors have entirely ignored large parts of the spec before, so that's not exactly a great selling point.
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.
Honestly the JBL Charge speaker has the best and simplest solution to this: it just lets two devices pair to it simultaneously.
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.
There was a post about Logitech not creating a lot of interference with their MX products (https://news.ycombinator.com/item?id=31939424). Interestingly enough getting rid of Logitech devices fixed most of the BT issues I had.
My experience with Bluetooth headphones was that on an iPhone they were occasionally annoying, while on Linux they were quite poor and on Windows they were more like a practical joke. This would have been like 4-5 years ago though, maybe all the stacks have been improved.
It's just never going to get priority because it doesn't have the marketshare. Sony doesn't care about Linux and Canonical doesn't care about Sony.
If I were you, I'd consider an external bluetooth adapter that supports A2DP and connects to the 3.5mm plug on your computer, like this one: https://aluratek.com/universal-bluetooth-optical-audio-recei...
Look for AptX low-latency support too if you care about audio lag (for movies or games).
Second thing: The actual default behaviour seems to be to use the profile that was used last time. But for me, whenever MS Teams is running, it decides that the correct thing is to switch it to Headset mode, because Microsoft knows what you want better than you do, and you want the option that produces shitty sound quality, but bidirectional audio.
Everything switches seamlessly from LG earbuds to Samsung Galaxy A52 5G, Nintendo Switch, Envy with Pop OS and Windows 11.
I have no idea what people are doing.
But for all the issues with it, usb seems to work on devices without Bluetooth-like issues.
Standards should be open and free for common public and only have to pay once you reach certain company size. Things like ISO standards aren’t free.
To counter my own point, it takes money and people to run a standards committee and it is important to keep in mind that funding has to come from somewhere. Here are more details of what it takes to run one: https://stackoverflow.com/a/22968431/3908009
IMO they should either be funded by gov or by large companies.
(and of course if you're just hacking locally you can do whatever you want as it's an open standard)
I'm probably overengineering it, just pointing out it is technically possible
Instead there could be a single registry like IANA.
You'd be surprised at how expensive it is to manufacture things. A plastic injection mold to make plastic parts can be in the five figures, for example.
https://xkcd.com/927/
The main issue with Bluetooth is the sound quality sucks. That is actually due to the Bluetooth standard.
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.
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.
There were articles in the early aughts about the "failure of bluetooth" [1] since syncing with 802.11 to a network was a better option.
1. https://www.cnet.com/tech/tech-industry/bye-bye-bluetooth/
Nice, never knew what to call that decade before.
On Android you find a file and then Share -> Nearby. The recipient might need to fiddle in settings to enable it.
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.
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).
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.
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.
You can track your dog or purse or car anywhere in the world, all using a CR2032 coin cell battery that will last for years.
It provides your phone with an easy extension into the real world, which has thousands of use cases.
I'm not a Bluetooth expert but that doesn't sound right. Surely the vast majority of BT complexity in a modern stack is in the software?
Also, if you're "breaking the standard" in a closed system like in an Apple product, who cares if you're doing it in software or hardware?
Bluetooth has too big of a name recognition to just go your own way. Thousands of popular products.
Depends on what you call software - of course it's code, but pretty much all of the complexity of the stack is in firmware code of the BT chip, not in software running on your main OS/CPU.
https://hearinghealthmatters.org/wp-content/uploads/sites/9/...
Bottom layers beneath the HCI layer divider in HW, layers above software running in the "BT firmware chip" (I'm going to guess ARM-based)?
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.