A couple of days ago we had the latest Fast ring Insiders build for this Windows 10 release (15007) - it's pretty stable and a definite step up from the pre-Christmas builds. On some phones (depending on how long it is since your last reset, I suspect) it's initially unstable, in which case go down the backup/reset/restore route so that you have a fresh OS install again. All part of being a Fast ring Insider.
Anyway, from the Microsoft post:
There are three main features in this month’s Insider preview:
- GATT Server
- Bluetooth LE Peripheral
- Unpaired Bluetooth LE device connectivity
A lot of the improvements are focused on Bluetooth LE, but we have improved Bluetooth audio functionality as well. While we made a lot of changes under the hood to ensure that all your devices talk nicely with each other, we also added a couple of new features.
Call Control API support comes to desktop. This means your VoIP apps can natively take advantage of Bluetooth headset functionality like pick up, hang up, hold, call waiting, etc. You will also experience higher-quality audio for voice, thanks to Wideband speech – coming soon to desktop. Now, Cortana will sound more lifelike and your Skype sessions will sound better than ever over Bluetooth.
GATT Server
GATT (or Generic ATTribute) logically describes how data is structured and must function in a Bluetooth LE device. The device that has the interesting data is the Server, and the device that uses that data to perform a function is known as the Client. For example, a Windows Phone (Client) reads data from a heart rate monitor (Server) to track that a user is working out optimally. Windows has traditionally been a GATT Client but with the Windows 10 Creators Update, Windows can operate as the Server as well. The hierarchy of classes in the example heart rate service is described below, but you can pick and choose any logical set of characteristics and descriptors to make your custom GATT service.
Your phone or PC has notification/user credential information that a wearable device does not have. For instance, when an incoming text message comes in, Windows can act as the GATT Server and notify a nearby wearable of the text’s arrival. Diagram 1 shows a sample service structure using Bluetooth classes implemented in this release.
For a more thorough discussion of GATT and all of its intricacies, take a look at the Bluetooth SIG page or the GATT tutorial on Adafruit.
Bluetooth LE Peripheral Role
In addition to GATT roles which determine the structure of the data, Bluetooth defines Generic Access Profile (GAP) roles as well. These GAP roles specify which device advertises as connectable and which device does the connecting. To connect a device, Windows users generally go to the Settings page, find the device they want to connect and tap to connect. This action of connecting to remote devices implies that Windows is operating in the GAP Central role. However, there are often cases where remote devices such as smart locks need to be aware of Windows, or where you’re trying to connect two Windows devices. In such cases, we need to make sure that Windows can advertise as connectable. With the new Insider preview, apps can put the system in a state to advertise support for Bluetooth LE services. With Peripheral role and GATT Server combined, Windows can operate in all four combinations of GATT and GAP roles (color choices arbitrary, of course):
All good stuff and long overdue, of course. It's fascinating how much new technology needs to be added under the hood of an OS in order for the interactions we take for granted to happen.
Microsoft is apparently working directly with Fitbit, Garmin and other device manufacturers to make sure that popular accessories are 100% compatible from the get-go. GATT Server support opens up 'a myriad of Bluetooth LE device-to-device scenarios' - notifications, remote authentication, smart locks, proximity, and so on.
All of this will hit the mainstream (Windows 10 phones, tablets, hybrids, etc.) when Windows 10 Creators Update is released in April 2017. Depending on the app, consumers may also need to wait for tweaked versions from the relevant developers (to enable new features) in the Windows 10 Store.