Resources for Bluetooth

1 minute read

Published:

This page summarizes resources for Bluetooth. It is still under active update.

Overview

There is some confusion about the Bluetooth. Generally speaking, Bluetooth 1.0 - 3.0 includes classic Bluetooth. Bluetooth 4.0 starts to use Bluetooth Low Energy (BLE). A brief introduction about their difference can be found at link1, link2 and link3.

New features of Bluetooth 5 can be found here. The full and latest specification, v5.2 (released in 2019) can be downloaded here.

If not highlighted, the following descriptions only apply to BLE.

Protocol

Some brief introduction of the protocol can be found at the Microchip Developer Center and Matlab Bluetooth Protocol Stack.


...
Figure from https://microchipdeveloper.com/wireless:ble-introduction

Physical Layer

Some key features of the BLE physical layer

  • 2.4GHz ISM band. The band between 2.402 GHz to 2.4835 GHz is divided into 40 channels with 2 MHz channel spacing.
  • The 40 channels are divided into advertising channels (Ch. 37, 38, and 39) and 37 data channels (Ch. 0-36).
  • Gaussian Frequency-Shift Keying (GFSK).
  • Adaptive Frequency Hopping for data channels. The channel selection algorithms can be found in Section 4.5.8 of Part B vol. 6. There are two algorithms defined and the algorithm#1 selects the channel as $f_{n+1} = (f_n + hop)$ mod 37, where hop ranges from 5-16.


...
Figure from https://microchipdeveloper.com/wireless:ble-introduction

  • Advertising and Scanning
  • Connection
  • Network Topology - Piconet
  • Security - AES - CCM

Bluetooth Stack and Development Kit

Linux

Micropython

Note: The module is still under development and its classes, functions, methods and constants are subject to change. It only supports the basic BLE functions.

Texas Instruments

Scapy for Bluetooth