zephyr/doc/subsystems/bluetooth/bluetooth.rst

78 lines
2.1 KiB
ReStructuredText

.. _bluetooth:
Bluetooth
#########
Zephyr comes integrated with a feature-rich and higly configurable
Bluetooth stack:
* Bluetooth 4.2 compliant
* Generic Access Profile (GAP) with all possible roles
* Peripheral & Central
* Observer & Broadcaster
* GATT (Generic Attribute Profile)
* Server (to be a sensor)
* Client (to connect to sensors)
* Pairing support, including the Secure Connections feature from Bluetooth 4.2
* IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE
* IPSP node sample application in ``samples/bluetooth/ipsp``
* Clean HCI driver abstraction
* 3-Wire (H:5) & 5-Wire (H:4) drivers available
* Verified with multiple popular controllers
* Supporting both nano- & micro-kernels
* Highly configurable
* Features, buffer sizes/counts, stack sizes, etc.
Source tree layout
==================
The stack is split up as follows in the source tree:
``net/bluetooth/``
The core stack itself. This is where the HCI command & event handling
as well as connection tracking happens. The implementation of the
core protocols such as L2CAP, ATT & SMP is also here.
``include/bluetooth/``
Public API header files. These are the header files applications need
to include in order to use Bluetooth functionality.
``drivers/bluetooth/``
HCI transport drivers. Every HCI transport needs its own driver. E.g.
the two common types of UART transport protocols (3-Wire & 5-Wire)
have their own drivers.
``samples/bluetooth/``
Sample Bluetooth code. This is a good reference to get started with
Bluetooth application development.
``tests/bluetooth/``
Test applications. These applications are used to verify the
functionality of the Bluetooth stack, but are not necessary the best
source for sample code (see ``samples/bluetooth`` instead).
``doc/bluetooth/``
Extra documentation, such as PICS documents.
Further reading
===============
More information on the stack and its usage can be found in the
`wiki <http://wiki.zephyrproject.org/view/Arduino_101#Bluetooth_firmware_for_the_Arduino_101>`_ and the following subsections:
.. toctree::
:maxdepth: 1
../../api/bluetooth.rst
devel.rst