diff --git a/.github/.wordlist.txt b/.github/.wordlist.txt index 9245b0c6d8f171..b1f04c1a849bf4 100644 --- a/.github/.wordlist.txt +++ b/.github/.wordlist.txt @@ -1209,6 +1209,7 @@ Silabs's SiliconLabs SimpleFileExFlags SimpleLink +SiWx sizedb sl SLAAC @@ -1454,6 +1455,7 @@ wic WiFiNetworkDiagnostics WindowCovering WindowCoveringGoToLiftPercentage +WiseMCU wlan wmm WPA diff --git a/examples/light-switch-app/silabs/SiWx917/README.md b/examples/light-switch-app/silabs/SiWx917/README.md index b08f29749e09cd..b20818392ebb72 100644 --- a/examples/light-switch-app/silabs/SiWx917/README.md +++ b/examples/light-switch-app/silabs/SiWx917/README.md @@ -1,10 +1,10 @@ -# Matter EFR32 Light Switch Example +# Matter SiWx917 Light Switch Example -An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. +An example showing the use of CHIP on the Silicon Labs SiWx917 SoC device.
-- [Matter EFR32 Light Switch Example](#matter-efr32-light-switch-example) +- [Matter SiWx917 Light Switch Example](#matter-siwx917-light-switch-example) - [Introduction](#introduction) - [Building](#building) - [Linux](#linux) @@ -13,11 +13,8 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes) - - [On Border Router:](#on-border-router) - [On PC(Linux):](#on-pclinux) - - [Running RPC console](#running-rpc-console) - [Memory settings](#memory-settings) - - [OTA Software Update](#ota-software-update) - [Building options](#building-options) - [Disabling logging](#disabling-logging) - [Debug build / release build](#debug-build--release-build) @@ -34,18 +31,19 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. ## Introduction -The EFR32 light switch example provides a baseline demonstration of a on-off -light switch device, built using Matter and the Silicon Labs gecko SDK. It can -be controlled by a Chip controller over an Openthread or Wifi network. +The SiWx917 light switch example provides a baseline demonstration of an on-off +light switch device, built using Matter, the Silicon Labs Gecko SDK, and the +Silicon Labs WiseMCU SDK. It can be controlled by a Chip controller over a Wi-Fi +network. -The EFR32 device can be commissioned over Bluetooth Low Energy where the device -and the Chip controller will exchange security information with the Rendez-vous -procedure. If using Thread, Thread Network credentials are then provided to the -EFR32 device which will then join the network. +The SiWx917 device can be commissioned over Bluetooth Low Energy where the +device and the Chip controller will exchange security information with the +rendezvous procedure. Wi-Fi Network credentials are then provided to the SiWx917 +device which will then join the Wi-Fi network. If the LCD is enabled, the LCD on the Silabs WSTK shows a QR Code containing the needed commissioning information for the BLE connection and starting the -Rendez-vous procedure. +rendezvous procedure. 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 @@ -78,263 +76,59 @@ Silicon Labs platform. > [Hardware Requirements](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/general/HARDWARE_REQUIREMENTS.md) > in the Silicon Labs Matter Github Repo - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/efr32/ ./out/light-switch-app BRD4161A + ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/SiWx917/ ./out/light-switch-app BRD4325A --wifi rs911x - To delete generated executable, libraries and object files use: $ cd ~/connectedhomeip $ rm -rf ./out/ - OR use GN/Ninja directly - - $ cd ~/connectedhomeip/examples/light-switch-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug - $ ninja -C out/debug - -- To delete generated executable, libraries and object files use: - - $ cd ~/connectedhomeip/examples/light-switch-app/efr32 - $ rm -rf out/ - -* Build the example with Matter shell - - ./scripts/examples/gn_efr32_example.sh examples/light-switch-app/efr32/ out/light-switch-app BRD4161A chip_build_libshell=true - -* Build the example as Sleepy End Device (SED) - - $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/efr32/ ./out/light-switch-app_SED BRD4161A --sed - - or use gn as previously mentioned but adding the following arguments: - - $ gn gen out/debug '--args=silabs_board="BRD4161A" enable_sleepy_device=true chip_openthread_ftd=false chip_build_libshell=true' - -* Build the example with pigweed RCP - - $ ./scripts/examples/gn_efr32_example.sh examples/light-switch-app/efr32/ out/light-switch-app_rpc BRD4161A 'import("//with_pw_rpc.gni")' - - or use GN/Ninja Directly - - $ cd ~/connectedhomeip/examples/light-switch-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug --args='import("//with_pw_rpc.gni")' - $ ninja -C out/debug - - [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: - - $ cd ~/connectedhomeip/examples/lighting-app/efr32 - $ python3 out/debug/chip-efr32-light-switch-example.flash.py - -- Or with the Ozone debugger, just load the .out file. +- Flashing requires the SiWx917 SoC device to be configured in the Ozone + Debugger. +- Once it's configured, it can be run with the Ozone Debugger by loading the + .out file. + - > For detailed instructions, please refer to + > [Running the Matter Demo on SiWx917 SoC](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/wifi/RUN_DEMO_SiWx917_SoC.md) + > in the Silicon Labs Matter Github Repo ## Viewing Logging Output -The example application is built to use the SEGGER Real Time Transfer (RTT) -facility for log output. RTT is a feature built-in to the J-Link Interface MCU -on the WSTK development board. It allows bi-directional communication with an -embedded application without the need for a dedicated UART. - -Using the RTT facility requires downloading and installing the _SEGGER J-Link -Software and Documentation Pack_ -([web site](https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack)). - -Alternatively, SEGGER Ozone J-Link debugger can be used to view RTT logs too -after flashing the .out file. - -- Download the J-Link installer by navigating to the appropriate URL and - agreeing to the license agreement. - -- [JLink_Linux_x86_64.deb](https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb) -- [JLink_MacOSX.pkg](https://www.segger.com/downloads/jlink/JLink_MacOSX.pkg) - -* Install the J-Link software - - $ cd ~/Downloads - $ sudo dpkg -i JLink_Linux_V*_x86_64.deb - -* In Linux, grant the logged in user the ability to talk to the development - hardware via the linux tty device (/dev/ttyACMx) by adding them to the - dialout group. - - $ sudo usermod -a -G dialout ${USER} - -Once the above is complete, log output can be viewed using the JLinkExe tool in -combination with JLinkRTTClient as follows: - -- Run the JLinkExe tool with arguments to autoconnect to the WSTK board: - - For MG12 use: - - $ JLinkExe -device EFR32MG12PXXXF1024 -if JTAG -speed 4000 -autoconnect 1 - - For MG21 use: - - $ JLinkExe -device EFR32MG21AXXXF1024 -if SWD -speed 4000 -autoconnect 1 - -- In a second terminal, run the JLinkRTTClient to view logs: - - $ JLinkRTTClient +The example application's logging output can be viewed in the Ozone Debugger. ## Running the Complete Example -- It is assumed here that you already have an OpenThread border router - configured and running. If not see the following guide - [Openthread_border_router](https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/openthread_border_router_pi.md) - for more information on how to setup a border router on a raspberryPi. - - Take note that the RCP code is available directly through - [Simplicity Studio 5](https://www.silabs.com/products/development-tools/software/simplicity-studio/simplicity-studio-5) - under File->New->Project Wizard->Examples->Thread : ot-rcp - -- For this example to work, it is necessary to have a second efr32 device +- For this example to work, it is necessary to have a second SiWx917 device running the - [lighting app example](https://github.com/project-chip/connectedhomeip/blob/master/examples/lighting-app/efr32/README.md) - commissioned on the same openthread network - -- User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR - Code is be scanned by the CHIP Tool app For the Rendez-vous procedure over - BLE - - * On devices that do not have or support the LCD Display like the BRD4166A Thunderboard Sense 2, - a URL can be found in the RTT logs. - - [SVR] Copy/paste the below URL in a browser to see the QR Code: - [SVR] https://project-chip.github.io/connectedhomeip/qrcode.html?data=CH%3AI34NM%20-00%200C9SS0 - - **LED 0** shows the overall state of the device and its connectivity. The - following states are possible: - - - Short Flash On (50 ms on/950 ms off): The device is in the - unprovisioned (unpaired) state and is waiting for a commissioning - application to connect. - - - Rapid Even Flashing (100 ms on/100 ms off): The device is in the - unprovisioned state and a commissioning application is connected through - Bluetooth LE. - - - Short Flash Off (950ms on/50ms off): The device is fully - provisioned, but does not yet have full Thread network or service - connectivity. - - - Solid On: The device is fully provisioned and has full Thread - network and service connectivity. - - **Push Button 0** - - - _Press and Release_ : Start, or restart, BLE advertisement in fast mode. It will advertise in this mode - for 30 seconds. The device will then switch to a slower interval advertisement. - After 15 minutes, the advertisement stops. - - - _Pressed and hold for 6 s_ : Initiates the factory reset of the device. - Releasing the button within the 6-second window cancels the factory reset - procedure. **LEDs** blink in unison when the factory reset procedure is - initiated. - - **Push Button 1** + [lighting app example](https://github.com/project-chip/connectedhomeip/blob/master/examples/lighting-app/silabs/SiWx917/README.md) + commissioned on the same Wi-Fi network - - Sends a Toggle command to bound light app +* You can provision and control the Chip device using the + [chip-tool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) + standalone - **Matter shell** + Here is an example with the chip-tool for unicast commands only: - **_OnOff Cluster_** - - - 'switch onoff on' : Sends unicast On command to bound device - - 'switch onoff off' : Sends unicast Off command to bound device - - 'switch onoff toggle' : Sends unicast Toggle command to bound device - - - 'switch groups onoff on' : Sends On group command to bound group - - 'switch groups onoff off' : Sends On group command to bound group - - 'switch groups onoff toggle' : Sends On group command to bound group - - **_Binding Cluster_** - - - 'switch binding unicast ' : Creates a unicast binding - - 'switch binding group ' : Creates a group binding - -* You can provision and control the Chip device using the python controller, - [CHIPTool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) - standalone, Android or iOS app - - Here is an example with the CHIPTool for unicast commands only: + - > $SSID and $PSK are the SSID and passcode of your Wi-Fi Access Point. ``` - chip-tool pairing ble-thread 1 hex: 20202021 3840 + chip-tool pairing ble-wifi 1122 $SSID $PSK 20202021 3840 chip-tool accesscontrol write acl '[{"fabricIndex": 1, "privilege": 5, "authMode": 2, "subjects": [], "targets": null }{"fabricIndex": 1, "privilege": 3, "authMode": 2, "subjects": [1], "targets": null }]' 0 chip-tool binding write binding '[{"fabricIndex": 1, "node": , "endpoint": 1, "cluster":6}]' 1 1 ``` - Here is an example with the CHIPTool for groups commands only: + Here is an example with the chip-tool for groups commands only: ``` - chip-tool pairing ble-thread 1 hex: 20202021 3840 + chip-tool pairing ble-wifi 1122 $SSID $PSK 20202021 3840 chip-tool tests TestGroupDemoConfig --nodeId 1 @@ -359,68 +153,33 @@ combination with JLinkRTTClient as follows: ### Notes -- Depending on your network settings your router might not provide native ipv6 - 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 - -#### On Border Router: - -`$ sudo ip addr add dev 2002::2/64` +- Depending on your network settings your router might not provide native IPv6 + addresses to your devices (Router / PC). If this is the case, you need to + add a static IPv6 addresses on both devices and then an IPv6 route to the + border router on your PC #### On PC(Linux): `$ sudo ip addr add dev 2002::1/64` -#Add Ipv6 route on PC(Linux) \$ sudo ip route add /64 +#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 - interactive console is installed into your venv. The python wheel files are - also created in the output folder: out/debug/chip_rpc_console_wheels. To - install the wheel files without rebuilding: - - `pip3 install out/debug/chip_rpc_console_wheels/*.whl` - -- To use the chip-rpc console after it has been installed run: - - `chip-console --device /dev/tty. -b 115200 -o //pw_log.out` - -- Then you can simulate a button press or release using the following command - where : idx = 0 or 1 for Button PB0 or PB1 action = 0 for PRESSED, 1 for - RELEASE Test toggling the LED with - - `rpcs.chip.rpc.Button.Event(idx=1, pushed=True)` - -- You can also Get and Set the light directly using the RPCs: - - `rpcs.chip.rpc.Lighting.Get()` - - `rpcs.chip.rpc.Lighting.Set(on=True, level=128, color=protos.chip.rpc.LightingColor(hue=5, saturation=5))` - ## Memory settings While most of the RAM usage in CHIP is static, allowing easier debugging and optimization with symbols analysis, we still need some HEAP for the crypto and -OpenThread. Size of the HEAP can be modified by changing the value of the +Wi-Fi stack. Size of the HEAP can be modified by changing the value of the `configTOTAL_HEAP_SIZE` define inside of the FreeRTOSConfig.h file of this -example. Please take note that a HEAP size smaller than 13k can and will cause a -Mbedtls failure during the BLE rendez-vous or CASE session +example. Please take note that a HEAP size smaller than 13k can and will cause +an Mbedtls failure during the BLE rendezvous or CASE session To track memory usage you can set `enable_heap_monitoring = true` either in the BUILD.gn file or pass it as a build argument to gn. This will print on the RTT console the RAM usage of each individual task and the number of Memory allocation and Free. While this is not extensive monitoring you're welcome to -modify `examples/platform/efr32/MemMonitoring.cpp` to add your own memory -tracking code inside the `trackAlloc` and `trackFree` function - -## 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) +modify `examples/platform/silabs/SiWx917/MemMonitoring.cpp` to add your own +memory tracking code inside the `trackAlloc` and `trackFree` function ## Building options @@ -432,19 +191,19 @@ features can easily be toggled on or off. Here is a short list of options : chip_progress_logging, chip_detail_logging, chip_automation_logging - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/SiWx917 ./out/light-switch-app BRD4325A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" --wifi rs911x ### Debug build / release build is_debug - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/SiWx917 ./out/light-switch-app BRD4325A "is_debug=false" --wifi rs911x ### Disabling LCD show_qr_code - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/SiWx917 ./out/light-switch-app BRD4325A "show_qr_code=false" --wifi rs911x ### KVS maximum entry count @@ -453,4 +212,4 @@ kvs_max_entries Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_efr32_example.sh ./examples/light-switch-app/silabs/SiWx917 ./out/light-switch-app BRD4325A kvs_max_entries=50 --wifi rs911x diff --git a/examples/lighting-app/silabs/SiWx917/README.md b/examples/lighting-app/silabs/SiWx917/README.md index 6ec100ade5d46a..58c449ad116be1 100644 --- a/examples/lighting-app/silabs/SiWx917/README.md +++ b/examples/lighting-app/silabs/SiWx917/README.md @@ -1,20 +1,17 @@ -# Matter EFR32 Lighting Example +# Matter SiWx917 Lighting Example -An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. +An example showing the use of CHIP on the Silicon Labs SiWx917.
-- [Matter EFR32 Lighting Example](#matter-efr32-lighting-example) +- [Matter SiWx917 Lighting Example](#matter-siwx917-lighting-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - - [Notes](#notes) - - [Running RPC console](#running-rpc-console) - - [Device Tracing](#device-tracing) + - [Notes](#notes) - [Memory settings](#memory-settings) - - [OTA Software Update](#ota-software-update) - [Group Communication (Multicast)](#group-communication-multicast) - [Building options](#building-options) - [Disabling logging](#disabling-logging) @@ -30,25 +27,30 @@ 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 -device, built using Matter and the Silicon Labs gecko SDK. It can be controlled -by a Chip controller over an Openthread or Wifi network.. +The SiWx917 lighting example provides a baseline demonstration of a Light +control device, built using Matter, the Silicon Labs Gecko SDK, and the Silicon +Labs WiseMCU SDK. It can be controlled by a Chip controller over a Wi-Fi +network. -The EFR32 device can be commissioned over Bluetooth Low Energy where the device -and the Chip controller will exchange security information with the Rendez-vous -procedure. If using Thread, Thread Network credentials are then provided to the -EFR32 device which will then join the Thread network. +The SiWx917 device can be commissioned over Bluetooth Low Energy where the +device and the Chip controller will exchange security information with the +rendezvous procedure. Wi-Fi Network credentials are then provided to the SiWx917 +device which will then join the Wi-Fi network. If the LCD is enabled, the LCD on the Silabs WSTK shows a QR Code containing the needed commissioning information for the BLE connection and starting the -Rendez-vous procedure. +rendezvous procedure. 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 @@ -72,284 +74,69 @@ Silicon Labs platform. > [Hardware Requirements](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/general/HARDWARE_REQUIREMENTS.md) > in the Silicon Labs Matter Github Repo - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32/ ./out/lighting-app BRD4161A + ./scripts/examples/gn_efr32_example.sh examples/lighting-app/silabs/SiWx917/ out/test BRD4325A --wifi rs911x - To delete generated executable, libraries and object files use: $ cd ~/connectedhomeip $ rm -rf ./out/ - OR use GN/Ninja directly - - $ cd ~/connectedhomeip/examples/lighting-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug - $ ninja -C out/debug - -- To delete generated executable, libraries and object files use: - - $ cd ~/connectedhomeip/examples/lighting-app/efr32 - $ rm -rf out/ - -* Build the example as Sleepy End Device (SED) - - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32/ ./out/lighting-app_SED BRD4161A --sed - - or use gn as previously mentioned but adding the following arguments: - - $ gn gen out/debug '--args=silabs_board="BRD4161A" enable_sleepy_device=true chip_openthread_ftd=false' - -* Build the example with pigweed RPC - - $ ./scripts/examples/gn_efr32_example.sh examples/lighting-app/efr32/ out/lighting_app_rpc BRD4161A 'import("//with_pw_rpc.gni")' - - or use GN/Ninja Directly - - $ cd ~/connectedhomeip/examples/lighting-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug --args='import("//with_pw_rpc.gni")' - $ ninja -C out/debug - -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: - - $ cd ~/connectedhomeip/examples/lighting-app/efr32 - $ python3 out/debug/chip-efr32-lighting-example.flash.py +- Flashing requires the SiWx917 SoC device to be configured in the Ozone + Debugger. +- Once it's configured, it can be run with the Ozone Debugger by loading the + .out file. + - > For detailed instructions, please refer to + > [Running the Matter Demo on SiWx917 SoC](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/wifi/RUN_DEMO_SiWx917_SoC.md) + > in the Silicon Labs Matter Github Repo -- 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) -facility for log output. RTT is a feature built-in to the J-Link Interface MCU -on the WSTK development board. It allows bi-directional communication with an -embedded application without the need for a dedicated UART. - -Using the RTT facility requires downloading and installing the _SEGGER J-Link -Software and Documentation Pack_ -([web site](https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack)). - -Alternatively, SEGGER Ozone J-Link debugger can be used to view RTT logs too -after flashing the .out file. - -- Download the J-Link installer by navigating to the appropriate URL and - agreeing to the license agreement. - -- [JLink_Linux_x86_64.deb](https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb) -- [JLink_MacOSX.pkg](https://www.segger.com/downloads/jlink/JLink_MacOSX.pkg) - -* Install the J-Link software - - $ cd ~/Downloads - $ sudo dpkg -i JLink_Linux_V*_x86_64.deb - -* In Linux, grant the logged in user the ability to talk to the development - hardware via the linux tty device (/dev/ttyACMx) by adding them to the - dialout group. +The example application's logging output can be viewed in the Ozone Debugger. - $ sudo usermod -a -G dialout ${USER} - -Once the above is complete, log output can be viewed using the JLinkExe tool in -combination with JLinkRTTClient as follows: - -- Run the JLinkExe tool with arguments to autoconnect to the WSTK board: - - For MG12 use: - - $ JLinkExe -device EFR32MG12PXXXF1024 -if JTAG -speed 4000 -autoconnect 1 - - For MG21 use: - - $ JLinkExe -device EFR32MG21AXXXF1024 -if SWD -speed 4000 -autoconnect 1 - -- In a second terminal, run the JLinkRTTClient to view logs: - - $ JLinkRTTClient + ## Running the Complete Example -- It is assumed here that you already have an OpenThread border router - configured and running. If not see the following guide - [Openthread_border_router](https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/openthread_border_router_pi.md) - for more information on how to setup a border router on a raspberryPi. - - Take note that the RCP code is available directly through - [Simplicity Studio 5](https://www.silabs.com/products/development-tools/software/simplicity-studio/simplicity-studio-5) - under File->New->Project Wizard->Examples->Thread : ot-rcp - -- User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR - Code is be scanned by the CHIP Tool app For the Rendez-vous procedure over - BLE - - * On devices that do not have or support the LCD Display like the BRD4166A Thunderboard Sense 2, - a URL can be found in the RTT logs. - - [SVR] Copy/paste the below URL in a browser to see the QR Code: - [SVR] https://project-chip.github.io/connectedhomeip/qrcode.html?data=CH%3AI34NM%20-00%200C9SS0 - - **LED 0** shows the overall state of the device and its connectivity. The - following states are possible: - - - _Short Flash On (50 ms on/950 ms off)_ ; The device is in the - unprovisioned (unpaired) state and is waiting for a commissioning - application to connect. - - - _Rapid Even Flashing_ ; (100 ms on/100 ms off)_ — The device is in the - unprovisioned state and a commissioning application is connected through - Bluetooth LE. - - - _Short Flash Off_ ; (950ms on/50ms off)_ — The device is fully - provisioned, but does not yet have full Thread network or service - connectivity. - - - _Solid On_ ; The device is fully provisioned and has full Thread - network and service connectivity. - - **LED 1** Simulates the Light The following states are possible: - - - _Solid On_ ; Light is on - - _Off_ ; Light is off +- You can provision and control the Chip device using the chip-tool standalone - **Push Button 0** + [chip-tool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) - - _Press and Release_ : Start, or restart, BLE advertisement in fast mode. It will advertise in this mode - for 30 seconds. The device will then switch to a slower interval advertisement. - After 15 minutes, the advertisement stops. + Here is an example with the chip-tool: - - _Pressed and hold for 6 s_ : Initiates the factory reset of the device. - Releasing the button within the 6-second window cancels the factory reset - procedure. **LEDs** blink in unison when the factory reset procedure is - initiated. + - > $SSID and $PSK are the SSID and passcode of your Wi-Fi Access Point. - **Push Button 1** Toggles the light state On/Off - -* You can provision and control the Chip device using the python controller, - Chip tool standalone, Android or iOS app - -* You can provision and control the Chip device using the python controller, - Chip tool standalone, Android or iOS app - - [CHIPTool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) - - Here is an example with the CHIPTool: - - chip-tool pairing ble-thread 1 hex: 20202021 3840 + ``` + chip-tool pairing ble-wifi 1122 $SSID $PSK 20202021 3840 chip-tool onoff on 1 1 + ``` ### Notes -- Depending on your network settings your router might not provide native ipv6 - 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 - - - On Border Router: `sudo ip addr add dev 2002::2/64` +- Depending on your network settings your router might not provide native IPv6 + addresses to your devices (Router / PC). If this is the case, you need to + add a static IPv6 addresses on both devices and then an IPv6 route to your + router on your PC - On PC(Linux): `sudo ip addr add dev 2002::1/64` - - 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 - interactive console is installed into your venv. The python wheel files are - also created in the output folder: out/debug/chip_rpc_console_wheels. To - install the wheel files without rebuilding: - `pip3 install out/debug/chip_rpc_console_wheels/*.whl` - -- To use the chip-rpc console after it has been installed run: - `chip-console --device /dev/tty. -b 115200 -o //pw_log.out` - -- Then you can simulate a button press or release using the following command - where : idx = 0 or 1 for Button PB0 or PB1 action = 0 for PRESSED, 1 for - RELEASE Test toggling the LED with - `rpcs.chip.rpc.Button.Event(idx=1, pushed=True)` - -- You can also Get and Set the light directly using the RPCs: - `rpcs.chip.rpc.Lighting.Get()` - - `rpcs.chip.rpc.Lighting.Set(on=True, level=128, color=protos.chip.rpc.LightingColor(hue=5, saturation=5))` - -## Device Tracing - -Device tracing is available to analyze the device performance. To turn on -tracing, build with RPC enabled. See Build the example with pigweed RPC. - -Obtain tracing json file. - - $ ./{PIGWEED_REPO}/pw_trace_tokenized/py/pw_trace_tokenized/get_trace.py -d {PORT} -o {OUTPUT_FILE} \ - -t {ELF_FILE} {PIGWEED_REPO}/pw_trace_tokenized/pw_trace_protos/trace_rpc.proto + - Add IPv6 route on PC(Linux) + `sudo ip route add /64 via 2002::2` ## Memory settings While most of the RAM usage in CHIP is static, allowing easier debugging and optimization with symbols analysis, we still need some HEAP for the crypto and -OpenThread. Size of the HEAP can be modified by changing the value of the +Wi-Fi stack. Size of the HEAP can be modified by changing the value of the `configTOTAL_HEAP_SIZE` define inside of the FreeRTOSConfig.h file of this example. Please take note that a HEAP size smaller than 13k can and will cause a Mbedtls failure during the BLE rendez-vous or CASE session @@ -358,14 +145,8 @@ To track memory usage you can set `enable_heap_monitoring = true` either in the BUILD.gn file or pass it as a build argument to gn. This will print on the RTT console the RAM usage of each individual task and the number of Memory allocation and Free. While this is not extensive monitoring you're welcome to -modify `examples/platform/efr32/MemMonitoring.cpp` to add your own memory -tracking code inside the `trackAlloc` and `trackFree` function - -## 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) +modify `examples/platform/silabs/SiWx917/MemMonitoring.cpp` to add your own +memory tracking code inside the `trackAlloc` and `trackFree` function ## Group Communication (Multicast) @@ -386,19 +167,19 @@ passed to the build scripts. `chip_progress_logging, chip_detail_logging, chip_automation_logging` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/SiWx917 ./out/lighting-app BRD4325A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" --wifi rs911x ### Debug build / release build `is_debug` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/SiWx917 ./out/lighting-app BRD4325A "is_debug=false" --wifi rs911x ### Disabling LCD `show_qr_code` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/SiWx917 ./out/lighting-app BRD4325A "show_qr_code=false" --wifi rs911x ### KVS maximum entry count @@ -407,4 +188,4 @@ passed to the build scripts. Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/silabs/SiWx917 ./out/lighting-app BRD4325A kvs_max_entries=50 --wifi rs911x diff --git a/examples/lock-app/silabs/SiWx917/README.md b/examples/lock-app/silabs/SiWx917/README.md index 5944a5f8afe767..b31c606145d2a9 100644 --- a/examples/lock-app/silabs/SiWx917/README.md +++ b/examples/lock-app/silabs/SiWx917/README.md @@ -1,10 +1,10 @@ -# Matter EFR32 Lock Example +# Matter SiWx917 Lock Example -An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. +An example showing the use of CHIP on the Silicon Labs SiWx917 SoC device.
-- [Matter EFR32 Lock Example](#matter-efr32-lock-example) +- [Matter SiWx917 Lock Example](#matter-siwx917-lock-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) @@ -12,7 +12,6 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes) - [Memory settings](#memory-settings) - - [OTA Software Update](#ota-software-update) - [Building options](#building-options) - [Disabling logging](#disabling-logging) - [Debug build / release build](#debug-build--release-build) @@ -29,22 +28,23 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. ## Introduction -The EFR32 lock example provides a baseline demonstration of a door lock control -device, built using Matter and the Silicon Labs gecko SDK. It can be controlled -by a Chip controller over an Openthread or Wifi network.. +The SiWx917 Lock example provides a baseline demonstration of a door lock +control device, built using Matter, the Silicon Labs Gecko SDK, and the Silicon +Labs WiseMCU SDK. It can be controlled by a Chip controller over a Wi-Fi +network. -The EFR32 device can be commissioned over Bluetooth Low Energy where the device -and the Chip controller will exchange security information with the Rendez-vous -procedure. If using Thread, Thread Network credentials are then provided to the -EFR32 device which will then join the Thread network. +The SiWx917 device can be commissioned over Bluetooth Low Energy where the +device and the Chip controller will exchange security information with the +Rendez-vous procedure. Wi-Fi Network SSID and passcode are then provided to the +SiWx917 device which will then join the Wi-Fi network. If the LCD is enabled, the LCD on the Silabs WSTK shows a QR Code containing the needed commissioning information for the BLE connection and starting the -Rendez-vous procedure. +rendezvous procedure. -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. +The lock 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 @@ -73,62 +73,11 @@ Mac OS X > [Hardware Requirements](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/general/HARDWARE_REQUIREMENTS.md) > in the Silicon Labs Matter Github Repo - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - * Build the example application: ``` cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/efr32/ ./out/lock_app BRD4161A + ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/SiWx917/ ./out/lock_app BRD4325A --wifi rs911x ``` - To delete generated executable, libraries and object files use: @@ -138,198 +87,35 @@ Mac OS X $ rm -rf ./out/ ``` - OR use GN/Ninja directly - - ``` - $ cd ~/connectedhomeip/examples/lock-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug --args="efr32_sdk_root=\"${EFR32_SDK_ROOT}\" silabs_board=\"${EFR32_BOARD}\"" - $ ninja -C out/debug - ``` - -- To delete generated executable, libraries and object files use: - - ``` - $ cd ~/connectedhomeip/examples/lock-app/efr32 - $ rm -rf out/ - ``` - -* Build the example as Sleepy End Device (SED) - - ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32/ ./out/lighting-app_SED BRD4161A --sed - ``` - - or use gn as previously mentioned but adding the following arguments: - - ``` - $ gn gen out/debug '--args=silabs_board="BRD4161A" enable_sleepy_device=true chip_openthread_ftd=false' - ``` - -* Build the example with pigweed RCP - - ``` - $ ./scripts/examples/gn_efr32_example.sh examples/lock-app/efr32/ out/lock_app_rpc BRD4161A 'import("//with_pw_rpc.gni")' - ``` - - or use GN/Ninja Directly - - ``` - $ cd ~/connectedhomeip/examples/lock-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug --args='import("//with_pw_rpc.gni")' - $ ninja -C out/debug - ``` - -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: - - ``` - $ cd ~/connectedhomeip/examples/lock-app/efr32 - $ python3 out/debug/chip-efr32-lock-example.flash.py - ``` - -- Or with the Ozone debugger, just load the .out file. +- Flashing requires the SiWx917 SoC device to be configured in the Ozone + Debugger. +- Once it's configured, it can be run with the Ozone Debugger by loading the + .out file. + - > For detailed instructions, please refer to + > [Running the Matter Demo on SiWx917 SoC](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/wifi/RUN_DEMO_SiWx917_SoC.md) + > in the Silicon Labs Matter Github Repo ## Viewing Logging Output -The example application is built to use the SEGGER Real Time Transfer (RTT) -facility for log output. RTT is a feature built-in to the J-Link Interface MCU -on the WSTK development board. It allows bi-directional communication with an -embedded application without the need for a dedicated UART. - -Using the RTT facility requires downloading and installing the _SEGGER J-Link -Software and Documentation Pack_ -([web site](https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack)). - -Alternatively, SEGGER Ozone J-Link debugger can be used to view RTT logs too -after flashing the .out file. - -- Download the J-Link installer by navigating to the appropriate URL and - agreeing to the license agreement. - -- [JLink_Linux_x86_64.deb](https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb) -- [JLink_MacOSX.pkg](https://www.segger.com/downloads/jlink/JLink_MacOSX.pkg) - -* Install the J-Link software - - ``` - $ cd ~/Downloads - $ sudo dpkg -i JLink_Linux_V*_x86_64.deb - ``` - -* In Linux, grant the logged in user the ability to talk to the development - hardware via the linux tty device (/dev/ttyACMx) by adding them to the - dialout group. - - ``` - $ sudo usermod -a -G dialout ${USER} - ``` - -Once the above is complete, log output can be viewed using the JLinkExe tool in -combination with JLinkRTTClient as follows: - -- Run the JLinkExe tool with arguments to autoconnect to the WSTK board: - - For MG12 use: - - ``` - $ JLinkExe -device EFR32MG12PXXXF1024 -if JTAG -speed 4000 -autoconnect 1 - ``` - - For MG21 use: - - ``` - $ JLinkExe -device EFR32MG21AXXXF1024 -if SWD -speed 4000 -autoconnect 1 - ``` - -- In a second terminal, run the JLinkRTTClient to view logs: - - ``` - $ JLinkRTTClient - ``` +The example application's logging output can be viewed in the Ozone Debugger. ## Running the Complete Example -- It is assumed here that you already have an OpenThread border router - configured and running. If not see the following guide - [Openthread_border_router](https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/openthread_border_router_pi.md) - for more information on how to setup a border router on a raspberryPi. - - Take note that the RCP code is available directly through - [Simplicity Studio 5](https://www.silabs.com/products/development-tools/software/simplicity-studio/simplicity-studio-5) - under File->New->Project Wizard->Examples->Thread : ot-rcp - -- User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR - Code is be scanned by the CHIP Tool app For the Rendez-vous procedure over - BLE - - * On devices that do not have or support the LCD Display like the BRD4166A Thunderboard Sense 2, - a URL can be found in the RTT logs. - - [SVR] Copy/paste the below URL in a browser to see the QR Code: - [SVR] https://project-chip.github.io/connectedhomeip/qrcode.html?data=CH%3AI34NM%20-00%200C9SS0 - - **LED 0** shows the overall state of the device and its connectivity. The - following states are possible: - - - _Short Flash On (50 ms on/950 ms off)_ ; The device is in the - unprovisioned (unpaired) state and is waiting for a commissioning - application to connect. - - - _Rapid Even Flashing_ ; (100 ms on/100 ms off)_ — The device is in the - unprovisioned state and a commissioning application is connected through - Bluetooth LE. - - - _Short Flash Off_ ; (950ms on/50ms off)_ — The device is fully - provisioned, but does not yet have full Thread network or service - connectivity. +- You can provision and control the Chip device using the chip-tool standalone - - _Solid On_ ; The device is fully provisioned and has full Thread - network and service connectivity. + [chip-tool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) - **LED 1** Simulates the Lock The following states are possible: - - - _Solid On_ ; Bolt is unlocked - - _Blinking_ ; Bolt is moving to the desired state - - _Off_ ; Bolt is locked - - **Push Button 0** - - - _Press and Release_ : Start, or restart, BLE advertisement in fast mode. It will advertise in this mode - for 30 seconds. The device will then switch to a slower interval advertisement. - After 15 minutes, the advertisement stops. - - - _Pressed and hold for 6 s_ : Initiates the factory reset of the device. - Releasing the button within the 6-second window cancels the factory reset - procedure. **LEDs** blink in unison when the factory reset procedure is - initiated. - - **Push Button 1** Toggles the bolt state On/Off - -- You can provision and control the Chip device using the python controller, - Chip tool standalone, Android or iOS app - - [CHIPTool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) - -Here is some CHIPTool examples: +Here are some chip-tool examples: Pairing with chip-tool: ``` - chip-tool pairing ble-thread 1 hex: 20202021 3840 + chip-tool pairing ble-wifi 1122 $SSID $PSK 20202021 3840 ``` + - > $SSID and $PSK are the SSID and passcode of your Wi-Fi Access Point. Set a user: ``` @@ -358,50 +144,42 @@ Here is some CHIPTool examples: Unlock door: ``` ./out/chip-tool doorlock unlock-door node-id/group-id - ./out/chip-tool doorlock unlock-door 1 1 --timedInteractionTimeoutMs 1000 + ./out/chip-tool doorlock unlock-door 1 1 ``` Lock door: ``` ./out/chip-tool doorlock lock-door node-id/group-id - ./out/chip-tool doorlock lock-door 1 1 --timedInteractionTimeoutMs 1000 + ./out/chip-tool doorlock lock-door 1 1 ``` ### Notes -- Depending on your network settings your router might not provide native ipv6 - 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 - -#On Border Router: \$ sudo ip addr add dev 2002::2/64 +- Depending on your network settings your router might not provide native IPv6 + addresses to your devices (Router / PC). If this is the case, you need to + add a static IPv6 addresses on both devices and then an IPv6 route to the + router on your PC #On PC(Linux): \$ sudo ip addr add dev 2002::1/64 -#Add Ipv6 route on PC(Linux) \$ sudo ip route add /64 +#Add IPv6 route on PC(Linux) \$ sudo ip route add /64 via 2002::2 ## Memory settings While most of the RAM usage in CHIP is static, allowing easier debugging and optimization with symbols analysis, we still need some HEAP for the crypto and -OpenThread. Size of the HEAP can be modified by changing the value of the +Wi-Fi stack. Size of the HEAP can be modified by changing the value of the `configTOTAL_HEAP_SIZE` define inside of the FreeRTOSConfig.h file of this -example. Please take note that a HEAP size smaller than 13k can and will cause a -Mbedtls failure during the BLE rendez-vous or CASE session +example. Please take note that a HEAP size smaller than 13k can and will cause +an Mbedtls failure during the BLE rendezvous or CASE session To track memory usage you can set `enable_heap_monitoring = true` either in the BUILD.gn file or pass it as a build argument to gn. This will print on the RTT console the RAM usage of each individual task and the number of Memory allocation and Free. While this is not extensive monitoring you're welcome to -modify `examples/platform/efr32/MemMonitoring.cpp` to add your own memory -tracking code inside the `trackAlloc` and `trackFree` function - -## 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) +modify `examples/platform/silabs/SiWx917/MemMonitoring.cpp` to add your own +memory tracking code inside the `trackAlloc` and `trackFree` function ## Building options @@ -414,7 +192,7 @@ features can easily be toggled on or off. Here is a short list of options : `chip_progress_logging, chip_detail_logging, chip_automation_logging` ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/SiWx917 ./out/lock-app BRD4325A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" --wifi rs911x ``` ### Debug build / release build @@ -422,7 +200,7 @@ features can easily be toggled on or off. Here is a short list of options : `is_debug` ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/SiWx917 ./out/lock-app BRD4325A "is_debug=false" --wifi rs911x ``` ### Disabling LCD @@ -430,7 +208,7 @@ features can easily be toggled on or off. Here is a short list of options : `show_qr_code` ``` - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/SiWx917 ./out/lock-app BRD4325A "show_qr_code=false" --wifi rs911x ``` ### KVS maximum entry count @@ -441,5 +219,5 @@ features can easily be toggled on or off. Here is a short list of options : Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_efr32_example.sh ./examples/lock-app/silabs/SiWx917 ./out/lock-app BRD4325A kvs_max_entries=50 --wifi rs911x ``` diff --git a/examples/window-app/silabs/SiWx917/README.md b/examples/window-app/silabs/SiWx917/README.md index 58691ca93e857a..ffe3c43ddf1425 100644 --- a/examples/window-app/silabs/SiWx917/README.md +++ b/examples/window-app/silabs/SiWx917/README.md @@ -1,17 +1,16 @@ -# Matter EFR32 Window Covering Example +# Matter SiWx917 Window Covering Example -An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. +An example showing the use of CHIP on the Silicon Labs SiWx917 SoC device.
-- [Matter EFR32 Window Covering Example](#matter-efr32-window-covering-example) +- [Matter SiWx917 Window Covering Example](#matter-siwx917-window-covering-example) - [Introduction](#introduction) - [Building](#building) - [Flashing the Application](#flashing-the-application) - [Viewing Logging Output](#viewing-logging-output) - [Running the Complete Example](#running-the-complete-example) - [Notes](#notes) - - [OTA Software Update](#ota-software-update) - [Building options](#building-options) - [Disabling logging](#disabling-logging) - [Debug build / release build](#debug-build--release-build) @@ -28,18 +27,19 @@ An example showing the use of CHIP on the Silicon Labs EFR32 MG12 and MG24. ## Introduction -The EFR32 window-covering example provides a baseline demonstration of a Window -Covering device, built using Matter and the Silicon Labs gecko SDK. It can be -controlled by a Chip controller over an Openthread or Wifi network. +The SiWx917 window-covering example provides a baseline demonstration of a +Window Covering device, built using Matter, the Silicon Labs Gecko SDK, and the +Silicon Labs WiseMCU SDK. It can be controlled by a Chip controller over a Wi-Fi +network. -The EFR32 device can be commissioned over Bluetooth Low Energy where the device -and the Chip controller will exchange security information with the Rendez-vous -procedure. In the case of Thread, the Thread Network credentials are provided to -the EFR32 device which will then join the Thread network. +The SiWx917 device can be commissioned over Bluetooth Low Energy where the +device and the Chip controller will exchange security information with the +rendezvous procedure. The Wi-Fi Network credentials are provided to the SiWx917 +device which will then join the Wi-Fi network. If the LCD is enabled, the LCD on the Silabs WSTK shows a QR Code containing the needed commissioning information for the BLE connection and starting the -Rendez-vous procedure. Once the device is commissioned, the displays shows a +rendezvous procedure. Once the device is commissioned, the displays shows a representation of the window covering state. The window-covering example is intended to serve both as a means to explore the @@ -71,239 +71,42 @@ Silicon Labs platform. > [Hardware Requirements](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/general/HARDWARE_REQUIREMENTS.md) > in the Silicon Labs Matter Github Repo - MG12 boards: - - - BRD4161A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4162A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4163A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm, - 868MHz@19dBm - - BRD4164A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@19dBm - - BRD4166A / SLTB004A / Thunderboard Sense 2 / 2.4GHz@10dBm - - BRD4170A / SLWSTK6000B / Multiband Wireless Starter Kit / 2.4GHz@19dBm, - 915MHz@19dBm - - BRD4304A / SLWSTK6000B / MGM12P Module / 2.4GHz@19dBm - - MG21 boards: Currently not supported due to RAM limitation. - - - BRD4180A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - MG24 boards : - - - BRD2601B / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD2703A / SLWSTK6000B / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4186C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@10dBm - - BRD4187A / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - - BRD4187C / SLWSTK6006A / Wireless Starter Kit / 2.4GHz@20dBm - * Build the example application: cd ~/connectedhomeip - ./scripts/examples/gn_efr32_example.sh ./examples/window-app/efr32/ ./out/window-app BRD4161A + ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/SiWx917/ ./out/window-app BRD4325A --wifi rs911x - To delete generated executable, libraries and object files use: $ cd ~/connectedhomeip $ rm -rf ./out/ - OR use GN/Ninja directly - - $ cd ~/connectedhomeip/examples/window-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug - $ ninja -C out/debug - -- To delete generated executable, libraries and object files use: - - $ cd ~/connectedhomeip/examples/window-app/efr32 - $ rm -rf out/ - -* Build the example as Sleepy End Device (SED) - - $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/efr32/ ./out/window-app_SED BRD4161A --sed - - or use gn as previously mentioned but adding the following arguments: - - $ gn gen out/debug '--args=silabs_board="BRD4161A" enable_sleepy_device=true chip_openthread_ftd=false' - -* Build the example with pigweed RCP - - $ ./scripts/examples/gn_efr32_example.sh examples/window-app/efr32/ out/window_app_rpc BRD4161A 'import("//with_pw_rpc.gni")' - - or use GN/Ninja Directly - - $ cd ~/connectedhomeip/examples/window-app/efr32 - $ git submodule update --init - $ source third_party/connectedhomeip/scripts/activate.sh - $ export EFR32_BOARD=BRD4161A - $ gn gen out/debug --args='import("//with_pw_rpc.gni")' - $ ninja -C out/debug - -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: - - $ cd ~/connectedhomeip/examples/window-app/efr32 - $ python3 out/debug/chip-efr32-window-example.flash.py - -- Or with the Ozone debugger, just load the .out file. +- Flashing requires the SiWx917 SoC device to be configured in the Ozone + Debugger. +- Once it's configured, it can be run with the Ozone Debugger by loading the + .out file. + - > For detailed instructions, please refer to + > [Running the Matter Demo on SiWx917 SoC](https://github.com/SiliconLabs/matter/blob/latest/docs/silabs/wifi/RUN_DEMO_SiWx917_SoC.md) + > in the Silicon Labs Matter Github Repo ## Viewing Logging Output -The example application is built to use the SEGGER Real Time Transfer (RTT) -facility for log output. RTT is a feature built-in to the J-Link Interface MCU -on the WSTK development board. It allows bi-directional communication with an -embedded application without the need for a dedicated UART. - -Using the RTT facility requires downloading and installing the _SEGGER J-Link -Software and Documentation Pack_ -([web site](https://www.segger.com/downloads/jlink#J-LinkSoftwareAndDocumentationPack)). - -Alternatively, SEGGER Ozone J-Link debugger can be used to view RTT logs too -after flashing the .out file. - -- Download the J-Link installer by navigating to the appropriate URL and - agreeing to the license agreement. - -- [JLink_Linux_x86_64.deb](https://www.segger.com/downloads/jlink/JLink_Linux_x86_64.deb) -- [JLink_MacOSX.pkg](https://www.segger.com/downloads/jlink/JLink_MacOSX.pkg) - -* Install the J-Link software - - $ cd ~/Downloads - $ sudo dpkg -i JLink_Linux_V*_x86_64.deb - -* In Linux, grant the logged in user the ability to talk to the development - hardware via the linux tty device (/dev/ttyACMx) by adding them to the - dialout group. - - $ sudo usermod -a -G dialout ${USER} - -Once the above is complete, log output can be viewed using the JLinkExe tool in -combination with JLinkRTTClient as follows: - -- Run the JLinkExe tool with arguments to autoconnect to the WSTK board: - - For MG12 use: - - $ JLinkExe -device EFR32MG12PXXXF1024 -if JTAG -speed 4000 -autoconnect 1 - - For MG21 use: - - $ JLinkExe -device EFR32MG21AXXXF1024 -if SWD -speed 4000 -autoconnect 1 - -- In a second terminal, run the JLinkRTTClient to view logs: - - $ JLinkRTTClient +The example application's logging output can be viewed in the Ozone Debugger. ## Running the Complete Example -- It is assumed here that you already have an OpenThread border router - configured and running. If not see the following guide - [Openthread_border_router](https://github.com/project-chip/connectedhomeip/blob/master/docs/guides/openthread_border_router_pi.md) - for more information on how to setup a border router on a raspberryPi. - - Take note that the RCP code is available directly through - [Simplicity Studio 5](https://www.silabs.com/products/development-tools/software/simplicity-studio/simplicity-studio-5) - under File->New->Project Wizard->Examples->Thread : ot-rcp - -- User interface : **LCD** The LCD on Silabs WSTK shows a QR Code. This QR - Code is be scanned by the CHIP Tool app For the Rendez-vous procedure over - BLE - - * On devices that do not have or support the LCD Display like the BRD4166A Thunderboard Sense 2, - a URL can be found in the RTT logs. - - [SVR] Copy/paste the below URL in a browser to see the QR Code: - [SVR] https://project-chip.github.io/connectedhomeip/qrcode.html?data=CH%3AI34NM%20-00%200C9SS0 - - **LED 0** shows the overall state of the device and its connectivity. The - following states are possible: - - - _Short Flash On (50 ms on/950 ms off)_ ; The device is in the - unprovisioned (unpaired) state and is waiting for a commissioning - application to connect. - - - _Rapid Even Flashing_ ; (100 ms on/100 ms off)_ — The device is in the - unprovisioned state and a commissioning application is connected through - Bluetooth LE. - - - _Short Flash Off_ ; (950ms on/50ms off)_ — The device is fully - provisioned, but does not yet have full Thread network or service - connectivity. - - - _Solid On_ ; The device is fully provisioned and has full Thread - network and service connectivity. - - **LED 1** Shows the state of the window covering - - - _Solid On_ ; The window cover if fully open - - _Off_ ; The window cover if fully closed - - _Blinking slowly_ ; The window cover is half-open, either by tilt, or lift - - _Blinking quickly_ ; The window cover is being automatically open or closed - - **Push Button 0** Increase either tilt or lift, and factory reset - - - Pressed and release: The lift/tilt increases by 10% - - - Pressed and hold for 6 s: Initiates the factory reset of the device. - Releasing the button within the 6-second window cancels the factory reset - procedure. **LEDs** blink in unison when the factory reset procedure is - initiated. - - **Push Button 1** Decreases either tilt or lift, or switch the cover type - - - Pressed and release: The lift/tilt decreases by 10% - - - Press and hold for 3 s: Cycle between window covering type (Rollershade, Drapery, Tilt Blind - Lift and Tilt). - - **Push Button0 and Button1** Switch between lift and tilt - - - Pressing and release both buttons at the same time: switches between lift and tilt modes. Most window covering types support either lift only, or tilt only, but type 0x08 support both (default) - - - Pressing and hold both buttons at the same time: Cycles between window covering 1, and window covering 2. - -* Once the device is provisioned, it will join the Thread network is - established, look for the RTT log - - ``` -     [DL] Device Role: CHILD -     [DL] Partition Id:0x6A7491B7 -     [DL] \_OnPlatformEvent default: event->Type = 32778 -     [DL] OpenThread State Changed (Flags: 0x00000001) -     [DL] Thread Unicast Addresses: -     [DL]    2001:DB8::E1A2:87F1:7D5D:FECA/64 valid preferred -     [DL]    FDDE:AD00:BEEF::FF:FE00:2402/64 valid preferred rloc -     [DL]    FDDE:AD00:BEEF:0:383F:5E81:A05A:B168/64 valid preferred -     [DL]    FE80::D8F2:592E:C109:CF00/64 valid preferred -     [DL] LwIP Thread interface addresses updated -     [DL] FE80::D8F2:592E:C109:CF00 IPv6 link-local address, preferred) -     [DL] FDDE:AD00:BEEF:0:383F:5E81:A05A:B168 Thread mesh-local address, preferred) -     [DL] 2001:DB8::E1A2:87F1:7D5D:FECA IPv6 global unicast address, preferred) - ``` - - (you can verify that the device is on the thread network with the command - `router table` using a serial terminal (screen / minicom etc.) on the board - running the window-app example. You can also get the address list with the - command ipaddr again in the serial terminal ) - - You can provision the Chip device using Chip tool Android or iOS app or - through CLI commands on your OT BR - - The - [CHIPTool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) - can now be used to send ZCL commands to the window covering device. For + You can provision the [chip-tool](https://github.com/project-chip/connectedhomeip/blob/master/examples/chip-tool/README.md) + and send ZCL commands to the window covering device. For instance, to set the window covering lift by percentage: + - > $SSID and $PSK are the SSID and passcode of your Wi-Fi Access Point. + ``` - chip-tool pairing ble-thread 1 hex: 20202021 3840 + chip-tool pairing ble-wifi 1122 $SSID $PSK 20202021 3840 chip-tool onoff on 1 1 @@ -318,25 +121,16 @@ combination with JLinkRTTClient as follows: ### Notes -- Depending on your network settings your router might not provide native ipv6 - 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 - - # On Border Router : - $ sudo ip addr add dev 2002::2/64 +- Depending on your network settings your router might not provide native IPv6 + addresses to your devices (Router / PC). If this is the case, you need to + add a static IPv6 addresses on both devices and then an IPv6 route to the + border router on your PC # On PC (Linux) : $ sudo ip addr add dev 2002::1/64 - # 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) + # Add IPv6 route on PC (Linux) + $ sudo ip route add /64 via 2002::2 ## Building options @@ -348,19 +142,19 @@ features can easily be toggled on or off. Here is a short list of options : chip_progress_logging, chip_detail_logging, chip_automation_logging - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/SiWx917 ./out/window-app BRD4325A "chip_detail_logging=false chip_automation_logging=false chip_progress_logging=false" --wifi rs911x ### Debug build / release build is_debug - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "is_debug=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/SiWx917 ./out/window-app BRD4325A "is_debug=false" --wifi rs911x ### Disabling LCD show_qr_code - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A "show_qr_code=false" + $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/SiWx917 ./out/window-app BRD4325A "show_qr_code=false" --wifi rs911x ### KVS maximum entry count @@ -369,4 +163,4 @@ kvs_max_entries Set the maximum Kvs entries that can be stored in NVM (Default 75) Thresholds: 30 <= kvs_max_entries <= 255 - $ ./scripts/examples/gn_efr32_example.sh ./examples/lighting-app/efr32 ./out/lighting-app BRD4164A kvs_max_entries=50 + $ ./scripts/examples/gn_efr32_example.sh ./examples/window-app/silabs/SiWx917 ./out/window-app BRD4325A kvs_max_entries=50 --wifi rs911x