Bluetooth Open-Source Stack (BOSS) - A Flexible and Extensible Bluetooth Research Platform

Introduction

BOSS Graphic

Bluetooth technology continues to evolve and expand, taking advantage of the desirable attributes and features it possesses in comparison to other wireless technologies.  Bluetooth devices are going to become a major player in the much-hyped Internet of Things (IoT) market. The interesting and unique features of Bluetooth attracted the attention of the research community to explore and utilize this technology. A large body of this research required modifications to the lower layers of the Bluetooth protocol. Unfortunately, a complete open-source implementation of the Bluetooth stack to facilitate such research does not exist. The proprietary Bluetooth technology restricts access to the lower layers of the protocol stack, thus limiting the efforts of the wireless networking community in validating and verifying existing research under realistic scenarios. This project aims toward removing such barriers, and empower the community with a complete tool-set for developing new and enhanced research in Bluetooth protocol design.

The objectives of this project are to design, develop, and disseminate a flexible and extensible Bluetooth Open-Source Stack (BOSS) platform that will enable new research opportunities for the wireless and mobile computing community. The platform will enable development and evaluation of schemes, services, and applications across all layers of the Bluetooth stack, through the creation of a community-maintained, open-access repository. More specifically, BOSS targets providing an open source implementing for the Bluetooth protocol firmware shown in the yellow section in the figure based on Bluetooth Low Energy (BLE) specifications Version 4.0. In addition to, providing the driver level interface to access the firmware changes. Hence, BOSS provides the following modules:
  • Baseband link controller responsible for physical layer establishment to host communication. It requires the following modules: Bluetooth Clock, Addressing, Physical Channels, Links (physical, and logical), Packets, Bitstream processing.
  • Link manager firmware negotiates the communication parameters between two devices. It consists of the following modules: Link Control, Link Manager, and Flow Control.
  • HCI firmware provides the required interface for Bluetooth drivers to access firmware parameters.

People

PI

Tamer Nadeem

PhD Students

M.Sc. Student

  • Ilho Nam
  • Maryam Arab
  • Khaja Ahmed

Funding

 

  • NSF-CNS 1454285: "EAGER: Bluetooth Open-Source Stack (BOSS) - A Flexible and Extensible Bluetooth Research Platform”

Hardware

  • Ubertooth One, an open source 2.4GHz wireless development platform. Ubertooth One comes with RF Connector for the antenna, ARM microcontroller, and a wireless transceiver as shown in Figure above. Moreover, it has an inexpensive hardware that can be easily or acquired or assembled using the publicly available instructions. Ubertooth One is designed to support Bluetooth transmit/receive features. However, it is only used for passive bluetooth packet sniffing. Late 2014, Ubertooth One introduced the capability of sniffing BLE packets. In this work, BOSS uses Ubertooth One to host the aforementioned Bluetooth modules, and support the full stack BLE features.
  • ElliSys Sniffer, a sniffer that passively captures Bluetooth communication from all the channels concurrentl. In this project, Ellisys enabled passively tracking our experiments in terms of monitoring our transmitted packets, tracing their contents, debugging packet information for Tx/Rx failures. In addition to, tracing timing delays of packet transmission, and reception.
  • SEGGER J-TAG Debugger, a USB powered JTAG debugger, that is supported by Ubertooth One. It provides a close look on the hardware registers throughout the debugging phase. Throughout BOSS development, it was required to check the register values to investigate cases of packet transmission failure.

Software

Ubertooth

Ubertooth is a open source development platform for Bluetooth Experimentation.

Project HomePagehttp://ubertooth.sourceforge.net/

Source Code Download: Ubertooth-R2

BOSS

BOSS modifies the open source code by Ubertooth Ones as follows:

  • Host: Takes the Tx/Rx commands from user with optional parameters channel, master address, and slave address. The feature is provides through: host/ubertooth-tools/src/ubertooth-btle-A.c (new)
  • Host/Firmware Interface: a layer to exchange messages between host, and firmware. Is supported by the following files: host/libubertooj/src/ubertooth.c, host/libubertooj/src/ubertooth_control.c, firmware/bluetooth_rxtx/bluetooth.c, and firmware/bluetooth_rxtx/bluetooth_le.c
  • Firmware: Bluetooth Tx/Rx, and frequency hopping logic is provided in firmware/bluetooth_rxtx/bluetooth_rxtx.c , while supporting Tx features in the Ubertooth transceiver chip is done in firmware/bluetooth_rxtx/cc2400_rangetest.c

Source Code Download Boss Source Code

Documentation

  • Boss Installation : Describes detailed steps for downloading ,installing , configuring and running the Boss Platform.
  • BLE Specification : Describes Bluetooth Low Energy specification details that were implemented in the BOSS Project.
  • Boss Implementation : Describes the technical details of implementing Bluetooth Low Energy Specification in BOSS Project.
  • BOSS Experiments : Describes the experimentation scenarios and results conducted in the BOSS Project.
  • Implementation Issues : Describes the technical issues faced while implementing the BLE specification.
  • Bluetooth Specification Version 4.0 : Official Documentation for Bluetooth Specification Version 4.0.

Publications