5 ms·
This is a problem with bluetooth, full-stop. The protocol is insane, and this sort of thing happens frequently on every platform.
by ohazi 9y ago
This is a problem with bluetooth, full-stop. The protocol is insane, and this sort of thing happens frequently on every platform.
- com2kid 9y agoBT itself is NOT the problem. Some of the profiles are a bit odd, and others are downright eloquent and wonderful. The LE stuff is actually quite nice in places! BT chipsets on the other hand, are complete crap. And every single BT stack has its own mess of bugs and is 90% of an implementation of what the spec says, and each stack implements a slightly different 90%, and the remaining 10% is just random bugs.
- ohazi 9y agoStrongly disagree. Every time I look into building anything with bluetooth I come to the same conclusion that the protocol is irredeemably awful. The fact that the massive pile of profiles essentially all need to be supported inside the chipset is what makes their firmware so buggy and unreliable. Software written by semiconductor manufacturers is famously bad, and the approach that bluetooth has taken basically asks them to do more of the firmware work, keep track of more application state, and never get their wires crossed. And because the chipset firmware is almost always a binary blob, system designers have no way to fix anything. Of course it's going to be a massive failure. What they should have done was built a dumb, encrypted pipe, and let downstream driver and application developers deal with the application-layer logic. Then the semiconductor manufacturers would only be responsible for a basic bulk transfer interface that's a lot harder to screw up. This is why wifi and ethernet and usb drivers tend to work reasonably well, and bluetooth drivers are an unreliable mess. I get why they did it... in the early days, prices for bluetooth chipsets varied depending on which profiles they supported. This was supposed to be a way for semiconductor companies to differentiate themselves in a world where they were increasingly viewed as commodity suppliers. But because they never bothered to invest in their firmware development (these companies have like 20 people working on chip design and verification and like 3 on firmware), they ended up making everything worse rather than adding value.
- com2kid 9y agoAVRCP is quite eloquent. I get the feeling that whoever designed it is upset that it never got properly implemented or used. BTLE in its entirety is just simple. It is possible to read over the BTLE spec in a couple hours and understand it. (AVRCP can be read in half an hour tops, 15 minutes if you skim the same-y diagrams) BT SPP is, well, a glorified serial port, with all the advantages and disadvantages that entails. If you want a glorified pipe, BT SPP is where you go. You can actually use BT LE to do the same thing, at a much slower transfer rate. > wifi and ethernet and usb drivers tend to work reasonably well WiFi and USB drivers are also flaming piles of trash. Since 90% of USB use cases consist of either USB-HID or Mass Storage, there is less to get wrong. Do anything beyond that and you can easily find yourself SOL. And Wi-Fi drivers are complete crap. Power management sucks, Wi-Fi chips hard lock and somehow a watch dog timer never kicks in (how?), and they rarely give the speeds that they are supposed to. Intel had some Wi-Fi chip a few years back that, for a good 2 years after its release, it would randomly stop deciding to finding networks to connect to, until it was power cycled. After a couple of years on the market they finally released a firmware update. Don't get me wrong, Chipset BT Firmware is horrible. I've worked with vendors who obviously weren't using version control, subsequent patches would have regressions that made it apparent they had built today's patch off of old source code that predated the last patch they had sent us. Hilarity like that. But the OS side BT stacks also tend to suck. Then there is the driver for the BT chip, which can also suck. The actual BT standard itself, I would argue, isn't the largest part of what is wrong.
- Mister_Snuggles 9y agoI have not experienced these problems. I have a Bluetooth mouse that I alternate between a Mac and a ThinkPad running OpenSUSE Tumbleweed. It’s flawless on both platforms. I have a Bluetooth keyboard paired to an iPad, again it works flawlessly. I have Bluetooth headphones that I’ve paired to a variety of computers and iDevices and they work flawlessly. In all honesty, I’m actually shocked at how well it all works given the horror stories I’ve heard.
- noobermin 9y agoIt really varies. My bluetooth works without incident with my linux machines, but I once spend almsot half an hour trying to pair with my macbook. I hardly use that macbook anymore because I ran into a myriad of problems. It still pisses me off to this day how people keep extolling macbooks while denigrating how linux is so unstable and broken because my experience has been exactly the opposite.
- Mister_Snuggles 9y agoIn my experience, my Macs and my OpenSUSE Tumbleweed ThinkPad are about on par in terms of how well they work. The Mac handles some things better, the ThinkPad handles other things better. Stability-wise, they’re all very solid machines. Looking at my co-workers with Windows laptops, I’m amazed at the amount of crap people are willing to put up with. They are so unreliable it’s unreal.
- krylon 9y agoThe same headphones will pair with my phone every time without hickups - well, maybe a couple of times, but considering that I use them daily, the problem rate is negligible. That phone is a (relatively) cheap Huawei phone running Android. I have no idea how far the Android kernel deviates from the regular Linux kernel, so maybe Huawei just put a real effort into writing good BT drivers (or the company that made the BT chip?). But the fact remains that with my phone and my tablet, Bluetooth pairing with the headphones works very well (= reliably). So while Bluetooth may suck in many ways I do not even begin to comprehend, in my case, I strongly suspect, the problem lies elsewhere.