Wednesday, 22 April 2020

Droidcon Italy Webinar #1

We're in the midst of a global pandemic. People are isolated, working from home or.... just isolated. Conferences everywhere have been cancelled.

But Synesthesia, the company behind the excellent Android developer conference, Droidcon Italy didn't let that stop them. The annual conference itself was rescheduled to 27th/28th November, but to satisfy those of us hungry for knowledge right now, Synesthesia, working with the Bluetooth SIG also launched a series of webinars so that developers could get together virtually and listen to speakers share their knowledge on a range of topics, over the course of the summer.

I've been a speaker at Droidcon Italy a few times and covered a number of different aspects of Bluetooth. Yesterday, I was glad to have the opportunity to deliver the talk I'd created specifically for this year's Droidcon Italy, entitled "Advanced Bluetooth for Android Developers".

I talked about data rate, what it means and how to maximise it when transferring data between two devices using Bluetooth Low Energy (LE). There are various APIs available to Android developers which can be used to exercise key variables in how Bluetooth is working underneath those APIs. I reviewed those variables and the associated APIs and hopefully gave the audience a much deeper knowledge of what's really going on under the hood, what to expect from those APIs and exactly what can be achieved using them. I presented my own test results, where for example, transferring 100k of data took about 10 seconds using default settings but was reduced to about half a second with a larger ATT MTU, faster connection interval, the LE 2M PHY and two devices which support the LE Data Packet Length Extension feature.



I talked about range. There are many people who still think that Bluetooth has a range of about 20 metres. In fact it's now over a kilometre, especially since Bluetooth 5 introduced the LE Coded PHY, which uses Forward Error Correction to increase receiver sensitivity. Android has APIs that lets you use this feature so that you can maximise communication range. There's some good high level information at the Bluetooth SIG web site about this topic: https://www.bluetooth.com/learn-about-bluetooth/bluetooth-technology/range/  and a deeper review in a paper about Bluetooth 5: https://www.bluetooth.com/bluetooth-resources/bluetooth-5-go-faster-go-further/


I also explained how broadcasting can be performed with Bluetooth LE so that communication is between one transmitting device and an unlimited number of receiving devices, what Advertising Extensions are, how they work and how they can be used.



I looked at Bluetooth mesh briefly, focusing on the fact that Android developers can create applications for the monitoring and control of devices and systems in a Bluetooth mesh network, using something called the Proxy Protocol.



Finally, I talked about the future. Platforms and APIs always lag behind the Bluetooth specifications. There are a number of exciting new capabilities in the Bluetooth core specification which have been released over the last year or so, which we may see appearing on Android and other platforms at some point. Key amongst them are Direction Finding using AoD (Angle of Departure) and LE Audio, the new Bluetooth audio technology which uses Bluetooth LE rather than the older Bluetooth BR/EDR, has a higher quality codec, supports multiple concurrent content streams, private or public audio sharing via audio broadcast and is designed for hearing aids. And sitting under LE Audio in the Bluetooth core stack in a feature called Isochronous Channels, which has potential utility beyond audio use cases. It allows time-bound data to be communicated to multiple devices concurrently, but acted upon (e.g in the case of audio, rendered) simultaneously.




My presentation slides are here: https://drive.google.com/open?id=1lXK0s-g9EtA9kLSHeCTnAyosrf5XDDma

I'm going to be delivering a second talk, on Bluetooth mesh later in the year. Hope you can make it.

Martin

No comments:

Post a Comment

Note: only a member of this blog may post a comment.