Skip to content

Commit

Permalink
Pull request #67: v0.3.0 documentation updates based on Catherine's r…
Browse files Browse the repository at this point in the history
…eview

Merge in WMN_TOOLS/matter from cjo_review_silabs_doc to silabs

Squashed commit of the following:

commit 94d3c1f81fc61ca9bb7cdbb7aee582b9f10248df
Author: Ezra Hale <[email protected]>
Date:   Wed Sep 7 09:06:15 2022 -0400

    fix typo 0.4.0 -> 0.3.0

commit c5074af84b3063b044d9c93e49ec1084b1536688
Author: Ezra Hale <[email protected]>
Date:   Wed Sep 7 08:28:03 2022 -0400

    added change to Raspi image password

commit 9ae5509e5dacc4b42d568b9d73b6bab0e8ee6227
Author: Rehan Rasool <[email protected]>
Date:   Tue Sep 6 19:41:20 2022 -0400

    Fix broken link

commit 54cb8f70fa3f3e7f8fb5c791dc23fe6d2a93f4a3
Author: Rehan Rasool <[email protected]>
Date:   Tue Sep 6 19:27:12 2022 -0400

    Shorten URL

commit 8c9192f0297f8fce1e2c13c4eab8079d7488f6f1
Author: Rehan Rasool <[email protected]>
Date:   Tue Sep 6 19:23:41 2022 -0400

    Add note about release notes and fix couple of links

commit ce5bc0c2a814fbb3c76f0d86a5f79428ca9b79a2
Author: Ezra Hale <[email protected]>
Date:   Tue Sep 6 14:44:00 2022 -0400

    responses to Catherine's requests and edits accordingly

commit 24fe8605729429a5286e1fcf4b9263cc99cd9a1a
Author: Sergei Lissianoi <[email protected]>
Date:   Tue Sep 6 13:41:55 2022 -0400

    Fix link typo

commit 6cd97c58ced1f587f46c945acfe03b5d39d2bcdb
Author: rosahay-silabs <[email protected]>
Date:   Tue Sep 6 19:54:28 2022 +0530

    Removing unnecessary steps from documentation

commit b89507a2def8c582d51ef000bd96cbc26d155cab
Author: rosahay-silabs <[email protected]>
Date:   Tue Sep 6 19:42:09 2022 +0530

    Adds updated documentation as per comments

commit 2f423f314df5c6e88b5986f377bd09b02f7cb2fe
Author: Sergei Lissianoi <[email protected]>
Date:   Tue Sep 6 09:52:44 2022 -0400

    Update link to the Thread demo doc

commit 0dd35a545a1be726f897f0e53081e981c9207710
Author: cjo-tra <[email protected]>
Date:   Mon Sep 5 16:18:23 2022 -0400

    Edits for v 0.3.0

commit 8ee2a7d3a4d5d9fc632bf621ebfe1747916abfce
Author: Shrinivas <[email protected]>
Date:   Mon Sep 5 19:30:52 2022 +0530

    Added updated documents for wifi
  • Loading branch information
rerasool authored and jmartinez-silabs committed Oct 17, 2023
1 parent 12b5659 commit 3d57248
Show file tree
Hide file tree
Showing 33 changed files with 694 additions and 325 deletions.
34 changes: 28 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,34 @@

# Silicon Labs Matter

Welcome to the Silicon Labs Matter Github repo. This is your one stop shop for
all things related to Silicon Labs and Matter development.

**To develop a Matter application with Silicon Labs please start here:**

