.. _bluetooth_extended_advertising_sample:

Bluetooth: Extended Advertising
################################

Overview
********

This sample demonstrates the use of the extended advertising feature, by:

- Outlining the steps required to initialize an extended advertising application.
- Demo how to gracefully restart the functionality, after a disconnect.

The sample consists of the advertiser initiating a connectable advertisement set,
which prompts the scanner to connect after scanning for extended advertisements.
Once the connection is established, the advertiser waits for 5 seconds to disconnect.
After the connection is dropped, the advertiser immediately restarts broadcasting,
while the scanner cools-down for 5 seconds to restart its process.

This sample handles all actions in a separate thread, to promote good design
practices. Even though it is not strictly required, scheduling from another context is
strongly recommended (e.g. using a work item), as re-starting an advertiser or
scanner from within the `recycled` callback exposes the application to deadlocking.

Requirements
************

* Two boards with Bluetooth Low Energy support

Building and Running
********************

This sample can be found under
:zephyr_file:`samples/bluetooth/extended_adv` in the Zephyr tree.

See :ref:`bluetooth samples section <bluetooth-samples>` for details.

This sample uses two applications, so two devices need to be setup.
Flash one device with the scanner application, and another device with the
advertiser application.

The two devices should automatically connect if they are close enough.

Here are the outputs you should get by default:

Advertiser:

.. code-block:: console

        *** Booting Zephyr OS build zephyr-v3.5.0-4935-gfc7972183da5 ***
        Starting Extended Advertising Demo
        Starting Extended Advertising
        Connected (err 0x00)
        Connected state!
        Initiating disconnect within 5 seconds...
        Disconnected (reason 0x16)
        Connection object available from previous conn. Disconnect is complete!
        Disconnected state! Restarting advertising
        Starting Extended Advertising
        Connected (err 0x00)
        Connected state!
        Initiating disconnect within 5 seconds...
        Disconnected (reason 0x16)
        Connection object available from previous conn. Disconnect is complete!
        Disconnected state! Restarting advertising
        Starting Extended Advertising

Scanner:

.. code-block:: console

        *** Booting Zephyr OS build zephyr-v3.5.0-4935-ge3308caf97bc ***
        Starting Extended Advertising Demo [Scanner]
        Found extended advertisement packet!
        Stopping scan
        Connected (err 0x00)
        Connected state!
        Disconnected (reason 0x13)
        Recycled cb called!
        Disconnected, cooldown for 5 seconds!
        Starting to scan for extended adv
        Found extended advertisement packet!
        Stopping scan
        Connected (err 0x00)
        Connected state!
        Disconnected (reason 0x13)
        Recycled cb called!
        Disconnected, cooldown for 5 seconds!
        Starting to scan for extended adv
        Found extended advertisement packet!
        Stopping scan
        Connected (err 0x00)
        Connected state!
        Disconnected (reason 0x13)
        Recycled cb called!
        Disconnected, cooldown for 5 seconds!
