Battle of the Bluetooth Stacks

June 31, 2019
Argenox
BLE Open Source Stacks

Battle of the Bluetooth Stacks

If you’ve been developing with Bluetooth Low Energy (BLE) for any length of time, you may have realized that there are many BLE chipset options. While the usual approach was to pick a device and use the vendor's Bluetooth stack, the options are opening up for developers.

Bluetooth LE chipsets are typically a processor with a radio running a Bluetooth Stack on top. That Bluetooth stack is typically provided by the device vendor. This is out of convenience and because it's a way for the chipset vendor to help developers use their devices. After all, the chipset vendor make their money by selling as many devices as they can. The stack and software are, to them, a necessary evil. Without a stack, it would make it hard for developers to use the chip and would be hard to sell. But, developing and maintaining a stack is no small feat. Semiconductor companies usually need a large number of software developers to build the stack, an SDK, maintain and test it. This creates a lot of costs for these companies and it would not be surprising if it was one of the major costs besides IC development. Some of the stacks you will find:

  • Nordic Semiconductor: SoftDevices such as S110, S132, S140, etc.
  • Texas Instruments: Binary BLE Stack
  • Silicon Labs: BLE Stack

Each chipset vendor has in fact many actual stacks, if you account for versions and features. One of the challenges is that the stack is provided as a binary in all these cases and cannot be customized. This means that the amount of flash taken by the stack is fixed. Even if you don't need to use a certain optional feature, you may still be paying for the flash space for it. This makes optimizing low cost products more difficult.

Given the choice, few developers would go with a chipset that doesn’t provide a Bluetooth LE stack as an option, because the work of integrating a stack, qualifying it are something that can be done once for all the developers. It’s a cost that is undertaken by the chipset vendor that saves the developers from dealing with it. But as we said, its a large cost to each vendor.

The BLE radio hardware itself is to a large degree commodity hardware, and the Bluetooth stack is well defined, leaving little room for differentiation. Any differentiation in the hardware is mostly a result of the process node and some architecture choices, which have little impact on the Bluetooth stack itself. Power consumption, receive sensitivity and output power are all the result of the IC design. Some vendors can differentiate with their stack, for example Nordic can support up to 20 links whereas most manufacturers support up to 8 or less, but at the end of the day most manufacturers have similar features. This is where the landscape has changed. Over the last 1-2 years, open source options have come in.

A few years ago, the Mynewt project started and it provides a full Bluetooth stack, RTOS and apps to develop applications. Since then the options have increased:

ARM mbed is, from our testing, less suitable for products as it is for educational and other purposes. So, we'll focus on Mynewt and Zephyr

The Mynewt project is headed by the Apache project and it includes a full RTOS, Bluetooth LE stack and other features:

  • Bluetooth LE Mesh Support
  • Bootloaders and Firmware Update support
  • File Systems and

Another project, Zephyr, supported by the Linux Foundation has started to gain popularity, and is gaining support from multiple vendors.

Zephyr is an open source Linux Foundation project. Some vendors such as Nordic have adopted it for their devices and provide direct development for Zephyr and for their platform directly.

The advantages of an open source stack and ecosystem for a vendor long term are clear – it allows them to leverage an open source ecosystem and the developers that are available. Other developer can help the IC vendor with their own system, and others can contribute support for devices and peripherals that make it easier to develop a complete system. For example, developing a product you may be able to leverage the Bluetooth stack along with drivers for various sensors, which the IC vendor would not normally want to support. This helps build a full system quicker. The advantage is cost - it may allow a company to reduce software development resources while relying on others to pitch in.

There are other advantages for open source that you can expect. The main one being customization is possible, and that fixing issues that a vendor may not want to spend time on is possible.

In the case of a Bluetooth stack, this can be slightly more complicated from a certification perspective. A stack must be certified by the Bluetooth SIG and given a QDID, a unique number that identifies it. This QDID is then used when an end device is declared by anyone that uses the stack and build a product. Changes to the Bluetooth Stack itself will invalidate the QDID and require re-certification.

One advantage for developers which may be bad for IC vendors is the fact that open source projects such as these make it somewhat easier to move to other devices, including to other vendors. Given a good enough hardware abstraction, in some cases the changes may be minimal. In that case, every vendor still needs to work hard to ensure their devices have sufficient differentiation to attract customers.

At Argenox we're still evaluating Zephyr and other options. The results have been overall good but like anything, there are issues and it's still early.