.. _sec-ble-overview: 
.. _NimBLE-Website: https://mynewt.apache.org/latest/network/ble_hs/ble_hs.html

Overview and Features
*********************

The CC35XX is a 5.4 BLE certified controller that can work with any certified Bluetooth Stack.
The Bluetooth Stack supported in this SDK is NimBLE by Apache Mynewt. NimBLE offers the worlds first 
fully open-source Bluetooth Low Energy (BLE) or Bluetooth Smart stack fully compliant with Bluetooth 5 specifications.

Features
--------

* NimBLE (1.7.0) complies with Bluetooth Core Specification 5.4 which makes it an ideal wireless technology for the Internet of Things (IoT).

* LE Advertising Extensions

* 2M PHY for higher throughput

* Coded PHY for LE Long Range

* High Duty Cycle Non-Connectable Advertising

* Channel Selection Algorithm #2 to utilize channels in more efficient way

* LE Privacy 1.2 for frequent changes to the device address to make it difficult to track for outsiders

* LE Secure Connections featuring FIPS-compliant algorithms

* LE Data Length Extension for higher throughput


Host Component
--------------
* Logical Link Control and Adaptation Protocol (L2CAP): provides logical channels, named L2CAP channels, which are multiplexed over one or more logical links to provide packet segmentation and reassembly, flow control, error control, streaming, QoS etc.

* Security Manager (SM): uses Security Manager Protocol (SMP) for pairing and transport specific key distribution for securing radio communication

* Attribute protocol (ATT): allows a device (Server) to expose certain pieces of data, known as Attributes, to another device (Client)

* Generic Attribute Profile (GATT): a framework for using the ATT protocol to exchange attributes encapsulated as Characteristics or Services

* Generic Access Profile (GAP): a base profile which all Bluetooth devices implement, which in the case of LE, defines the Physical Layer, Link Layer, L2CAP, Security Manager, Attribute Protocol and Generic Attribute Profile

* Host Controller Interface (HCI): the interface between the host and controller either through software API or by a hardware interface such as SPI, UART or USB

APIs 
----
`NimBLE-Website`_ More information can be found on the MyNewt website
