Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doc creation #1

Merged
merged 4 commits into from
Nov 8, 2024
Merged

Doc creation #1

merged 4 commits into from
Nov 8, 2024

Conversation

wiba-nordic
Copy link
Contributor

doc: add documentation

Adds the currently existing documentation from the nRF Connect SDK and the nrfxlib, then updates them to work outside of the shared documentation structure.

@wiba-nordic wiba-nordic added the documentation Improvements or additions to documentation label Oct 11, 2024
@wiba-nordic wiba-nordic requested review from edmont and milewr October 11, 2024 07:52
@edmont edmont requested a review from a team October 11, 2024 08:15
@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Oct 11, 2024

Just realized that we don't have a documentation build set up. So here is the latest local build:
html.zip

@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Oct 15, 2024

Incorporated more feedback, here is latest build:
html.zip

@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Oct 15, 2024

Some suggestions were accidentally left out. Latest build:
html.zip

@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Oct 21, 2024

Latest build:
html.zip

@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Oct 25, 2024

Weekend build:
html.zip

@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Nov 5, 2024

Changed doc to docs, and some other fixes.
html.zip

Copy link
Collaborator

@edmont edmont left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments.


If your devices should use a different address, you can change the address according to your company's addressing scheme.

.. include:: includes/ieee802154_eui64_conf_nrf54l.txt
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONFIG_IEEE802154_NRF5_UICR_EUI64_ENABLE is not available for nRF54.
@milewr this is something we'll need to address.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@edmont I have also this part of documentation in my notes to be carefully verified and updated.

=======

* The ZBOSS stack to version ``4.1.4.2+``.
For detailed information, see `ZBOSS stack release notes`_ for the |addon| v0.1.0 release.

nRF Connect SDK v2.7.0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: add 2.8.0 changelog.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@edmont let's discuss this subpage of documentation. In my opinion some information can be duplicated and we should omit it.


Each of the samples you will use for forming the network is based on the single-chip, single-protocol architecture, uses the default configuration (that is, without any additional sample extensions enabled) and has a clearly defined role:

* :ref:`Zigbee network coordinator <zigbee_network_coordinator_sample>` demonstrates the Zigbee Coordinator role and supports only the network steering commissioning mechanism.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: check the R23 commissioning naming.

@edmont
Copy link
Collaborator

edmont commented Nov 5, 2024

Should we move the maturity level table here?

@wiba-nordic
Copy link
Contributor Author

Should we move the maturity level table here?

While all support is going to be experimental, I don't think it necessary. If some features are not going to be supported at all or will eventually be marked supported, it makes more sense.

@wiba-nordic
Copy link
Contributor Author

wiba-nordic commented Nov 6, 2024

Forgot to upload version after last update. Includes adding v2.8.0 changelog entry to ZBOSS changelog.
html.zip

@wiba-nordic
Copy link
Contributor Author

And had actually forgotten to push the latest change. Now the changes included in the previous built documentation are fully present on the branch.

docs/setup.rst Outdated

To work with the |addon| for the |NCS|, you need to `install the nRF Connect SDK <Installing the nRF Connect SDK_>`_, including all its prerequisites.

When working with |addon| v\ |addon_version|, choose |NCS| v\ |ncs_version| when you get the |NCS| code.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it should be mentioned as a note and on the top of "Software requirements" section mentioning that for Zigbee R23 add-on version... choose v2.8.0 toolchain.
In next sentence "To work with the Zigbee R23... install prerequisites and toolchain.

docs/setup.rst Outdated
Software requirements
*********************

To work with the |addon| for the |NCS|, you need to `install the nRF Connect SDK <Installing the nRF Connect SDK_>`_, including all its prerequisites.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
To work with the |addon| for the |NCS|, you need to `install the nRF Connect SDK <Installing the nRF Connect SDK_>`_, including all its prerequisites.
To work with the |addon| for the |NCS|, you need to `install the nRF Connect SDK <Installing the nRF Connect SDK_>`_ all prerequisites and toolchain.

docs/setup.rst Outdated
Comment on lines 35 to 52
.. note::
If you are working on the command line, in Step 4, use the following command to initialize west with the |addon|, and the correct version of the |NCS|:

.. code-block:: console

west init -m "http://github.com/nrfconnect/ncs-zigbee" --mr main

To create an application, follow the `Creating an application`_ instructions, with the following differences:

.. tabs::

.. group-tab:: |nRFVSC|

