Specification vs Implementation

This week has been full of Bluetooth. The 5 is out. It's been a long wait. Not really wait but countless hours of brainstorming, design, tuning, test specification development. Now Bluetooth SIG estimates we will wait between 2 to 6 months until the first Bluetooth 5 products hit the market.
We are somehow used to an 18-month mobile phone replacement cycle, but technology does not run THAT fast. Let's face it: what is the real difference between iPhone 6 and 7? Significantly smaller than between Bluetooth 4 and 5. It just takes time to develop a global leading standard.

Now speaking of standards and implementations, I just can't help commenting on how big the gap can be. Bluetooth 4, with the LE subsystem, was released in 2010. Today, almost 7 years later, a flagship Google device - the Pixel C is not capable of running a stable Bluetooth connection with its keyboard. And Apple is still struggling with synchronizing timing of a stereo sound between a left and a wireless AirPods (wonder how long will it take them to figure out the timing synchronization).

And it is not just because the Bluetooth standard has something in it to prevent a rock steady connection between a keyboard and a tablet. It is the implementation of Bluetooth on Android that Google just cannot get right for several years. In Android's case the remedy is the same as ever: disable the Bluetooth adapter and re-enable it. When it comes to Bluetooth, Android has been a complete failure. It simply does not act like a proper operating system is expected to. It does not properly shield the hardware and system resources from applications. So while one application may be in the middle of a very time sensitive radio operation (such as transmitting a phone call to a wireless headset), another may just come and reset the Bluetooth adapter. Or beat it to death with a stream of too frequent requests.

On one hand we could say the bad implementations will be conquered by good ones. But Android is a real problem. There are probably 3B phones out there, running a poorly designed Bluetooth stack. And Google is playing ostrich here. With 5 just released and Mesh around the corner, Bluetooth is becoming too widespread and potent to be ignored. It is about time Google fixes their stack. It really feels like Microsoft TCP/IP back in 1995. Hey Google, it's time to put the shoulder to the wheel!

Comments