**[Silicon Labs Matter Table of Contents](./docs/silabs/README.md)**
Welcome to the Silicon Labs Matter Github repo. Matter is an application layer
that provides a standardized interface between protocols and devices. With
Matter, it is transparent to the underlying device whether the interaction is
from a Thread application or a Wi-Fi application. For more information on Matter
in general see the main
[Matter Overview](https://www.silabs.com/wireless/matter) page. This repo is the
starting point for all Silicon Labs-related Matter development. Silicon Labs
supports Matter on both 802.15.4 (Thread) and 802.11 (Wi-Fi) transport
protocols.

_To see release notes containing list of features and knowns issues go to
[SiliconLabs/matter/releases](https://github.com/SiliconLabs/matter/releases)
and find the corresponding notes for the release you are using._

![Silicon Labs](./docs/silabs/images/silicon_labs_matter.png)

This repo contains documentation, demos, examples and all the code needed for
Matter Accessory Device development on both Thread and Wi-Fi. The Thread
development use cases differs from Wi-Fi because the Thread protocol requires
the use of an Open Thread Border Router (OTBR).

- To get started with the Thread demo and development see
[Matter Thread](./docs/silabs/thread/DEMO_OVERVIEW.md)
- To get started with the Wi-Fi demo and development see
[Matter Wi-Fi](./docs/silabs/wifi/DEMO_OVERVIEW.md)

The full documentation set starts here:
[Silicon Labs Matter Table of Contents](./docs/silabs/README.md)

---

Expand Down
20 changes: 11 additions & 9 deletions docs/silabs/OVERVIEW.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# Silicon Labs Matter Repo Overview
# Silicon Labs Matter User's Guide Overview

Welcome to the Silicon Labs Matter Repo. For more information on Matter in general see the main [Matter Overview](https://www.silabs.com/wireless/matter) page.

Silicon Labs supports Matter on both 802.15.4 (Thread) and 802.11 (Wi-Fi) transport protocols.

This Repo is the starting point for all Silicon Labs-related Matter development. In this repo you will find documentation, demos, examples and all the code needed for Matter Accessory Device development on both Thread and Wi-Fi.
Welcome to the Silicon Labs Matter user documentation set. This provides all of the information required to use the Matter demos or start development with Matter on the Thread and Wi-Fi transport protocols.

The Thread development use cases differs from Wi-Fi because the Thread protocol requires the use of an Open Thread Border Router (OTBR).

The Thread demo and development use case is described in the Thread section of this documentation located here: [Matter Thread](./thread/DEMO_OVERVIEW.md)
This content covers

The Wi-Fi demo and development use case is described in the Wi-Fi section of this documentation located here: [Matter Wi-Fi](./wifi/DEMO_OVERVIEW.md)
- Software and Hardware prerequisites for working with Silicon Labs Matter.
- [Thread demo and development information](./thread/DEMO_OVERVIEW.md)
- [Wi-Fi demo and development information](./wifi/DEMO_OVERVIEW.md)
- Information on using [VSCode and the provided container environment](./dev/vscode/SETUP.md)
- A list of useful reference guides
- Frequently asked questions about both Thread and Wi-Fi development

----
[Table of Contents](./README.md) | [Thread Demo](./thread/DEMO_OVERVIEW.md) | [Wi-Fi Demo](./wifi/DEMO_OVERVIEW.md)

[Table of Contents](./README.md)
6 changes: 3 additions & 3 deletions docs/silabs/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Silicon Labs Matter Table of Contents

1. [Silicon Labs Matter Overview](OVERVIEW.md) <br>
1. [Silicon Labs Matter Documentation Overview](OVERVIEW.md) <br>

2. Matter Pre-requisites
2. Matter Prerequisites

1. [Matter Hardware Requirements](general/HARDWARE_REQUIREMENTS.md)
2. [Matter Software Requirements](general/SOFTWARE_REQUIREMENTS.md) <br><br>
Expand Down Expand Up @@ -44,7 +44,7 @@
8. [Building a Custom Matter Device](general/CUSTOM_MATTER_DEVICE.md)
9. [Matter OTA Software Update](general/OTA_SOFTWARE_UPDATE.md)
10. [Matter Attestation Credentials for EFR32](../../silabs_examples/credentials/README.md)
11. [Using Simplicity Studio's Pin Tool and Project Configurator with Matter](./general/PINTOOL.m)
11. [Using Simplicity Studio's Pin Tool and Project Configurator with Matter](./general/PINTOOL.md)
12. [Using Simplicity Studio's BLE GATT Configurator with Matter](./general/GATT.md)
13. [Using Simplicity Studio's Energy Profiler with Matter](./general/EP.md)
14. [Using Wireshark to Capture Network Traffic in Matter](./general/WIRESHARK.md)<br><br>
Expand Down
13 changes: 6 additions & 7 deletions docs/silabs/dev/vscode/BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Search for "run build task" and select the "Run Build Task" option.

### Step 3:

A new drop down menu will appear, select "Build efr32 example".
A new drop down menu will appear. Select "Build efr32 example".

### Step 4:

Expand All @@ -31,7 +31,7 @@ Select the appropriate target board.

## Windows

Building for Windows requires one extra step prior to running the build example
Building for Windows requires one extra step before running the build example
task.

### Step 1:
Expand All @@ -40,8 +40,7 @@ Press (Ctrl + Shift + P) to trigger the command pallet.

### Step 2:

Search for "run build task" and select "Run build task" from the drop
down menu.
Search for "run build task" and select "Run build task" from the drop-down menu.

### Step 3:

Expand All @@ -50,10 +49,10 @@ On the next menu, select "Windows setup" from the options.
### Step 4:

The next menu contains two options, "setup" and
"cleanup". Select _setup_ in order to initiate the setup process or _cleanup_ to
clean up the environment after building the examples. This step installs crucial
"cleanup". Select _setup_ in order to initiate the setup process. This step installs crucial
packages that are required to build the examples such as openssl. if openssl
is not detected, an installation will be initiated in a new window. Follow the installation prompts in order for the setup to be successful.
is not detected, an installation will be initiated in a new window. Follow the installation prompts in order for the setup to be successful. Select _cleanup_ to
clean up the environment after building the examples.

### Step 5:

Expand Down
9 changes: 4 additions & 5 deletions docs/silabs/dev/vscode/DEBUG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Debugging in VS Code

This section covers remote Debugging (GDB jlink) of Matter Examples in VS Code.
This section covers remote debugging (GDB jlink) of Matter examples in VS Code.

## Requirements

Expand All @@ -14,7 +14,7 @@ This section covers remote Debugging (GDB jlink) of Matter Examples in VS Code.

## Settings

Before starting a debug session please ensure the following:
Before starting a debug session ensure the following:

<ol>
<div style="text-align: justify">
Expand All @@ -32,8 +32,7 @@ Use the shortcut (Ctrl + Shift + P) to trigger the command pallet.

### Step 2:

A drop down menu will appear along with a prompt. Please
select the "Debug efr32 example app" and Start Debugging, or press F5 on
A drop-down menu will appear along with a prompt. Select the "Debug efr32 example app" and Start Debugging, or press F5 on
your keyboard.

### Step 3:
Expand All @@ -42,7 +41,7 @@ Select the example you want to debug.

### Step 4:

Select the desired target device, from the drop down menu.
From the drop-down menu, select the desired target device.

![](../../images/debug_session.gif)

Expand Down
4 changes: 2 additions & 2 deletions docs/silabs/dev/vscode/FLASH.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,13 @@ Select "Flash efr32 example" from the options.

### Step 4:

On the next down menu, please choose the proper example to flash to your
On the next menu, select the example to flash to your
target device. The example must have an "out" directory that contains a
binary file with the ".out" extension.

### Step 4:

The final prompt will ask the user to choose the target device. Please select the target device.
In response to the final prompt, select the target device.

## ![](../../images/flash_efr32_example.gif)

Expand Down
14 changes: 7 additions & 7 deletions docs/silabs/dev/vscode/SETUP.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Setup VS Code environment
# Set Up the VS Code environment

## Requirements
## General Requirements

1. Install Visual Studio Code for your operating system of choice here:
https://code.visualstudio.com/Download
Expand All @@ -20,19 +20,19 @@
8. ARM GCC Toolchain
(https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads) -
required arm-none-eabi tools
9. J-Link Software Tools - required J-Link GDB Server for J-Link based debuggers
9. J-Link Software Tools - required J-Link GDB Server for J-Link-based debuggers
(https://www.segger.com/downloads/jlink)
10. Python - (https://www.python.org/downloads/)

### Installing prerequisites on macOS

On macOS, first install Xcode from the Mac App Store. The remaining dependencies
can be installed and satisfied using [Brew](https://brew.sh/):
On macOS, you must install Xcode from the Mac App Store. The remaining
dependencies can be installed and satisfied using [Brew](https://brew.sh/):

> `$ brew install openssl pkg-config`
However, that does not expose the package to `pkg-config`. To fix that, one
needs to run something like the following:
However, that does not expose the package to `pkg-config`. To fix that, run
something like the following:

Intel:

Expand Down
4 changes: 2 additions & 2 deletions docs/silabs/general/ARTIFACTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ used to set up the Matter Demo for the Thread and Wi-Fi use cases.

The Matter Hub image is intended to be flashed onto an SD card for a Raspberry
Pi. The Matter Hub Image provides both an Open Thread Border Router and the
Matter "ChipTool". Note the image is ~10GB in size so depending on your internet
Matter chiptool. Note the image is ~10GB in size so depending on your internet
connection this download may take some time. Start the Matter Hub Raspberry Pi
image download here:

Expand Down Expand Up @@ -41,7 +41,7 @@ https://github.com/SiliconLabs/matter/releases/tag/v0.3.0
## Matter Bootloader Binaries

If you are using the OTA functionality and especially if you are using an
EFR32MG2x device you will need to flash a bootloader binary on your device along
EFR32MG2x device, you will need to flash a bootloader binary on your device along
with the application image. Bootloader binaries for all of the Matter supported
devices are available here:

Expand Down
34 changes: 17 additions & 17 deletions docs/silabs/general/CUSTOM_MATTER_DEVICE.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Custom Matter Device Development

Build a customizable lighting app using the Matter protocol
Build a customizable lighting app using the Matter protocol.

## Overview

This guide will cover the basics of building a customizable lighting application
This guide covers the basics of building a customizable lighting application
using Matter.

## Using Matter with Clusters
Expand All @@ -25,12 +25,12 @@ Note that you can also create your own custom cluster.
## ZAP configuration

From the matter repository, run the following command in a terminal to launch
the ZAP UI. This will open up the ZAP configuration for the EFR32 lighting
the ZAP user interface (UI). This will open up the ZAP configuration for the EFR32 lighting
application example.

> `$ ./scripts/tools/zap/run_zaptool.sh examples/lighting-app/lighting-common/lighting-app.zap`
On the left hand side of the application, there is a tab for Endpoint 0 and
On the left side of the application, there is a tab for Endpoint 0 and
Endpoint 1. Endpoint 0 is known as the root node. This endpoint is akin to a
"read me first" endpoint that describes itself and the other endpoints that make
up the node. Endpoint 1 represents a lighting application device type. There are
Expand All @@ -39,23 +39,23 @@ common across most device types, such as identify and group clusters. Others,
such as the On/Off, Level Control and Color Control clusters are required for a
lighting application device type.

Clicking on the blue settings icon on the right hand side of the application
will bring you to the zap configuration settings for that cluster. Each cluster
Clicking on the blue settings icon on the right side of the application
brings you to the zap configuration settings for that cluster. Each cluster
has some required attributes that may cause compile-time errors if they are not
selected in the zap configuration. Other attributes are optional and are allowed
to be disabled. Clusters also have a list of client-side commands, again some
are mandatory and others are optional depending on the cluster. ZCL offers an
extensive list of optional attributes and commands that allow you to customize
your application to the full power of the Matter SDK.

For example, if one was building a lighting application which only includes
For example, if a lighting application only includes
single color LEDs instead of RGB LEDs, it might make sense to disable the Color
Control cluster in the ZAP configuration. Similarly, if one were to build a
lighting application that doesn't take advantage of the Level Control cluster,
Control cluster in the ZAP configuration. Similarly, if a
lighting application doesn't take advantage of the Level Control cluster,
which allows you to customize current flow to an LED, it might make sense to
disable the Level Control cluster.

Each time a modification is made to the ZAP UI, one must save (Electron→Save on
Each time a modification is made to the ZAP UI, save (Electron→Save on
a Mac toolbar) the current ZAP configuration and run the following command to
generate ZAP code.

Expand All @@ -73,7 +73,7 @@ received.
## Adding a cluster to a ZAP configuration

In the ZAP UI, navigate to the Level Control cluster. Make sure this cluster is
enabled as a server in the drop down menu in the "Enable" column. Then click on
enabled as a server in the drop-down menu in the "Enable" column. Then click on
the blue settings wheel in the "Configure" column. This cluster can be used to
gather power source configuration settings from a Matter device. It contains a
few required attributes, and a number of optional attributes.
Expand All @@ -86,13 +86,13 @@ is set to enabled. Set the default value of this attribute as 1.
## Adding a new command

Navigate to the commands tab in zap and enable the MoveToLevel command. Now save
the current zap configuration, and run the aforementioned generate.py script.
the current zap configuration, and run the generate.py script above.

## React to Level Control cluster commands in ZclCallbacks

In the MatterPostAttributeCallback function in ZclCallbacks, add the following
line of code or similar. This will give the application the ability to react to
MoveToLevel commands. The developer can define platform specific behavior for a
line of code or a similar line. This will give the application the ability to react to
MoveToLevel commands. You can define platform-specific behavior for a
MoveToLevel action.

else if (clusterId == LevelControl::Id)
Expand All @@ -113,16 +113,16 @@ MoveToLevel action.
Rebuild the application and load the new executable on your EFR32 device. Send
the following mattertool commands and verify that the current-level default
attribute was updated as was configured. Replace {desired_level} with 10, and
node_ID with the node ID assigned to the device upon commissioning
node_ID with the node ID assigned to the device upon commissioning.

> `$ mattertool levelcontrol read current-level 1 1 // Returns 1`
> `$ mattertool levelcontrol move-to-level {desired_level} 0 1 1 {node_ID} 1`
> `$ mattertool levelcontrol read current-level 1 1 // Returns 10`
More Information Silicon Labs lighting example on a Thunderboard Sense 2 -
[sl-newlight/efr32](../../../silabs_examples/sl-newLight/efr32/README.md)
For more information on running a Silicon Labs lighting example on a Thunderboard Sense 2 see
[sl-newlight/efr32](../../../silabs_examples/sl-newLight/efr32/README.md).

---

Expand Down
10 changes: 5 additions & 5 deletions docs/silabs/general/EP.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Using Simplicity Studio's Energy Profiler with Matter

Simplicity Studio's Energy Profiler allows the developer to see a graphical view
of their devices energy usage over time. This can be very useful when developing
an energy friendly device.
of their device's energy usage over time. This can be very useful when
developing an energy-friendly device.

Using Energy Profiler with Matter is the same as any other protocol except that
you need to start the usage from within Energy Profiler rather than using an
existing Simplicity Studio project since your Matter project will not have been
created inside Simplicity Studio.
you need to start the usage from within Energy Profiler inside Simplicity
Studio, rather than using an existing Simplicity Studio project, since your
Matter project will not have been created inside Simplicity Studio.

Complete documentation on using the Simplicity Studio Energy Profiler is
provided in the
Expand Down
2 changes: 1 addition & 1 deletion docs/silabs/general/FIND_RASPI.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Sometimes it can be difficult to find your Raspberry Pi on the network. One way of interacting with the Raspberry Pi is connecting a keyboard, mouse and monitor to it. The preferred method, however, is over SSH. For this, you will need to know the IP address of your Raspberry Pi.

[This](https://raspberryexpert.com/find-raspberry-pi-ip-address/) is a good tutorial on how to find the IP address.
This is a [good tutorial](https://raspberryexpert.com/find-raspberry-pi-ip-address/) on how to find the IP address.


| Platform | Strategy |
Expand Down
11 changes: 3 additions & 8 deletions docs/silabs/general/GATT.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,12 @@
# Using Simplicity Studio's GATT Configurator with Matter

The Simplicity Studio Bluetooth GATT Configurator is an Advanced Configurator
within the Simplitiy Studio Project Confguration suite. For more information on
within the Simplicity Studio Project Configuration suite. For more information on
using the
[Simplicity Studio Project Configurator in Matter please refer to this guide](./PINTOOL.md).
[Simplicity Studio Project Configurator in Matter refer to this guide](./PINTOOL.md).
Use of the BLE GATT Configurator in Matter assumes that you are already familiar
with creating and using an `Empty C++` Project in Simplicity Studio.

Once you have created your `Empty C++` project, you can add the Bluetooth
component which will give you access to the GATT configurator for your project.
More information on use of the
[BLE GATT Configurator in Simplicity Studio is provided here](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-developing-with-project-configurator/bluetooth-gatt-configurator).

The basic steps for using the Simplicity Studio BLE GATT Configurator are as
follows:

Expand All @@ -37,7 +32,7 @@ follows:
More information on using the
[BLE GATT Configurator is provided here.](https://docs.silabs.com/simplicity-studio-5-users-guide/latest/ss-5-users-guide-developing-with-project-configurator/bluetooth-gatt-configurator)

5. Save your project which will force the generation of your BLE GATT
5. Save your project, which will force the generation of your BLE GATT
Configuration

6. BLE GATT database is stored in the `autogen` folder in your project directory
Expand Down
Loading

0 comments on commit 3d57248

Please sign in to comment.