Features and Recommendations
This topic provides a list of features and recommendations for Bluetooth in Windows 10. For power-efficient support for Bluetooth LE beacons and related scenarios, we recommend that OEMs use Bluetooth components capable of Hardware Offload and able to support the Microsoft-defined Host Controller Interface (HCI) extension.
Additional features that were added after Windows 10, version 1507 are marked with their corresponding release number.
|QD ID||Name||Product type||Date|
|72550||Windows 10 Mobile||Profile Subsystem||31-July-2015|
|70587||Windows 10 for Desktop editions (Home, Pro, Enterprise, and Education)||Host Subsystem||14-July-2015|
|84637||Windows 10 Mobile updated AVRCP||Profile Subsystem||17-June-2016|
|94254||Windows 10 Creators Update||Host Subsystem||14-March-2017|
|106476||Windows 10 Version 1803||Host Subsystem||10-April-2018|
|108589||Windows 10 Version 1809||Host Subsystem||07-September-2018|
Converged Bluetooth Core stack. Audio profiles differ in behavior between Windows 10 for Desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile.
Compliant to the standard Bluetooth 4.1 (for all mandatory spec requirements, not for optional requirements)
Support for the following features:
Hardware Offload (HCI): Microsoft defines vendor-specific HCI commands and events that are consumed by Windows
Dual mode support (except in Windows 10 Mobile): Dual mode support for Bluetooth BR/EDR and Bluetooth LE. For example, a Jabra Sport Pulse can transfer heart rate data over Bluetooth LE and stream music over a BR/EDR profile. Bluetooth BR/EDR, the older standard, is still needed for higher data-rate or long-range applications.
LE privacy 1.1: Windows protects the user’s privacy by randomizing the Bluetooth address whenever it is broadcast.
Turn Bluetooth on/off
Allow/Block the device going into discoverable mode
Change the friendly name of the Bluetooth device
(1511) Allow/Block connections and pairings based off of the profiles supported. For example, block file transfers while allowing keyboards and mice.
Windows Phone General Distribution Release (GDR) features ported to Windows 10 (Cortana address book entry, LE HID, MAP)
(1607) Pre-pair Bluetooth devices during manufacturing: Allows for a seamless out-of-box experience that allows Bluetooth devices to just work.
(1703) Hands-Free Profile (HFP) 1.6 specification with Wideband speech on Windows 10 for Desktop editions.
Advertisement API: Support for scanning of Bluetooth LE advertisement packets for beacons and other similar scenarios.
Existing Windows Phone Background support converged to Desktop.
Bluetooth audio enhancements (Wideband speech, aptX®) - High Definition sound while limiting Lip Sync and latency issues.
(1511) In App Pairing: Allows apps to discover, pair, and connect to devices all without leaving the app in question. See this GitHub code sample and DeviceInformationPairing class for more information.
(1607) Non-paired support for connections over RFCOMM: Apps can now communicate with Windows over RFCOMM without having to pair the device.
(1607) Map apps can now use Cortana's voice for navigation.
(1703) Support for Call Control APIs on Windows 10 for Desktop editions.
(1703) Support for GATT Server, Bluetooth LE Peripheral role and non-paired support for Bluetooth LE. See our developer post for more details.
(1803) Support for Swift-Pair. See Bluetooth Swift Pair
Bluetooth features list by edition
The following table provides a summary of the Bluetooth features in the Windows 10 for Desktop editions and Windows 10 Mobile editions.
|Feature||Windows 10 for Desktop editions||Windows 10 Mobile|
|In App Pairing API||Yes||Yes|
|Non-paired support over RFCOMM||Yes||Yes|
|Existing Windows Phone Background support converged to Desktop||Yes||Yes|
|Hardware Offload (HCI)||Yes||Yes|
|Dual mode, LE Privacy 1.1 (Bluetooth Spec updates)||Yes||Dual mode - Yes
(Only while using pairing APIs)*
|Bluetooth audio enhancements – Wideband speech||Yes||Yes|
|Bluetooth audio enhancements – aptX® audio codec||Yes||Yes|
|WP GDR Features ported to Windows 10 – Cortana address book entry||No||Yes|
|WP GDR Features ported to Windows 10 – LE HID (Mobile)||Yes||Yes|
|WP GDR Features ported to Windows 10 – Message Access Profile (MAP)||No||Yes|
|WP GDR Features ported to Windows 10 – AVRCP||Yes (v1.3)||Yes (v1.4)|
|MAP apps access to Cortana's voice||No||Yes|
|Pre-pair Bluetooth devices during manufacturing||Yes||No|
|Background Bluetooth process content||Yes||Yes|
|Support for Swift Pair||Yes||No|
* The settings page doesn't allow this. You need to implement something programmatically using In App Pairing APIs. For more information, see aka.ms/btdevdocs.
Upgrading from Windows 10
During upgrade, Windows will migrate Bluetooth drivers, applications, and profile packs. There is still the ability to check Windows Update for a more current driver, and install during the upgrade process. If Bluetooth is not working or missing after upgrade, please file feedback in the Feedback Hub with details of what is happening. Users may need to check their hardware manufacturer's or OEM's website to install Windows 10 compatible drivers.
Upgrading from Windows 7, Windows 8, or Windows 8.1
During upgrade, Windows 10 will not migrate existing Bluetooth drivers, applications, and profile packs. During the upgrade process, Windows setup will check Windows Update to download and install a Windows 10 Bluetooth filter driver to re-enable Bluetooth radio functionality with the inbox profile support listed in the table above. Users will have to check their hardware manufacturer's or OEM's website for updated profile packs if desired.
Maintained guidelines from Windows 8.1
This section cover guidelines from Windows 8.1 that are maintained for Windows 10.
If implemented, Bluetooth controllers must support the Bluetooth 4.0+LE specification, complying with both Basic Rate (BR) and Low Energy (LE).
The following table summarizes the supported peripheral buses and driver support.
|Bus (HCI)||Driver support||SCO support|
|Non-USB||WDK sample||Sideband I2S/PCM connection only (HCI bypass)|
|USB||In-box||In-band (SCO over HCI)|
The WDK Bluetooth Serial HCI Bus Driver sample is based on the UART (H4) standard as defined in the Bluetooth SIG specification. A vendor will be required to adopt and enhance the sample for any vendor-specific device requirements around device initialization and/or power management. If desired, the vendor can adopt the sample and develop for a non-UART interface as well, i.e.: non-UART controllers will also be supported by the Bluetooth stack (given a proper vendor-supplied driver).
A vendor supplied serial controller driver is necessary for UART-based controllers. For UART-specific features, see Simple Peripheral Bus (SPB).
Note A non-USB connected Bluetooth controller must use a sideband channel for SCO applications, i.e.: SCO over I2S/PCM interface. Furthermore, SCO over HCI (in-band) will not be supported for non-USB controllers.
Transport bus driver
The Windows Driver Kit (WDK) sample is available for the UART (H4) transport. A vendor can enhance it for any vendor-specific feature, including for any non-UART transports as well. There will be no limitations around the stack’s ability to support a particular transport.
There will be no changes to the existing in-box Bluetooth USB driver. We recommend using UART (H4) as the connectivity interface, since the WDK sample will be UART-based and due to UART’s lower power consumption. Voice (SCO) support must go through a “sideband” audio channel for non-USB controllers, such as an I2S/PCM interface.
Initialization and power handling
For non-USB based Bluetooth controllers that require initialization, see Transport Bus Driver for Bluetooth Power Handling Guidelines.
The 3rd-party Bluetooth radio management plugin is not supported as Bluetooth Radio Management support is now provided inbox. Transport drivers must respond to being D3 by turning off power to the radio.
We do not recommend an external switch for controlling the on/off state of the Bluetooth radio.
Third-party Bluetooth software
3rd party software can be added to x86/x64 Windows PCs to provide additional Bluetooth profile functionality not natively shipped in Windows. To avoid impacting the Windows user experience, causing incompatibilities with other Windows PCs, and creating serviceability issues on upgrade, Windows recommends the following:
- Make them installable by INF so they can be easily serviced to support Windows as a Service.
- Do not replace inbox profiles, icons, or user interfaces.
- When adding profiles and/or other software, use the native Windows APIs.
- Use Wi-Fi Direct for high bandwidth peer-to-peer scenarios instead of Bluetooth High Speed (HS).
- Optimal app footprint to minimize impact on manufacturing time.
- Optimal app performance to minimize impact on off to on transitions (boot, resume from S3/S4) and energy efficiency.