blob: 626c2d746b2056654d460ab39429e98ab3b55a64 [file] [log] [blame] [view]
# nRF Connect platform overview
The nRF Connect platform is a
[Matter](https://github.com/project-chip/connectedhomeip) platform that uses
Nordic Semiconductor's nRF Connect SDK.
The following diagram shows a simplified structure of a Matter application that
runs on the nRF Connect platform and uses BLE and Thread stacks for
communication purposes:
![nrfconnect platform overview](./images/chip_nrfconnect_overview_simplified.svg)
> **Note**: For readability, the diagram does not show all projects components,
> only the most important ones for a typical Matter application.
<hr>
## nRF Connect SDK
Nordic Semiconductor's
[nRF Connect SDK](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrf/index.html)
allows to build a range of applications, including cellular IoT (LTE-M and
NB-IoT), Bluetooth Low Energy, Thread, Zigbee, and Bluetooth mesh. The SDK
contains samples, libraries and a full set of drivers for Nordic Semiconductor's
[nRF9160](https://www.nordicsemi.com/Products/Low-power-cellular-IoT/nRF9160),
[nRF5340](https://www.nordicsemi.com/Software-and-tools/Development-Kits/nRF5340-PDK),
and
[nRF52 Series](https://www.nordicsemi.com/Products/Low-power-short-range-wireless)
devices.
The nRF Connect SDK is based around [Zephyr RTOS](https://zephyrproject.org/),
which is a scalable real-time operating system dedicated for the connected,
resource-constrained devices. Zephyr supports multiple hardware platforms and
provides hardware drivers, application protocols, protocol stacks, and more.
Besides Zephyr, the nRF Connect SDK also integrates other projects like crypto
library mbedTLS, MCU bootloader or the [OpenThread](https://openthread.io/)
implementation of the Thread stack.
<hr>
## Bluetooth LE and Thread stacks
In the nRF Connect platform applications, the Bluetooth LE interface is used to
perform pairing and Thread network provisioning operations between the Matter
device and the Matter controller. Afterwards, the fully provisioned device is
able to communicate with other devices inside the Thread network.
For the Bluetooth LE communication purposes, the nRF Connect platform
application is using the Bluetooth LE stack, in which the Bluetooth LE Host part
is provided by the Zephyr RTOS and the
[SoftDevice Controller](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/nrfxlib/softdevice_controller/README.html)
is implemented in the nRF Connect SDK's driver.
For the Thread communication purposes, the nRF Connect platform application is
using the Thread stack, which consists of several layers implemented in
different projects. The core of the Thread stack is OpenThread, but it also
requires the IEEE 802.15.4 radio driver provided by the nRF Connect SDK and the
network layer functionalities provided by the Zephyr.
The nRF Connect SDK's Multiprotocol Service Layer (MPSL) driver allows running
Bluetooth LE and Thread concurrently on the same radio chip.
<hr>
## Matter integration
Matter is located on the top application layer of the presented model, looking
from the networking point of view. The Bluetooth LE and Thread stacks provided
by the nRF Connect SDK and Zephyr must be integrated with the Matter stack using
a special intermediate layer.
In practice, this layer contains platform-specific implementations of abstract
manager interfaces (such as Bluetooth LE Manager or Thread Stack Manager)
defined in the Matter stack. The application is able to use Matter's platform
agnostic interfaces and no additional platform-related actions are needed to
perform communication through the Matter stack.
<hr>
## Build system
The nRF Connect platform makes use of the following build systems to generate
ninja build scripts:
- GN - Used by the Matter project in majority of cases.
- CMake - Used by other components related with the nRF Connect platform,
namely nRF Connect SDK and Zephyr.
As a result, Matter's stack and platform modules are built with GN (see the
overview diagram) and the output is used to generate the library file. The
application, nRF Connect SDK, and Zephyr are built with CMake and the Matter
library file is imported during the compilation process.