During our customer demos, we often are asked, "does Ditto use Bluetooth?". While the simple answer is yes, we should clarify the specific type of Bluetooth that we use. Modern devices have a Bluetooth chip that faciliates two types of Bluetooth protocols: Bluetooth Low Energy and Bluetooth Classic. While these two protocols share the same name, they're quite different from each other. For most of us, we all know what it's like to pair our mobile phones to our wireless ear buds. This is known as Bluetooth Classic. If you have ever paired a device with another, you are undoubtedly using Bluetooth Classic. Ditto's SDK uses Bluetooth Low Energy, a not so well known form of communication. From now, we will refer to Bluetooth Classic as BT Classic and Bluetooth Low Energy as BLE. Let's dive into what makes the two different.
Bluetooth Classic is most known for pairing audio devices to mobile phones. When Apple released the iPhone 7, they removed the headphone jack making Bluetooth devices a necessity rather than an option. Android devices like the Pixel 4 and the latest Samsung devices are also phasing out headphone jacks further proliferating the need for Bluetooth headsets.
Connecting two devices using BT Classic should be well known by most people. Users must go into the settings to manually select the device to pair. We will use wireless headphones as an example. Begin by opening the Bluetooth screen on your parent device and put your headphones into “pairing mode”. After a few seconds devices will begin to pop up on your smartphone screen. Click the headphones' name, and wait for the connection to finalize to complete the pairing process. Now let's discuss what is happening behind the scenes. Understanding this will help us distinguish the major differences between the connection processes of BT Classic and BLE.
The first steps involve connecting a “Client” device and a “Server” device via Bluetooth, creating a piconet. A piconet is a mini network created using a wireless Bluetooth connection.
In most connection scenarios, the phone is the client and the device (headphones) is the server. Before these devices can initiate a connection, they must discover each other. The server device advertises that it is ready to connect. In this situation, advertising is defined as emitting small packets of data intermittently until it finds the client device. During this time, the client device (the smartphone) is scanning, receiving, and processing advertising packets searching for ones that are of interest. Ready to connect devices are displayed your phone's setting screen, allowing you to manually select or discard the Bluetooth devices.
This process is mandatory and must be done each time when using BT Classic. However, most devices allow for automatic reconnections when already paired. Usually, server devices must manually be switched into pairing mode so clients can discover them. This is often necessary because a server may be part of a different piconet, and therefore would not automatically switch to a new client. For example, imagine trying to pair your phone with a Bluetooth speaker which is already connected to someone else's phone. A piconet might have multiple servers (typically up to 7) but only one client. Servers cannot communicate directly to each other, only through the client device. This limitation is a major downside of BT Classic which prevents a more flexible connection scenarios.
Now that we understand the pairing process, let’s move on to some of the features of BT Classic. BT Classic can stream data at a maximum of 3 Mbps which is great for streaming audio data or some data files. Because of this, BT Classic is excellent for working with wireless headsets, keyboards, printers, speakers, and file transfers between devices as shown in the example above. While BT Classic can send larger, more rich data files that BLE cannot, this means that the maximum connection and sync distance between devices paired by BT Classic (about 20 meters or 65 feet) is much smaller compared to BLE. BT classic also consumes a larger amount of energy while transmitting or receiving data compared to BLE. This is problematic in many use cases, especially our customers’ use cases, who need to extend the battery life of their devices and ensure maximum uptime.
The proliferation of IoT devices drove the need for an alternative to the BT classic protocol. IoT devices are often equipped with small batteries and often do not have screens or UI-interactions to facilitate a similar pairing ritual needed in most BT Classic use cases. In addition, IoT devices often have to be "always on" for extended periods of time such as days, months or even years. Devices such as smartwatches, fitness trackers, medical equipment, door lockers, lights, and many more needed a way to transmit data fast and while using as little energy as possible because of the small batteries that are often placed in these devices. But perhaps more importantly, a lot of these devices don’t have screens, keyboards, or even buttons to facilitate the pairing process.
Due to these requirements, the Bluetooth Special Interest Group (SIG), which is the standards body that overseas Bluetooth, sought to improve the performance of Bluetooth regarding energy consumption and have a more programmatic way to facilitate device to device connections. The idea was to create a version of Bluetooth with an extremely low energy consumption that would work in partner with applications that don’t require continuous streaming of data. In order to connect via BT Classic, a “smart lightbulb”, for example, would need to be advertising continuously waiting for the Client to discover it. This is not exactly the most conservative on battery or energy consumption. BLE, on the other hand, is able to "go to sleep" until it makes a connection. It is important to note that this connection is made without any manual pairing or switching from device to device.
The BLE terminology is very similar to BT Classic's "client" and "server" model. However for BLE, they are referred to as central (similar to client) and peripheral (similar to server). Examples of peripherals are smartwatches, smart thermostat, and sensors. The central might be your smartphone or Google home device. Centrals typically are devices that are requesting information from the peripherals.
Note: for most modern devices, they can act as both a central and a peripheral.
For more of an in depth technical look at how centrals and peripherals interact can be found in Tim Oliver’s blog post "Getting Started with Core Bluetooth". A major distinction between the two roles is that a peripheral remains in power saving mode most of the time, only waking up when the device has data to advertise and wants to connect. When trying to connect, a peripheral will advertise small packets of data around 1-20 times per second until a connection with a central is initiated. After the connection is made these devices can exchange data extremely fast, reducing the amount of time the peripheral must stay awake. This greatly increases the lifetime of the battery in comparison to BT Classic interactions.
Although BLE was originally created specifically to address IoT and energy consumption issues, BLE has greatly expanded into traditional devices like desktops, tablets, and smartphones. The vast majority of BLE implementations are limited to a maximum of 2 Mbps. However it's important to note that this is quite different in practice. In most of Ditto's internal tests, devices achieve an average of 40 Kbps, still plenty to achieve the data sync we are seeking. While great for battery life, BLE is very unsuitable for sending high quality images, video, or large files. However, you're more than welcome to wait around for the devices to finish syncing. That being said, these smaller file sizes make it possible for BLE to send data much further distances and at far faster speeds.
Finally, BLE can have a one to many central-to-peripheral connections. However, unlike BT classic, these peripheral devices can maintain connections to many different centrals at the same time.
As you can see in the graphic, one smartphone (acting as the peripheral here) can connect to many different centrals. For example, this can be applied to an aviation use case where any one passenger’s smartphone has the ability to connect to multiple flight attendants’ iPads, not just a singular device like BT Classic.
With the introduction of Bluetooth 5 in 2016, the SIG made significant improvements to BLE's feature set and performance. Bluetooth Classic was largely left untouched. One of the major improvements was to BLE's speed of communication. Faster data transmission speeds mean less time spent with an active radio which not only results in enhanced user experience from the faster rate of data exchange but also, of course, further decreased battery consumption because the device has to stay awake for a shorter period of time. Furthermore, devices can sync data much longer distances (100+ meters or 328+ feet) which is a huge difference from the 20m/65ft of BT Classic as stated earlier. This is extremely important in many use cases including healthcare, aviation, and oil/gas. Not only can data be exchanged between customers and employees (doctors, flight attendants, etc.) almost instantaneously but also the data can be exchanged across much larger distances — from the pilot flying the plane, to the end of the plane where the flight attendant’s iPad can be updated with important information or service requests. And in places without Wi-Fi or cell connection such as warehouses or oil fields, workers can sync their own devices to ensure consistency when counting inventory or doing tasks where face to face contact is impossible. A crucial addition to this is that BLE devices can react on proximity, so even if workers’ devices are out of range for a couple minutes, an hour, or even days, their data will sync using Ditto over BLE once they become in range of each other again. These features make everyday processes more efficient by saving time and money in situations where implementing Wi-Fi or providing cell connection just isn’t feasible. For more information on use cases, check out our Solutions pages in the navbar.
|Feature||Bluetooth Classic||Bluetooth Low Energy|
|Rated Power Consumption||1 Watt||.01 - 0.5 Watt|
|Data Stream Rate||3 Mbps||1 Mbps|
|Range (Meters/Feet)||20 / 65||100+ / 328+|
|Minimum Time to Stream Data||100 ms||3 ms|
|Communication Mode||One to One||Many to One|
Ditto uses Bluetooth Low energy because of its extremely low energy consumption, long connection and sync distance compared to Bluetooth Classic. Furthermore, our deskless workforce use cases require that users are able to sync and connect without a manual time-consuming pairing process. In addition, almost all of our use cases involve users needing to sync in a many-to-many network. For all these reasons, we've decided to heavily invest Bluetooth Low Energy instead of Bluetooth Classic.