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


BOSS targets providing an open source implementing for the Bluetooth protocol firmware shown in the yellow section in Figure. In addition to, providing the driver level interface to access the firmware changes. Unlike Bluetooth driver, firmware has no open source equivalent available to the research community. Hence, BOSS provides the following modules:
  • Baseband link controller, esponsible 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 consist of the following modules: Link Control, Link Manager, and Flow Control.
  • HCI firmware, provides the required interface for Bluetooth drivers to access firmware parameters.
  • BlueZ extensions, provides the interface between open source BlueZ, and BOSS.


Faculty PhD Student M.Sc. Student
  • Ilho Nam
  • Maryam Arab
  • Khaja Ahmed




  1. Ahmed Salem, Tamer Nadeem, Mecit Cetin, & Samy El-Tawab. "DriveBlue: Traffic Incident Prediction through Single Site Bluetooth". In Intelligent Transportation Systems (ITSC), 2015 IEEE 18th International Conference on (pp. 725-730). IEEE.
  2. Mostafa Uddin, Ahmed Salem, Ilho Nam, & Tamer Nadeem. "Wearable Sensing Framework for Human Activity Monitoring". In Proceedings of the 2015 workshop on Wearable Systems and Applications (pp. 21-26). ACM.


  • 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.


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: Ubertooth R2 , Boss Code.


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