
Over the last few years, the release of Bluetooth 4.0 in 2010 has started a revolution in connecting devices. To help improve BLE, the Bluetooth SIG has officially adopted the Bluetooth v4.1 specification to enhance BLE.
Since Bluetooth 4.0 was announced, Bluetooth LE support has gained ground, with the iPhone 4S and following iPhones adding support for it, enabling a new set of iPhone connected accessories.
So what’s new in Bluetooth v4.1? It adds some enhancements to the specification.
Multi Role
The original Bluetooth 4.0 specification mandated that devices be Peripherals or Centrals. Combining either together was not allowed. But developers quickly started to want to do exactly that – to be able to run Peripheral and Central together. There were many products where that was beneficial – smartphones like iPhone want to connect to sensors and other devices, but it also wants to advertise. Some products like locks also needed to potentially connect to multiple devices at the same time, while being controlled from a smartphone. This wasn’t allowed in Bluetooth 4.0 when there was no practical reason to limit this – as long as the radio could fit the timing to send the packets, it could be done. You can see the differences in the specification below from Vol 6, Ch 1 Section 1.1:
Bluetooth Core Specification v4.0
Vol 6 Ch 1 Sec 1.1
1.1.1 State and Role Combination Restrictions
The Link Layer may optionally support multiple state machines. If it does support multiple state machines, the following state and role restrictions shall
apply.
- The Link Layer in the Connection State shall not operate in the Master Role
and Slave Role at the same time. - The Link Layer in the Connection State operating in the Slave Role shall
have only one connection. - The Link Layer in the Connection State operating in the Master Role may
have multiple connections. - The Link Layer shall not operate in the Initiating State if the Link Layer is already operating in the Connection State in the Slave Role.
- If the Link Layer is already operating in the Connection State or Initiating
State, the Link Layer shall not operate in the Advertising State with a type of
advertising that could result in the Link Layer entering the Connection State
in the Slave Role.
Bluetooth Core Specification v4.1
Vol 6 Ch 1 Sec 1.1
1.1.1 State and Role Combination Restrictions
The Link Layer may optionally support multiple state machines. If it does support
multiple state machines, then:
- The Link Layer in the Connection State may operate in the Master Role and
Slave Role at the same time. - The Link Layer in the Connection State operating in the Slave Role may
have multiple connections. - The Link Layer in the Connection State operating in the Master Role may
have multiple connections. - All other combinations of states and roles may also be supported.
You can see the parts that have changed in red and green. The Bluetooth 4.1 specification removes role restrictions and allows the Bluetooth stacks to operate in Master and Slave Roles (now referred to as Central and Peripheral) at the same time. It also allows the Slave (Peripheral) role to have multiple connections, so that after connecting you can continue advertising and have other Master (Central) devices connect.
Cellular Coexistence with Bluetooth
When integrating Bluetooth into smartphones, developers noticed that they would interfere with each other, causing packet loss which itself resulted in performance issues and battery drain. In help solve this, Bluetooth v4.1 adds the Mobile Wireless Standards (MWS) which provides a way for the cellular radio to coordinate with Bluetooth and avoid interference. This helps improve the user experience in smartphones especially.
LE L2CAP Connection Oriented Channel Support
If you’ve done any development with BLE you’d no doubt have had to deal with GATT – the Generic Attribute Transport protocol that manages Services and Characteristics. GATT is very useful but for some applications where throughput is critical, GATT introduces an overhead of several bytes to every packet. Some applications that don’t need GATT and can leverage their own can do away with GATT and use L2CAP Connection Oriented Channels. These channels basically establish a tunned where bytes can be sent from one BLE device to another without having to send them over GATT, which gives higher throughput
Summary
The Bluetooth 4.1 specifications has some major upgrades for Bluetooth LE, as well as some for Bluetooth Classic that we haven’t covered here. New Bluetooth stacks will start supporting Bluetooth 4.1 soon, and we expect major platforms like iPhone will add support for it as well.