In Step 4, select :guilabel:`Browse nRF Connect SDK Add-on Index`, then select :guilabel:`Zigbee R23 extension`, and select the latest version of the |addon|.

.. group-tab:: command line

Should this point to https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/app_dev/create_application.html#creating_application_for_use_with_command_line and the Freestanding application tab?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to separate approach for VS Code and Command Line/Linux.

For Linux basically after installing all prerequisites toolchain, user need to proceed with "west init command".

For VS Code it needs to "install" Zigbee add-on. For now I found that we can point to use this description https://docs.nordicsemi.com/bundle/nrf-connect-vscode/page/get_started/build_app_ncs.html#how-to-create-an-application and selecting "Browse nRF Connect SDK Add-on Index" --> Zigbee add-on

.. figure:: images/zigbee_qsg_vsc_flash.png
:alt: nRF Connect for Visual Studio Code - Refresh Connected Devices and Flash buttons

When the programming is done, the **LED1** on the development kit turns on to indicate that the Zigbee network is open.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check LED naming

Comment on lines +81 to +96
The **LED2** turns on when the application is started.
#. Press **Button 0** on the development kit programmed with the network coordinator sample to reopen the Zigbee network.
After some time, the devices join the Zigbee network.

* On the development kit programmed with the light bulb sample, **LED1** turns on when the light bulb joins the network.
* On the development kit programmed with the light switch sample, **LED1** turns on when the device joins the network and **LED2** turns on when the light switch finds a light bulb to control.

Reopening the network
If you find that you are having issues with your devices joining the Zigbee network, it may be because the network needs to be reopened manually.
By default, the network remains open for 180 seconds at startup and after **Button 0** is pressed.
After 180 seconds have passed, the network will close and needs to be re-opened.

When the network is open, **LED1** on the development kit programmed with the network coordinator sample will be on.
If **LED1** is not on, then the network is closed and needs to be reopened again.

To reopen the network, press **Button 0** on the development kit that has been programmed as the network coordinator.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check LEDs and Buttons naming

Comment on lines +83 to +95
The communication channel uses Zephyr's `UART API`_ API. The serial device is selected in devicetree like this:

.. code-block:: devicetree

chosen {
ncs,zigbee-uart = &uart0;
};

By default, Zephyr's logger uses ``uart0`` and the NCP sample communicates through the UART serialization using ``uart1``.
The DTS overlay file configures ``uart1`` to be connected to the on-board J-Link instead of ``uart0``.
As the result, Zephyr's logger ``uart0`` is available only through GPIO pins (**P1.00** and **P1.01**).

The ``uart0`` pins are configured by devicetree overlay files for each supported development kit in the :file:`boards` directory.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check with @AdamZelikNS if this is correct.

Comment on lines +100 to +165
To change the communication channel from the default UART to nRF USB CDC ACM ``cdc_acm_uart0``, use the :file:`prj_usb.conf` configuration file and add the ``-DFILE_SUFFIX=usb`` flag to the build command.
When using the nRF52840 Dongle, please add the ``-DFILE_SUFFIX=dongle`` flag to the build command instead.
See `Providing CMake options`_ in the |NCS| documentation for instructions on how to add these flags to your build.
For example, when building from the command line, use the following commands:

.. code-block:: console

west build samples/zigbee/ncp -b nrf52840dk/nrf52840 -- -DFILE_SUFFIX=usb

.. code-block:: console

west build samples/zigbee/ncp -b nrf52840dongle/nrf52840 -- -DFILE_SUFFIX=dongle

The USB device VID and PID are configured by the sample's Kconfig file.

.. note::
USB is used as the default NCP communication channel when using the nRF52840 Dongle.

When you change the communication channel to nRF USB using either :file:`prj_usb.conf` or :file:`prj_dongle.conf` and select any of the :file:`<board>_usb.overlay` or :file:`<board>_dongle.overlay` files, respectively, :ref:`Zigbee stack logs <zigbee_ug_logging_stack_logs>` are printed by default using ``uart1``.
This is configured in the project file with the following Kconfig options:

* ``CONFIG_ZBOSS_TRACE_BINARY_LOGGING`` - To enable binary format.
* ``CONFIG_ZBOSS_TRACE_UART_LOGGING`` - To select the UART serial over the nRF USB serial.
This option is set by default when the binary format is enabled.

And, in the overlay file like this:

.. code-block:: devicetree

