-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add repository's documentation. Signed-off-by: Wille Backman <[email protected]> Co-authored-by: Michal Leksinski <[email protected]>
- Loading branch information
Showing
1,850 changed files
with
302,081 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,4 +12,4 @@ __pycache__/ | |
/twister-out* | ||
|
||
# docs | ||
/doc/_build* | ||
/docs/_build* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,37 @@ | ||
# ncs-zigbee | ||
Zigbee nRF Connect add-on | ||
# Zigbee add-on for nRF Connect SDK (Experimental support) | ||
|
||
> This is an [experimental](https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/software_maturity.html) release of Zigbee support for Nordic Semiconductor’s nRF54L15 SoC. | ||
The Zigbee add-on for the nRF Connect SDK provides support for developing Zigbee applications based on the third-party precompiled ZBOSS stack. This stack is included as the ZBOSS Zigbee R23 stack library. In combination with the nRF Connect SDK, the Zigbee add-on allows for development of low-power connected solutions. | ||
|
||
## Getting started | ||
To get started with Zigbee add-on for nRF Connect SDK, follow [documentation](https://github.com/nrfconnect/ncs-zigbee). | ||
|
||
## Documentation | ||
Pre-build documentation is available [here](https://nrfconnect.github.io/ncs-zigbee). | ||
|
||
A minimal documentation setup is provided for Sphinx. To build the | ||
documentation first change to the ``docs`` folder: | ||
|
||
```shell | ||
cd docs | ||
``` | ||
To install Sphinx, make sure you have a Python installation in place and run: | ||
|
||
```shell | ||
pip install -r requirements.txt | ||
``` | ||
|
||
The Sphinx documentation (HTML) can be built using the following command: | ||
|
||
```shell | ||
make html | ||
``` | ||
|
||
The output will be stored in the ``_build_sphinx`` folder. You may check for | ||
other output formats other than HTML by running ``make help``. | ||
|
||
|
||
## License | ||
* Source code included within this repository is licensed under the [LicenseRef-Nordic-5-Clause](https://github.com/nrfconnect/ncs-zigbee/blob/main/LICENSE) | ||
* Pre-compiled ZBOSS libraries (`lib/zboss`) included within this repository are licensed under the [DSR Corporation License](https://github.com/nrfconnect/ncs-zigbee/blob/main/lib/zboss/license.txt) |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Minimal makefile for Sphinx documentation | ||
# | ||
|
||
# You can set these variables from the command line, and also | ||
# from the environment for the first two. | ||
SPHINXOPTS ?= | ||
SPHINXBUILD ?= sphinx-build | ||
SOURCEDIR = . | ||
BUILDDIR = _build_sphinx | ||
|
||
# Put it first so that "make" without argument is like "make help". | ||
help: | ||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) | ||
|
||
.PHONY: help Makefile | ||
|
||
# Catch-all target: route all unknown targets to Sphinx using the new | ||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). | ||
%: Makefile | ||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Introduction | ||
|
||
This is the Doxygen documentation for [ncs-zigbee]. | ||
|
||
[ncs-zigbee]: https://github.com/nrfconnect/ncs-zigbee |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
.. _zigbee_about: | ||
|
||
About Zigbee protocol | ||
##################### | ||
|
||
.. note:: | ||
.. include:: /includes/experimental_note.txt | ||
|
||
The |addon| for the |NCS| uses the ZBOSS library, a third-party precompiled Zigbee stack. | ||
It includes all mandatory features of the |zigbee_version| specification and provides an Application Programming Interface (API) to access different services. | ||
The stack comes with the following features: | ||
|
||
* Complete implementation of the Zigbee core specification and Zigbee Pro feature set, revision 21, 22, and 23. | ||
* Support for all device roles: Coordinator, Router, and End Device. | ||
* Zigbee Cluster Library. | ||
* Base Device Behavior version 3.0.1. | ||
* Zigbee Cluster Library, revision 8. | ||
* Zigbee Green Power Proxy Basic. | ||
|
||
See `Software maturity levels`_ in the |NCS| documentation for what experimental support means. | ||
Experimental support also means that the feature is either not certified or no sample is provided for the given feature (or both). | ||
|
||
See the :ref:`zigbee_zboss` page and the `external ZBOSS development guide and API documentation`_ for more information about the ZBOSS library. | ||
|
||
For more information about Zigbee, download the `Zigbee Specification <CSA Specifications Download Request_>`_ from Connectivity Standards Alliance. | ||
|
||
.. _zigbee_topologies: | ||
|
||
Zigbee topologies | ||
***************** | ||
|
||
Depending on the available device types and their number, Zigbee supports the following network topologies: | ||
|
||
Star topology | ||
The coordinator communicates directly with the end devices and no routers are actively present, meaning they are either not present or not routing packets within the network. | ||
|
||
Tree topology | ||
The routers are located beyond their mutual radio range and are not able to communicate with each other. | ||
However, unlike in the star topology, the routers continue to move packets through the network. | ||
|
||
Mesh topology | ||
This topology allows full peer-to-peer communication. | ||
|
||
.. figure:: images/zigbee_topology_types.svg | ||
:alt: Zigbee topology types | ||
|
||
Zigbee topology types | ||
|
||
.. _zigbee_roles: | ||
|
||
In each topology, the nodes have the following responsibilities: | ||
|
||
* *Zigbee Coordinator* - Initiates and maintains the devices on the network. | ||
It also chooses the key network parameters. | ||
The coordinator's radio is continuously listening for frames. | ||
* *Zigbee Router* - Extends the range of the network. | ||
For this reason, the router has the radio enabled at all times. | ||
However, in the star topology it is not moving packets through the network. | ||
* *Zigbee End Device* - Receives messages from the parent device. | ||
|
||
In every Zigbee topology, each router and end device that joins the Zigbee network after its creation by the coordinator needs a parent device. | ||
When a device wants to join the network, it sends a beacon request to scan for available devices. | ||
The devices that can route the packets respond with beacons. | ||
Based on different factors of responses, such as signal strength, the new device selects the parent. | ||
|
||
For end devices, the parent device (a coordinator or a router) can store information meant for them. | ||
This is required because the end devices do not receive packets directly from other devices. | ||
Each packet meant for an end device needs to go through its parent, and the end devices need to regularly request and respond to packets from the parents. | ||
For example, in the |addon| for the |NCS|, the Zigbee light switch device requests packets from the parent every three seconds. | ||
The end device does not route packets. | ||
It can also disable its radio to reduce the power consumption between the regular packet requests if the Sleepy End Device behavior is enabled. | ||
|
||
Additional information | ||
********************** | ||
|
||
If you want to learn more about the Zigbee topics and terminology mentioned in this guide, read the following pages: | ||
|
||
* :ref:`ug_zigbee_architectures` page to learn more about the Zigbee architecture. | ||
* `Common ZCL terms and definitions`_ section in the ZBOSS user guide. | ||
* Zigbee topologies in section 1.1.4 of the `Zigbee Specification <CSA Specifications Download Request_>`_. | ||
* :ref:`zigbee_ug_sed` section on the :ref:`ug_zigbee_configuring` page. |
Oops, something went wrong.