diff --git a/.github/workflows/docbuild.yaml b/.github/workflows/docbuild.yaml new file mode 100644 index 00000000000000..4e2d9bc22325e3 --- /dev/null +++ b/.github/workflows/docbuild.yaml @@ -0,0 +1,49 @@ +name: Documentation Build + +on: + push: + branches: + - master + +permissions: + contents: write + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + + steps: + - name: Checkout the code + uses: actions/checkout@v2 + with: + path: matter + fetch-depth: 0 + - name: Install Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: cache-pip + uses: actions/cache@v1 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-doc-pip + - name: Install base dependencies + working-directory: matter + run: | + sudo pip3 install -U pip + pip3 install -r docs/requirements.txt + - name: Build documentation + working-directory: matter/docs + run: | + mkdir -p _build/src + make html + touch _build/html/.nojekyll + - name: Deploy to gh-pages + if: github.repository == 'project-chip/connectedhomeip' + uses: peaceiris/actions-gh-pages@v3 + with: + deploy_key: ${{ secrets.DOXYGEN_DEPLOY_KEY }} + external_repository: project-chip/connectedhomeip-doc + publish_dir: matter/docs/_build/html + # Keep only the latest version of the documentation + force_orphan: true diff --git a/.gitignore b/.gitignore index 5baec0fd0ed020..8d4ea014d762c6 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,12 @@ __pycache__ # Doxygen outputs docs/html +# Python venv +.venv + +# Documentation +docs/_build + # VSCode java extensions .project diff --git a/.spellcheck.yml b/.spellcheck.yml index 09fc2794be1c94..28915deea38167 100644 --- a/.spellcheck.yml +++ b/.spellcheck.yml @@ -46,7 +46,11 @@ matrix: # ```python # content # ``` - - open: '(?s)^(?P *`{3,})[a-z]*$' + # + # Allow MyST extended syntax like: + # ```{include} my/file.md + # ``` + - open: '(?s)^(?P *`{3,})([a-z]*$|{[a-z]*?}\s*[^\n]*?$)' close: '^(?P=open)$' # Ignore text between inline back ticks - open: '(?P`+)' diff --git a/docs/Doxyfile b/docs/Doxyfile index cafa736248e40b..76645f9caaf110 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -830,7 +830,7 @@ INPUT = README.md \ docs/guides/BUILDING.md \ docs/VSCODE_DEVELOPMENT.md \ docs/PROJECT_FLOW.md \ - docs/STYLE_GUIDE.md \ + docs/style/style_guide.md \ src/ble \ src/controller \ src/crypto \ diff --git a/docs/ERROR_CODES.md b/docs/ERROR_CODES.md index 4f07058f43c2bb..4026219328fa2f 100644 --- a/docs/ERROR_CODES.md +++ b/docs/ERROR_CODES.md @@ -8,7 +8,7 @@ This file was **AUTOMATICALLY** generated by - [SDK Core errors: range `0x000..0x0FF`](#sdk-core-errors) - [SDK Inet Layer errors: range `0x100..0x1FF`](#sdk-inet-layer-errors) - [SDK Device Layer errors: range `0x200..0x2FF`](#sdk-device-layer-errors) -- [ASN.1 Layer errors: range `0x300..0x3FF`](#asn-1-layer-errors) +- [ASN.1 Layer errors: range `0x300..0x3FF`](#asn.1-layer-errors) - [BLE Layer errors: range `0x400..0x4FF`](#ble-layer-errors) - [IM Global errors errors: range `0x500..0x5FF`](#im-global-errors-errors) diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000000000..30826e465ad549 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,21 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= -W -c . -d _build/doctrees +SPHINXBUILD ?= sphinx-build +SOURCEDIR = _build/src +BUILDDIR = _build + +# 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 + mkdir -p "$(SOURCEDIR)" + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/README.md b/docs/README.md index dcb17c3552e56c..e4ec9c8f3a5523 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,7 +24,7 @@ ## Style Guide - Documentation about style is documented in - [the style guide](./STYLE_GUIDE.md) + [the style guide](./style/style_guide.md) - Additional documentation about more specific files are in the [style folder](./style/) diff --git a/docs/_extensions/external_content.py b/docs/_extensions/external_content.py new file mode 100644 index 00000000000000..f8c2f48a2207ba --- /dev/null +++ b/docs/_extensions/external_content.py @@ -0,0 +1,251 @@ +""" +External content +################ + +Copyright (c) 2021 Nordic Semiconductor ASA +SPDX-License-Identifier: Apache-2.0 + +Introduction +============ + +This extension allows to import sources from directories out of the Sphinx +source directory. They are copied to the source directory before starting the +build. Note that the copy is *smart*, that is, only updated files are actually +copied. Therefore, incremental builds detect changes correctly and behave as +expected. + +Links to external content not included in the generated documentation are +transformed to external links as needed. + +Configuration options +===================== + +- ``external_content_contents``: A list of external contents. Each entry is + a tuple with two fields: the external base directory and a file glob pattern. +- ``external_content_link_prefixes``: A list of link prefixes out of scope. + All links to content with these prefixes are made external. +- ``external_content_link_extensions``: A list of file extensions in scope of + the documentation. All links to content without these file extensions are + made external. +- ``external_content_keep``: A list of file globs (relative to the destination + directory) that should be kept even if they do not exist in the source + directory. This option can be useful for auto-generated files in the + destination directory. +""" + +import filecmp +import os +from pathlib import Path +import re +import shutil +import tempfile +from typing import Dict, Any, List, Optional + +from sphinx.application import Sphinx + +__version__ = "0.1.0" + +DIRECTIVES = ("figure", "image", "include", "literalinclude") +"""Default directives for included content.""" + +EXTERNAL_LINK_URL_PREFIX = ( + "https://github.com/project-chip/connectedhomeip/blob/master/" +) + + +def adjust_includes( + fname: Path, + basepath: Path, + encoding: str, + link_prefixes: List[str], + extensions: List[str], + targets: List[Path], + dstpath: Optional[Path] = None, +) -> None: + """Adjust included content paths. + + Args: + fname: File to be processed. + basepath: Base path to be used to resolve content location. + encoding: Sources encoding. + link_prefixes: Prefixes of links that are made external. + extensions: Filename extensions links to which are not made external. + targets: List of all files that are being copied. + dstpath: Destination path for fname if its path is not the actual destination. + """ + + if fname.suffix != ".md": + return + + dstpath = dstpath or fname.parent + + def _adjust_path(path): + # ignore absolute paths, section links, hyperlinks and same folder + if path.startswith(("/", "#", "http", "www")) or not "/" in path: + return path + + # for files that are being copied modify reference to and out of /docs + filepath = path.split("#")[0] + absolute = (basepath / filepath).resolve() + if absolute in targets: + if "docs/" in path: + path = path.replace("docs/", "") + elif "../examples" in path: + path = path.replace("../", "", 1) + return path + + # otherwise change links to point to their targets' original location + return Path(os.path.relpath(basepath / path, dstpath)).as_posix() + + def _adjust_links(m): + displayed, fpath = m.groups() + fpath_adj = _adjust_path(fpath) + return f"[{displayed}]({fpath_adj})" + + def _adjust_external(m): + displayed, target = m.groups() + return f"[{displayed}]({EXTERNAL_LINK_URL_PREFIX}{target})" + + def _adjust_filetype(m): + displayed, target, extension = m.groups() + if extension.lower() in extensions or target.startswith("http"): + return m.group(0) + + return f"[{displayed}]({EXTERNAL_LINK_URL_PREFIX}{target})" + + def _adjust_image_link(m): + prefix, fpath, postfix = m.groups() + fpath_adj = _adjust_path(fpath) + return f"{prefix}{fpath_adj}{postfix}" + + rules = [ + # Find any links and adjust the path + (r"\[([^\[\]]*)\]\s*\((.*)\)", _adjust_links), + + # Find links that lead to an external folder and transform it + # into an external link. + ( + r"\[([^\[\]]*)\]\s*\((?:\.\./)*((?:" + "|".join(link_prefixes) + r")[^)]*)\)", + _adjust_external, + ), + + # Find links that lead to a non-presentable filetype and transform + # it into an external link. + ( + r"\[([^\[\]]*)\]\s*\((?:\.\./)*((?:[^()]+?/)*[^.()]+?(\.[^)/#]+))(?:#[^)]+)?\)", + _adjust_filetype, + ), + + # Find links that lead to a folder and transform it into an external link. + ( + r"\[([^\[\]]*)\]\s*\((?:\.\./)*((?:[^()]+?/)+[^).#/]+)(\))", + _adjust_filetype, + ), + + # Find image links in img tags and adjust them + (r"(]*src=[\"'])([^ >]+)([\"'][^>]*>)", _adjust_image_link) + ] + + with open(fname, "r+", encoding=encoding) as f: + content = f.read() + modified = False + + for pattern, sub_func in rules: + content, changes_made = re.subn(pattern, sub_func, content) + modified = modified or changes_made + + if modified: + f.seek(0) + f.write(content) + f.truncate() + + +def sync_contents(app: Sphinx) -> None: + """Synhronize external contents. + + Args: + app: Sphinx application instance. + """ + + srcdir = Path(app.srcdir).resolve() + to_copy = [] + to_delete = set(f for f in srcdir.glob("**/*") if not f.is_dir()) + to_keep = set( + f + for k in app.config.external_content_keep + for f in srcdir.glob(k) + if not f.is_dir() + ) + + for content in app.config.external_content_contents: + prefix_src, glob = content + for src in prefix_src.glob(glob): + if src.is_dir(): + to_copy.extend( + [(f, prefix_src) for f in src.glob("**/*") if not f.is_dir()] + ) + else: + to_copy.append((src, prefix_src)) + + list_of_destinations = [f for f, _ in to_copy] + + for entry in to_copy: + src, prefix_src = entry + dst = (srcdir / src.relative_to(prefix_src)).resolve() + + if dst in to_delete: + to_delete.remove(dst) + + if not dst.parent.exists(): + dst.parent.mkdir(parents=True) + + # just copy if it does not exist + if not dst.exists(): + shutil.copy(src, dst) + adjust_includes( + dst, + src.parent, + app.config.source_encoding, + app.config.external_content_link_prefixes, + app.config.external_content_link_extensions, + list_of_destinations, + ) + # if origin file is modified only copy if different + elif src.stat().st_mtime > dst.stat().st_mtime: + with tempfile.TemporaryDirectory() as td: + # adjust origin includes before comparing + src_adjusted = Path(td) / src.name + shutil.copy(src, src_adjusted) + adjust_includes( + src_adjusted, + src.parent, + app.config.source_encoding, + app.config.external_content_link_prefixes, + app.config.external_content_link_extensions, + list_of_destinations, + dstpath=dst.parent, + ) + + if not filecmp.cmp(src_adjusted, dst): + dst.unlink() + shutil.move(os.fspath(src_adjusted), os.fspath(dst)) + + # remove any previously copied file not present in the origin folder, + # excepting those marked to be kept. + for file in to_delete - to_keep: + file.unlink() + + +def setup(app: Sphinx) -> Dict[str, Any]: + app.add_config_value("external_content_contents", [], "env") + app.add_config_value("external_content_keep", [], "") + app.add_config_value("external_content_link_prefixes", [], "env") + app.add_config_value("external_content_link_extensions", [], "env") + + app.connect("builder-inited", sync_contents) + + return { + "version": __version__, + "parallel_read_safe": True, + "parallel_write_safe": True, + } diff --git a/docs/_static/images/favicon.ico b/docs/_static/images/favicon.ico new file mode 100644 index 00000000000000..16f3d88dcc98c7 Binary files /dev/null and b/docs/_static/images/favicon.ico differ diff --git a/docs/_static/images/logo.png b/docs/_static/images/logo.png new file mode 100644 index 00000000000000..88bcee2d157f8f Binary files /dev/null and b/docs/_static/images/logo.png differ diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 00000000000000..c139642dc4ed68 --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,7 @@ +# API + +```{toctree} +:glob: + +* +``` diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 00000000000000..3625b2bca32e60 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,78 @@ +# Configuration file for the Sphinx documentation builder. + +from pathlib import Path +import sys + +# -- Paths ------------------------------------------------------------------- + +MATTER_BASE = Path(__file__).resolve().parents[1] + +sys.path.insert(0, str(MATTER_BASE / "docs" / "_extensions")) + +# -- Project information ----------------------------------------------------- + +project = "Matter" +copyright = "2022, Matter Contributors" +author = "Matter Contributors" +version = "1.0.0" + +# -- General configuration --------------------------------------------------- + +extensions = [ + "myst_parser", + "external_content", +] +exclude_patterns = [ + "_build", + "examples/android/*", + "**/nxp/linux-imx/imx8m/README.md", + "examples/ota-requestor-app/efr32/README.md", + "**/android/App/app/libs*", + "examples/providers/README.md", + "examples/platform/nxp/doc/manufacturing_flow.md", + "examples/thermostat/nxp/linux-se05x/README.md", +] + + +# -- Options for HTML output ------------------------------------------------- + +html_theme = "sphinx_book_theme" +html_logo = "_static/images/logo.png" +html_favicon = "_static/images/favicon.ico" +html_static_path = ["_static"] +html_theme_options = { + "logo_only": True, + "github_url": "https://github.com/project-chip/connectedhomeip", + "repository_url": "https://github.com/project-chip/connectedhomeip", + "use_edit_page_button": True, + "repository_branch": "master", + "path_to_docs": "docs", +} + +# -- Options for MyST -------------------------------------------------------- + +myst_heading_anchors = 6 +suppress_warnings = ["myst.header", "myst.anchor"] +myst_enable_extensions = ["html_image"] + + +# -- Options for external_content -------------------------------------------- + +external_content_contents = [ + (MATTER_BASE / "docs", "[!_R]*"), + (MATTER_BASE, "README.md"), + (MATTER_BASE, "examples/**/*.md"), + (MATTER_BASE, "examples/**/*.png"), + (MATTER_BASE, "examples/**/*.jpg"), + (MATTER_BASE, "examples/**/*.JPG"), +] +external_content_link_prefixes = [ + "src/", + r"\.vscode/", + "CONTRIBUTING", + "scripts/", + "examples/android/", + "examples/platform/", + "platform", +] +external_content_link_extensions = [".md", ".png", ".jpg", ".svg"] diff --git a/docs/discussion/index.md b/docs/discussion/index.md new file mode 100644 index 00000000000000..fac1ccb91498eb --- /dev/null +++ b/docs/discussion/index.md @@ -0,0 +1,7 @@ +# Discussion + +```{toctree} +:glob: + +* +``` diff --git a/docs/examples/discussion/PID_allocation_for_example_apps.md b/docs/examples/discussion/PID_allocation_for_example_apps.md index 18e71a20698964..2ebb169e60f099 100644 --- a/docs/examples/discussion/PID_allocation_for_example_apps.md +++ b/docs/examples/discussion/PID_allocation_for_example_apps.md @@ -1,3 +1,7 @@ +--- +orphan: true +--- + # PID allocation for example apps Unless specifically overridden by the platform, example apps in this SDK use the diff --git a/docs/examples/index.md b/docs/examples/index.md new file mode 100644 index 00000000000000..6890ff955ec866 --- /dev/null +++ b/docs/examples/index.md @@ -0,0 +1,258 @@ +# Examples + +The Matter SDK provides examples of Matter devices for different development +platforms. + +## All clusters example + +```{toctree} +:glob: +:maxdepth: 1 + +all-clusters-app/**/README +all-clusters-app/**/Readme +``` + +## All clusters minimal example + +```{toctree} +:glob: +:maxdepth: 1 + +all-clusters-minimal-app/**/README +all-clusters-minimal-app/**/Readme +``` + +## Bridge example + +```{toctree} +:glob: +:maxdepth: 1 + +bridge-app/**/README +``` + +## Contact Sensor Example + +```{toctree} +:glob: +:maxdepth: 1 + +contact-sensor-app/**/README +``` + +## CHEF example + +```{toctree} +:glob: +:maxdepth: 1 + +chef/README* +chef/**/README +``` + +## CHIP Tool example + +```{toctree} +:glob: +:maxdepth: 1 + +chip-tool/README +``` + +## CHIP Tool Darwin example + +```{toctree} +:glob: +:maxdepth: 1 + +darwin-framework-tool/README +``` + +## Dynamic bridge example + +```{toctree} +:glob: +:maxdepth: 1 + +dynamic-bridge-app/**/README +``` + +## Java matter controller example + +```{toctree} +:glob: +:maxdepth: 1 + +java-matter-controller/README +``` + +## Lighting example + +```{toctree} +:glob: +:maxdepth: 1 + +lighting-app/**/README +lighting-app/qpg/APPLICATION +``` + +## Light switch example + +```{toctree} +:glob: +:maxdepth: 1 + +light-switch-app/**/README +``` + +## Lock example + +```{toctree} +:glob: +:maxdepth: 1 + +lock-app/**/README +lock-app/qpg/APPLICATION +``` + +## Log source example + +```{toctree} +:glob: +:maxdepth: 1 + +log-source-app/**/README +``` + +## Minimal MDNS example + +```{toctree} +:glob: +:maxdepth: 1 + +minimal-mdns/README +``` + +## Open IoT SDK examples + +```{toctree} +:glob: +:maxdepth: 1 + +openiotsdk_examples +``` + +## OTA Provider example + +```{toctree} +:glob: +:maxdepth: 1 + +ota-provider-app/**/README +``` + +## OTA Requestor example + +```{toctree} +:glob: +:maxdepth: 1 + +ota-requestor-app/**/README +ota-requestor-app/**/Readme +``` + +## Persistent storage example + +```{toctree} +:glob: +:maxdepth: 1 + +persistent-storage/**/README +persistent-storage/**/APPLICATION +``` + +## Pigweed example + +```{toctree} +:glob: +:maxdepth: 1 + +pigweed-app/**/README +``` + +## Pump example + +```{toctree} +:glob: +:maxdepth: 1 + +pump-app/**/README +pump-app/cc13x2x7_26x2x7/doc/programming* +``` + +## Pump controller example + +```{toctree} +:glob: +:maxdepth: 1 + +pump-controller-app/**/README +pump-controller-app/cc13x2x7_26x2x7/doc/programming* +``` + +## Shell example + +```{toctree} +:glob: +:maxdepth: 1 + +shell/README* +shell/**/README +``` + +## Temperature measurement example + +```{toctree} +:glob: +:maxdepth: 1 + +temperature-measurement-app/**/README +``` + +## Thermostat example + +```{toctree} +:glob: +:maxdepth: 1 + +thermostat/**/README +thermostat/**/Readme +``` + +## TV example + +```{toctree} +:glob: +:maxdepth: 1 + +tv-app/**/README +``` + +## TV casting example + +```{toctree} +:glob: +:maxdepth: 1 + +tv-casting-app/**/README +``` + +## Window example + +```{toctree} +:glob: +:maxdepth: 1 + +window-app/**/README +``` diff --git a/docs/examples/openiotsdk_examples.md b/docs/examples/openiotsdk_examples.md index 41e8c88152b7e8..36e12236c62172 100644 --- a/docs/examples/openiotsdk_examples.md +++ b/docs/examples/openiotsdk_examples.md @@ -18,8 +18,8 @@ $ git submodule update --init The VSCode devcontainer has all dependencies pre-installed. Using the VSCode devcontainer is the recommended way to interact with Open IoT SDK port of the -Matter Project. Please read this -[README.md](../../..//docs/VSCODE_DEVELOPMENT.md) for more information. +Matter Project. Please read this [README.md](../VSCODE_DEVELOPMENT.md) for more +information. ### Networking setup diff --git a/docs/guides/android_building.md b/docs/guides/android_building.md index 840f65110e0ae1..02a3653f298186 100644 --- a/docs/guides/android_building.md +++ b/docs/guides/android_building.md @@ -203,7 +203,7 @@ or ## Building Android CHIPTest from scripts Currently, the CHIPTest can only be built from scripts. The steps are similar to -[building CHIPTool from scripts](#building-scripts). +[building CHIPTool from scripts](#building-android-chiptool-from-scripts). ```shell ./scripts/build/build_examples.py --target android-arm64-chip-test build diff --git a/docs/guides/chip_tool_guide.md b/docs/guides/chip_tool_guide.md index 499b2b6cd4f9c9..6ab37147b62099 100644 --- a/docs/guides/chip_tool_guide.md +++ b/docs/guides/chip_tool_guide.md @@ -8,15 +8,13 @@ the setup payload or performing discovery actions.
-- [Source files](#source) -- [Building and running the CHIP Tool](#building) -- [Using the CHIP Tool for Matter device testing](#using) -- [Supported commands and options](#commands) +- [Source files](#source-files) +- [Building and running the CHIP Tool](#building-and-running-the-chip-tool) +- [Using the CHIP Tool for Matter device testing](#using-chip-tool-for-matter-device-testing) +- [Supported commands and options](#supported-commands-and-options)
- - ## Source files You can find source files of the CHIP Tool in the `examples/chip-tool` @@ -28,8 +26,6 @@ directory.
- - ## Building and running the CHIP Tool Before you can use the CHIP Tool, you must compile it from source on Linux @@ -69,12 +65,11 @@ _clusters_ in this context, but not all listed commands correspond to the _clusters_ in the Data Model (for example, pairing or discover commands). Each listed command can however become the root of the new more complex command by appending it with sub-commands. Examples of specific commands and their use -cases are described in the [Supported commands and options](#commands) section. +cases are described in the +[Supported commands and options](#supported-commands-and-options) section.
- - ## Using CHIP Tool for Matter device testing This section describes how to use CHIP Tool to test the Matter device. The @@ -385,8 +380,6 @@ $ ./chip-tool basic
- - ## Supported commands and options This section contains a general list of various CHIP Tool commands and options, @@ -770,7 +763,8 @@ The `pairing` command supports different means regarding Matter device commissioning procedure. Thread and Wi-Fi commissioning use cases are described in the -[Using the CHIP Tool for Matter device testing](#using) section. +[Using the CHIP Tool for Matter device testing](#using-chip-tool-for-matter-device-testing) +section. To list all `pairing` sub-commands, run the following command: @@ -780,7 +774,8 @@ $ ./chip-tool pairing ### Interacting with Data Model clusters -As mentioned in the [Using the CHIP Tool for Matter device testing](#using) +As mentioned in the +[Using the CHIP Tool for Matter device testing](#using-chip-tool-for-matter-device-testing) section, executing the `chip-tool` command with a particular cluster name lists all operations supported for this cluster, as in the following command pattern: @@ -874,7 +869,8 @@ In this command: Multi-admin feature allows you to join Matter device to several Matter fabrics and administer it by several different Matter administrators. First you need to commission the Matter device to first fabric following the -[Using CHIP Tool for Matter device testing](#using) section. +[Using CHIP Tool for Matter device testing](#using-chip-tool-for-matter-device-testing) +section. Before it is possible to commission a Matter device to a new fabric, the administrator from first fabric must open the commissioning window for a new diff --git a/docs/guides/darwin.md b/docs/guides/darwin.md index f9d430e9f683e7..361eeebc18825c 100644 --- a/docs/guides/darwin.md +++ b/docs/guides/darwin.md @@ -216,8 +216,7 @@ Example: 1. Checkout and setup [Matter repo](https://github.com/project-chip/connectedhomeip.git) as per the - instructions - [above](#ensuring-your-matter-accessory-works-with-iosipadostvos) + instructions above. 2. Follow [these](https://github.com/project-chip/connectedhomeip/tree/master/examples/all-clusters-app/esp32) instructions to initialize your development environment, compile the firmware @@ -229,8 +228,7 @@ Example: 1. Checkout and setup [Matter repo](https://github.com/project-chip/connectedhomeip.git) as per the - instructions - [above](#ensuring-your-matter-accessory-works-with-iosipadostvos) + instructions above. 2. Follow [these instructions](https://github.com/project-chip/connectedhomeip/tree/master/examples/lighting-app/nrfconnect#readme) @@ -245,18 +243,16 @@ Example: 1. Checkout and setup [Matter repo](https://github.com/project-chip/connectedhomeip.git) as per the - instructions - [above](#ensuring-your-matter-accessory-works-with-iosipadostvos) + instructions above. 2. Find and edit one of the platform [examples](https://github.com/project-chip/connectedhomeip/tree/master/examples) - to support the fixed device types - [above](#ensuring-your-matter-accessory-works-with-iosipadostvos) -3. Read the [platform guides](.) on how set up the hardware + to support the fixed device types above. +3. Read the [platform guides](README.md) on how set up the hardware ##### Guides -- [Bouffalo Lab](/examples/lighting-app/bouffalolab/bl602/README.md) -- [EFR32 Window Covering](/examples/window-app/efr32/README.md) +- [Bouffalo Lab](/examples/lighting-app/bouffalolab/README.md) +- [EFR32 Window Covering](/examples/window-app/silabs/efr32/README.md) - [ESP32 All Clusters](/examples/all-clusters-app/esp32/README.md) - [ESP32 Lighting](/examples/lighting-app/esp32/README.md) - [ESP32 Temperature Sensor](/examples/temperature-measurement-app/esp32/README.md) diff --git a/docs/guides/esp32/README.md b/docs/guides/esp32/README.md index 0cdead51a8c289..ebdfaac513209d 100644 --- a/docs/guides/esp32/README.md +++ b/docs/guides/esp32/README.md @@ -1,6 +1,11 @@ ## Espressif (ESP32) Getting Started Guide ---- +```{toctree} +:glob: +:maxdepth: 1 + +* +``` Please follow the steps below to create and test a fully functional Matter example on ESP32 series of SoCs @@ -11,5 +16,3 @@ example on ESP32 series of SoCs - [Flash and NVS encryption for securing factory data](flash_nvs_encryption.md) - [RPC Console and Device Tracing](rpc_console.md) - [Matter OTA](ota.md) - ---- diff --git a/docs/guides/index.md b/docs/guides/index.md new file mode 100644 index 00000000000000..9b2d1b249d47e9 --- /dev/null +++ b/docs/guides/index.md @@ -0,0 +1,12 @@ +# Guides + +Read the following guides for general information about Matter SDK configuration +and features. + +```{toctree} +:glob: +:maxdepth: 1 + +* +esp32/README +``` diff --git a/docs/guides/matter-repl.md b/docs/guides/matter-repl.md index f5c9214d2c652b..bf05be63ddb9a5 100644 --- a/docs/guides/matter-repl.md +++ b/docs/guides/matter-repl.md @@ -28,8 +28,8 @@ The tool uses the generic CHIP Device Controller library, available in the ## Building Please follow the instructions -[here](./python_chip_controller_building.md#building) to build the Python -virtual environment. +[here](./python_chip_controller_building.md#building-and-installing) to build +the Python virtual environment. ## Launching the REPL diff --git a/docs/guides/mbedos_add_new_target.md b/docs/guides/mbedos_add_new_target.md index 07d34bb3705690..8ea7c35c7049d2 100644 --- a/docs/guides/mbedos_add_new_target.md +++ b/docs/guides/mbedos_add_new_target.md @@ -1,8 +1,8 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Mbed-OS add new hardware target

+# Mbed-OS add new hardware target -# Overview +## Overview This document shows how to add the new Mbed OS hardware target to Matter project. @@ -23,7 +23,7 @@ remember about the following requirements: Additional target component requirements are different for each of example application. Check the **Device UI** paragraph in example description. -# Example Application +## Example Application The first step to add the new target to each of example application is to modify the `examples/example_name/mbed/mbed_app.json` file. It contains the common @@ -33,7 +33,7 @@ should add the necessary components and parameters for the target there. If the new target uses the external libraries, it will be required to link it in the CMakeLists.txt file. -# Building +## Building To add the new hardware target to the build system the `scripts/examples/mbed_example.sh` script should be modify. Extend @@ -56,7 +56,7 @@ Example: "default": "CY8CPROTO_062_4343W" } -# Flashing +## Flashing Mbed OS example application flashing process uses the [Open On-Chip Debugger](http://openocd.org/). The first step is to create the @@ -83,7 +83,7 @@ Example: "default": "CY8CPROTO_062_4343W" } -# Debugging +## Debugging Debugging process of Mbed OS applications is also based on VSCode launch task. Adding the new target to it required `.vscode/launch.json` modification. Extend @@ -99,7 +99,7 @@ Example: "default": "CY8CPROTO_062_4343W" } -# CI +## CI The Matter project continue integration process is based on Github Actions tool. It uses workflow configuration files to execute actions on CI server. diff --git a/docs/guides/mbedos_commissioning.md b/docs/guides/mbedos_commissioning.md index 46853913d297ac..16a047f8d8b394 100644 --- a/docs/guides/mbedos_commissioning.md +++ b/docs/guides/mbedos_commissioning.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS provisioning guide

+# Matter Arm Mbed OS provisioning guide - [Overview](#overview) - [Prerequisites](#prerequisites) @@ -21,7 +21,7 @@
-# Overview +## Overview This document provides a step-by-step guide how to commission any Matter application. For demonstration purposes the Lighting app is used. @@ -37,7 +37,7 @@ The provisioning process is composed of the following stages: BLE is only used during first phase. Afterwards, only the IP connectivity between the smartphone and the accessory device is needed to send messages. -# Prerequisites +## Prerequisites To complete all the steps in the tutorial, you need: @@ -50,9 +50,9 @@ To complete all the steps in the tutorial, you need: - Any currently supported target device (for example, a Cypress PSoC6 CY8CPROTO-062-4343W board) -# CHIPTool for Android +## CHIPTool for Android -## Building and installing +### Building and installing To make provisioning possible and to control the Matter device from your Android based smartphone, you must first build and install the CHIPTool application. @@ -85,7 +85,7 @@ After building, install the application by completing the following steps: Android CHIPTool is now ready to be used for commissioning. -## Accessory Matter device setup +### Accessory Matter device setup To prepare the accessory Matter device for commissioning (called rendezvous), complete the following steps: @@ -113,7 +113,7 @@ to the UART console. - Open URL from the console to display the QR in a web browser. -## Device commissioning for Android +### Device commissioning for Android To commission Matter device onto the network created complete the following steps: @@ -137,7 +137,7 @@ steps: - After successful completion of the process, the application returns to the main screen. -## Sending ZCL commands +### Sending ZCL commands After the accessory device has been successfully commissioned to the network, it is possible to communicate with it using IP. Matter uses Zigbee Cluster Library @@ -156,9 +156,9 @@ If **Lighting LED** is available then brightness change can be observed. > For more details about Android CHIPTool please visit > [CHIPTool](../../examples/android/CHIPTool/README.md) -# POSIX CLI CHIPTool +## POSIX CLI CHIPTool -## Building +### Building To make provisioning possible and to control the Matter device from Linux-based device, you can build and run the Matter Client example application on it. @@ -166,7 +166,7 @@ device, you can build and run the Matter Client example application on it. To build the POSIX CLI CHIPTool application check the guide [POSIX CLI guide](../../examples/chip-tool/README.md). -## Device commissioning for CLI +### Device commissioning for CLI In order to send commands to a device, it must be paired with the client and connected to the network. @@ -179,7 +179,7 @@ Example: $ chip-tool pairing ble-wifi node_id_to_assign network_ssid network_password 20202021 3840 -## Sending ZCL commands +### Sending ZCL commands If the commissioning process was successful, it is possible to send a ZCL command to the device which initiate a certain action. @@ -198,9 +198,9 @@ The client will send a single command packet and then exit. > For more details about POSIX CLI CHIPTool please visit > [POSIX CLI CHIPTool](../../examples/chip-tool/README.md) -# Python Device Controller +## Python Device Controller -## Building and installing +### Building and installing To make provisioning possible and to control the Matter device with Python application, you can build and run the Python CHIP controller. @@ -208,7 +208,7 @@ application, you can build and run the Python CHIP controller. To build and install the Python Device Controller application check the guide [Python Device Controller guide](python_chip_controller_building.md). -## Device commissioning for Python Device Controller +### Device commissioning for Python Device Controller In order to send commands to a device, it must be paired with the client and connected to the network. @@ -232,7 +232,7 @@ To run the auto commissioning process via BLE: chip-device-ctrl > connect -ble 3840 20202021 1234 -## Sending ZCL commands +### Sending ZCL commands If the commissioning process was successful, it is possible to send a ZCL command to the device which initiates a certain action. @@ -243,7 +243,7 @@ Example: chip-device-ctrl > zcl LevelControl MoveWithOnOff 12344321 1 0 moveMode=1 rate=2 -### ZCL commands details +#### ZCL commands details To get the list of supported clusters run: diff --git a/docs/guides/mbedos_platform_overview.md b/docs/guides/mbedos_platform_overview.md index 95a1a3ee67f0c7..b70d5ed89cc1ba 100644 --- a/docs/guides/mbedos_platform_overview.md +++ b/docs/guides/mbedos_platform_overview.md @@ -11,7 +11,7 @@ runs on the top of the Mbed-OS. ![matter_mbedos_overview_simplified](images/matter_mbedos_overview_simplified.png) -# ARM Mbed-OS +## ARM Mbed-OS Arm Mbed OS is an open source embedded operating system designed specifically for the "things" in the Internet of Things. It includes all the features you @@ -47,7 +47,7 @@ Finally, Mbed OS implements the retargeting layer and boot process integration of each supported toolchain, so application development feels similar to C or C++ development for any other operating system. -# Bluetooth and IP stacks +## Bluetooth and IP stacks In the Mbed-oS platform applications, the Bluetooth LE interface is used to perform pairing and Wi-Fi network provisioning operations between the Matter @@ -70,7 +70,7 @@ network layer, special glue socket layer has been introduced to take care of adapting the Mbed socket to BSD interface which is used inside the Matter endpoints implementation. -## Matter integration +### Matter integration The Bluetooth LE and Wi-Fi used stacks provided by the Mbed-OS have been integrated with the Matter stack using a special intermediate layer. @@ -80,30 +80,30 @@ interfaces 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. -# Matter example applications +## Matter example applications Sample Matter applications are provided for the Mbed OS platform. They can be used to speed up development: -- [shell](../../examples/shell/mbed) -- [all-clusters-app](../../examples/all-clusters-app/mbed) +- [shell](../../examples/shell/mbed/README.md) +- [all-clusters-app](../../examples/all-clusters-app/mbed/README.md) - [lock-app](../../examples/lock-app/mbed/README.md) - [lighting-app](../../examples/lighting-app/mbed/README.md) - [pigweed-app](../../examples/pigweed-app/mbed/README.md) -## Example configuration +### Example configuration Each of the supporting examples contains the `config.in` file which allows you to configure the application in a proper way. You can define/disable/enable application settings. Then they are propagated through Mbed-OS and Matter stack build systems. -## Matter stack configuration +### Matter stack configuration In each of supported examples, the Matter stack can be configured by modifying `CHIPProjectConfig.h` file which is placed inside the project directory. -## Mbed-OS configuration +### Mbed-OS configuration Mbed-OS gives possibility to tweak its parameters by using the [Mbed-OS configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html). @@ -113,7 +113,7 @@ support of the new hardware target support into the application. Mbed-OS configuration system can be accessed by modifying the `mbed_app.json` file which exists in each sample project directory. -## Build system +### Build system The Mbed-OS platform makes use of the following build systems to generate ninja build scripts: @@ -126,7 +126,7 @@ Matter's stack and platform modules are built with GN and output a library file. The application, Mbed-OS and target specific libraries are built with CMake and the Matter library file is imported during the compilation process. -## Build profiles +### Build profiles Arm Mbed OS defines three collections of toolchain flags used during the build: diff --git a/docs/guides/nrfconnect_android_commissioning.md b/docs/guides/nrfconnect_android_commissioning.md index 21096da4d2bab6..0c93f4579298e5 100644 --- a/docs/guides/nrfconnect_android_commissioning.md +++ b/docs/guides/nrfconnect_android_commissioning.md @@ -15,16 +15,14 @@ adapted from the original Thread-based procedure. - [Overview](#overview) - [Requirements](#requirements) - [Setting up Thread Border Router](#setting-up-thread-border-router) -- [Building and programming nRF Connect Example Application](#building-example) -- [Building and installing Android CHIPTool](#building-chiptool) -- [Preparing accessory device](#preparing-accessory) -- [Commissioning accessory device](#commissioning-accessory) -- [Sending Matter commands](#sending-chip-commands) +- [Building and programming nRF Connect Example Application](#building-and-programming-nrf-connect-example-application) +- [Building and installing Android CHIPTool](#building-and-installing-android-chiptool) +- [Preparing accessory device](#preparing-accessory-device) +- [Commissioning accessory device](#commissioning-accessory-device) +- [Sending Matter commands](#sending-matter-commands)
- - ## Overview The commissioning process is composed of the following main stages: @@ -54,8 +52,6 @@ Lighting Example Application:
- - ## Requirements You need the following hardware and software for commissioning the nRF Connect @@ -85,8 +81,6 @@ accessory using Android CHIPTool:
- - ## Setting up Thread Border Router > _Note:_ This step is only needed if you're testing a Thread device. Skip it if @@ -101,8 +95,6 @@ Access Point.
- - ## Building and programming nRF Connect Example Application Build and program the example application onto your compatible device. @@ -112,8 +104,6 @@ Application to learn how to build and program the example onto an nRF52840 DK.
- - ## Building and installing Android CHIPTool To build the CHIPTool application for your smartphone, read the @@ -148,8 +138,6 @@ CHIPTool is now ready to be used for commissioning.
- - ## Preparing accessory device To prepare the accessory device for commissioning, complete the following steps: @@ -173,8 +161,6 @@ To prepare the accessory device for commissioning, complete the following steps:
- - ## Commissioning accessory device To commission the accessory device into the Matter fabric, complete the @@ -198,8 +184,6 @@ following steps:
- - ## Sending Matter commands Once the device is commissioned, the main application screen appears. diff --git a/docs/guides/nrfconnect_examples_configuration.md b/docs/guides/nrfconnect_examples_configuration.md index 0254d8bb390644..5a31f3357da74a 100644 --- a/docs/guides/nrfconnect_examples_configuration.md +++ b/docs/guides/nrfconnect_examples_configuration.md @@ -103,8 +103,6 @@ target name of the kit, for example _nrf52840dk_nrf52840_:
- - ## Configuration structure overview Zephyr RTOS and related software components, like drivers and libraries, provide diff --git a/docs/guides/nrfconnect_factory_data_configuration.md b/docs/guides/nrfconnect_factory_data_configuration.md index 7826fd6b9d15a8..c0152276f00737 100644 --- a/docs/guides/nrfconnect_factory_data_configuration.md +++ b/docs/guides/nrfconnect_factory_data_configuration.md @@ -28,15 +28,13 @@ data secure by applying hardware write protection. > is the hardware flash protection driver, and we used it to ensure write > protection of the factory data partition in internal flash memory. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK
- [Overview](#overview) - - [Factory data components](#factory-data-components) + - [Factory data components](#factory-data-component-table) - [Factory data format](#factory-data-format) - [Enabling factory data support](#enabling-factory-data-support) - [Generating factory data](#generating-factory-data) @@ -48,7 +46,7 @@ data secure by applying hardware write protection. - [Option 2: Using a website validator](#option-2-using-a-website-validator) - [Option 3: Using the nRF Connect Python script](#option-3-using-the-nrf-connect-python-script) - [Preparing factory data partition on a device](#preparing-factory-data-partition-on-a-device) - - [Creating the factory data partition with the second script](#creating-the-factory-data-partition-with-the-second-script) + - [Creating the factory data partition with the second script](#creating-a-factory-data-partition-with-the-second-script) - [Building an example with factory data](#building-an-example-with-factory-data) - [Providing factory data parameters as a build argument list](#providing-factory-data-parameters-as-a-build-argument-list) - [Setting factory data parameters using interactive Kconfig interfaces](#setting-factory-data-parameters-using-interactive-kconfig-interfaces) @@ -57,8 +55,6 @@ data secure by applying hardware write protection.
- - ## Overview You can implement the factory data set described in the @@ -156,7 +152,6 @@ In the factory data set, the following formats are used: [X.509](https://www.itu.int/rec/T-REC-X.509-201910-I/en) format.
- ## Enabling factory data support @@ -187,7 +182,7 @@ partition into the device's flash memory. You can use the second script without invoking the first one by providing a JSON file written in another way. To make sure that the JSON file is correct and the device is able to read out parameters, verify the file using the -[JSON schema](#verifying-using-a-json-schema). +[JSON schema](#verifying-using-the-json-schema-tool). ### Creating factory data JSON file with the first script @@ -329,7 +324,7 @@ JSON file is verified using the prepared JSON Schema. If the script finishes successfully, go to the location you provided with the `-o` argument. Use the JSON file you find there when -[generating the factory data partition](#generating_factory_data_partition). +[generating the factory data partition](#generating-factory-data). > Note: Generating new certificates is optional if default vendor and product > IDs are used and requires providing a path to the `chip-cert` executable. To @@ -625,7 +620,6 @@ reason, it can be programmed directly to the device using a programmer (for example, `nrfjprog`).
- ## Building an example with factory data @@ -705,7 +699,6 @@ snippet: > [Kconfig docummentation](https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/build/kconfig/menuconfig.html).
- ## Programming factory data @@ -757,7 +750,7 @@ $ west build -b nrf52840dk_nrf52840 -- \ > Note: To generate new certificates using the nRF Connect platform build > system, you need the `chip-cert` executable in your system variable PATH. To > learn how to get `chip-cert`, go to the note at the end of -> [creating the factory data partition with the second script](#creating-the-factory-data-partition-with-the-second-script) +> [creating the factory data partition with the second script](#creating-a-factory-data-partition-with-the-second-script) > section, and then add the newly built executable to the system variable PATH. > The Cmake build system will find this executable automatically. @@ -769,15 +762,14 @@ $ west flash ```
- ## Using own factory data implementation The [factory data generation process](#generating-factory-data) described above is only an example valid for the nRF Connect platform. You can well create a HEX -file containing all [factory data components](#factory-data-components) in any -format and then implement a parser to read out all parameters and pass them to a -provider. Each manufacturer can implement a factory data set on its own by +file containing all [factory data components](#factory-data-component-table) in +any format and then implement a parser to read out all parameters and pass them +to a provider. Each manufacturer can implement a factory data set on its own by implementing a parser and a factory data accessor inside the Matter stack. Use the [nRF Connect Provider](../../src/platform/nrfconnect/FactoryDataProvider.h) and [FactoryDataParser](../../src/platform/nrfconnect/FactoryDataParser.h) as diff --git a/docs/guides/nxp_imx8m_linux_examples.md b/docs/guides/nxp_imx8m_linux_examples.md index c1eabd3819910b..6b1ad2b8f6c4bd 100644 --- a/docs/guides/nxp_imx8m_linux_examples.md +++ b/docs/guides/nxp_imx8m_linux_examples.md @@ -4,11 +4,11 @@ This document describes how to build below Linux examples with the NXP embedded Linux Yocto SDK and then run the output executable files on the **NXP i.MX 8M** **Mini EVK** development board. -- [CHIP Linux All-clusters Example](../../examples/all-clusters-app/linux) -- [CHIP Linux Lighting Example](../../examples/lighting-app/linux) -- [CHIP Linux Thermostat Example](../../examples/thermostat/linux) -- [CHIP Linux CHIP-tool Example](../../examples/chip-tool) -- [CHIP Linux OTA-provider Example](../../examples/ota-provider-app/linux) +- [CHIP Linux All-clusters Example](../../examples/all-clusters-app/linux/README.md) +- [CHIP Linux Lighting Example](../../examples/lighting-app/linux/README.md) +- [CHIP Linux Thermostat Example](https://github.com/project-chip/connectedhomeip/tree/master/examples/thermostat/linux) +- [CHIP Linux CHIP-tool Example](../../examples/chip-tool/README.md) +- [CHIP Linux OTA-provider Example](../../examples/ota-provider-app/linux/README.md) This document has been tested on: @@ -30,8 +30,6 @@ Linux OS development. For more information about this project, see the
- - ## Building Before building the CHIP Linux Examples, the Yocto source code released by NXP @@ -73,7 +71,7 @@ to be generated. More information about the downloaded Yocto release can be found in the corresponding i.MX Yocto Project User’s Guide which can be found at - [NXP official website](www.nxp.com/imxlinux). + [NXP official website](https://www.nxp.com/imxlinux). Change the current directory to the top directory of the Yocto source code and execute the commands below to generate the Yocto SDK: @@ -181,8 +179,6 @@ to be generated. running the Yocto image previously generated as described in the sections above. - - ## Commandline arguments The generated executable files supports to work with below commandline argument: @@ -205,8 +201,6 @@ The generated executable files supports to work with below commandline argument: The BLE device on **i.MX 8M Mini EVK** is a module based on the NXP 88W8987 Wi-Fi/Bluetooth SoC. - - ## Running the Examples on i.MX 8M Mini EVK The steps and commands to run any of the examples are quite similar. diff --git a/docs/guides/nxp_k32w_android_commissioning.md b/docs/guides/nxp_k32w_android_commissioning.md index 773419a0f447ce..bc4076ebef3e4c 100644 --- a/docs/guides/nxp_k32w_android_commissioning.md +++ b/docs/guides/nxp_k32w_android_commissioning.md @@ -3,26 +3,24 @@ This article describes how to use [CHIPTool](../../examples/android/CHIPTool/README.md) for Android smartphones to commission an NXP K32W061 DK6 running -[NXP K32W Lock/Light Example Application](../../examples/lock-light-app/k32w/README.md) +[NXP K32W Lock/Light Example Application](#building-and-programming-nxp-k32w-locklight-example-application) onto a CHIP-enabled Thread network.
- [Overview](#overview) - [Requirements](#requirements) -- [Building and programming OpenThread RCP firmware](#building-rcp-firmware) -- [Configuring PC as Thread Border Router](#configuring-pc) -- [Building and programming NXP K32W Lock/Light Example Application](#building-example) -- [Building and installing Android CHIPTool](#building-chiptool) -- [Forming a Thread network on the Border Router](#form-thread) -- [Preparing accessory device](#preparing-accessory) -- [Commissioning accessory device](#commissioning-accessory) +- [Building and programming OpenThread RCP firmware](#building-and-programming-openthread-rcp-firmware) +- [Configuring PC as Thread Border Router](#configuring-pc-as-a-thread-border-router) +- [Building and programming NXP K32W Lock/Light Example Application](#building-and-programming-nxp-k32w-locklight-example-application) +- [Building and installing Android CHIPTool](#building-and-installing-android-chiptool) +- [Forming a Thread network on the Border Router](#forming-a-thread-network-on-the-border-router) +- [Preparing accessory device](#preparing-accessory-device) +- [Commissioning accessory device](#commissioning-accessory-device) - [Sending CHIP commands](#sending-chip-commands)
- - ## Overview The commissioning process is composed of the following main stages: @@ -49,12 +47,10 @@ The following diagram shows the connectivity between network components required to allow communication between devices running the CHIPTool and Lock/Light applications: -![nxp_hw_connectivity](../../examples/platform/k32w/doc/images/nxp_hw_connectivity.JPG) +![nxp_hw_connectivity](../../examples/platform/nxp/k32w/k32w0/doc/images/nxp_hw_connectivity.JPG)
- - ## Requirements You need the following hardware and software to build a Thread Border Router: @@ -77,8 +73,6 @@ using other popular operating systems.
- - ## Building and programming OpenThread RCP firmware OpenThread RCP firmware is required to allow the PC to communicate with Thread @@ -123,8 +117,6 @@ the RCP firmware onto an K32W061 DK6:
- - ## Configuring PC as a Thread Border Router To make your PC work as a Thread Border Router, complete the following tasks: @@ -353,8 +345,6 @@ To make your PC work as a Thread Border Router, complete the following tasks:
- - ## Building and programming NXP K32W Lock/Light Example Application See @@ -367,8 +357,6 @@ to learn how to build and program the light example onto an K32W061 DK6.
- - ## Building and installing Android CHIPTool To build the CHIPTool application for your smartphone, read @@ -403,8 +391,6 @@ CHIPTool is now ready to be used for commissioning.
- - ## Forming a Thread network on the Border Router 1. On the mobile phone connect to the _OT-BR_ Wi-Fi network. @@ -414,7 +400,7 @@ CHIPTool is now ready to be used for commissioning. 3. Navigate to the _Form_ tab then push the _Form_ button using the default parameters: - ![nxp_form_nwk](../../examples/platform/k32w/doc/images/form_web.JPG) + ![nxp_form_nwk](../../examples/platform/nxp/k32w/k32w0/doc/images/form_web.JPG) 4. The message _Form operation is successful_ should be display after a few seconds. @@ -448,7 +434,7 @@ To prepare the accessory device for commissioning, complete the following steps: 1. Make sure that JP4 and JP7 jumpers are in leftmost position and a mini-USB cable is connected between the LPC connector and PC - ![nxp_connectors](../../examples/platform/k32w/doc/images/k32w-dk6-connectors.jpg) + ![nxp_connectors](../../examples/platform/nxp/k32w/k32w0/doc/images/k32w-dk6-connectors.jpg) 2. Use a terminal emulator (e.g.: Putty) to connect to the UART console of the accessory device. Use a baudrate of 115200. @@ -468,13 +454,11 @@ To prepare the accessory device for commissioning, complete the following steps:
- - ## Commissioning accessory device To commission the accessory device onto the Thread network created in the -[Forming Thread network](#Forming-a-Thread-network) section, complete the -following steps: +[Forming Thread network](#forming-a-thread-network-on-the-border-router) +section, complete the following steps: 1. Enable _Bluetooth_ and _Location_ services on your smartphone; 2. Connect the smartphone to _OT-BR_ WiFi network; @@ -486,26 +470,24 @@ following steps: progress with scanning, connection, and pairing. At the end of this process, the Thread network settings screen appears. - ![chiptool_main_screen](../../examples/platform/k32w/doc/images/chiptool_main_screen.png) + ![chiptool_main_screen](../../examples/platform/nxp/k32w/k32w0/doc/images/chiptool_main_screen.png) 6. In the Thread network settings screen, use the default settings and tap the _SAVE NETWORK_ button to send a Thread provisioning message to the accessory device. You will see the "Network provisioning completed" message when the accessory device successfully joins the Thread network. - ![chiptool_credentials](../../examples/platform/k32w/doc/images/thread_credentials.png) + ![chiptool_credentials](../../examples/platform/nxp/k32w/k32w0/doc/images/thread_credentials.png)
- - ## Sending CHIP commands 1. Once the device is commissioned, the below screen appears. This means that the provisioning is completed successfully and you are connected to the device. - ![on_off_cluster.png](../../examples/platform/k32w/doc/images/on_off_cluster.png) + ![on_off_cluster.png](../../examples/platform/nxp/k32w/k32w0/doc/images/on_off_cluster.png) 2. Verify that the text box on the screen is not empty and contains the IPv6 address of the accessory device. diff --git a/docs/guides/python_chip_controller_advanced_usage.md b/docs/guides/python_chip_controller_advanced_usage.md index ca17d8ca297829..c3d3f55ddc5095 100644 --- a/docs/guides/python_chip_controller_advanced_usage.md +++ b/docs/guides/python_chip_controller_advanced_usage.md @@ -7,13 +7,11 @@ tool or Matter accessories on Linux.
-- [Bluetooth LE virtualization on Linux](#virtualization) -- [Debugging with gdb](#gdb) +- [Bluetooth LE virtualization on Linux](#bluetooth-le-virtualization-on-linux) +- [Debugging with gdb](#debugging-with-gdb)
- - ## Bluetooth LE virtualization on Linux Commissioning over Bluetooth LE can be tested even if the controller and the @@ -76,8 +74,6 @@ interfaces working as Bluetooth LE central and peripheral, respectively.
- - ## Debugging with gdb You can run the chip-device-ctrl under GDB for debugging, however, since the diff --git a/docs/guides/python_chip_controller_building.md b/docs/guides/python_chip_controller_building.md index 661072fb87fdc5..9bd6a4a095d612 100644 --- a/docs/guides/python_chip_controller_building.md +++ b/docs/guides/python_chip_controller_building.md @@ -15,16 +15,14 @@ into the network and to communicate with it using the Zigbee Cluster Library
-- [Source files](#source) -- [Building Android CHIPTool](#building) -- [Running the tool](#running) -- [Using Python CHIP Controller for Matter accessory testing](#using) -- [List of commands](#commands) +- [Source files](#source-files) +- [Building Android CHIPTool](#building-and-installing) +- [Running the tool](#running-the-tool) +- [Using Python CHIP Controller for Matter accessory testing](#using-python-chip-controller-for-matter-accessory-testing) +- [List of commands](#list-of-commands)
- - ## Source files You can find source files of the Python CHIP Controller tool in the @@ -35,8 +33,6 @@ The tool uses the generic CHIP Device Controller library, available in the
- - ## Building and installing Before you can use the Python controller, you must compile it from the source on @@ -94,8 +90,6 @@ To build and run the Python CHIP controller:
- - ## Running the tool 1. Activate the Python virtual environment: @@ -119,8 +113,6 @@ To build and run the Python CHIP controller:
- - ## Using Python CHIP Controller for Matter accessory testing This section describes how to use Python CHIP controller to test the Matter @@ -309,8 +301,6 @@ chip-device-ctrl > zclread BasicInformation SoftwareVersion 1234 1 0
- - ## List of commands ### `ble-adapter-print` diff --git a/docs/guides/simulated_device_linux.md b/docs/guides/simulated_device_linux.md index 4f184dc9582c29..639cf915bc3bae 100644 --- a/docs/guides/simulated_device_linux.md +++ b/docs/guides/simulated_device_linux.md @@ -2,7 +2,7 @@ This document contains instructions on how to build, run, and interact with a simulated device. All virtual accessories live in -[examples/placeholder/linux/apps](../../examples/placeholder/linux/apps). +[examples/placeholder/linux/apps](https://github.com/project-chip/connectedhomeip/tree/master/examples/placeholder/linux/apps). Each accessory needs to be hosted into a subfolder. It will be the name of the application. For example `app1` will create a binary named `chip-app1`. @@ -86,7 +86,7 @@ Now that the building the app and starting it is complete, you will be able to interact with it using chip-tool 1. Follow the instruction to build chip-tool in the - [chip-tool readme](../../examples/chip-tool). + [chip-tool readme](../../examples/chip-tool/README.md). 2. Run this command to commission. ``` @@ -102,7 +102,8 @@ interact with it using chip-tool ./out/debug/standalone/chip-tool onoff write on-time 1 0x654321 1 ``` - See [chip-tool readme](../../examples/chip-tool) for additional commands. + See [chip-tool readme](../../examples/chip-tool/README.md) for additional + commands. ## Adding simulated Tests via YAML diff --git a/docs/guides/ti_platform_overview.md b/docs/guides/ti_platform_overview.md index 50d96f361963ee..cc0a05280cbc22 100644 --- a/docs/guides/ti_platform_overview.md +++ b/docs/guides/ti_platform_overview.md @@ -91,7 +91,7 @@ handled by the platform implementation files.
-# Matter example applications +## Matter example applications Sample Matter applications are provided for the TI platform. These can be used as reference for your own application. @@ -102,7 +102,7 @@ as reference for your own application.
-## Build system +### Build system The TI platform uses GN to generate ninja build scripts. Build files have already been written to build and link the TI specific code within the @@ -110,7 +110,7 @@ SimpleLink SDK.
-## TI Support +### TI Support For technical support, please consider creating a post on TI's [E2E forum][e2e]. Additionally, we welcome any feedback. diff --git a/docs/images/logo.svg b/docs/images/logo.svg deleted file mode 100644 index 7dcae9ffa48fa8..00000000000000 --- a/docs/images/logo.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - Zigbee-Alliance-logo-black - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000000000..690386ab19c636 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,31 @@ +# Welcome to Matter's documentation! + +```{toctree} +:maxdepth: 2 +:caption: Contents +:hidden: + +QUICK_START +PROJECT_FLOW +VSCODE_DEVELOPMENT +api/index +discussion/index +guides/index +style/index +examples/index +BUG_REPORT +code_generation +ERROR_CODES +``` + +```{include} README.md +:start-after: About +:end-before: Building and Developing in Matter +``` + +# Matter build status + +```{include} README.md +:start-after: Matter +:end-before: About +``` diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 00000000000000..18f214815d661a --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,37 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SPHINXOPTS=-W -c . -d _build\doctrees +set SOURCEDIR=_build\src +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +mkdir %SOURCEDIR% +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 00000000000000..a7e08d297e18ca --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,4 @@ +Sphinx +sphinx-book-theme +myst-parser +breathe diff --git a/docs/style/README.md b/docs/style/README.md deleted file mode 100644 index 7fa304cd800577..00000000000000 --- a/docs/style/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Style - -When necessary to drive into more detail about styles about specific types of -files this is where CHIP collects them - -## Specific Types - -- [Makefiles](./STYLE_MAKEFILES.md) diff --git a/docs/style/index.md b/docs/style/index.md new file mode 100644 index 00000000000000..a09df953ca522e --- /dev/null +++ b/docs/style/index.md @@ -0,0 +1,7 @@ +# Style Guides + +```{toctree} +:glob: + +* +``` diff --git a/docs/STYLE_GUIDE.md b/docs/style/style_guide.md similarity index 95% rename from docs/STYLE_GUIDE.md rename to docs/style/style_guide.md index b5ff308297b611..5f195ed49f8076 100644 --- a/docs/STYLE_GUIDE.md +++ b/docs/style/style_guide.md @@ -11,9 +11,9 @@ for general information on contributing to this project. ## Location -Place all documentation contributions in the appropriate location in the -[`/docs`](../docs) directory. Most contributions should go into the -`/docs/guides` subdirectory, which covers conceptual and usage content. +Place all documentation contributions in the appropriate location in the `docs` +directory. Most contributions should go into the `/docs/guides` subdirectory, +which covers conceptual and usage content. Current documentation structure: @@ -43,8 +43,6 @@ For consistency, all document links should point to the content on GitHub. The text of a link should be descriptive, so it's clear what the link is for: -> For more information, see the [Matter Style Guide](./STYLE_GUIDE.md). - ## Markdown guidelines Use standard Markdown when authoring Matter documentation. While HTML may be diff --git a/examples/all-clusters-app/cc13x2x7_26x2x7/README.md b/examples/all-clusters-app/cc13x2x7_26x2x7/README.md index 8513b32723fabc..d34c57c36d6587 100644 --- a/examples/all-clusters-app/cc13x2x7_26x2x7/README.md +++ b/examples/all-clusters-app/cc13x2x7_26x2x7/README.md @@ -19,14 +19,13 @@ Instruments CC13XX_26XX family of Wireless MCUs. - [Provisioning](#provisioning) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - - [Matter Remote Commands](#matter-remote-commands) - [TI Support](#ti-support) --- ## Introduction -![CC1352R1_LAUNCHXL](doc/images/cc1352r1_launchxl.jpg) +![CC1352R1_LAUNCHXL](../../pump-app/cc13x2x7_26x2x7/doc/images/cc1352r1_launchxl.jpg) The CC13XX_26XX all clusters example application provides the basis to query and run commands for all currently implemented Matter clusters. This uses the diff --git a/examples/all-clusters-app/infineon/psoc6/README.md b/examples/all-clusters-app/infineon/psoc6/README.md index 68f9e041250d78..75a01995d8c9e4 100644 --- a/examples/all-clusters-app/infineon/psoc6/README.md +++ b/examples/all-clusters-app/infineon/psoc6/README.md @@ -1,10 +1,10 @@ -#CHIP PSoC6 All Clusters Example +# CHIP PSoC6 All Clusters Example An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter PSoC6 All Clusters Example](#chip-psoc6-clusters-example) +- [Matter PSoC6 All Clusters Example](#chip-psoc6-all-clusters-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) @@ -17,8 +17,6 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
- - ## Introduction The PSoC6 clusters example provides a baseline demonstration of a Cluster @@ -30,8 +28,6 @@ and the Matter controller will exchange security information with the Rendezvous procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which will then join the network. - - ## Building - [Modustoolbox Software](https://www.cypress.com/products/modustoolbox) @@ -62,8 +58,6 @@ will then join the network. $ cd ~/connectedhomeip $ rm -rf out/ - - ## Flashing the Application - Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the @@ -75,14 +69,10 @@ will then join the network. $ cd ~/connectedhomeip $ python3 out/infineon-psoc6-all-clusters/chip-psoc6-clusters-example.flash.py - - ## Commissioning and cluster control Commissioning can be carried out using BLE. - - ### Setting up Chip tool Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to @@ -97,8 +87,6 @@ perform commissioning and cluster control. $ ./out/debug/chip-tool - - ### Commissioning over BLE Run the built executable and pass it the discriminator and pairing code of the @@ -113,8 +101,6 @@ remote device, as well as the network credentials to use. 4. SSID : Wi-Fi SSID 5. PASSWORD : Wi-Fi Password - - #### Notes Raspberry Pi 4 BLE connection issues can be avoided by running the following diff --git a/examples/all-clusters-app/mbed/README.md b/examples/all-clusters-app/mbed/README.md index a08a96a9af6433..0952e18914bf16 100644 --- a/examples/all-clusters-app/mbed/README.md +++ b/examples/all-clusters-app/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS All Clusters Example Application

+# Matter Arm Mbed OS All Clusters Example Application The Arm Mbed OS All Clusters Example demonstrates device commissioning process and all available clusters control. @@ -35,7 +35,7 @@ paired into an existing Matter network and can be controlled by this network.
-# Overview +## Overview The Matter device that runs the All Clusters application is controlled by the Matter controller device over WiFi. By default, the Matter device is @@ -43,12 +43,12 @@ disconnected, and it should be paired with Matter controller and get configuration from it. Actions required before establishing full communication are described below. -## Bluetooth Low Energy advertising +### Bluetooth Low Energy advertising To commission the device onto a Matter network, the device must be discoverable over BLE. The BLE advertising starts automatically after device boot-up. -## Bluetooth Low Energy rendezvous +### Bluetooth Low Energy rendezvous In Matter, the commissioning procedure (called rendezvous) is done over BLE between a Matter device and the Matter controller, where the controller has the @@ -58,16 +58,16 @@ To start the rendezvous, the controller must get the commissioning information from the Matter device. The data payload is encoded within a QR code, printed to the UART console. -## WiFi provisioning +### WiFi provisioning The last part of the rendezvous procedure, provisioning involves sending the network credentials from the Matter controller to the Matter device. As a result, device is able to join the network and communicate with other devices in the network. -# Run application +## Run application -## Environment setup +### Environment setup Before building the example, check out the Matter repository and sync submodules using the following command: @@ -95,7 +95,7 @@ its requirements. > devcontainer is the recommended way to interact with Arm Mbed-OS port of the > Matter Project.** > -> **Please read this [README.md](../../..//docs/VSCODE_DEVELOPMENT.md) for more +> **Please read this [README.md](../../../docs/VSCODE_DEVELOPMENT.md) for more > information about using VSCode in container.** To initialize the development environment, download all registered sub-modules @@ -113,7 +113,7 @@ environment: $ source ./scripts/activate.sh ``` -## Building +### Building The All Clusters application can be built in the same way as any other Matter example ported to the mbed-os platform. @@ -131,7 +131,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=all-clusters-app -b= ``` Both approaches are limited to supported evaluation boards which are listed in -[Supported devices](#supported_devices) paragraph. +[Supported devices](#supported-devices) paragraph. Mbed OS defines three building profiles: _develop, debug_ and _release_. For more details please visit @@ -150,7 +150,7 @@ There are also three types of built application: _simple, boot_ and _upgrade_: When using the building script, it is possible expand the list of acceptable targets; this may be useful for rapid testing of a new mbed-targets. -## Flashing +### Flashing The All Clusters application can be flashed in the same way as any other Matter example ported to mbed-os platform. @@ -183,7 +183,7 @@ device. It is possible to connect to an external gdb-server session by using a specific **'Flash Mbed examples [remote]'** task. -## Debugging +### Debugging Debugging can be performed in the same was as with any other Matter example ported to mbed-os platform. @@ -199,9 +199,9 @@ Run and Debug (Ctrl+Shift+D) => Debug Mbed examples => Start Debugging (F5) => ( It is possible to connect to an external gdb-server session by using specific **'Debug Mbed examples [remote]'** task. -## Testing +### Testing -### Serial port terminal +#### Serial port terminal The application traces are streaming to serial output. To start communication open a terminal session and connect to the serial port of the device. You can @@ -223,30 +223,29 @@ After device reset these lines should be visible: The all-clusters-app application launched correctly and you can follow traces in the terminal. -### CHIP Tools +#### CHIP Tools Read the [MbedCommissioning](../../../docs/guides/mbedos_commissioning.md) to see how to use different CHIP tools to commission and control the application within a WiFi network. -## Supported devices +### Supported devices -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | :----------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` | ![CY8CPROTO-062-4343W](https://os.mbed.com/media/cache/platforms/p6_wifi-bt_proto.png.250x250_q85.jpg) | :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | :----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` | ![CY8CPROTO-062-4343W](https://os.mbed.com/media/cache/platforms/p6_wifi-bt_proto.png.250x250_q85.jpg) | ✔ |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| -#### Notes +##### Notes - More details and guidelines about porting new hardware into the Matter project with Mbed OS can be found in [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) - Some useful information about HW platform specific settings can be found in - `all-clusters-app/mbed/mbed_app.json`. - Information about this file syntax and its meaning in mbed-os project can be - found here: + `all-clusters-app/mbed/mbed_app.json`. Information about this file syntax + and its meaning in mbed-os project can be found here: [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) -# Device UI +## Device UI This section lists the User Interface elements that you can use to control and monitor the state of the device. These correspond to PCB components on the @@ -269,9 +268,9 @@ following states are possible: - _Solid On_ — The device is fully provisioned and has full network and service connectivity. -### Notes +#### Notes Some of the supported boards may not have sufficient number PCB components to follow above description. In that case please refer to -[Supported devices](#Supported-devices) section and check board's 'Platform -components' column for additional information about the limitation. +[Supported devices](#supported-devices) section and check board's 'Platform +components' column f-r additional information about the limitation. diff --git a/examples/all-clusters-app/nrfconnect/README.md b/examples/all-clusters-app/nrfconnect/README.md index 4805d754820175..b82ba085fe0bbc 100644 --- a/examples/all-clusters-app/nrfconnect/README.md +++ b/examples/all-clusters-app/nrfconnect/README.md @@ -25,7 +25,7 @@ platform, so only one protocol can be supported for a specific device. - [Bluetooth LE advertising](#bluetooth-le-advertising) - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [IPv6 network support](#ipv6-network-support) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) @@ -38,16 +38,14 @@ platform, so only one protocol can be supported for a specific device. - [Configuring the example](#configuring-the-example) - [Example build types](#example-build-types) - [Flashing and debugging](#flashing-and-debugging) - - [Flashing on the development kits](#nrfdks_flashing) - - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing) + - [Flashing on the development kits](#flashing-on-the-development-kits) + - [Flashing on the nRF52840 Dongle](#flashing-on-the-nrf52840-dongle) - [Testing the example](#testing-the-example) - [Testing using Linux CHIPTool](#testing-using-linux-chiptool) - [Testing using Android CHIPTool](#testing-using-android-chiptool)
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -100,16 +98,12 @@ can communicate with other devices in the network.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -132,8 +126,6 @@ for Matter: `nrf5340dk_nrf5340_cpuapp`. - Matter over Wi-Fi is supported for `nrf7002dk_nrf5340_cpuapp`. - - ## Device UI This section lists the User Interface elements that you can use to control and @@ -218,7 +210,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -301,8 +293,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -382,8 +372,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -434,15 +422,11 @@ page.
- - ## Flashing and debugging The flashing and debugging procedure is different for the development kits and the nRF52840 Dongle. - - ### Flashing on the development kits To flash the application to the device, use the west tool and run the following @@ -458,8 +442,6 @@ directory: $ west debug - - ### Flashing on the nRF52840 Dongle Visit diff --git a/examples/all-clusters-app/nxp/mw320/README.md b/examples/all-clusters-app/nxp/mw320/README.md index aad56b2fd17645..e8bb15b1e3b17a 100755 --- a/examples/all-clusters-app/nxp/mw320/README.md +++ b/examples/all-clusters-app/nxp/mw320/README.md @@ -11,12 +11,9 @@ to demonstrates device commissioning and cluster control over a low-power, WiFi - [Introduction](#introduction) - [Building](#building) - [Flashing](#flashing) -- [Testing the example](#testing-the-example)
- - ## Introduction ![MW320](../../../platform/nxp/mw320/doc/images/mw320.jpg) @@ -25,8 +22,6 @@ The example targets the [NXP MW320 WiFi Micro controller Soc](https://www.nxp.com/products/wireless/wi-fi-plus-bluetooth/88mw32x-802-11n-wi-fi-microcontroller-soc:88MW32X) development kit. - - ## Building Building the example application is quite straightforward. It can be done via @@ -60,8 +55,6 @@ In order to use the tinycrypt ecc operations, use the following build arguments: $ gn gen out/debug --args='treat_warnings_as_errors=false mbedtls_repo="//third_party/connectedhomeip/third_party/nxp/libs/mbedtls" chip_crypto="tinycrypt"' ``` - - ## Flashing Connect MW320 to Ubuntu USB port and open Linux text-based serial port diff --git a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md index 102a48b67bdf46..6f67dfa903ff0f 100644 --- a/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md +++ b/examples/all-clusters-minimal-app/cc13x2x7_26x2x7/README.md @@ -19,14 +19,13 @@ Instruments CC13XX_26XX family of Wireless MCUs. - [Provisioning](#provisioning) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - - [Matter Remote Commands](#matter-remote-commands) - [TI Support](#ti-support) --- ## Introduction -![CC1352R1_LAUNCHXL](doc/images/cc1352r1_launchxl.jpg) +![CC1352R1_LAUNCHXL](../../pump-app/cc13x2x7_26x2x7/doc/images/cc1352r1_launchxl.jpg) The CC13XX_26XX all clusters example application provides the basis to query and run commands for all currently implemented Matter clusters. This uses the diff --git a/examples/all-clusters-minimal-app/infineon/psoc6/README.md b/examples/all-clusters-minimal-app/infineon/psoc6/README.md index 929f9581a063f7..4ebd3832f43de6 100644 --- a/examples/all-clusters-minimal-app/infineon/psoc6/README.md +++ b/examples/all-clusters-minimal-app/infineon/psoc6/README.md @@ -1,10 +1,10 @@ -#CHIP PSoC6 All Clusters Example +# CHIP PSoC6 All Clusters Example An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter PSoC6 All Clusters Example](#chip-psoc6-clusters-example) +- [Matter PSoC6 All Clusters Example](#chip-psoc6-all-clusters-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) @@ -17,8 +17,6 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
- - ## Introduction The PSoC6 clusters example provides a baseline demonstration of a Cluster @@ -30,8 +28,6 @@ and the Matter controller will exchange security information with the Rendezvous procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which will then join the network. - - ## Building - [Modustoolbox Software](https://www.cypress.com/products/modustoolbox) @@ -62,8 +58,6 @@ will then join the network. $ cd ~/connectedhomeip $ rm -rf out/ - - ## Flashing the Application - Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the @@ -75,14 +69,10 @@ will then join the network. $ cd ~/connectedhomeip $ python3 out/infineon-psoc6-all-clusters-minimal/chip-psoc6-clusters-minimal-example.flash.py - - ## Commissioning and cluster control Commissioning can be carried out using BLE. - - ### Setting up Chip tool Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to @@ -97,8 +87,6 @@ perform commissioning and cluster control. $ ./out/debug/chip-tool - - ### Commissioning over BLE Run the built executable and pass it the discriminator and pairing code of the @@ -113,8 +101,6 @@ remote device, as well as the network credentials to use. 4. SSID : Wi-Fi SSID 5. PASSWORD : Wi-Fi Password - - #### Notes Raspberry Pi 4 BLE connection issues can be avoided by running the following diff --git a/examples/all-clusters-minimal-app/mbed/README.md b/examples/all-clusters-minimal-app/mbed/README.md index e5f0ef2233eb3c..d4096cbde2f466 100644 --- a/examples/all-clusters-minimal-app/mbed/README.md +++ b/examples/all-clusters-minimal-app/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS All Clusters Example Application

+# Matter Arm Mbed OS All Clusters Example Application The Arm Mbed OS All Clusters Example demonstrates device commissioning process and all available clusters control. @@ -95,7 +95,7 @@ its requirements. > devcontainer is the recommended way to interact with Arm Mbed-OS port of the > Matter Project.** > -> **Please read this [README.md](../../..//docs/VSCODE_DEVELOPMENT.md) for more +> **Please read this [README.md](../../../docs/VSCODE_DEVELOPMENT.md) for more > information about using VSCode in container.** To initialize the development environment, download all registered sub-modules @@ -131,7 +131,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=all-clusters-minimal ``` Both approaches are limited to supported evaluation boards which are listed in -[Supported devices](#supported_devices) paragraph. +[Supported devices](#supported-devices) paragraph. Mbed OS defines three building profiles: _develop, debug_ and _release_. For more details please visit @@ -231,9 +231,9 @@ within a WiFi network. ## Supported devices -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | :----------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` | ![CY8CPROTO-062-4343W](https://os.mbed.com/media/cache/platforms/p6_wifi-bt_proto.png.250x250_q85.jpg) | :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------ | :----: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` | ![CY8CPROTO-062-4343W](https://os.mbed.com/media/cache/platforms/p6_wifi-bt_proto.png.250x250_q85.jpg) | ✔ |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| #### Notes @@ -273,5 +273,5 @@ following states are possible: Some of the supported boards may not have sufficient number PCB components to follow above description. In that case please refer to -[Supported devices](#Supported-devices) section and check board's 'Platform +[Supported devices](#supported-devices) section and check board's 'Platform components' column for additional information about the limitation. diff --git a/examples/all-clusters-minimal-app/nrfconnect/README.md b/examples/all-clusters-minimal-app/nrfconnect/README.md index 4dcd2827fa4a31..70ac0f9551a78d 100644 --- a/examples/all-clusters-minimal-app/nrfconnect/README.md +++ b/examples/all-clusters-minimal-app/nrfconnect/README.md @@ -23,7 +23,7 @@ device works as a Thread Minimal End Device. - [Bluetooth LE advertising](#bluetooth-le-advertising) - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) - [Using Docker container for setup](#using-docker-container-for-setup) @@ -35,16 +35,14 @@ device works as a Thread Minimal End Device. - [Configuring the example](#configuring-the-example) - [Example build types](#example-build-types) - [Flashing and debugging](#flashing-and-debugging) - - [Flashing on the development kits](#nrfdks_flashing) - - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing) + - [Flashing on the development kits](#flashing-on-the-development-kits) + - [Flashing on the nRF52840 Dongle](#flashing-on-the-nrf52840-dongle) - [Testing the example](#testing-the-example) - [Testing using Linux CHIPTool](#testing-using-linux-chiptool) - [Testing using Android CHIPTool](#testing-using-android-chiptool)
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -91,16 +89,12 @@ with other Thread devices in the network.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -113,8 +107,6 @@ The example supports building and running on the following devices:
- - ## Device UI This section lists the User Interface elements that you can use to control and @@ -178,7 +170,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -261,8 +253,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -342,8 +332,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -394,15 +382,11 @@ page.
- - ## Flashing and debugging The flashing and debugging procedure is different for the development kits and the nRF52840 Dongle. - - ### Flashing on the development kits To flash the application to the device, use the west tool and run the following @@ -418,8 +402,6 @@ directory: $ west debug - - ### Flashing on the nRF52840 Dongle Visit diff --git a/examples/bridge-app/linux/README.md b/examples/bridge-app/linux/README.md index 9960be56f504a3..83ac848871af20 100644 --- a/examples/bridge-app/linux/README.md +++ b/examples/bridge-app/linux/README.md @@ -9,14 +9,12 @@ Raspberry Pi Desktop 20.10 (aarch64)**
- [CHIP Linux Bridge Example](#chip-linux-bridge-example) - - [Theory of Operation](#operation) + - [Theory of Operation](#theory-of-operation) - [Building](#building) - - [Running the Complete Example on Raspberry Pi 4](#running-complete-example) + - [Running the Complete Example on Raspberry Pi 4](#running-the-complete-example-on-raspberry-pi-4)
- - ## Theory of Operation ### Dynamic Endpoints @@ -106,8 +104,6 @@ the `Bridged Device Basic` cluster, the `reachable` attribute is simulated. In the `Fixed Label` cluster, the `LabelList` attribute is simulated with the value/label pair `"room"`/`[light name]`. - - ## Building - Install tool chain @@ -133,8 +129,6 @@ value/label pair `"room"`/`[light name]`. $ rm -rf out/ ``` - - ## Running the Complete Example on Raspberry Pi 4 - Prerequisites diff --git a/examples/chef/sample_app_util/README.md b/examples/chef/sample_app_util/README.md index 041f9462c4232c..9ed7be36a6bd11 100644 --- a/examples/chef/sample_app_util/README.md +++ b/examples/chef/sample_app_util/README.md @@ -2,8 +2,6 @@ ## Overview ---- - It is convenient to follow some naming and build conventions for Chef tool due to the large volume of sample apps that may be created and the ambiguity that may result from arbitrary names. @@ -22,8 +20,6 @@ The convention proposed here should be adopted by the zap files provided in ## Limitations ---- - The largest filename that can be used on MacOS and Linux is 255 characters. If a sample app name would exceed this limit by following this convention, then the sample app should be given an arbitrary name. @@ -33,8 +29,6 @@ should rarely happen. ## Convention ---- - ### Sample App Naming Convention Sample apps should be named by concatenating the name of all endpoints in the @@ -144,8 +138,9 @@ The metadata files have a structure as follows: - : ... ``` -For an example, see [sample_zap_file.yaml](test_files/sample_zap_file.yaml) -which was generated from [sample_zap_file.zap](test_files/sample_zap_file.zap). +For an example, see +[sample_zap_file_hashmeta.yaml](test_files/sample_zap_file_hashmeta.yaml) which +was generated from [sample_zap_file.zap](test_files/sample_zap_file.zap). Note that it is more readable in `yaml` format. Since hashes are generated from the metadata info, additional conventions are needed to ensure consistency for @@ -166,8 +161,6 @@ As an example, take a look at ## Utility Usage ---- - There are a few primary usage cases for the utility [sample_app_util.py](sample_app_util.py). Details are provided by using `python sample_app_util.py zap --help`. Below is a summary. @@ -180,8 +173,6 @@ There are a few primary usage cases for the utility ## Running Tests ---- - Navigate to the base directory of this README. ``` diff --git a/examples/chip-tool/README.md b/examples/chip-tool/README.md index 2f14c1b2a8c989..b22b5276c8c7b6 100644 --- a/examples/chip-tool/README.md +++ b/examples/chip-tool/README.md @@ -5,7 +5,7 @@ An example application that uses Matter to send messages to a Matter server. --- - [Building the Example Application](#building-the-example-application) -- [Using the Client to Request an Echo](#using-the-client-to-request-an-echo) +- [Using the Client to Commission a Device](#using-the-client-to-commission-a-device) --- diff --git a/examples/common/README.md b/examples/common/README.md index 5f0f8790a26241..252f75f2732760 100644 --- a/examples/common/README.md +++ b/examples/common/README.md @@ -1,3 +1,7 @@ +--- +orphan: true +--- + # Examples common libraries ## What is this? diff --git a/examples/common/pigweed/rpc_console/README.md b/examples/common/pigweed/rpc_console/README.md index d433631b9e12d1..4b4ceed7bc1f00 100644 --- a/examples/common/pigweed/rpc_console/README.md +++ b/examples/common/pigweed/rpc_console/README.md @@ -1,3 +1,7 @@ +--- +orphan: true +--- + # CHIP RPC CONSOLE This python application provides a console for interacting with rpc-enabled chip diff --git a/examples/common/screen-framework/README.md b/examples/common/screen-framework/README.md index e4792fdc59ee5c..81e9151e3a9844 100644 --- a/examples/common/screen-framework/README.md +++ b/examples/common/screen-framework/README.md @@ -1,3 +1,7 @@ +--- +orphan: true +--- + # Simple Screen UI Framework ## Overview diff --git a/examples/common/tracing/README.md b/examples/common/tracing/README.md index 154054bf514163..9b3c5392bd4a74 100644 --- a/examples/common/tracing/README.md +++ b/examples/common/tracing/README.md @@ -1,3 +1,7 @@ +--- +orphan: true +--- + # Trace Handlers These are trace message handlers which get registered with pw_trace_chip and diff --git a/examples/contact-sensor-app/nxp/k32w/k32w0/README.md b/examples/contact-sensor-app/nxp/k32w/k32w0/README.md index c1633be5b1eae6..14e23161deac9f 100644 --- a/examples/contact-sensor-app/nxp/k32w/k32w0/README.md +++ b/examples/contact-sensor-app/nxp/k32w/k32w0/README.md @@ -14,35 +14,33 @@ network.
-- [CHIP K32W0 Contact Sensor Example Application](#chip-k32w-contact-example-application) - +- [CHIP K32W0 Contact Sensor Example Application](#chip-k32w061-contact-sensor-example-application) - [Introduction](#introduction) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - [Device UI](#device-ui) - [Building](#building) - - [Known issues](#building-issues) -- [Manufacturing data](#manufacturing) -- [Flashing and debugging](#flashdebug) -- [Pigweed Tokenizer](#tokenizer) - - [Detokenizer script](#detokenizer) - - [Notes](#detokenizer-notes) - - [Known issues](#detokenizer-known-issues) -- [Tinycrypt ECC operations](#tinycrypt) - - [Building steps](#tinycrypt-building-steps) + - [Known issues](#known-issues) +- [Manufacturing data](#manufacturing-data) +- [Flashing and debugging](#flashing-and-debugging) +- [Pigweed Tokenizer](#pigweed-tokenizer) + - [Detokenizer script](#detokenizer-script) + - [Notes](#notes) + - [Known issues](#known-issues-1) +- [Tinycrypt ECC operations](#tinycrypt-ecc-operations) + - [Building steps](#building-steps) - [OTA](#ota) - - [Writing the SSBL](#ssbl) - - [Writing the PSECT](#psect) - - [Writing the application](#appwrite) - - [OTA Testing](#otatesting) - - [Known issues](#otaissues) + - [Writing the SSBL](#writing-the-ssbl) + - [Writing the PSECT](#writing-the-psect) + - [Writing the application](#writing-the-application) + - [OTA Testing](#ota-testing) + - [Known issues](#known-issues-2) - [Low power](#low-power) - - [Known issues](#low-power-issues) + - [Known issues](#known-issues-3) - - ## Introduction ![K32W061 DK6](../../../../platform/nxp/k32w/k32w0/doc/images/k32w-dk6.jpg) @@ -171,8 +169,6 @@ DS3, which can be found on the DK6 board. Also, by long pressing the **USERINTERFACE** button, the factory reset action will be initiated. - - ## Building In order to build the Project CHIP example, we recommend using a Linux @@ -229,22 +225,16 @@ pycryptodome 3.9.8 The resulting output file can be found in out/debug/chip-k32w0x-contact-example. - - ## Known issues - When using Secure element and cross-compiling on Linux, log messages from the Plug&Trust middleware stack may not echo to the console. - - ## Manufacturing data See [Guide for writing manufacturing data on NXP devices](../../../../platform/nxp/doc/manufacturing_flow.md). - - ## Flashing and debugging Program the firmware using the official @@ -254,8 +244,6 @@ All you have to do is to replace the Openthread binaries from the above documentation with _out/debug/chip-k32w0x-light-example.bin_ if DK6Programmer is used or with _out/debug/chip-k32w0x-light-example_ if MCUXpresso is used. - - ## Pigweed tokenizer The tokenizer is a pigweed module that allows hashing the strings. This greatly @@ -263,8 +251,6 @@ reduces the flash needed for logs. The module can be enabled by building with the gn argument _chip_pw_tokenizer_logging=true_. The detokenizer script is needed for parsing the hashed scripts. - - ### Detokenizer script The python3 script detokenizer.py is a script that decodes the tokenized logs @@ -293,8 +279,6 @@ where the decoded logs will be stored. This parameter is required for file usage and optional for serial usage. If not provided when used with serial port, it will show the decoded log only at the stdout and not save it to file. - - ### Notes The token database is created automatically after building the binary if the @@ -309,8 +293,6 @@ detokenizer script to see logs of a contact-sensor app: python3 ../../../../../examples/platform/nxp/k32w/k32w0/scripts/detokenizer.py serial -i /dev/ttyACM0 -d out/debug/chip-k32w0x-contact-example-database.bin -o device.txt ``` - - ### Known issues The building process will not update the token database if it already exists. In @@ -328,12 +310,8 @@ If run, closed and rerun with the serial option on the same serial port, the detokenization script will get stuck and not show any logs. The solution is to unplug and plug the board and then rerun the script. - - ## Tinycrypt ECC operations - - ### Building steps Note: This solution is temporary. @@ -348,8 +326,6 @@ To disable tinycrypt ecc operations, simply build with _chip_crypto=\"mbedtls\"_ and with or without _mbedtls_repo_. If used with _mbedtls_repo_ the mbedtls implementation from `NXPmicro/mbedtls` library will be used. - - ## OTA The internal flash needs to be prepared for the OTA process. First 16K of the @@ -358,8 +334,6 @@ related data while the last 8.5K of flash space is holding image directory related data (PSECT). The space between these two zones will be filled by the application. - - ### Writing the SSBL The SSBL can ge generated from one of the SDK demo examples. The SDK demo @@ -389,8 +363,6 @@ k32w061dk6_ssbl.bin must be written at address 0 in the internal flash: DK6Programmer.exe -V2 -s -P 1000000 -Y -p FLASH@0x00="k32w061dk6_ssbl.bin" ``` - - ### Writing the PSECT First, image directory 0 must be written: @@ -423,8 +395,6 @@ CD04 -> 0x4C9 pages of 512-bytes (= 612,5kB) 01 -> image type for the application ``` - - ### Writing the application DK6Programmer can be used for flashing the application: @@ -438,8 +408,6 @@ application. Please make sure that the application is written at address 0x4000: ![FLASH_LOCATION](../../../../platform/nxp/k32w/k32w0/doc/images/flash_location.JPG) - - ### OTA Testing The OTA topology used for OTA testing is illustrated in the figure below. @@ -517,8 +485,6 @@ Start the OTA process: user@computer1:~/connectedhomeip$ : ./out/chip-tool-app/chip-tool otasoftwareupdaterequestor announce-ota-provider 1 0 0 0 2 0 ``` - - ## Known issues - SRP cache on the openthread border router needs to flushed each time a new @@ -552,8 +518,6 @@ user@computer1:~/connectedhomeip$ sudo ifconfig eth0 -multicast - If Wi-Fi is used on a RPI4, then a 5Ghz network should be selected. Otherwise, issues related to BLE-WiFi combo may appear. - - ## Low power The example also offers the possibility to run in low power mode. This means @@ -584,8 +548,6 @@ below: Please note that that the Power Measurement Tool is not very accurate and professional tools must be used if exact power consumption needs to be known. - - ## Known issues - Power Measurement Tool may not work correctly in MCUXpresso versions greater diff --git a/examples/darwin-framework-tool/README.md b/examples/darwin-framework-tool/README.md index 7da06958ae5ac1..4b8b2d29ac7658 100644 --- a/examples/darwin-framework-tool/README.md +++ b/examples/darwin-framework-tool/README.md @@ -8,7 +8,7 @@ found at [code-signing](https://developer.apple.com/support/code-signing/). --- - [Building the Example Application](#building-the-example-application) -- [Using the Client to Request an Echo](#using-the-client-to-request-an-echo) +- [Using the Client to Commission a Device](#using-the-client-to-commission-a-device) --- diff --git a/examples/dynamic-bridge-app/linux/README.md b/examples/dynamic-bridge-app/linux/README.md index 85c71429fe8d0a..aff20863c752c7 100644 --- a/examples/dynamic-bridge-app/linux/README.md +++ b/examples/dynamic-bridge-app/linux/README.md @@ -9,14 +9,12 @@ Raspberry Pi Desktop 20.10 (aarch64)**
- [CHIP Linux Bridge Example](#chip-linux-bridge-example) - - [Theory of Operation](#operation) + - [Theory of Operation](#theory-of-operation) - [Building](#building) - - [Running the Complete Example on Raspberry Pi 4](#running-complete-example) + - [Running the Complete Example on Raspberry Pi 4](#running-the-complete-example-on-raspberry-pi-4)
- - ## Theory of Operation ### Dynamic Endpoints @@ -106,8 +104,6 @@ the `Bridged Device Basic` cluster, the `reachable` attribute is simulated. In the `Fixed Label` cluster, the `LabelList` attribute is simulated with the value/label pair `"room"`/`[light name]`. - - ## Building - Install tool chain @@ -133,8 +129,6 @@ value/label pair `"room"`/`[light name]`. $ rm -rf out/ ``` - - ## Running the Complete Example on Raspberry Pi 4 - Prerequisites diff --git a/examples/java-matter-controller/README.md b/examples/java-matter-controller/README.md index cf94be00be6b32..fae126f8b7af10 100644 --- a/examples/java-matter-controller/README.md +++ b/examples/java-matter-controller/README.md @@ -14,8 +14,6 @@ cluster requests to a Matter device
- - ## Requirements for building You need to have the following two software installed on your Ubuntu system: @@ -57,8 +55,6 @@ export JAVA_PATH=[JDK path]
- - ## Preparing for build Complete the following steps to prepare the Matter build: @@ -71,8 +67,6 @@ Complete the following steps to prepare the Matter build: source scripts/bootstrap.sh ``` - - ## Building & Running the app This is the simplest option. In the command line, run the following command from diff --git a/examples/light-switch-app/genio/README.md b/examples/light-switch-app/genio/README.md index d735915d016956..7961597d4df055 100644 --- a/examples/light-switch-app/genio/README.md +++ b/examples/light-switch-app/genio/README.md @@ -1,22 +1,18 @@ -#Matter `Genio` Light Switch Example +# Matter `Genio` Light Switch Example An example showing the use of Matter on the MediaTek `Genio` MT793X.
-- [Matter Genio Light Switch Example](#chip-genio-light-switch-example) +- [Matter Genio Light Switch Example](#matter-genio-light-switch-example) - [Introduction](#introduction) - [Building](#building) - - [Note](#note) - [Flashing the Application](#flashing-the-application) - - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes)
- - ## Introduction The `Genio` (MT793X) light switch example provides a baseline demonstration of a @@ -32,8 +28,6 @@ The light switch example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the MediaTek platform. - - ## Building - Following the Linux related descriptions in diff --git a/examples/light-switch-app/nrfconnect/README.md b/examples/light-switch-app/nrfconnect/README.md index c14a997c481ee1..4c3f7bcfa21b6d 100644 --- a/examples/light-switch-app/nrfconnect/README.md +++ b/examples/light-switch-app/nrfconnect/README.md @@ -8,10 +8,8 @@ switch uses buttons to test changing the lighting application example LED state and works as a brightness dimmer. You can use this example as a reference for creating your own application. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK The example is based on [Matter](https://github.com/project-chip/connectedhomeip) and Nordic @@ -33,7 +31,7 @@ device. - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Device Firmware Upgrade](#device-firmware-upgrade) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [IPv6 network support](#ipv6-network-support) - [Device UI](#device-ui) - [LEDs](#leds) @@ -60,8 +58,6 @@ device.
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -223,16 +219,12 @@ section to learn how to change MCUboot and flash configuration in this example.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -266,8 +258,6 @@ CHIP Tool.
- - ## Device UI This section lists the User Interface elements that you can use to control and @@ -329,13 +319,13 @@ platform image. - If pressed for less than 0.5 seconds, it changes the light state to the opposite one on the bound lighting device - ([lighting-app](../../lighting-app/nrfconnect/)) + ([lighting-app](../../lighting-app/nrfconnect/README.md)) - If pressed for more than 0.5 seconds, it changes the brightness of the light on the bound lighting bulb device - ([lighting-app](../../lighting-app/nrfconnect/)). The brightness is - changing from 0% to 100% with 1% increments every 300 milliseconds as - long as **Button 2** is pressed. + ([lighting-app](../../lighting-app/nrfconnect/README.md)). The + brightness is changing from 0% to 100% with 1% increments every 300 + milliseconds as long as **Button 2** is pressed. - On nRF7002 DK: @@ -420,7 +410,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -503,8 +493,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -593,8 +581,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -643,8 +629,6 @@ page.
- - ## Flashing and debugging To flash the application to the device, use the west tool and run the following @@ -662,14 +646,12 @@ directory:
- - ## Testing the example After building and flashing the example, you can test its functionalities. For this purpose, you need to prepare a second device that is programmed with the -[Lighting Example](../../lighting-app/nrfconnect/), perform the binding process, -and add Access Control Lists (ACLs). +[Lighting Example](../../lighting-app/nrfconnect/README.md), perform the binding +process, and add Access Control Lists (ACLs). ### Commissioning the lighting device @@ -683,12 +665,14 @@ communicate with each other. To perform binding, you need a controller that can write the binding table to the light switch device and write proper ACL to the endpoint light bulb on the -[Lighting Example application](../../lighting-app/nrfconnect/)). For example, -you can use the [CHIP Tool for Windows or Linux](../../chip-tool/README.md) as -the controller. The ACL should contain information about all clusters that can -be called by the light switch application. See the section about -[interacting with ZCL clusters](../../../docs/guides/chip_tool_guide.md#interacting-with-zcl-clusters) -in the CHIP Tool's user guide for more information about ACLs. +[Lighting Example application](../../lighting-app/nrfconnect/README.md)). For +example, you can use the +[CHIP Tool for Windows or Linux](../../chip-tool/README.md) as the controller. +The ACL should contain information about all clusters that can be called by the +light switch application. See the section about interacting with ZCL clusters in +the +[CHIP Tool's user guide](../../../docs/guides/chip_tool_guide.md#interacting-with-data-model-clusters) +for more information about ACLs. You can perform the binding process to a single remote endpoint (unicast binding) or to a group of remote endpoints (group multicast). @@ -705,11 +689,11 @@ same Matter network. To perform the unicast binding process, complete the following steps: 1. Build the CHIP Tool according to the steps from the - [CHIP Tool user guide](../../../docs/guides/chip_tool_guide.md#building). + [CHIP Tool user guide](../../../docs/guides/chip_tool_guide.md#building-and-running-the-chip-tool). 2. Go to the CHIP Tool build directory. 3. Add an ACL to the development kit that is programmed with the - [Lighting Application Example](../../lighting-app/nrfconnect/) by running - the following command: + [Lighting Application Example](../../lighting-app/nrfconnect/README.md) by + running the following command: chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [112233], "targets": null}, {"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [2], "targets": [{"cluster": 6, "endpoint": 1, "deviceType": null}, {"cluster": 8, "endpoint": 1, "deviceType": null}]}]' 1 0 @@ -745,10 +729,10 @@ The group multicast binding lets you control more than one lighting device at a time using a single light switch. The group multicast binding targets all development kits that are programmed -with the [Lighting Application Example](../../lighting-app/nrfconnect/) and -added to the same multicast group. After the binding is established, the light -switch device can send multicast requests, and all of the devices in the bound -groups can run the received command. +with the [Lighting Application Example](../../lighting-app/nrfconnect/README.md) +and added to the same multicast group. After the binding is established, the +light switch device can send multicast requests, and all of the devices in the +bound groups can run the received command. In this scenario, commands are provided for a light switch device with the `nodeId = 2` and a light bulb device with `nodeId = 1`, both commissioned to the @@ -757,7 +741,7 @@ same Matter network. To perform the unicast binding process, complete the following steps: 1. Build the CHIP Tool according to the steps from the - [CHIP Tool user guide](../../../docs/guides/chip_tool_guide.md#building). + [CHIP Tool user guide](../../../docs/guides/chip_tool_guide.md#building-and-running-the-chip-tool). 2. Go to the CHIP Tool build directory. 3. Add the light switch device to the multicast group by running the following diff --git a/examples/light-switch-app/silabs/efr32/README.md b/examples/light-switch-app/silabs/efr32/README.md index 3a72765e663796..d79ab2895cbf91 100644 --- a/examples/light-switch-app/silabs/efr32/README.md +++ b/examples/light-switch-app/silabs/efr32/README.md @@ -32,8 +32,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. > release with added tools and documentation. > [Silabs Matter Github](https://github.com/SiliconLabs/matter/releases) - - ## Introduction The EFR32 light switch example provides a baseline demonstration of a on-off @@ -53,8 +51,6 @@ The light switch example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the Silicon Labs platform. - - ## Building - Download the @@ -181,15 +177,11 @@ Silicon Labs platform. $ gn gen out/debug --args='import("//with_pw_rpc.gni")' $ ninja -C out/debug - [Running Pigweed RPC console](#running-pigweed-rpc-console) - For more build options, help is provided when running the build script without arguments ./scripts/examples/gn_efr32_example.sh - - ## Flashing the Application - On the command line: @@ -199,8 +191,6 @@ arguments - Or with the Ozone debugger, just load the .out file. - - ## Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) @@ -249,8 +239,6 @@ combination with JLinkRTTClient as follows: $ JLinkRTTClient - - ## Running the Complete Example - It is assumed here that you already have an OpenThread border router @@ -385,8 +373,6 @@ combination with JLinkRTTClient as follows: #Add Ipv6 route on PC(Linux) \$ sudo ip route add /64 via 2002::2 - - ## Running RPC console - As part of building the example with RPCs enabled the chip_rpc python @@ -432,7 +418,7 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) ## Building options diff --git a/examples/light-switch-app/telink/Readme.md b/examples/light-switch-app/telink/README.md similarity index 100% rename from examples/light-switch-app/telink/Readme.md rename to examples/light-switch-app/telink/README.md diff --git a/examples/lighting-app/beken/README.md b/examples/lighting-app/beken/README.md index 12fa6683d162e6..2ae904fc7fd043 100755 --- a/examples/lighting-app/beken/README.md +++ b/examples/lighting-app/beken/README.md @@ -4,7 +4,7 @@ This example demonstrates the Matter Lighting application on BEKEN platforms. --- -- [Matter BEKEN Lighting Example](#matter-BEKEN-lighting-example) +- [Matter BEKEN Lighting Example](#matter-beken-lighting-example) - [Supported Devices](#supported-devices) - [Building the Example Application](#building-the-example-application) - [Commissioning over BLE using chip-tool](#commissioning-over-ble-using-chip-tool) diff --git a/examples/lighting-app/genio/README.md b/examples/lighting-app/genio/README.md index 867882a3ba7e98..575d4ba5e1cf13 100644 --- a/examples/lighting-app/genio/README.md +++ b/examples/lighting-app/genio/README.md @@ -1,22 +1,18 @@ -#Matter `Genio` Lighting Example +# Matter `Genio` Lighting Example An example showing the use of Matter on the MediaTek `Genio` MT793X.
-- [Matter Genio Lighting Example](#chip-genio-lighting-example) +- [Matter Genio Lighting Example](#matter-genio-lighting-example) - [Introduction](#introduction) - [Building](#building) - - [Note](#note) - [Flashing the Application](#flashing-the-application) - - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes)
- - ## Introduction The `Genio` (MT793X) lighting example provides a baseline demonstration of a @@ -32,8 +28,6 @@ The lighting example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the MediaTek platform. - - ## Building - Following the Linux related descriptions in diff --git a/examples/lighting-app/infineon/psoc6/README.md b/examples/lighting-app/infineon/psoc6/README.md index e37b1bbb0a313d..e5b5854fc275e5 100644 --- a/examples/lighting-app/infineon/psoc6/README.md +++ b/examples/lighting-app/infineon/psoc6/README.md @@ -1,10 +1,10 @@ -#CHIP PSoC6 Lighting Example +# CHIP PSoC6 Lighting Example An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter PSoC6 Lighting Example](#chip-psoc6-Lighting-example) +- [Matter PSoC6 Lighting Example](#chip-psoc6-lighting-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) @@ -18,8 +18,6 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
- - ## Introduction The PSoC6 lighting example provides a baseline demonstration of a Light control @@ -31,8 +29,6 @@ and the Matter controller will exchange security information with the Rendezvous procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which will then join the network. - - ## Building - [Modustoolbox Software](https://www.cypress.com/products/modustoolbox) @@ -59,8 +55,6 @@ will then join the network. $ cd ~/connectedhomeip $ rm -rf out/ - - ## Flashing the Application - Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the @@ -72,14 +66,10 @@ will then join the network. $ cd ~/connectedhomeip $ python3 out/infineon-psoc6-light/chip-psoc6-lighting-example.flash.py - - ## Commissioning and cluster control Commissioning can be carried out using BLE. - - ### Setting up Chip tool Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to @@ -94,8 +84,6 @@ perform commissioning and cluster control. $ ./out/debug/chip-tool - - ### Commissioning over BLE Run the built executable and pass it the discriminator and pairing code of the @@ -110,8 +98,6 @@ remote device, as well as the network credentials to use. 4. SSID : Wi-Fi SSID 5. PASSWORD : Wi-Fi Password - - #### Notes Raspberry Pi 4 BLE connection issues can be avoided by running the following @@ -121,8 +107,6 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode. $ sudo btmgmt -i hci0 bredr off $ sudo btmgmt -i hci0 power on - - ### Cluster control - After successful commissioning, use the OnOff cluster command to toggle diff --git a/examples/lighting-app/linux/README.md b/examples/lighting-app/linux/README.md index 001c214ea6f5ed..f41a351da1bebb 100644 --- a/examples/lighting-app/linux/README.md +++ b/examples/lighting-app/linux/README.md @@ -13,15 +13,13 @@ To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** - [CHIP Linux Lighting Example](#chip-linux-lighting-example) - [Building](#building) - - [Commandline Arguments](#command-line-args) - - [Running the Complete Example on Raspberry Pi 4](#running-complete-example) + - [Commandline Arguments](#commandline-arguments) + - [Running the Complete Example on Raspberry Pi 4](#running-the-complete-example-on-raspberry-pi-4) - [Running RPC console](#running-rpc-console) - [Device Tracing](#device-tracing)
- - ## Building - Install tool chain @@ -49,8 +47,6 @@ To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** $ gn gen out/debug --args='import("//with_pw_rpc.gni")' $ ninja -C out/debug - - ## Commandline arguments - `--wifi` @@ -70,8 +66,6 @@ To cross-compile this example on x64 host and run on **NXP i.MX 8M Mini** `hciconfig` command, for example, `--ble-device 1` means using `hci1` interface. Default: `0`. - - ## Running the Complete Example on Raspberry Pi 4 > If you want to test Echo protocol, please enable Echo handler diff --git a/examples/lighting-app/mbed/README.md b/examples/lighting-app/mbed/README.md index 02a41c085e68d9..0eafd74a5e2c25 100644 --- a/examples/lighting-app/mbed/README.md +++ b/examples/lighting-app/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS Lighting Example Application

+# Matter Arm Mbed OS Lighting Example Application The Arm Mbed OS Lighting Example demonstrates how to remotely control a dimmable white light source. The example takes advantage of the IO available on board: @@ -49,19 +49,19 @@ serial port to the device. The following RPC protocols services are available:
-# Overview +## Overview The Matter device that runs the lighting application is controlled by the Matter controller device over WiFi. By default, the Matter device is disconnected , and it should be paired with Matter controller and get configuration from it. Actions required before establishing full communication are described below. -## Bluetooth Low Energy advertising +### Bluetooth Low Energy advertising To commission the device onto a Matter network, the device must be discoverable over BLE. The BLE advertising starts automatically after device boot-up. -## Bluetooth Low Energy rendezvous +### Bluetooth Low Energy rendezvous In Matter, the commissioning procedure (called rendezvous) is done over BLE between a Matter device and the Matter controller, where the controller has the @@ -71,16 +71,16 @@ To start the rendezvous, the controller must get the commissioning information from the Matter device. The data payload is encoded within a QR code, printed to the UART console. -## WiFi provisioning +### WiFi provisioning The last part of the rendezvous procedure, provisioning involves sending the network credentials from the Matter controller to the Matter device. As a result, device is able to join the network and communicate with other devices in the network. -# Run application +## Run application -## Environment setup +### Environment setup Before building the example, check out the Matter repository and sync submodules using the following command: @@ -128,7 +128,7 @@ environment: $ source ./scripts/activate.sh ``` -## Building +### Building The Lighting application can be built in the same way as any other Matter example ported to the mbed-os platform. @@ -146,7 +146,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=lighting-app -b= Debug Mbed examples => Start Debugging (F5) => ( It is possible to connect to an external gdb-server session by using specific **'Debug Mbed examples [remote]'** task. -## Testing +### Testing -### Serial port terminal +#### Serial port terminal The application traces are streaming to serial output. To start communication open a terminal session and connect to the serial port of the device. You can @@ -238,13 +238,13 @@ After device reset these lines should be visible: The lighting-app application launched correctly and you can follow traces in the terminal. -### CHIP Tools +#### CHIP Tools Read the [MbedCommissioning](../../../docs/guides/mbedos_commissioning.md) to see how to use different CHIP tools to commission and control the application within a WiFi network. -### RPC console +#### RPC console The RPC console is an interactive Python shell console, where the different RPC command can be invoked. It is a complete solution for interacting with hardware @@ -302,26 +302,25 @@ The response from the device should contain the current lighting state: For more details about RPC console and supported services visit [CHIP RPC console](../../common/pigweed/rpc_console/README.md). -## Supported devices +### Supported devices The example supports building and running on the following mbed-enabled devices: -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
  • Lighting LED should be an external component connected to PB9_6 pin (active high).
Buttons
  • SW2 push-button is not used in this example due to its interaction with WIFI module interrupt line.
  • Button 0 corresponds to BTN0 capacitive button.
  • Button 1 corresponds to BTN1 capacitive button.
Slider
  • The board's touch slider corresponds to UI slider
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| ✔ |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
  • Lighting LED should be an external component connected to PB9_6 pin (active high).
Buttons
  • SW2 push-button is not used in this example due to its interaction with WIFI module interrupt line.
  • Button 0 corresponds to BTN0 capacitive button.
  • Button 1 corresponds to BTN1 capacitive button.
Slider
  • The board's touch slider corresponds to UI slider
| -#### Notes +##### Notes - More details and guidelines about porting new hardware into the Matter project with Mbed OS can be found in [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) - Some useful information about HW platform specific settings can be found in - `lighting-app/mbed/mbed_app.json`. - Information about this file syntax and its meaning in mbed-os project can be - found here: + `lighting-app/mbed/mbed_app.json`. Information about this file syntax and + its meaning in mbed-os project can be found here: [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) -# Device UI +## Device UI This section lists the User Interface elements that you can use to control and monitor the state of the device. These correspond to PCB components on the @@ -371,9 +370,9 @@ dimming lighting state from the OFF state to maximum brightness corresponding to ON state. Currently the dimming resolution is set from 0-255 to satisfy ZCL 8 bit commands argument for lighting cluster. -### Notes +#### Notes Some of the supported boards may not have sufficient number PCB components to follow above description. In that case please refer to -[Supported devices](#Supported-devices) section and check board's 'Platform +[Supported devices](#supported-devices) section and check board's 'Platform components' column for additional information about the limitation. diff --git a/examples/lighting-app/nrfconnect/README.md b/examples/lighting-app/nrfconnect/README.md index 29f15ea497d37f..ee816203b06937 100644 --- a/examples/lighting-app/nrfconnect/README.md +++ b/examples/lighting-app/nrfconnect/README.md @@ -27,7 +27,7 @@ platform, so only one protocol can be supported for a specific light device. - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Device Firmware Upgrade](#device-firmware-upgrade) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [IPv6 network support](#ipv6-network-support) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) @@ -41,8 +41,8 @@ platform, so only one protocol can be supported for a specific light device. - [Configuring the example](#configuring-the-example) - [Example build types](#example-build-types) - [Flashing and debugging](#flashing-and-debugging) - - [Flashing on the development kits](#nrfdks_flashing) - - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing) + - [Flashing on the development kits](#flashing-on-the-development-kits) + - [Flashing on the nRF52840 Dongle](#flashing-on-the-nrf52840-dongle) - [Testing the example](#testing-the-example) - [Testing using Linux CHIPTool](#testing-using-linux-chiptool) - [Testing using Android CHIPTool](#testing-using-android-chiptool) @@ -51,8 +51,6 @@ platform, so only one protocol can be supported for a specific light device.
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -172,16 +170,12 @@ section to learn how to change MCUboot and flash configuration in this example.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -204,8 +198,6 @@ for Matter: `nrf5340dk_nrf5340_cpuapp`. - Matter over Wi-Fi is supported for `nrf7002dk_nrf5340_cpuapp`. - - ## Device UI This section lists the User Interface elements that you can use to control and @@ -313,7 +305,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -408,8 +400,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -525,8 +515,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -580,15 +568,11 @@ page.
- - ## Flashing and debugging The flashing and debugging procedure is different for the development kits and the nRF52840 Dongle. - - ### Flashing on the development kits To flash the application to the device, use the west tool and run the following @@ -608,8 +592,6 @@ directory: $ west debug ``` - - ### Flashing on the nRF52840 Dongle Visit diff --git a/examples/lighting-app/nxp/k32w/k32w0/README.md b/examples/lighting-app/nxp/k32w/k32w0/README.md index 6b7f6d83a44d6c..9550f64354bbd6 100644 --- a/examples/lighting-app/nxp/k32w/k32w0/README.md +++ b/examples/lighting-app/nxp/k32w/k32w0/README.md @@ -16,32 +16,28 @@ network.
-- [CHIP K32W061 Lighting Example Application](#chip-k32w-lighting-example-application) - +- [CHIP K32W061 Lighting Example Application](#chip-k32w061-lighting-example-application) - [Introduction](#introduction) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - [Device UI](#device-ui) - [Building](#building) - - [Known issues](#building-issues) -- [Manufacturing data](#manufacturing) -- [Flashing and debugging](#flashdebug) -- [Pigweed Tokenizer](#tokenizer) - - [Detokenizer script](#detokenizer) - - [Notes](#detokenizer-notes) - - [Known issues](#detokenizer-known-issues) -- [Tinycrypt ECC operations](#tinycrypt) - - [Building steps](#tinycrypt-building-steps) + - [Known issues](#known-issues) +- [Manufacturing data](#manufacturing-data) +- [Flashing and debugging](#flashing-and-debugging) +- [Pigweed Tokenizer](#pigweed-tokenizer) + - [Detokenizer script](#detokenizer-script) + - [Notes](#notes) + - [Known issues](#known-issues-1) +- [Tinycrypt ECC operations](#tinycrypt-ecc-operations) + - [Building steps](#building-steps) - [OTA](#ota) - - - [Writing the SSBL](#ssbl) - - [Writing the PSECT](#psect) - - [Writing the application](#appwrite) - - [OTA Testing](#otatesting) - - [Known issues](#otaissues) - - - - + - [Writing the SSBL](#writing-the-ssbl) + - [Writing the PSECT](#writing-the-psect) + - [Writing the application](#writing-the-application) + - [OTA Testing](#ota-testing) + - [Known issues](#known-issues-2) + ## Introduction @@ -188,8 +184,6 @@ effects: - _Finish effect_ — complete current effect sequence and terminate - _Stop effect_ — terminate as soon as possible - - ## Building In order to build the Project CHIP example, we recommend using a Linux @@ -245,22 +239,16 @@ pycryptodome 3.9.8 The resulting output file can be found in out/debug/chip-k32w0x-light-example. - - ## Known issues - When using Secure element and cross-compiling on Linux, log messages from the Plug&Trust middleware stack may not echo to the console. - - ## Manufacturing data See [Guide for writing manufacturing data on NXP devices](../../../../platform/nxp/doc/manufacturing_flow.md). - - ## Flashing and debugging Program the firmware using the official @@ -270,8 +258,6 @@ All you have to do is to replace the Openthread binaries from the above documentation with _out/debug/chip-k32w0x-light-example.bin_ if DK6Programmer is used or with _out/debug/chip-k32w0x-light-example_ if MCUXpresso is used. - - ## Pigweed tokenizer The tokenizer is a pigweed module that allows hashing the strings. This greatly @@ -279,8 +265,6 @@ reduces the flash needed for logs. The module can be enabled by building with the gn argument _chip_pw_tokenizer_logging=true_. The detokenizer script is needed for parsing the hashed scripts. - - ### Detokenizer script The python3 script detokenizer.py is a script that decodes the tokenized logs @@ -309,8 +293,6 @@ where the decoded logs will be stored. This parameter is required for file usage and optional for serial usage. If not provided when used with serial port, it will show the decoded log only at the stdout and not save it to file. - - ### Notes The token database is created automatically after building the binary if the @@ -325,8 +307,6 @@ detokenizer script to see logs of a lighting app: python3 ../../../../../examples/platform/nxp/k32w/k32w0/scripts/detokenizer.py serial -i /dev/ttyACM0 -d out/debug/chip-k32w0x-light-example-database.bin -o device.txt ``` - - ### Known issues The building process will not update the token database if it already exists. In @@ -344,12 +324,8 @@ If run, closed and rerun with the serial option on the same serial port, the detokenization script will get stuck and not show any logs. The solution is to unplug and plug the board and then rerun the script. - - ## Tinycrypt ECC operations - - ### Building steps Note: This solution is temporary. @@ -364,8 +340,6 @@ To disable tinycrypt ecc operations, simply build with _chip_crypto=\"mbedtls\"_ and with or without _mbedtls_repo_. If used with _mbedtls_repo_ the mbedtls implementation from `NXPmicro/mbedtls` library will be used. - - ## OTA The internal flash needs to be prepared for the OTA process. First 16K of the @@ -374,8 +348,6 @@ related data while the last 8.5K of flash space is holding image directory related data (PSECT). The space between these two zones will be filled by the application. - - ### Writing the SSBL The SSBL can ge generated from one of the SDK demo examples. The SDK demo @@ -405,8 +377,6 @@ k32w061dk6_ssbl.bin must be written at address 0 in the internal flash: DK6Programmer.exe -V2 -s -P 1000000 -Y -p FLASH@0x00="k32w061dk6_ssbl.bin" ``` - - ### Writing the PSECT First, image directory 0 must be written: @@ -439,8 +409,6 @@ CD04 -> 0x4C9 pages of 512-bytes (= 612,5kB) 01 -> image type for the application ``` - - ### Writing the application DK6Programmer can be used for flashing the application: @@ -454,8 +422,6 @@ application. Please make sure that the application is written at address 0x4000: ![FLASH_LOCATION](../../../../platform/nxp/k32w/k32w0/doc/images/flash_location.JPG) - - ### OTA Testing The OTA topology used for OTA testing is illustrated in the figure below. @@ -533,8 +499,6 @@ Start the OTA process: user@computer1:~/connectedhomeip$ : ./out/chip-tool-app/chip-tool otasoftwareupdaterequestor announce-ota-provider 1 0 0 0 2 0 ``` - - ## Known issues - SRP cache on the openthread border router needs to flushed each time a new diff --git a/examples/lighting-app/python/README.md b/examples/lighting-app/python/README.md index 69487bb3b74899..8e34e59dea5847 100644 --- a/examples/lighting-app/python/README.md +++ b/examples/lighting-app/python/README.md @@ -1,4 +1,4 @@ -# Python based lighting example (bridge) device to DALI. +# Python-based lighting example (bridge) device to DALI ## Installation diff --git a/examples/lighting-app/qpg/APPLICATION.md b/examples/lighting-app/qpg/APPLICATION.md index 8215525d4f477e..6ba46dbbe0bb97 100644 --- a/examples/lighting-app/qpg/APPLICATION.md +++ b/examples/lighting-app/qpg/APPLICATION.md @@ -14,4 +14,4 @@ More detailed information on the Qorvo SDK can be found in the ## More information For more information on our product line and support options, please visit -[www.qorvo.com](www.qorvo.com) or contact us at +[www.qorvo.com](https://www.qorvo.com) or contact us at diff --git a/examples/lighting-app/silabs/SiWx917/README.md b/examples/lighting-app/silabs/SiWx917/README.md index ae7565f492c620..6ec100ade5d46a 100644 --- a/examples/lighting-app/silabs/SiWx917/README.md +++ b/examples/lighting-app/silabs/SiWx917/README.md @@ -30,8 +30,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. > release with added tools and documentation. > [Silabs Matter Github](https://github.com/SiliconLabs/matter/releases) - - ## Introduction The EFR32 lighting example provides a baseline demonstration of a Light control @@ -51,8 +49,6 @@ The lighting example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the Silicon Labs platform. - - ## Building - Download the @@ -171,15 +167,11 @@ Silicon Labs platform. $ gn gen out/debug --args='import("//with_pw_rpc.gni")' $ ninja -C out/debug - [Running Pigweed RPC console](#running-pigweed-rpc-console) - For more build options, help is provided when running the build script without arguments ./scripts/examples/gn_efr32_example.sh - - ## Flashing the Application - On the command line: @@ -189,8 +181,6 @@ arguments - Or with the Ozone debugger, just load the .out file. - - ## Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) @@ -239,8 +229,6 @@ combination with JLinkRTTClient as follows: $ JLinkRTTClient - - ## Running the Complete Example - It is assumed here that you already have an OpenThread border router @@ -326,8 +314,6 @@ combination with JLinkRTTClient as follows: - Add Ipv6 route on PC(Linux) `sudo ip route add /64 via 2002::2` - - ## Running RPC console - As part of building the example with RPCs enabled the chip_rpc python @@ -379,13 +365,13 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) ## Group Communication (Multicast) With this lighting example you can also use group communication to send Lighting commands to multiples devices at once. Please refer to the -[chip-tool documentation](../../chip-tool/README.md) _Configuring the server +[chip-tool documentation](../../../chip-tool/README.md) _Configuring the server side for Group Commands_ and _Using the Client to Send Group (Multicast) Matter Commands_ diff --git a/examples/lighting-app/silabs/efr32/README.md b/examples/lighting-app/silabs/efr32/README.md index aab225106d11cc..26027fc6ad108e 100644 --- a/examples/lighting-app/silabs/efr32/README.md +++ b/examples/lighting-app/silabs/efr32/README.md @@ -30,8 +30,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. > release with added tools and documentation. > [Silabs Matter Github](https://github.com/SiliconLabs/matter/releases) - - ## Introduction The EFR32 lighting example provides a baseline demonstration of a Light control @@ -51,8 +49,6 @@ The lighting example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the Silicon Labs platform. - - ## Building - Download the @@ -171,15 +167,13 @@ Silicon Labs platform. $ gn gen out/debug --args='import("//with_pw_rpc.gni")' $ ninja -C out/debug - [Running Pigweed RPC console](#running-pigweed-rpc-console) + [Running Pigweed RPC console](#running-rpc-console) For more build options, help is provided when running the build script without arguments ./scripts/examples/gn_efr32_example.sh - - ## Flashing the Application - On the command line: @@ -189,8 +183,6 @@ arguments - Or with the Ozone debugger, just load the .out file. - - ## Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) @@ -239,8 +231,6 @@ combination with JLinkRTTClient as follows: $ JLinkRTTClient - - ## Running the Complete Example - It is assumed here that you already have an OpenThread border router @@ -326,8 +316,6 @@ combination with JLinkRTTClient as follows: - Add Ipv6 route on PC(Linux) `sudo ip route add /64 via 2002::2` - - ## Running RPC console - As part of building the example with RPCs enabled the chip_rpc python @@ -379,13 +367,13 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) ## Group Communication (Multicast) With this lighting example you can also use group communication to send Lighting commands to multiples devices at once. Please refer to the -[chip-tool documentation](../../chip-tool/README.md) _Configuring the server +[chip-tool documentation](../../../chip-tool/README.md) _Configuring the server side for Group Commands_ and _Using the Client to Send Group (Multicast) Matter Commands_ diff --git a/examples/lighting-app/telink/Readme.md b/examples/lighting-app/telink/README.md similarity index 100% rename from examples/lighting-app/telink/Readme.md rename to examples/lighting-app/telink/README.md diff --git a/examples/lock-app/cc13x2x7_26x2x7/README.md b/examples/lock-app/cc13x2x7_26x2x7/README.md index b9160bf082c5fb..541bffe7c000c6 100644 --- a/examples/lock-app/cc13x2x7_26x2x7/README.md +++ b/examples/lock-app/cc13x2x7_26x2x7/README.md @@ -19,14 +19,13 @@ Instruments CC13XX_26XX family of Wireless MCUs. - [Provisioning](#provisioning) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - - [Matter Remote Commands](#matter-remote-commands) - [TI Support](#ti-support) --- ## Introduction -![CC1352R1_LAUNCHXL](doc/images/cc1352r1_launchxl.jpg) +![CC1352R1_LAUNCHXL](../../pump-app/cc13x2x7_26x2x7/doc/images/cc1352r1_launchxl.jpg) The CC13XX_26XX lock example application provides a working demonstration of a connected door lock device. This uses the open-source Matter implementation and diff --git a/examples/lock-app/cc32xx/README.md b/examples/lock-app/cc32xx/README.md index c1474a096a6b25..4cd77f6faeb235 100644 --- a/examples/lock-app/cc32xx/README.md +++ b/examples/lock-app/cc32xx/README.md @@ -5,7 +5,7 @@ Instruments CC32XX family of Wireless MCUs. --- -- [Matter CC32XX Lock Example Application](#matter-cc32xx-lock-example-application) +- [Matter CC32XX Lock Example Application](#matter-cc32xxsf-lock-example-application) - [Introduction](#introduction) - [Device UI](#device-ui) - [Building](#building) @@ -13,19 +13,15 @@ Instruments CC32XX family of Wireless MCUs. - [Compilation](#compilation) - [Programming](#programming) - [Code Composer Studio](#code-composer-studio) - - [UniFlash](#uniflash) - [Viewing Logging Output](#viewing-logging-output) - [Running the Example](#running-the-example) - [Provisioning](#provisioning) - - [Matter Remote Commands](#matter-remote-commands) - [TI Support](#ti-support) --- ## Introduction -![CC3235SF_LAUNCHXL](doc/images/cc3235sf_launchxl.jpg) - The CC32XX lock example application provides a working demonstration of a connected door lock device. This uses the open-source CHIP implementation and the Texas Instruments SimpleLink™ Wi-Fi® CC32xx software development kit. diff --git a/examples/lock-app/genio/README.md b/examples/lock-app/genio/README.md index f4d0653016e4b5..7c4582f707c4cd 100644 --- a/examples/lock-app/genio/README.md +++ b/examples/lock-app/genio/README.md @@ -1,22 +1,18 @@ -#Matter `Genio` Lock Example +# Matter `Genio` Lock Example An example showing the use of Matter on the MediaTek `Genio` MT793X.
-- [Matter Genio Lock Example](#chip-genio-lock-example) +- [Matter Genio Lock Example](#matter-genio-lock-example) - [Introduction](#introduction) - [Building](#building) - - [Note](#note) - [Flashing the Application](#flashing-the-application) - - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes)
- - ## Introduction The `Genio` (MT793X) lock example provides a baseline demonstration of a door @@ -32,8 +28,6 @@ The lighting example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the MediaTek platform. - - ## Building - Following the Linux related descriptions in @@ -104,8 +98,6 @@ MediaTek platform. chiptool onoff off 1 1 ``` -```` - - You can test the LED by light command as shown below ``` @@ -114,7 +106,7 @@ MediaTek platform. onoff Usage: light onoff color Usage: light color level Usage: light level - ``` + ``` ### Notes @@ -122,4 +114,3 @@ MediaTek platform. addresses to your devices (Border router / PC). If this is the case, you need to add a static ipv6 addresses on both device and then an ipv6 route to the border router on your PC -```` diff --git a/examples/lock-app/infineon/psoc6/README.md b/examples/lock-app/infineon/psoc6/README.md index 781b8364afb1a8..7adc1b9b41b481 100644 --- a/examples/lock-app/infineon/psoc6/README.md +++ b/examples/lock-app/infineon/psoc6/README.md @@ -4,7 +4,7 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
-- [Matter PSoC6 Lock Example](#chip-psoc6-lock-example) +- [Matter PSoC6 Lock Example](#matter-psoc6-lock-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) @@ -18,8 +18,6 @@ An example showing the use of Matter on the Infineon CY8CKIT-062S2-43012 board.
- - ## Introduction The PSoC6 lock example provides a demonstration of a door lock control device, @@ -31,8 +29,6 @@ and the Matter controller will exchange security information with the Rendezvous procedure. Wi-Fi Network credentials are then provided to the PSoC6 device which will then join the network. - - ## Building - [Modustoolbox Software](https://www.cypress.com/products/modustoolbox) @@ -59,8 +55,6 @@ will then join the network. $ cd ~/connectedhomeip $ rm -rf out/ - - ## Flashing the Application - Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the @@ -72,14 +66,10 @@ will then join the network. $ cd ~/connectedhomeip $ python3 out/infineon-psoc6-lock/chip-psoc6-lock-example.flash.py - - ## Commissioning and cluster control Commissioning can be carried out using BLE. - - ### Setting up Chip tool Once PSoC6 is up and running, we need to set up chip-tool on Raspberry Pi 4 to @@ -94,8 +84,6 @@ perform commissioning and cluster control. $ ./out/debug/chip-tool - - ### Commissioning over BLE Run the built executable and pass it the discriminator and pairing code of the @@ -110,8 +98,6 @@ remote device, as well as the network credentials to use. 4. SSID : Wi-Fi SSID 5. PASSWORD : Wi-Fi Password - - #### Notes Raspberry Pi 4 BLE connection issues can be avoided by running the following @@ -121,8 +107,6 @@ commands. These power cycle the BlueTooth hardware and disable BR/EDR mode. $ sudo btmgmt -i hci0 bredr off $ sudo btmgmt -i hci0 power on - - ### Cluster control - After successful commissioning, use the OnOff cluster command to toggle diff --git a/examples/lock-app/mbed/README.md b/examples/lock-app/mbed/README.md index cc48cebeb68ae9..27eb42224678ab 100644 --- a/examples/lock-app/mbed/README.md +++ b/examples/lock-app/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS Lock Example Application

+# Matter Arm Mbed OS Lock Example Application The Arm Mbed OS Lock Example demonstrates how to remotely control a door lock device with one basic bolt. The example takes advantage of the IO available on @@ -39,19 +39,19 @@ paired into an existing Matter network and can be controlled by this network.
-# Overview +## Overview The Matter device that runs the lock application is controlled by the Matter controller device over WiFi. By default, the Matter device is disconnected , and it should be paired with Matter controller and get configuration from it. Actions required before establishing full communication are described below. -## Bluetooth Low Energy advertising +### Bluetooth Low Energy advertising To commission the device onto a Matter network, the device must be discoverable over BLE. The BLE advertising starts automatically after device boot-up. -## Bluetooth Low Energy rendezvous +### Bluetooth Low Energy rendezvous In Matter, the commissioning procedure (called rendezvous) is done over BLE between a Matter device and the Matter controller, where the controller has the @@ -61,16 +61,16 @@ To start the rendezvous, the controller must get the commissioning information from the Matter device. The data payload is encoded within a QR code, printed to the UART console. -## WiFi provisioning +### WiFi provisioning The last part of the rendezvous procedure, provisioning involves sending the network credentials from the Matter controller to the Matter device. As a result, device is able to join the network and communicate with other devices in the network. -# Run application +## Run application -## Environment setup +### Environment setup Before building the example, check out the Matter repository and sync submodules using the following command: @@ -98,7 +98,7 @@ its requirements. > devcontainer is the recommended way to interact with Arm Mbed-OS port of the > Matter Project.** > -> **Please read this [README.md](../../..//docs/VSCODE_DEVELOPMENT.md) for more +> **Please read this [README.md](../../../docs/VSCODE_DEVELOPMENT.md) for more > information about using VSCode in container.** To initialize the development environment, download all registered sub-modules @@ -116,7 +116,7 @@ environment: $ source ./scripts/activate.sh ``` -## Building +### Building The Lock application can be built in the same way as any other Matter example ported to the mbed-os platform. @@ -134,7 +134,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=lock-app -b= Debug Mbed examples => Start Debugging (F5) => ( It is possible to connect to an external gdb-server session by using specific **'Debug Mbed examples [remote]'** task. -## Testing +### Testing -### Serial port terminal +#### Serial port terminal The application traces are streaming to serial output. To start communication open a terminal session and connect to the serial port of the device. You can @@ -222,13 +222,13 @@ After device reset these lines should be visible: The lock-app application launched correctly and you can follow traces in the terminal. -### CHIP Tools +#### CHIP Tools Read the [MbedCommissioning](../../../docs/guides/mbedos_commissioning.md) to see how to use different CHIP tools to commission and control the application within a WiFi network. -### RPC console +#### RPC console The RPC console is an interactive Python shell console, where the different RPC command can be invoked. It is a complete solution for interacting with hardware @@ -276,26 +276,25 @@ The response from the device should contain the current lock state: For more details about RPC console and supported services visit [CHIP RPC console](../../common/pigweed/rpc_console/README.md). -## Supported devices +### Supported devices The example supports building and running on the following mbed-enabled devices: -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
  • Lock state LED should be an external component connected to PB9_6 pin (active high).
Buttons
  • SW2 push-button is not used in this example due to its interaction with WIFI module interrupt line.
  • Button 0 corresponds to BTN0 capacitive button.
  • Button 1 corresponds to BTN1 capacitive button.
Slider
  • Unused
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| ✔ |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
  • Lock state LED should be an external component connected to PB9_6 pin (active high).
Buttons
  • SW2 push-button is not used in this example due to its interaction with WIFI module interrupt line.
  • Button 0 corresponds to BTN0 capacitive button.
  • Button 1 corresponds to BTN1 capacitive button.
Slider
  • Unused
| -#### Notes +##### Notes - More details and guidelines about porting new hardware into the Matter project with Mbed OS can be found in [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) - Some useful information about HW platform specific settings can be found in - `lock-app/mbed/mbed_app.json`. - Information about this file syntax and its meaning in mbed-os project can be - found here: + `lock-app/mbed/mbed_app.json`. Information about this file syntax and its + meaning in mbed-os project can be found here: [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) -## Device UI +### Device UI This section lists the User Interface elements that you can use to control and monitor the state of the device. These correspond to PCB components on the @@ -340,5 +339,5 @@ opposite one. Some of the supported boards may not have sufficient number PCB components to follow above description. In that case please refer to -[Supported devices](#Supported-devices) section and check board's 'Platform +[Supported devices](#supported-devices) section and check board's 'Platform components' column for additional information about the limitation. diff --git a/examples/lock-app/nrfconnect/README.md b/examples/lock-app/nrfconnect/README.md index 3189dc2730b629..7aef2c91559d43 100644 --- a/examples/lock-app/nrfconnect/README.md +++ b/examples/lock-app/nrfconnect/README.md @@ -5,10 +5,8 @@ device with one basic bolt. It uses buttons to test changing the lock and device states and LEDs to show the state of these changes. You can use this example as a reference for creating your own application. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK The example is based on [Matter](https://github.com/project-chip/connectedhomeip) and Nordic @@ -29,7 +27,7 @@ platform, so only one protocol can be supported for a specific lock device. - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Device Firmware Upgrade](#device-firmware-upgrade) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [IPv6 network support](#ipv6-network-support) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) @@ -49,8 +47,6 @@ platform, so only one protocol can be supported for a specific lock device.
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -165,16 +161,12 @@ section to learn how to change MCUboot and flash configuration in this example.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -196,8 +188,6 @@ for Matter: `nrf5340dk_nrf5340_cpuapp`. - Matter over Wi-Fi is supported for `nrf7002dk_nrf5340_cpuapp`. - - ## Device UI This section lists the User Interface elements that you can use to control and @@ -297,7 +287,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -380,8 +370,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -470,8 +458,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -520,8 +506,6 @@ page.
- - ## Flashing and debugging To flash the application to the device, use the west tool and run the following diff --git a/examples/lock-app/nxp/k32w/k32w0/README.md b/examples/lock-app/nxp/k32w/k32w0/README.md index 352d03055e862d..c797127b5dbd3b 100644 --- a/examples/lock-app/nxp/k32w/k32w0/README.md +++ b/examples/lock-app/nxp/k32w/k32w0/README.md @@ -16,29 +16,27 @@ network.
-- [CHIP K32W0 Lock Example Application](#chip-k32w-lock-example-application) - +- [CHIP K32W0 Lock Example Application](#chip-k32w061-lock-example-application) - [Introduction](#introduction) - [Bluetooth LE Advertising](#bluetooth-le-advertising) - [Bluetooth LE Rendezvous](#bluetooth-le-rendezvous) - [Device UI](#device-ui) - [Building](#building) - - [Known issues](#building-issues) -- [Manufacturing data](#manufacturing) -- [Flashing and debugging](#flashdebug) -- [Pigweed Tokenizer](#tokenizer) - - [Detokenizer script](#detokenizer) - - [Notes](#detokenizer-notes) - - [Known issues](#detokenizer-known-issues) -- [Tinycrypt ECC operations](#tinycrypt) - - [Building steps](#tinycrypt-building-steps) + - [Known issues](#known-issues) +- [Manufacturing data](#manufacturing-data) +- [Flashing and debugging](#flashing-and-debugging) +- [Pigweed Tokenizer](#pigweed-tokenizer) + - [Detokenizer script](#detokenizer-script) + - [Notes](#notes) + - [Known issues](#known-issues-1) +- [Tinycrypt ECC operations](#tinycrypt-ecc-operations) + - [Building steps](#building-steps) - [Low power](#low-power) - - [Known issues](#low-power-issues) + - [Known issues](#known-issues-2) - - ## Introduction ![K32W061 DK6](../../../../platform/nxp/k32w/k32w0/doc/images/k32w-dk6.jpg) @@ -167,8 +165,6 @@ DS3, which can be found on the DK6 board. Also, by long pressing the **USERINTERFACE** button, the factory reset action will be initiated. - - ## Building In order to build the Project CHIP example, we recommend using a Linux @@ -217,22 +213,16 @@ pycryptodome 3.9.8 The resulting output file can be found in out/debug/chip-k32w0x-lock-example. - - ## Known issues - When using Secure element and cross-compiling on Linux, log messages from the Plug&Trust middleware stack may not echo to the console. - - ## Manufacturing data See [Guide for writing manufacturing data on NXP devices](../../../../platform/nxp/doc/manufacturing_flow.md). - - ## Flashing and debugging Program the firmware using the official @@ -242,8 +232,6 @@ All you have to do is to replace the Openthread binaries from the above documentation with _out/debug/chip-k32w0x-lock-example.bin_ if DK6Programmer is used or with _out/debug/chip-k32w0x-lock-example_ if MCUXpresso is used. - - ## Pigweed tokenizer The tokenizer is a pigweed module that allows hashing the strings. This greatly @@ -251,8 +239,6 @@ reduces the flash needed for logs. The module can be enabled by building with the gn argument _chip_pw_tokenizer_logging=true_. The detokenizer script is needed for parsing the hashed scripts. - - ### Detokenizer script The python3 script detokenizer.py is a script that decodes the tokenized logs @@ -281,8 +267,6 @@ where the decoded logs will be stored. This parameter is required for file usage and optional for serial usage. If not provided when used with serial port, it will show the decoded log only at the stdout and not save it to file. - - ### Notes The token database is created automatically after building the binary if the @@ -297,8 +281,6 @@ detokenizer script to see logs of a lock app: python3 ../../../../../examples/platform/nxp/k32w/k32w0/scripts/detokenizer.py serial -i /dev/ttyACM0 -d out/debug/chip-k32w0x-lock-example-database.bin -o device.txt ``` - - ### Known issues The building process will not update the token database if it already exists. In @@ -316,12 +298,8 @@ If run, closed and rerun with the serial option on the same serial port, the detokenization script will get stuck and not show any logs. The solution is to unplug and plug the board and then rerun the script. - - ## Tinycrypt ECC operations - - ### Building steps Note: This solution is temporary. @@ -336,8 +314,6 @@ To disable tinycrypt ecc operations, simply build with _chip_crypto=\"mbedtls\"_ and with or without _mbedtls_repo_. If used with _mbedtls_repo_ the mbedtls implementation from `NXPmicro/mbedtls` library will be used. - - ## Low power The example also offers the possibility to run in low power mode. This means @@ -369,8 +345,6 @@ below: Please note that that the Power Measurement Tool is not very accurate and professional tools must be used if exact power consumption needs to be known. - - ## Known issues - Power Measurement Tool may not work correctly in MCUXpresso versions greater diff --git a/examples/lock-app/qpg/APPLICATION.md b/examples/lock-app/qpg/APPLICATION.md index f97b4876bc8840..a7b312e157ab51 100644 --- a/examples/lock-app/qpg/APPLICATION.md +++ b/examples/lock-app/qpg/APPLICATION.md @@ -14,4 +14,4 @@ More detailed information on the Qorvo SDK can be found in the ## More information For more information on our product line and support options, please visit -[www.qorvo.com](www.qorvo.com) or contact us at +[www.qorvo.com](https://www.qorvo.com) or contact us at diff --git a/examples/lock-app/silabs/efr32/README.md b/examples/lock-app/silabs/efr32/README.md index a681df76cc6d45..5944a5f8afe767 100644 --- a/examples/lock-app/silabs/efr32/README.md +++ b/examples/lock-app/silabs/efr32/README.md @@ -27,8 +27,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. > release with added tools and documentation. > [Silabs Matter Github](https://github.com/SiliconLabs/matter/releases) - - ## Introduction The EFR32 lock example provides a baseline demonstration of a door lock control @@ -48,8 +46,6 @@ The lighting example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the Silicon Labs platform. - - ## Building - Download the @@ -189,8 +185,6 @@ Mac OS X $ ninja -C out/debug ``` - [Running Pigweed RPC console](#running-pigweed-rpc-console) - For more build options, help is provided when running the build script without arguments @@ -198,8 +192,6 @@ arguments ./scripts/examples/gn_efr32_example.sh ``` - - ## Flashing the Application - On the command line: @@ -211,8 +203,6 @@ arguments - Or with the Ozone debugger, just load the .out file. - - ## Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) @@ -271,8 +261,6 @@ combination with JLinkRTTClient as follows: $ JLinkRTTClient ``` - - ## Running the Complete Example - It is assumed here that you already have an OpenThread border router @@ -413,7 +401,7 @@ tracking code inside the `trackAlloc` and `trackFree` function For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) ## Building options diff --git a/examples/minimal-mdns/README.md b/examples/minimal-mdns/README.md index 8e781f852424ff..391b7f0adb5bfe 100644 --- a/examples/minimal-mdns/README.md +++ b/examples/minimal-mdns/README.md @@ -1,3 +1,8 @@ +# Minimal mDNS example + +This example demonstrates the multicast DNS (mDNS) protocol functionality in +Matter. + ## Example server The file `server.cpp` contains an example of a mdns server that can listen on diff --git a/examples/ota-provider-app/esp32/README.md b/examples/ota-provider-app/esp32/README.md index aa2ead1d25816b..2102aabd1a714d 100644 --- a/examples/ota-provider-app/esp32/README.md +++ b/examples/ota-provider-app/esp32/README.md @@ -81,4 +81,4 @@ privileges to all nodes for the OTA Provider cluster (0x0029) on every endpoint --- Once OTA provider is commissioned then head over to -[OTA Requestor Example](../../ota-requestor-app/esp32). +[OTA Requestor Example](../../ota-requestor-app/esp32/README.md). diff --git a/examples/ota-requestor-app/esp32/README.md b/examples/ota-requestor-app/esp32/README.md index ac61c1ecde8be0..4fb56712670429 100644 --- a/examples/ota-requestor-app/esp32/README.md +++ b/examples/ota-requestor-app/esp32/README.md @@ -13,7 +13,6 @@ guides to get started. - [Prerequisite](#prerequisite) - [Query for an OTA Image](#query-for-an-ota-image) - [ESP32 OTA Requestor with Linux OTA Provider](#esp32-ota-requestor-with-linux-ota-provider) -- [Generate OTA image](#generate-ota-image) - [RPC console and Device Tracing](../../../docs/guides/esp32/rpc_console.md) --- @@ -38,7 +37,7 @@ application of OTA image. ### ESP32 OTA Requestor with Linux OTA Provider -- Build the [Linux OTA Provider](../../ota-provider-app/linux) +- Build the [Linux OTA Provider](../../ota-provider-app/linux/README.md) - Run the Linux OTA Provider with OTA image. ``` diff --git a/examples/ota-requestor-app/genio/README.md b/examples/ota-requestor-app/genio/README.md index 2b448ff94d0b8a..e8675adc62199b 100644 --- a/examples/ota-requestor-app/genio/README.md +++ b/examples/ota-requestor-app/genio/README.md @@ -1,22 +1,18 @@ -#Matter `Genio` Lighting Example +# Matter `Genio` Lighting Example An example showing the use of Matter on the MediaTek `Genio` MT793X.
-- [Matter Genio Lighting Example](#chip-genio-lighting-example) +- [Matter Genio Lighting Example](#matter-genio-lighting-example) - [Introduction](#introduction) - [Building](#building) - - [Note](#note) - [Flashing the Application](#flashing-the-application) - - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes)
- - ## Introduction The `Genio` (MT793X) lighting example provides a baseline demonstration of a @@ -32,8 +28,6 @@ The lighting example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the MediaTek platform. - - ## Building - Following the Linux related descriptions in diff --git a/examples/ota-requestor-app/mbed/README.md b/examples/ota-requestor-app/mbed/README.md index 38133986fda880..6f8bcdaf53c380 100644 --- a/examples/ota-requestor-app/mbed/README.md +++ b/examples/ota-requestor-app/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS Lock Example Application

+# Matter Arm Mbed OS Lock Example Application The Arm Mbed OS OTA Requestor Example demonstrates how to remotely trigger update image downloading and apply it if needed. Full functionality of this @@ -41,19 +41,19 @@ paired into an existing Matter network and can be controlled by this network.
-# Overview +## Overview The Matter device that runs the lock application is controlled by the Matter controller device over WiFi. By default, the Matter device is disconnected , and it should be paired with Matter controller and get configuration from it. Actions required before establishing full communication are described below. -## Bluetooth Low Energy advertising +### Bluetooth Low Energy advertising To commission the device onto a Matter network, the device must be discoverable over BLE. The BLE advertising starts automatically after device boot-up. -## Bluetooth Low Energy rendezvous +### Bluetooth Low Energy rendezvous In Matter, the commissioning procedure (called rendezvous) is done over BLE between a Matter device and the Matter controller, where the controller has the @@ -63,16 +63,16 @@ To start the rendezvous, the controller must get the commissioning information from the Matter device. The data payload is encoded within a QR code, printed to the UART console. -## WiFi provisioning +### WiFi provisioning The last part of the rendezvous procedure, provisioning involves sending the network credentials from the Matter controller to the Matter device. As a result, device is able to join the network and communicate with other devices in the network. -# Run application +## Run application -## Environment setup +### Environment setup Before building the example, check out the Matter repository and sync submodules using the following command: @@ -118,7 +118,7 @@ environment: $ source ./scripts/activate.sh ``` -## Building +### Building The OTA Requestor application can be built in the same way as any other Matter example ported to the mbed-os platform. @@ -136,7 +136,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=ota-requestor-app -b ``` Both approaches are limited to supported evaluation boards which are listed in -[Supported devices](#supported_devices) paragraph. +[Supported devices](#supported-devices) paragraph. Mbed OS defines three building profiles: _develop, debug_ and _release_. For more details please visit @@ -155,7 +155,7 @@ There are also three types of built application: _simple, boot_ and _upgrade_: When using the building script, it is possible expand the list of acceptable targets; this may be useful for rapid testing of a new mbed-targets. -## Flashing +### Flashing The Lock application can be flashed in the same way as any other Matter example ported to mbed-os platform. @@ -188,7 +188,7 @@ device. It is possible to connect to an external gdb-server session by using specific **'Flash Mbed examples [remote]'** task. -## Debugging +### Debugging Debugging can be performed in the same was as with any other Matter example ported to mbed-os platform. @@ -204,14 +204,14 @@ Run and Debug (Ctrl+Shift+D) => Debug Mbed examples => Start Debugging (F5) => ( It is possible to connect to an external gdb-server session by using specific **'Debug Mbed examples [remote]'** task. -## Testing +### Testing The provider application is required to transfer image file to OTA requestor. Mbed example is compatible with Linux version of OTA provider example. Read the [OTAProvider](../../ota-provider-app/linux/README.md) to see how to build and run the OTA provider. -### Serial port terminal +#### Serial port terminal The application traces are streaming to serial output. To start communication open a terminal session and connect to the serial port of the device. You can @@ -229,7 +229,7 @@ After device reset these lines should be visible: The ota-requestor-app application launched correctly and you can follow traces in the terminal. -### CHIP Tools +#### CHIP Tools Read the [MbedCommissioning](../../../docs/guides/mbedos_commissioning.md) to see how to use different CHIP tools to commission and control the application @@ -244,7 +244,7 @@ receiving this command OTA requestor will query for OTA image: The OTA requestor should communicate with provider, download update image and apply it. -#### Notes +##### Notes - You have to provision the OTA Provider in the same Matter network. Use the `connect -ip` command of Python Device Controller: @@ -254,26 +254,25 @@ apply it. - POSIX CLI CHIPTool can be also used for testing this example. Use the correct `chip-tool` arguments to perform above-mentioned steps. -## Supported devices +### Supported devices The example supports building and running on the following mbed-enabled devices: -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
  • Lock state LED should be an external component connected to PB9_6 pin (active high).
Buttons
  • SW2 push-button is not used in this example due to its interaction with WIFI module interrupt line.
  • Button 0 corresponds to BTN0 capacitive button.
  • Button 1 corresponds to BTN1 capacitive button.
Slider
  • Unused
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----: | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| ✔ |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
  • Lock state LED should be an external component connected to PB9_6 pin (active high).
Buttons
  • SW2 push-button is not used in this example due to its interaction with WIFI module interrupt line.
  • Button 0 corresponds to BTN0 capacitive button.
  • Button 1 corresponds to BTN1 capacitive button.
Slider
  • Unused
| -#### Notes +##### Notes - More details and guidelines about porting new hardware into the Matter project with Mbed OS can be found in [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) - Some useful information about HW platform specific settings can be found in - `ota-requestor-app/mbed/mbed_app.json`. - Information about this file syntax and its meaning in mbed-os project can be - found here: + `ota-requestor-app/mbed/mbed_app.json`. Information about this file syntax + and its meaning in mbed-os project can be found here: [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) -## Device UI +### Device UI This section lists the User Interface elements that you can use to control and monitor the state of the device. These correspond to PCB components on the @@ -319,5 +318,5 @@ BLE advertising. Some of the supported boards may not have sufficient number PCB components to follow above description. In that case please refer to -[Supported devices](#Supported-devices) section and check board's 'Platform +[Supported devices](#supported-devices) section and check board's 'Platform components' column for additional information about the limitation. diff --git a/examples/persistent-storage/efr32/README.md b/examples/persistent-storage/efr32/README.md index abe1750132bb7f..a2726d99094e85 100644 --- a/examples/persistent-storage/efr32/README.md +++ b/examples/persistent-storage/efr32/README.md @@ -1,4 +1,4 @@ -#CHIP EFR32 Persistent Storage Example +# CHIP EFR32 Persistent Storage Example An example testing and demonstrating the key value storage API. @@ -13,8 +13,6 @@ An example testing and demonstrating the key value storage API.
- - ## Introduction This example serves to both test the key value storage implementation and API as @@ -24,14 +22,10 @@ to use the API. In the future this example can be moved into a unit test when available on all platforms. - - ## EFR32 The EFR32 platform KVS is fully implemented - - ### Building - Download the @@ -101,8 +95,6 @@ OR use GN/Ninja directly $ cd ~/connectedhomeip/examples/persistent-storage/efr32 $ rm -rf out/ - - ### Flashing the Application - On the command line: @@ -112,8 +104,6 @@ OR use GN/Ninja directly - Or with the Ozone debugger, just load the .out file. - - ### Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) diff --git a/examples/persistent-storage/infineon/psoc6/README.md b/examples/persistent-storage/infineon/psoc6/README.md index 19a32c60c85acf..f42617e7f3350c 100644 --- a/examples/persistent-storage/infineon/psoc6/README.md +++ b/examples/persistent-storage/infineon/psoc6/README.md @@ -4,16 +4,14 @@ An example testing and demonstrating the key value storage API.
-- [CHIP PSoC6 Persistent Storage Example](#chip-PSoC6-persistent-storage-example) +- [CHIP PSoC6 Persistent Storage Example](#chip-psoc6-persistent-storage-example) - [Introduction](#introduction) - - [PSoC6](#PSoC6) + - [PSoC6](#psoc6) - [Building](#building) - [Flashing the Application](#flashing-the-application)
- - ## Introduction This example serves to both test the key value storage implementation and API as @@ -23,15 +21,11 @@ to use the API. In the future this example can be moved into a unit test when available on all platforms. - - ## PSoC6 The Infineon PSoC6 platform KVS is fully implemented, the KVS is enabled and configured by providing a file during the init call. - - ### Building - Build the example application: @@ -40,8 +34,6 @@ configured by providing a file during the init call. $ source third_party/connectedhomeip/scripts/activate.sh $ ./scripts/examples/gn_psoc6_example.sh examples/persistent-storage/infineon/psoc6 out/persistent_storage_app_psoc6 - - ### Flashing the Application - Put CY8CKIT-062S2-43012 board on KitProg3 CMSIS-DAP Mode by pressing the diff --git a/examples/persistent-storage/linux/README.md b/examples/persistent-storage/linux/README.md index 196c2230573d48..f21f259783f6fa 100644 --- a/examples/persistent-storage/linux/README.md +++ b/examples/persistent-storage/linux/README.md @@ -12,8 +12,6 @@ An example testing and demonstrating the key value storage API.
- - ## Introduction This example serves to both test the key value storage implementation and API as @@ -23,15 +21,11 @@ to use the API. In the future this example can be moved into a unit test when available on all platforms. - - ## Linux The Linux platform KVS is fully implemented, the KVS is enabled and configured by providing a file during the init call. - - ### Building - Install tool chain @@ -46,8 +40,6 @@ by providing a file during the init call. $ gn gen out/debug $ ninja -C out/debug - - ### Running - Run Linux Example diff --git a/examples/pigweed-app/efr32/README.md b/examples/pigweed-app/efr32/README.md index 3680f42a67b535..b016a0b06550ae 100644 --- a/examples/pigweed-app/efr32/README.md +++ b/examples/pigweed-app/efr32/README.md @@ -1,4 +1,4 @@ -#CHIP EFR32 Pigweed Example Application +# CHIP EFR32 Pigweed Example Application The EFR32 example demonstrates the usage of Pigweed module functionalities in an application. @@ -21,9 +21,9 @@ following features are available: --- -- [CHIP EFR32 Pigweed Example Application](#chip-EFR32-pigweed-example-application) +- [CHIP EFR32 Pigweed Example Application](#chip-efr32-pigweed-example-application) - [Building the Example Application](#building-the-example-application) - - [To build the application, follow these steps:](#to-build-the-application-follow-these-steps) + - [Flashing the Application](#flashing-the-application) - [Testing the Example Application](#testing-the-example-application) --- diff --git a/examples/pigweed-app/mbed/README.md b/examples/pigweed-app/mbed/README.md index 19f9a13012dc1e..8ca7aca3c221c6 100644 --- a/examples/pigweed-app/mbed/README.md +++ b/examples/pigweed-app/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS Pigweed Example Application

+# Matter Arm Mbed OS Pigweed Example Application The Arm Mbed OS Pigweed Example demonstrates the usage of Pigweed module functionalities in an application. @@ -35,7 +35,7 @@ serial port to the device. The following RPC protocols services are available:
-# Overview +## Overview Pigweed libraries are built and organized in a way that enables faster and more reliable development. In the Matter project, the Pigweed module is planned to be @@ -43,9 +43,9 @@ used to create system infrastructures, for example for performing on-device tests, but considering its general functionalities, it can be useful also in other cases. -# Run application +## Run application -## Environment setup +### Environment setup Before building the example, check out the Matter repository and sync submodules using the following command: @@ -91,7 +91,7 @@ environment: $ source ./scripts/activate.sh ``` -## Building +### Building The Pigweed application can be built in the same way as any other Matter example ported to the mbed-os platform. @@ -109,7 +109,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=pigweed-app -b= Debug Mbed examples => Start Debugging (F5) => ( It is possible to connect to an external gdb-server session by using specific **'Debug Mbed examples [remote]'** task. -## Testing +### Testing -### Serial port terminal +#### Serial port terminal The application traces are streaming to serial output. To start communication open a terminal session and connect to the serial port of the device. You can @@ -197,7 +197,7 @@ After device reset these lines should be visible: The pigweed-app application launched correctly and you can follow traces in the terminal. -### RPC console +#### RPC console The RPC console is an interactive Python shell console, where the different RPC command can be invoked. It is a complete solution for interacting with hardware @@ -237,26 +237,25 @@ The response from the device should be: For more details about RPC console and supported services visit [CHIP RPC console](../../common/pigweed/rpc_console/README.md). -## Supported devices +### Supported devices The example supports building and running on the following mbed-enabled devices: -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| :heavy_check_mark: |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| ✔ |
LEDs
  • Board has only one usable LED (LED4) which corresponds to USER LED from UI.
Buttons
  • Unused
Slider
  • Unused
| -#### Notes +##### Notes - More details and guidelines about porting new hardware into the Matter project with Mbed OS can be found in [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) - Some useful information about HW platform specific settings can be found in - `pigweed-app/mbed/mbed_app.json`. - Information about this file syntax and its meaning in mbed-os project can be - found here: + `pigweed-app/mbed/mbed_app.json`. Information about this file syntax and its + meaning in mbed-os project can be found here: [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) -# Device UI +## Device UI This section lists the User Interface elements that you can use to control and monitor the state of the device. These correspond to PCB components on the @@ -267,9 +266,9 @@ possible: - _Solid On_ — The application was flashed and run successfully. -### Notes +#### Notes Some of the supported boards may not have sufficient number PCB components to follow above description. In that case please refer to -[Supported devices](#Supported-devices) section and check board's 'Platform +[Supported devices](#supported-devices) section and check board's 'Platform components' column for additional information about the limitation. diff --git a/examples/pigweed-app/nrfconnect/README.md b/examples/pigweed-app/nrfconnect/README.md index d226db40338513..a6adf61fbfde47 100644 --- a/examples/pigweed-app/nrfconnect/README.md +++ b/examples/pigweed-app/nrfconnect/README.md @@ -3,10 +3,8 @@ The nRF Connect Pigweed Example demonstrates the usage of Pigweed module functionalities in an application. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK The example is based on [Matter](https://github.com/project-chip/connectedhomeip), the @@ -29,7 +27,7 @@ the following features are available: - [Overview](#overview) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) - [Using Docker container for setup](#using-docker-container-for-setup) @@ -37,14 +35,12 @@ the following features are available: - [Building](#building) - [Configuring the example](#configuring-the-example) - [Flashing and debugging](#flashing-and-debugging) - - [Flashing on the nRF52840 DK](#nrf52840dk_flashing) - - [Flashing on the nRF52840 Dongle](#nrf52840dongle_flashing) + - [Flashing on the nRF52840 DK](#flashing-on-the-nrf52840-dk) + - [Flashing on the nRF52840 Dongle](#flashing-on-the-nrf52840-dongle) - [Testing the example](#testing-the-example)
- - ## Overview This example is running on the nRF Connect platform, which is based on the @@ -61,16 +57,12 @@ other cases.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -82,8 +74,6 @@ The example supports building and running on the following devices:
- - ## Device UI This section lists the User Interface elements that you can use to control and @@ -124,7 +114,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -207,8 +197,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -245,8 +233,6 @@ following command:
- - ## Configuring the example The Zephyr ecosystem is highly configurable and allows you to modify many @@ -285,15 +271,11 @@ page.
- - ## Flashing and debugging The flashing and debugging procedure is different for the nRF52840 DK and the nRF52840 Dongle. - - ### Flashing on the nRF52840 DK To flash the application to the device, use the west tool and run the following @@ -309,8 +291,6 @@ directory: $ west debug - - ### Flashing on the nRF52840 Dongle Visit @@ -319,8 +299,6 @@ to read more about flashing on the nRF52840 Dongle.
- - ## Testing the example Run the following command to start an interactive Python shell, where the Echo diff --git a/examples/platform/nxp/doc/manufacturing_flow.md b/examples/platform/nxp/doc/manufacturing_flow.md index 83afb4ab85335b..f8d83f16d73e09 100644 --- a/examples/platform/nxp/doc/manufacturing_flow.md +++ b/examples/platform/nxp/doc/manufacturing_flow.md @@ -1,5 +1,3 @@ - - ## Manufacturing data By default, the example application is configured to use generic test diff --git a/examples/platform/qpg/README.md b/examples/platform/qpg/README.md index dcbd61619b020d..d8e070848f540c 100644 --- a/examples/platform/qpg/README.md +++ b/examples/platform/qpg/README.md @@ -1,3 +1,7 @@ +--- +orphan: true +--- + # Matter QPG6105 SDK ## Qorvo SDK @@ -8,4 +12,4 @@ More detailed information on the Qorvo SDK can be found in the ## More information For more information on our product line and support options, please visit -[www.qorvo.com](www.qorvo.com) or contact us at +[www.qorvo.com](https://www.qorvo.com) or contact us at diff --git a/examples/pump-app/nrfconnect/README.md b/examples/pump-app/nrfconnect/README.md index c4a02dc8a2ebb0..9c20935f23c116 100644 --- a/examples/pump-app/nrfconnect/README.md +++ b/examples/pump-app/nrfconnect/README.md @@ -6,10 +6,8 @@ state and device states and LEDs to show the state of these changes. This example is inherited from the "lock-app" example but modified to simulate a pump device and can be used as a reference for creating your own pump application. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK The example is based on [Matter](https://github.com/project-chip/connectedhomeip) and Nordic @@ -27,7 +25,7 @@ device works as a Thread Minimal End Device. - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Device Firmware Upgrade](#device-firmware-upgrade) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) - [Using Docker container for setup](#using-docker-container-for-setup) @@ -42,8 +40,6 @@ device works as a Thread Minimal End Device.
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -151,29 +147,23 @@ section to learn how to change MCUboot and flash configuration in this example.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: -| Hardware platform | Build target | Platform image | -| ----------------------------------------------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` |
nRF52840 DKnRF52840 DK
| -| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` |
nRF5340 DKnRF5340 DK
| +| Hardware platform | Build target | Platform image | +| ----------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` |
nRF52840 DKnRF52840 DK
| +| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` |
nRF5340 DKnRF5340 DK
|
- - ## Device UI This section lists the User Interface elements that you can use to control and @@ -250,7 +240,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -333,8 +323,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -426,8 +414,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -476,8 +462,6 @@ page.
- - ## Flashing and debugging To flash the application to the device, use the west tool and run the following diff --git a/examples/pump-controller-app/nrfconnect/README.md b/examples/pump-controller-app/nrfconnect/README.md index 8fb710d4d272f2..e8fc9ac57cfa63 100644 --- a/examples/pump-controller-app/nrfconnect/README.md +++ b/examples/pump-controller-app/nrfconnect/README.md @@ -7,10 +7,8 @@ these changes. This example is inherited from the "lock-app" example but modified to simulate a pump device and can be used as a reference for creating your own pump application. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK The example is based on [Matter](https://github.com/project-chip/connectedhomeip) and Nordic @@ -28,7 +26,7 @@ device works as a Thread Minimal End Device. - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Device Firmware Upgrade](#device-firmware-upgrade) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) - [Using Docker container for setup](#using-docker-container-for-setup) @@ -43,8 +41,6 @@ device works as a Thread Minimal End Device.
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -152,29 +148,23 @@ section to learn how to change MCUboot and flash configuration in this example.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: -| Hardware platform | Build target | Platform image | -| ----------------------------------------------------------------------------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` |
nRF52840 DKnRF52840 DK
| -| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` |
nRF5340 DKnRF5340 DK
| +| Hardware platform | Build target | Platform image | +| ----------------------------------------------------------------------------------------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| [nRF52840 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF52840-DK) | `nrf52840dk_nrf52840` |
nRF52840 DKnRF52840 DK
| +| [nRF5340 DK](https://www.nordicsemi.com/Software-and-Tools/Development-Kits/nRF5340-DK) | `nrf5340dk_nrf5340_cpuapp` |
nRF5340 DKnRF5340 DK
|
- - ## Device UI This section lists the User Interface elements that you can use to control and @@ -250,7 +240,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -333,8 +323,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -426,8 +414,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -476,8 +462,6 @@ page.
- - ## Flashing and debugging To flash the application to the device, use the west tool and run the following diff --git a/examples/shell/README.md b/examples/shell/README.md index 4b76af87e5d89c..7caa043d7bd63a 100644 --- a/examples/shell/README.md +++ b/examples/shell/README.md @@ -34,9 +34,8 @@ Done - [exit](#exit) - [help](#help) - [otcli](README_OTCLI.md) -- [ping](#ping) - [rand](#rand) -- [server](README_SERVER.md) +- server - [version](#version) ## Matter Shell Command Details diff --git a/examples/shell/README_SERVER.md b/examples/shell/README_SERVER.md index 4b1133ea1cf6af..93af1bb7884e36 100644 --- a/examples/shell/README_SERVER.md +++ b/examples/shell/README_SERVER.md @@ -7,7 +7,6 @@ The all-clusters-app server may be invoked and managed via the Matter Shell CLI. - [help](#help) - [clusters](#clusters) - [endpoints](#endpoints) -- [exchanges](#exchanges) - [port](#port) - [sessions](#sessions) - [start](#start) diff --git a/examples/shell/mbed/README.md b/examples/shell/mbed/README.md index 02738126c8e0de..16a9f987bc5c8f 100644 --- a/examples/shell/mbed/README.md +++ b/examples/shell/mbed/README.md @@ -1,6 +1,6 @@ ![ARM Mbed-OS logo](https://raw.githubusercontent.com/ARMmbed/mbed-os/master/logo.png) -

Matter Arm Mbed OS Shell Example Application

+# Matter Arm Mbed OS Shell Example Application The Arm Mbed OS Shell Example exposes configuration and management APIs via a command line interface (CLI). Use the shell CLI to experiment with Matter @@ -28,7 +28,7 @@ supports remote access and control of device over serial port.
-# Overview +## Overview The Matter device that runs the shell application can be controlled over serial port. The shell is used to parse a command line and call the corresponding @@ -36,9 +36,9 @@ service execution. There is a set of common shell commands which performs basic device operations. Mbed OS application also supports some custom services and corresponding shell commands allow them execution. -# Run application +## Run application -## Environment setup +### Environment setup Before building the example, check out the Matter repository and sync submodules using the following command: @@ -84,7 +84,7 @@ environment: $ source ./scripts/activate.sh ``` -## Building +### Building The shell application can be built in the same way as any other Matter example ported to the mbed-os platform. @@ -102,7 +102,7 @@ ${MATTER_ROOT}/scripts/examples/mbed_example.sh -c=build -a=shell -b= Debug Mbed examples => Start Debugging (F5) => ( It is possible to connect to an external gdb-server session by using specific **'Debug Mbed examples [remote]'** task. -## Testing +### Testing -### Serial port terminal +#### Serial port terminal To start communication open a serial terminal session and connect to the serial port of the device. You can use **mbed-tools** for this purpose @@ -195,29 +195,28 @@ Example: Hello Done -## Supported devices +### Supported devices The example supports building and running on the following mbed-enabled devices: -| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | -| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| :heavy_check_mark: |
LEDs
  • Unused
Buttons
  • Unused
Slider
  • Unused
| +| Manufacturer | Hardware platform | Build target | Platform image | Status | Platform components | +| ----------------------------------------------------- | ------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Cypress
Semiconductor](https://www.cypress.com/) | [CY8CPROTO-062-4343W](https://os.mbed.com/platforms/CY8CPROTO-062-4343W/) | `CY8CPROTO_062_4343W` |
CY8CPROTO-062-4343WCY8CPROTO-062-4343W
| ✔ |
LEDs
  • Unused
Buttons
  • Unused
Slider
  • Unused
| -#### Notes +##### Notes - More details and guidelines about porting new hardware into the Matter project with Mbed OS can be found in [MbedNewTarget](../../../docs/guides/mbedos_add_new_target.md) - Some useful information about HW platform specific settings can be found in - `shell/mbed/mbed_app.json`. - Information about this file syntax and its meaning in mbed-os project can be - found here: + `shell/mbed/mbed_app.json`. Information about this file syntax and its + meaning in mbed-os project can be found here: [Mbed-Os configuration system](https://os.mbed.com/docs/mbed-os/latest/program-setup/advanced-configuration.html)) -# Shell commands +## Shell commands The application supports common Matter shell commands. They are used to control the basic functionalities of the device. For more details visit: -[Common shell commands](../README.md#chip-shell-command-details) +[Common shell commands](../README.md#matter-shell-command-details) diff --git a/examples/shell/openiotsdk/README.md b/examples/shell/openiotsdk/README.md index 5307edf1f86cd2..3acf66098b0094 100644 --- a/examples/shell/openiotsdk/README.md +++ b/examples/shell/openiotsdk/README.md @@ -6,7 +6,7 @@ execution. There is a set of common shell commands which perform basic device operations. For more details see -[Common shell commands](../README.md#chip-shell-command-details). +[Common shell commands](../README.md#matter-shell-command-details). ## Build and run @@ -34,7 +34,7 @@ supports common Matter shell commands. They are used to control the basic functionalities of the device. For more details read: -[Common shell commands](../README.md#chip-shell-command-details) +[Common shell commands](../README.md#matter-shell-command-details) Example: diff --git a/examples/thermostat/genio/README.md b/examples/thermostat/genio/README.md index 9ed78f98c4ace9..4ae5bba01758cb 100644 --- a/examples/thermostat/genio/README.md +++ b/examples/thermostat/genio/README.md @@ -1,22 +1,18 @@ -#Matter `Genio` Thermostat Example +# Matter `Genio` Thermostat Example An example showing the use of Matter on the MediaTek `Genio` MT793X.
-- [Matter Genio Thermostat Example](#chip-genio-thermostat-example) +- [Matter Genio Thermostat Example](#matter-genio-thermostat-example) - [Introduction](#introduction) - [Building](#building) - - [Note](#note) - [Flashing the Application](#flashing-the-application) - - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes)
- - ## Introduction The `Genio` (MT793X) thermostat example provides a baseline demonstration of a @@ -32,8 +28,6 @@ The thermostat example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the MediaTek platform. - - ## Building - Following the Linux related descriptions in diff --git a/examples/thermostat/silabs/efr32/README.md b/examples/thermostat/silabs/efr32/README.md index 098f652150e49d..7851045590776a 100644 --- a/examples/thermostat/silabs/efr32/README.md +++ b/examples/thermostat/silabs/efr32/README.md @@ -32,8 +32,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. > release with added tools and documentation. > [Silabs Matter Github](https://github.com/SiliconLabs/matter/releases) - - ## Introduction The EFR32 Thermostat example provides a baseline demonstration of a thermostat @@ -53,8 +51,6 @@ The light switch example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the Silicon Labs platform. - - ## Building - Download the @@ -181,15 +177,11 @@ Silicon Labs platform. $ gn gen out/debug --args='import("//with_pw_rpc.gni")' $ ninja -C out/debug - [Running Pigweed RPC console](#running-pigweed-rpc-console) - For more build options, help is provided when running the build script without arguments ./scripts/examples/gn_efr32_example.sh - - ## Flashing the Application - On the command line: @@ -199,8 +191,6 @@ arguments - Or with the Ozone debugger, just load the .out file. - - ## Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) @@ -249,8 +239,6 @@ combination with JLinkRTTClient as follows: $ JLinkRTTClient - - ## Running the Complete Example - It is assumed here that you already have an OpenThread border router @@ -334,8 +322,6 @@ combination with JLinkRTTClient as follows: #Add Ipv6 route on PC(Linux) \$ sudo ip route add /64 via 2002::2 - - ## Running RPC console - As part of building the example with RPCs enabled the chip_rpc python diff --git a/examples/tv-app/linux/README.md b/examples/tv-app/linux/README.md index 8583b9fbb2de4c..147c6c81804f55 100644 --- a/examples/tv-app/linux/README.md +++ b/examples/tv-app/linux/README.md @@ -16,8 +16,6 @@ Desktop 20.10 (aarch64)**
- - ## Building - Install tool chain @@ -37,8 +35,6 @@ Desktop 20.10 (aarch64)** $ cd ~/connectedhomeip/examples/tv-app/linux $ rm -rf out/ - - ## Exercising Commissioning - Regular Commissioning diff --git a/examples/tv-casting-app/android/README.md b/examples/tv-casting-app/android/README.md index 28069c854ab8e5..87e7fa109b3e7a 100644 --- a/examples/tv-casting-app/android/README.md +++ b/examples/tv-casting-app/android/README.md @@ -18,8 +18,6 @@ the TV.
- - ## Requirements for building You need Android SDK 21 & NDK downloaded to your machine. Set the @@ -27,8 +25,6 @@ You need Android SDK 21 & NDK downloaded to your machine. Set the `$ANDROID_NDK_HOME` environment variable to point to where the NDK package is downloaded. - - ### ABIs and TARGET_CPU `TARGET_CPU` can have the following values, depending on your smartphone CPU @@ -41,8 +37,6 @@ architecture: | x86 | x86 | | x86_64 | x64 | - - ### Gradle & JDK Version We are using Gradle 7.1.1 for all android project which does not support Java 17 @@ -57,8 +51,6 @@ export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home/
- - ## Preparing for build Complete the following steps to prepare the Matter build: @@ -71,8 +63,6 @@ Complete the following steps to prepare the Matter build: source scripts/bootstrap.sh ``` - - ## Building & Installing the app This is the simplest option. In the command line, run the following command from diff --git a/examples/tv-casting-app/linux/README.md b/examples/tv-casting-app/linux/README.md index e821878d2668cd..8cd5df4d297c2a 100644 --- a/examples/tv-casting-app/linux/README.md +++ b/examples/tv-casting-app/linux/README.md @@ -14,8 +14,6 @@ commissioned. Then it allows the user to send CHIP commands to the TV.
- - ## Building - Install tool chain @@ -35,8 +33,6 @@ commissioned. Then it allows the user to send CHIP commands to the TV. $ cd ~/connectedhomeip/examples/tv-casting-app/linux $ rm -rf out/ - - ## Running the Complete Example on Linux - Pre-requisite: Build and run the tv-app diff --git a/examples/window-app/nrfconnect/README.md b/examples/window-app/nrfconnect/README.md index 8088df14b42807..415401e269b25a 100644 --- a/examples/window-app/nrfconnect/README.md +++ b/examples/window-app/nrfconnect/README.md @@ -5,10 +5,8 @@ window shutter device. It uses buttons to test changing cover position and device states and LEDs to show the state of these changes. You can use this example as a reference for creating your own application. -

- Nordic Semiconductor logo - nRF52840 DK -

+Nordic Semiconductor logo +nRF52840 DK The example is based on [Matter](https://github.com/project-chip/connectedhomeip) and Nordic @@ -25,7 +23,7 @@ into an existing Matter network and can be controlled by this network. - [Bluetooth LE rendezvous](#bluetooth-le-rendezvous) - [Device Firmware Upgrade](#device-firmware-upgrade) - [Requirements](#requirements) - - [Supported devices](#supported_devices) + - [Supported devices](#supported-devices) - [Device UI](#device-ui) - [Setting up the environment](#setting-up-the-environment) - [Using Docker container for setup](#using-docker-container-for-setup) @@ -44,8 +42,6 @@ into an existing Matter network and can be controlled by this network.
- - ## Overview This example is running on the nRF Connect platform, which is based on Nordic @@ -147,16 +143,12 @@ section to learn how to change MCUboot and flash configuration in this example.
- - ## Requirements The application requires a specific revision of the nRF Connect SDK to work correctly. See [Setting up the environment](#setting-up-the-environment) for more information. - - ### Supported devices The example supports building and running on the following devices: @@ -168,8 +160,6 @@ The example supports building and running on the following devices:
- - ## Device UI This section lists the User Interface elements that you can use to control and @@ -270,7 +260,7 @@ image that has the tools pre-installed. If you are a macOS user, you won't be able to use the Docker container to flash the application onto a Nordic development kit due to [certain limitations of Docker for macOS](https://docs.docker.com/docker-for-mac/faqs/#can-i-pass-through-a-usb-device-to-a-container). -Use the [native shell](#using-native-shell) for building instead. +Use the [native shell](#using-native-shell-for-setup) for building instead. ### Using Docker container for setup @@ -353,8 +343,6 @@ Now you can proceed with the [Building](#building) instruction.
- - ## Building Complete the following steps, regardless of the method used for setting up the @@ -445,8 +433,6 @@ example `nrf52840dk_nrf52840`), edit the `pm_static_dfu.yml` file located in the
- - ## Configuring the example The Zephyr ecosystem is based on Kconfig files and the settings can be modified @@ -495,8 +481,6 @@ page.
- - ## Flashing and debugging To flash the application to the device, use the west tool and run the following diff --git a/examples/window-app/silabs/efr32/README.md b/examples/window-app/silabs/efr32/README.md index dda149285a8f91..58691ca93e857a 100644 --- a/examples/window-app/silabs/efr32/README.md +++ b/examples/window-app/silabs/efr32/README.md @@ -26,8 +26,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. > release with added tools and documentation. > [Silabs Matter Github](https://github.com/SiliconLabs/matter/releases) - - ## Introduction The EFR32 window-covering example provides a baseline demonstration of a Window @@ -48,8 +46,6 @@ The window-covering example is intended to serve both as a means to explore the workings of Matter as well as a template for creating real products based on the Silicon Labs platform. - - ## Building - Download the @@ -145,15 +141,11 @@ Silicon Labs platform. $ gn gen out/debug --args='import("//with_pw_rpc.gni")' $ ninja -C out/debug - [Running Pigweed RPC console](#running-pigweed-rpc-console) - For more build options, help is provided when running the build script without arguments ./scripts/examples/gn_efr32_example.sh - - ## Flashing the Application - On the command line: @@ -163,8 +155,6 @@ arguments - Or with the Ozone debugger, just load the .out file. - - ## Viewing Logging Output The example application is built to use the SEGGER Real Time Transfer (RTT) @@ -213,8 +203,6 @@ combination with JLinkRTTClient as follows: $ JLinkRTTClient - - ## Running the Complete Example - It is assumed here that you already have an OpenThread border router @@ -344,13 +332,11 @@ combination with JLinkRTTClient as follows: # Add Ipv6 route on PC (Linux) $ sudo ip route add /64 via 2002::2 - - ## OTA Software Update For the description of Software Update process with EFR32 example applications see -[EFR32 OTA Software Update](../../../docs/guides/silabs_efr32_software_update.md) +[EFR32 OTA Software Update](../../../../docs/guides/silabs_efr32_software_update.md) ## Building options