Bluetooth Framework provides methods to get the current Bluetooth LE connection PHY. This feature is supported on Windows 11 and above with Microsoft Bluetooth drivers. GattClient and GattServer demo applications from Bluetooth Framework package show how to get this information.


PHY is short for Physical, as in the Physical Layer. This is the bottom layer of the BLE stack and is responsible for actually transmitting and receiving information over the air via radio waves. BLE transmits on the 2.4GHz band and this band is a license-free band that is essentially free to use for short-range applications. It’s also the only license-free band that’s the same in every country.


1 Megabit PHY, commonly referred to as 1M PHY, has been the de facto Bluetooth PHY up to this point. The name refers to the bit rate that this PHY is capable of. This is the PHY that was discussed in detail in the previous section. Support for this PHY is mandatory to maintain backward compatibility with all non-5.0 devices.

Coded PHY

Coded PHY is a new PHY configuration introduced in Bluetooth 5.0. The purpose of this configuration is to increase the maximum range without increasing transmit power. This sounds contradictory at first glance, but it makes more sense when framed in terms of the BER. Namely, increased range can be thought of as a side effect of reduced error rate. Coded PHY provides enhanced bit error detection and correction, allowing further range while staying within the maximum BER. This is achieved at a cost to data rate, as it increases the number of symbols per bit (with possible values of either 2 or 8). The specifics of this merit further discussion, but unfortunately they are beyond the scope of this article. See “Exploring Bluetooth 5 – Going the Distance” from the Bluetooth Blog for further information.


2 Megabit PHY (2M PHY) is also a new PHY configuration introduced in Bluetooth 5.0. The purpose of this configuration is increased symbol rate at the PHY layer. Specifically, it achieves a symbol rate of 2 Mega symbols per second, where each symbol corresponds to a single bit. This allows a user to double the number of bits sent over the air during a given period, or conversely reduce energy consumption for a given amount of data by halving the necessary transmit time.

Technically speaking, this is still almost identical to 1M PHY, with the main difference being an increased frequency deviation to counter the increased intersymbol interference caused by the double symbol rate. A frequency deviation of at least 370 kHz is required as opposed to 185 kHz. The tradeoff here is that the higher symbol rate means potentially higher bit error rate, which means a reduced range (about 80% of 1MB PHY). Support for Coded and 2M PHY only exists within 5.0, and even then support is optional.