Here Adam Fish and Hamilton Chapman demonstrate just how far we've come with our new Bluetooth stack. The best part, these phones are using two completely different Android Phones: one Pixel 3 and a Samsung S8. We've mentioned that many Android phones act quite differently when it comes to Bluetooth stability.
What did we do to get such distances? Well, you can think of the Bluetooth hardware and stack like a violin. Just because you've got the best violin in the world, without knowing how to play it, can still give you the worst sounds. Several improvements had to made to get Bluetooth to it's full potential.
Protocol enhancements - Our new v2 protocol is far more efficient when it comes to hand shaking. As you might know, Ditto is a sync engine and often requires "remembering" where devices were left off
Compression - Our Document model has undergone a major revamp where it now syncs CBOR serialized data instead of UTF-8 JSON strings. We've noticed a 18-22% reduction in the size of comparable documents. The less you have to force down the pipe, the less
Lower Level API utilization - In prior versions of iOS, Android, and Raspberry Pis, certain APIs like L2CAP and advertising extensions weren't available. Now, even though they may be available, we've yet to see many developers have the necessary time,understanding and or skill to effectively use them.
Better hardware - devices like iPhone 8s and later generation Pixel's and Samsungs, have a much more mature Bluetooth chip that reconnects and transmits data a lot faster. And better yet, if devices understand that they can "upgrade" to Bluetooth 5.x, then they can speak at a much higher bandwidth than Bluetooth 4.x devices.
Of course, we will be making even more improvements in the coming months and there's no shortage of innovations that can be done at the protocol and compression level to further enhance Ditto's performance and efficiency.