Bluetooth® technology is all around us:  electronic beacons guiding firefighters through buildings; wearable medical devices sending patient’s biological data to a physician’s tablets; manufacturing equipment monitoring in 400,000 square foot warehouses; and more.  Bluetooth technology is growing and is expected to have an install base of over 48 billion by 2021 (per ABI Internet of Everything Market Tracker).

So how does Bluetooth work?  Bluetooth low energy has 40 physical channels in the 2.4GHz ISM band, each separated by 2MHz.  Bluetooth defines two transmissions types: data and advertising transmissions.  As such, 3 of these 40 channels are dedicated to advertising and 37 to data. 

Whether it’s a beacon (transmitting location, weather, or other data) or a fitness watch making a long term connection with a host (tablet or phone), all peripheral devices, at least initially, begin in advertising mode.

Advertising allows devices to broadcast information defining their intentions.

So how does Bluetooth® advertise?

For ease of use, Bluetooth defines a single packet format for both advertising and data transmissions.  This packet consist of four components: preamble (1 octet), access address (4 octets), Protocol Data Unit – PDU (2-257 octets), and Cyclic Redundancy Check – CRC (3 octets); see Figure 1A.  

Link Layer Single Packet format and breakout of Advertising PDU

The PDU segment is important, as it defines whether this packet is an advertising or data packet.  For our discussion, we’ll focus on advertising PDUs (Figure 1B).

The Advertising PDU packet (Figure 2A) contains a 16 bit header and a variable size payload.

Advertising PDU header, specifically PDU type and Length.

The advertising header defines 6 segments.  We’ll focus on the Length and PDU Type fields/segments (Figure 2B).  The Length field is 6 bits and defines the size of the payload, i.e. how much stuff we can advertise (Figure 2A).  The Length may be between 6 – 37 octets and is defined by PDU Type

So great, we know we’re advertising, and have “x” number of octets for payload, but why are we advertising?  This is where the PDU Type comes in. In Bluetooth® low energy there are two reasons to advertise/broadcast:

  • To establish a bi-direction connection between devices (such as a smart watch to a phone). 
  • Or to broadcast information without ever connecting to another device, such as a beacon transmitting data in a museum telling you there is a 500 year old mummified body 5 feet behind you. 

So whether it’s the smart watch or a mummy vying for attention, we developers focus on 4 PDU Types (Figure 2B): 

  • ADV_IND
    • Known as Advertising Indications (ADV_IND), where a peripheral device requests connection to any central device (i.e., not directed at a particular central device). 
    • Example:  A smart watch requesting connection to any central device.
  • ADV_DIRECT_IND
    • Similar to ADV_IND, yet the connection request is directed at a specific central device. 
    • Example: A smart watch requesting connection to a specific central device.
  • ADV_NONCONN_IND
    • Non connectable devices, advertising information to any listening device. 
    • Example:  Beacons in museums defining proximity to specific exhibits.
  • ADV_SCAN_IND
    • Similar to ADV_NONCONN_IND, with the option additional information via scan responses. 
    • Example:  A warehouse pallet beacon allowing a central device to request additional information about the pallet. 

So, when a long-term connection is desired, the PDU Type is set to either ADV_IND or ADV_DIRECT_IND, depending on whether the peripheral is advertising to any device or a specific device.  

And when broadcasting general data without establishing a long term connection, ADV_NONCONN_IND or ADV_SCAN_IND is the PDU Type of choice.  Typical beacons would use ADV_NONCONN_IND, and a peripheral allowing access to more information such as our warehouse pallet, ADV_SCAN_IND may be a better choice. 

Whether requesting a long term connection or broadcasting as an electronic beacon, it all starts with advertising. 

In our next post, we’ll discuss extended advertising features released in Bluetooth 5

FEATURED DOWNLOAD

Enhancing Bluetooth Location Services with Direction Finding

A new Bluetooth direction finding feature allows devices to determine the direction of a Bluetooth signal, thereby enabling the development of Bluetooth proximity solutions that can understand device direction as well as Bluetooth positioning systems that can achieve down to centimeter-level location accuracy.

INSTANT DOWNLOAD

What’s New in Bluetooth 5.4?

In this post, we’ll discuss the most significant points of each feature of the…

Top 10 Auracast™ Resources

It’s been almost a year since the Bluetooth Special Interest Group (SIG) released Auracast™…

What's new in Bluetooth v5.4: An overview

The recent adoption of version 5.4 of the Bluetooth® core specification brings a new…

Low Energy Audio – Incoming Call Over Media (Multi-Device)

This document uses a Message Sequence Chart (MSC) to explain the Bluetooth® LE Audio…

Bluetooth ESL – The Global Standard for the Electronic Shelf Label Market

Electronic shelf label (ESL) systems have historically relied on proprietary protocols for wireless communication,…

Bluetooth® Core Specification Version 5.4 - Technical Overview

This feature overview summarizes and explains the updates introduced in Bluetooth®️ Core Specification Version…

Integrating Memfault with Blecon Bluetooth Devices

In this post, I’ll go through how we evaluated Memfault at Blecon and talk…

Best Practices for Using a Standalone Auracast™ Transmitter

The recently released Auracast™ Simple Transmitter Best Practices Guide describes a typical, qualified implementation…

Auracast™ Broadcast Audio Introduces New Opportunities for Product Developers & Public Locations

Bluetooth® technology recently introduced a new Bluetooth capability, Auracast™ broadcast audio, that will deliver life-changing…

The Bluetooth® Low Energy Primer

Are you new to Bluetooth Low Energy? Learn about its constituent parts, features, and how it works.

Bluetooth® Technology for Linux Developers

Learn how to use the interprocess communication system D-Bus and the BlueZ APIs to create Bluetooth applications for Linux computers.

How to Do Stuff with Bluetooth® Technology

Got a robot dog you want to remote control? You came to the right…

Bluetooth® Core Specification Version 5.3 Feature Enhancements

Bluetooth® Core Specification version 5.3 includes several feature enhancements with the potential to improve…

Designing and Developing Bluetooth® Internet Gateways

Learn about Bluetooth internet gateways, how to make them secure and scalable, and design and implement your own working prototype gateway and web application for use with either Bluetooth LE Peripherals or with Bluetooth mesh networks.

An Introduction to Bluetooth Low Energy for Swift Developers

All smartphones support Bluetooth® Low Energy (LE) and it is used in all manner…

 Get Help