chosen {
ncs,zboss-trace-uart = &uart1;
};

Alternatively, you can configure :ref:`Zigbee stack logs <zigbee_ug_logging_stack_logs>` to be printed in binary format using an independent CDC ACM device of the same nRF USB.
Complete the following steps:

1. Set the following Kconfig options:

* ``CONFIG_ZBOSS_TRACE_BINARY_LOGGING`` - This option enables the binary format.
* ``CONFIG_ZBOSS_TRACE_USB_CDC_LOGGING`` - This option selects nRF USB serial over UART serial.

#. Create two instances of USB CDC ACM for the application:

a. Create two entries in the DTS overlay file :file:`<board>_usb.overlay` or :file:`<board>_dongle.overlay` for the selected board, one for each USB CDC ACM instance.
See `CDC ACM`_ in the Zephyr documentation for more information.
#. Extend the ``zephyr_udc0`` node in the DTS overlay file to also configure the second USB CDC ACM instance ``"cdc_acm_uart1"``:

.. code-block:: devicetree

&zephyr_udc0 {
cdc_acm_uart0: cdc_acm_uart0 {
compatible = "zephyr,cdc-acm-uart";
};

cdc_acm_uart1: cdc_acm_uart1 {
compatible = "zephyr,cdc-acm-uart";
};
};

#. Configure the chosen tracing UART device like this:

.. code-block:: devicetree

chosen {
ncs,zboss-trace-uart = &cdc_acm_uart1;
};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check with @AdamZelikNS if this is correct.

Description refers to nRF52840 dongle - is it valid for nRF54L15 and requires only small polishing?

Comment on lines 183 to 185
* For the ``nrf52840dongle/nrf52840`` board target, the `nRF5 SDK Bootloader`_ is used by default because the dongle comes with this bootloader preinstalled.
* For the ``nrf52840dk/nrf52840``, ``nrf52833dk/nrf52833``, and ``nrf21540dk/nrf52840`` board targets, the following scenarios are possible when building for them:

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For sure wrong boards/targets Check if it is valid for nRF54L15. @AdamZelikNS pls comment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now, updated to add apply options that were for the non-dongle targets to apply to nrf54l15dk/nrf54l15/cpuapp.

1. Download and extract the `ZBOSS NCP Host`_ package.

.. note::
If you are using a Linux distribution different than the 64-bit Ubuntu 18.04, make sure to rebuild the package libraries and applications.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mariusz-nordicsemi shall we update Ubuntu version here?

Comment on lines 347 to 350
When the light bulb joins the network, the **LED2** on the light bulb device turns on to indicate that it is connected to the simple gateway.
The gateway then starts discovering the On/Off cluster.
When it is found, the simple gateway configures bindings and reporting for the device.
It then starts sending On/Off toggle commands with a 15-second interval that toggle the **LED3** on the light bulb on and off.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Check LEDs namings.

Copy link
Contributor Author

@wiba-nordic wiba-nordic Nov 7, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LED3 should probably be LED1, which is controlled by a different device. LED2 should be correct. At least, based on what is currently in the documentation.

@wiba-nordic wiba-nordic force-pushed the doc-creation branch 2 times, most recently from 8faea21 to 4a9c072 Compare November 7, 2024 09:24
@wiba-nordic
Copy link
Contributor Author

Current version. I think we are getting to the point where it would make sense to squash and marge this PR, and then start working on separate PRs for improvements.
html.zip

Due to build system limitations, RST documentation must all be inside
the `doc` folder. This moves the ZBOSS documentation to the correct
folder.

Signed-off-by: Wille Backman <wille.backman@nordicsemi.no>
Adds the existing documentation from the SDK and nrfxlib repos,
and makes the necessary changes to them so everything builds correctly.

Signed-off-by: Wille Backman <wille.backman@nordicsemi.no>
Reorders some Doxygen declarations so that the header documentation
will build. Also adds comments for some conditionals so they are
easier to keep track of when troubleshooting.

Signed-off-by: Wille Backman <wille.backman@nordicsemi.no>
@wiba-nordic
Copy link
Contributor Author

Rebased, and squashed a couple of commits. Also added the Template sample to the doc/samples/index.rst table since the sample was added to the repository.

Applying the feedback that was provided.

Signed-off-by: Wille Backman <wille.backman@nordicsemi.no>
@wiba-nordic wiba-nordic merged commit 7bad6ce into nrfconnect:main Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants