diff --git a/.vscode/launch.json b/.vscode/launch.json index 0ed822ad0251a9..0e7d7879eccd27 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,494 +5,36 @@ "version": "0.2.0", "configurations": [ { - "name": "Attach to running process", - "type": "lldb", - "request": "attach", - "pid": "${command:pickProcess}" - }, - { - "name": "Run application (Darwin x64)", - "type": "lldb", - "request": "launch", - "program": "${workspaceFolder}/out/${input:outAppDarwin}", - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "name": "Run application (Linux x64)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/out/${input:outAppLinux}", - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "name": "Run test (Linux x64)", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/out/${input:outTestLinux}", - "args": [], - "cwd": "${workspaceFolder}" - }, - { - "name": "QRCode Tests", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/default/src/setup_payload/tests/TestQRCode", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "preLaunchTask": "Build QRCode Payload Tests", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - "name": "CHIP crypto Tests", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/default/src/crypto/tests/TestCrypto", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "preLaunchTask": "Build & Run Crypto Tests", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - "name": "CHIP openSSL Tests", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/default/src/crypto/tests/TestCryptoPAL", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "externalConsole": false, - "MIMode": "gdb", - "preLaunchTask": "Build openSSL crypto Tests", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ] - }, - { - "name": "LightingApp (Tizen) [remote]", - "type": "cppdbg", - "request": "launch", - "cwd": "${workspaceFolder}/out/tizen-arm-light", - "program": "${workspaceFolder}/out/tizen-arm-light/chip-lighting-app", - "miDebuggerPath": "${env:TIZEN_SDK_ROOT}/tools/arm-linux-gnueabi-gcc-9.2/bin/arm-linux-gnueabi-gdb", - "additionalSOLibSearchPath": "${env:TIZEN_ROOTFS}", - "preLaunchTask": "Launch LightingApp with gdbserver attached (Tizen)", - "miDebuggerServerAddress": "localhost:9999", - "linux": { - "MIMode": "gdb" - }, - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - }, - { - "text": "set solib-absolute-prefix ${env:TIZEN_ROOTFS}" - }, - { - "text": "set sysroot ${env:TIZEN_SDK_SYSROOT}" - }, - { - "text": "set debug-file-directory {env:TIZEN_SDK_SYSROOT}/usr/lib/debug" - }, - { - "text": "set solib-search-path ${workspaceFolder}/out/tizen-arm-light" - } - ] - }, - - { - "name": "Debug Mbed examples", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", - "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "serverpath": "${env:OPENOCD_PATH}/bin/openocd", - "servertype": "openocd", - "searchDir": [ - "${workspaceRoot}/config/mbed/scripts", - "${env:OPENOCD_PATH}/scripts" - ], - "configFiles": ["${input:mbedTarget}.tcl"], - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "monitor program {./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-${input:mbedApp}-example.hex}", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "numberOfProcessors": 2, - "targetProcessor": 1, // Set to 0 for the CM0+, set to 1 for the CM4 - "overrideRestartCommands": [ - "monitor reset init", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "runToMain": true, // if true, program will halt at main. Not used for a restart - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Debug Mbed examples [remote]", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", - "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "external", - "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "monitor reset halt", - "load ./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-${input:mbedApp}-example.hex", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "overrideRestartCommands": [ - "monitor reset init", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "runToMain": true, // if true, program will halt at main. Not used for a restart - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Flash Mbed examples", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", - "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "serverpath": "${env:OPENOCD_PATH}/bin/openocd", - "servertype": "openocd", - "searchDir": [ - "${workspaceRoot}/config/mbed/scripts", - "${env:OPENOCD_PATH}/scripts" - ], - "configFiles": ["${input:mbedTarget}.tcl"], - "overrideLaunchCommands": [ - "monitor reset halt", - "monitor program {./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-${input:mbedApp}-example.hex}", - "monitor reset run", - "quit" - ], - "numberOfProcessors": 2, - "targetProcessor": 1, // Set to 0 for the CM0+, set to 1 for the CM4 - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Flash Mbed examples [remote]", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/${input:mbedApp}/mbed", - "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-${input:mbedApp}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "external", - "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 - "overrideLaunchCommands": [ - "monitor reset halt", - "load ./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-${input:mbedApp}-example.hex", - "monitor reset run", - "quit" - ], - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Debug Mbed unit tests", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests", - "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "openocd", - "serverpath": "${env:OPENOCD_PATH}/bin/openocd", - "searchDir": [ - "${workspaceRoot}/config/mbed/scripts", - "${env:OPENOCD_PATH}/scripts" - ], - "configFiles": ["${input:mbedTarget}.tcl"], - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "monitor program {./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.hex}", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "numberOfProcessors": 2, - "targetProcessor": 1, // Set to 0 for the CM0+, set to 1 for the CM4 - "overrideRestartCommands": [ - "monitor reset init", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "runToMain": true, // if true, program will halt at main. Not used for a restart - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Debug Mbed unit tests [remote]", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests", - "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "external", - "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "monitor reset halt", - "load ./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-unit-tests.hex", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "overrideRestartCommands": [ - "monitor reset init", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "runToMain": true, // if true, program will halt at main. Not used for a restart - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Flash Mbed unit tests", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/src/test_driver/mbed//unit_tests", - "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "openocd", - "serverpath": "${env:OPENOCD_PATH}/bin/openocd", - "searchDir": [ - "${workspaceRoot}/config/mbed/scripts", - "${env:OPENOCD_PATH/scripts}" - ], - "configFiles": ["${input:mbedTarget}.tcl"], - "overrideLaunchCommands": [ - "monitor reset halt", - "monitor program {./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.hex}", - "monitor reset run", - "quit" - ], - "numberOfProcessors": 2, - "targetProcessor": 1, // Set to 0 for the CM0+, set to 1 for the CM4 - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Flash Mbed unit tests [remote]", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/src/test_driver/mbed/unit_tests", - "executable": "./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "external", - "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 - "overrideLaunchCommands": [ - "monitor reset halt", - "load ./build-${input:mbedTarget}/${input:mbedFlashProfile}/chip-mbed-unit-tests.hex", - "monitor reset run", - "quit" - ], - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Debug Mbed bootloader", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/platform/mbed/bootloader", - "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-bootloader.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "openocd", - "serverpath": "${env:OPENOCD_PATH}/bin/openocd", - "searchDir": [ - "${workspaceRoot}/config/mbed/scripts", - "${env:OPENOCD_PATH}/scripts" - ], - "configFiles": ["${input:mbedTarget}.tcl"], - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "monitor program {./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-bootloader.hex}", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "numberOfProcessors": 2, - "targetProcessor": 1, // Set to 0 for the CM0+, set to 1 for the CM4 - "overrideRestartCommands": [ - "monitor reset init", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "runToMain": true, // if true, program will halt at main. Not used for a restart - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "Debug Mbed bootloader [remote]", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/platform/mbed/bootloader", - "executable": "./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-bootloader.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", // Pigweed environment bootstraping required - "servertype": "external", - "gdbTarget": "host.docker.internal:3334", //port 3333 for the CM0+, 3334 for the CM4 - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "monitor reset halt", - "load ./build-${input:mbedTarget}/${input:mbedDebugProfile}/chip-mbed-bootloader.hex", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "overrideRestartCommands": [ - "monitor reset init", - "monitor reset run", - "monitor sleep 200", - "monitor psoc6 reset_halt sysresetreq" - ], - "runToMain": true, // if true, program will halt at main. Not used for a restart - "showDevDebugOutput": false // When set to true, displays output of GDB. - }, - - { - "name": "CHIP All Clusters App (Linux)", - "type": "lldb", - "request": "launch", - "program": "${workspaceFolder}/out/debug/standalone/chip-all-clusters-app", - "cwd": "${workspaceFolder}" - }, - - { - "name": "OTA Requestor App (Linux)", - "type": "lldb", - "request": "launch", - "program": "${workspaceFolder}/out/ota-requestor/chip-ota-requestor-app", - "args": [ - "--discriminator", - "18", - "--secured-device-port", - "5560", - "--KVS", - "/tmp/chip_kvs_requestor" - ], - "cwd": "${workspaceFolder}" - }, - - { - "name": "OTA Provider App (Linux)", - "type": "lldb", - "request": "launch", - "program": "${workspaceFolder}/out/ota-provider/chip-ota-provider-app", - "args": [ - "--discriminator", - "22", - "--KVS", - "/tmp/chip_kvs_provider", - "--filepath", - "/tmp/ota-image.bin" - ], - "cwd": "${workspaceFolder}" - }, - - { - "name": "Debug Open IoT SDK example application", - "type": "cortex-debug", - "request": "launch", - "cwd": "${workspaceRoot}/examples/${input:openiotsdkExample}/openiotsdk", - "executable": "./build/chip-openiotsdk-${input:openiotsdkExample}-example.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", - "servertype": "external", - "gdbTarget": "${input:openiotsdkRemoteHost}:31627", //GDBserver port on FVP - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "add-symbol-file ./build/bl2.elf 0x10000000", - "add-symbol-file ./build/tfm_s.elf 0x38000400", - "add-symbol-file ./build/chip-openiotsdk-${input:openiotsdkExample}-example_ns.elf 0x28060400", - "break main_ns.cpp:main" - ], - "runToEntryPoint": "main", - "preLaunchTask": "Debug Open IoT SDK example", - "showDevDebugOutput": "parsed" - }, - { - "name": "Debug Open IoT SDK unit-tests application", + "name": "Debug efr32 example app", "type": "cortex-debug", "request": "launch", - "cwd": "${workspaceRoot}/src/test_driver/openiotsdk/unit-tests", - "executable": "./build/${input:openiotsdkUnitTest}.elf", - "armToolchainPath": "${env:PW_ENVIRONMENT_ROOT}/cipd/packages/arm/bin/", - "servertype": "external", - "gdbTarget": ":31627", //GDBserver port on FVP - "overrideLaunchCommands": [ - "-enable-pretty-printing", - "add-symbol-file ./build/bl2.elf 0x10000000", - "add-symbol-file ./build/tfm_s.elf 0x38000400", - "add-symbol-file ./build/${input:openiotsdkUnitTest}_ns.elf 0x28060400", - "break main_ns.cpp:main" - ], - "runToEntryPoint": "main", - "preLaunchTask": "Debug Open IoT SDK unit-tests", - "showDevDebugOutput": "parsed" + "cwd": "${workspaceRoot}", + "executable": "${workspaceFolder}/out/${input:efr32Examples}-app/${input:efr32Boards}/chip-efr32-${input:efr32Examples}-example.out", + "serverpath": "/Applications/SEGGER/JLink_V758e/JLinkGDBServerCLExe", + "servertype": "jlink", + "device": "${input:efr32MCU}", + "interface": "swd", + "serialNumber": "", //If you have more than one J-Link probe, add the serial number here. + "runToMain": true, + "rttConfig": { + "enabled": true, + "address": "auto", + "decoders": [ + { + "port": 0, // In RTT lingo, this is the buffer index (or channel) + "type": "console" + } + ] + } } ], "inputs": [ { - "type": "command", - "id": "outAppDarwin", - "command": "shellCommand.execute", - "args": { - "command": "find ${workspaceFolder}/out/darwin-x64-* -maxdepth 2 -perm +111 -name 'chip-*' |sort |sed 's$${workspaceFolder}/out/$$'", - "description": "Select the application to run" - } - }, - { - "type": "command", - "id": "outAppLinux", - "command": "shellCommand.execute", - "args": { - "command": "find ${workspaceFolder}/out/linux-x64-* -maxdepth 2 -executable -name 'chip-*' |sort |sed 's$${workspaceFolder}/out/$$'", - "description": "Select the application to run" - } + "type": "pickString", + "id": "efr32Examples", + "description": "What efr32 example do you want to build?", + "options": ["lock", "lighting", "window", "light-switch"], + "default": "lighting" }, { "type": "command", @@ -505,31 +47,19 @@ }, { "type": "pickString", - "id": "mbedDebugProfile", - "description": "What mbed profile do you want to debug?", - "options": ["debug", "develop"], - "default": "debug" - }, - { - "type": "pickString", - "id": "mbedFlashProfile", - "description": "What mbed profile do you want to flash?", - "options": ["release", "debug", "develop"], - "default": "release" - }, - { - "type": "pickString", - "id": "mbedApp", - "description": "What mbed application do you want to use?", + "id": "efr32Boards", + "description": "What efr32 example do you want to build?", "options": [ - "lock-app", - "lighting-app", - "pigweed-app", - "all-clusters-app", - "shell", - "ota-requestor-app" + "BRD4161A", + "BRD4164A", + "BRD4166A", + "BRD4170A", + "BRD4170A", + "BRD4304A", + "BRD4186A", + "BRD4187A" ], - "default": "lock-app" + "default": "BRD4161A" }, { "type": "pickString", @@ -561,6 +91,18 @@ "command": "cat src/test_driver/openiotsdk/unit-tests/test_components.txt", "description": "What Open IoT SDK unit test application do you want to use?" } + }, + { + "type": "pickString", + "id": "efr32MCU", + "description": "What efr32 MCU do you want to build?", + "options": [ + "EFR32MG12P432F1024GL125", // BRD4164A + "EFR32MG12P433F1024GL125", // BRD4161A + "EFR32MG24A010F1536GM48", // BRD4186A/87A + "EFR32MG12P332F1024GL125" // BRD4166A + ], + "default": "EFR32MG12P432F1024GL125" } ] } diff --git a/docs/silabs/README.md b/docs/silabs/README.md index fd28ad7a152a85..15b214c22242ef 100644 --- a/docs/silabs/README.md +++ b/docs/silabs/README.md @@ -23,26 +23,30 @@ [Running Matter Demo over Wifi using Android](wifi/WIFI_ANDROID.md)

-4. Reference Guides +4. Development using VS Code + + 1. [Setting up environment](dev/vscode/SETUP.md) + 2. [Running tasks](dev/vscode/TASKS.md) + 1. [Build](dev/vscode/BUILD.md) + 2. [Flash](dev/vscode/FLASH.md) + 3. [Debug](dev/vscode/DEBUG.md) +

+ +5. Reference Guides 1. [How to Flash a Silicon Labs Device](general/FLASH_SILABS_DEVICE.md) 2. [How to Find Your Raspberry Pi](general/FIND_RASPI.md) 3. [Silicon Labs Matter Commit Hashes](general/COMMIT_HASHES.md) 4. [OTA Software Update](general/OTA_SOFTWARE_UPDATE.md)

- -5. Frequently Asked Questions (FAQ) + +6. Frequently Asked Questions (FAQ) / Troubleshooting + - [Thread FAQ](thread/FAQ.md) - [Wifi FAQ](wifi/FAQ.md) ## RS9116 Firmware -The RS9116 firmware is used to update the RS9116, and is located in GitHub here: -https://github.com/SiliconLabs/wiseconnect-wifi-bt-sdk/tree/2.5.0/firmware +The RS9116 firmware is used to update the RS9116 - it can be found in the +repository you have cloned, at the following relative path from the +`/connectedhomeip` directory: + +> $ /third_party/silabs/wiseconnect-wifi-bt-sdk/firmware + + + +
+ +--- ----- -[Table of Contents](../README.md) | [Thread Demo](../thread/DEMO_OVERVIEW.md) | [Wi-Fi Demo](../wifi/DEMO_OVERVIEW.md) \ No newline at end of file +[Table of Contents](../README.md) | [Thread Demo](../thread/DEMO_OVERVIEW.md) | +[Wi-Fi Demo](../wifi/DEMO_OVERVIEW.md) diff --git a/docs/silabs/images/Flash_efr32_example.gif b/docs/silabs/images/Flash_efr32_example.gif new file mode 100644 index 00000000000000..6cf03a026c1982 Binary files /dev/null and b/docs/silabs/images/Flash_efr32_example.gif differ diff --git a/docs/silabs/images/build_efr32_example.gif b/docs/silabs/images/build_efr32_example.gif new file mode 100644 index 00000000000000..6014ec03f9ccbc Binary files /dev/null and b/docs/silabs/images/build_efr32_example.gif differ diff --git a/docs/silabs/images/debug_session.gif b/docs/silabs/images/debug_session.gif new file mode 100644 index 00000000000000..e61ab805f68715 Binary files /dev/null and b/docs/silabs/images/debug_session.gif differ diff --git a/docs/silabs/images/run_build_task.jpg b/docs/silabs/images/run_build_task.jpg new file mode 100644 index 00000000000000..78bb8cc3993cee Binary files /dev/null and b/docs/silabs/images/run_build_task.jpg differ diff --git a/docs/silabs/images/run_build_task_step_2.jpg b/docs/silabs/images/run_build_task_step_2.jpg new file mode 100644 index 00000000000000..0801b903632bab Binary files /dev/null and b/docs/silabs/images/run_build_task_step_2.jpg differ diff --git a/docs/silabs/images/run_build_task_step_3.jpg b/docs/silabs/images/run_build_task_step_3.jpg new file mode 100644 index 00000000000000..af33ed8c24c640 Binary files /dev/null and b/docs/silabs/images/run_build_task_step_3.jpg differ diff --git a/docs/silabs/images/run_build_task_step_4.jpg b/docs/silabs/images/run_build_task_step_4.jpg new file mode 100644 index 00000000000000..244f05b7dc815e Binary files /dev/null and b/docs/silabs/images/run_build_task_step_4.jpg differ diff --git a/docs/silabs/images/win_run_setup.gif b/docs/silabs/images/win_run_setup.gif new file mode 100644 index 00000000000000..ab632bdc5b86f3 Binary files /dev/null and b/docs/silabs/images/win_run_setup.gif differ diff --git a/docs/silabs/thread/BUILD_FLASH_MAD.md b/docs/silabs/thread/BUILD_FLASH_MAD.md index af89c067e28899..9ee6c5eefe424e 100644 --- a/docs/silabs/thread/BUILD_FLASH_MAD.md +++ b/docs/silabs/thread/BUILD_FLASH_MAD.md @@ -36,10 +36,10 @@ local machine. To clone the repo use the following command: > `$ git clone https://github.com/SiliconLabs/matter.git` -Once you have cloned the repo, enter the repo and sync all the submodules with +Once you have cloned the repo, enter the repo and sync all the necessary submodules with the following command: -> `$ cd matter`
`$ git submodule update --init --recursive` +> `$ cd matter`
`$ ./scripts/checkout_submodules.py --shallow --recursive --platform efr32`
diff --git a/docs/silabs/thread/FAQ.md b/docs/silabs/thread/FAQ.md index 62a94105135d4f..d91df8dd627d14 100644 --- a/docs/silabs/thread/FAQ.md +++ b/docs/silabs/thread/FAQ.md @@ -4,7 +4,7 @@ - Why are the `mattertool` commands not working after all the steps? - - You should check if the Radio Co-Processor (RCP) image was build and/or + - You should check if the Radio Co-Processor (RCP) image was built and/or flashed correctly to the device - Make sure you see a QR code on the display of the Matter Accessory Device (MAD) @@ -25,5 +25,7 @@
----- -[Table of Contents](../README.md) | [Thread Demo](./DEMO_OVERVIEW.md) | [Wi-Fi Demo](../wifi/DEMO_OVERVIEW.md) \ No newline at end of file +--- + +[Table of Contents](../README.md) | [Thread Demo](./DEMO_OVERVIEW.md) | +[Wi-Fi Demo](../wifi/DEMO_OVERVIEW.md) diff --git a/docs/silabs/thread/RASPI_IMG.md b/docs/silabs/thread/RASPI_IMG.md index f7650478c7d792..025022a21895a6 100644 --- a/docs/silabs/thread/RASPI_IMG.md +++ b/docs/silabs/thread/RASPI_IMG.md @@ -44,6 +44,8 @@ used to flash the image to a micro SD card. The Raspberry Pi should be connected to a network - this could be Ethernet or a Wi-Fi network. +> NOTE: If you cannot connect your Rasberry Pi to a network over Wifi or Ethernet you do have the option to connect a monitor and keyboard the the Raspberry Pi and interact with it that way. In this case you do not need to connect your Raspberry Pi to a network as you can interface with it directly as you would with any computer running Ubuntu Linux. + The preference here is to use Ethernet, however if you are using Wi-Fi for your connection to the Raspberry Pi, please see [Connecting Raspberry Pi to Wi-Fi](https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-networking) for instructions on how to connect your Raspberry Pi to a Wi-Fi network. Once you have connected your Raspberry Pi to the network, you will want to connect to your Raspberry Pi over SSH. In order to do this you will need the IP address of your Raspberry Pi. Please see the [Finding Your Raspberry Pi page](../general/FIND_RASPI.md) for diff --git a/docs/silabs/thread/RCP.md b/docs/silabs/thread/RCP.md index 063a6516bc9b24..11c27e43af519c 100644 --- a/docs/silabs/thread/RCP.md +++ b/docs/silabs/thread/RCP.md @@ -46,7 +46,7 @@ local machine. To clone the repo use the following command: Once you have cloned the repo, enter the repo and sync all the submodules with the following command: -> `$ cd ot-efr32`
> `$ git submodule update --init --recursive` +> `$ cd ot-efr32`
> `$ git submodule update --init` After updating the submodules you can check out the correct branch or commit hash for the system. Check the current branch and commit hash used here: diff --git a/docs/silabs/wifi/BUILD_CHIP_ENV.md b/docs/silabs/wifi/BUILD_CHIP_ENV.md index 16764a5b997cc1..780138d670d429 100644 --- a/docs/silabs/wifi/BUILD_CHIP_ENV.md +++ b/docs/silabs/wifi/BUILD_CHIP_ENV.md @@ -35,27 +35,26 @@ Update the latest packages by typing following commands in terminal: - Check out Matter codebase from GitHub: - - Create a working directory - we will name it `matter` as part of this - example: + - Create a working directory. In this example it is named `git`: - > `$ mkdir matter` + > `$ mkdir git` - > `$ cd matter` + > `$ cd git` - > `$ MATTER_WORKDIR=pwd` + > `$ MATTER_WORKDIR=git` --> We will use $MATTER_WORKDIR later - Download the - [Matter codebase](https://github.com/project-chip/connectedhomeip.git) + [Matter codebase](https://github.com/SiliconLabs/matter.git) from here as follows: - > `$ git clone https://github.com/project-chip/connectedhomeip.git` + > `$ git clone https://github.com/SiliconLabs/matter.git` - Sync submodules by running the following commands: - > `$ cd connectedhomeip` + > `$ cd matter` - > `$ git submodule update --init --recursive` + > `$ ./scripts/checkout_submodules.py --shallow --recursive --platform efr32` - Environment Builds @@ -65,7 +64,7 @@ Update the latest packages by typing following commands in terminal: > `$ mkdir out` - **[Optional:** Increasing stack size **]**
  Navigate to - `matter/connectedhomeip` and open the file in the path + `git/matter` and open the file in the path `examples/lighting-app/efr32/include/FreeRTOSConfig.h`. Find the macro: \``configMINIMAL_STACK_SIZE`\`, and change the macro value from `140` to **`320`**. @@ -85,7 +84,7 @@ Build command for WF200: Run the following: -> `$ cd connectedhomeip` +> `$ cd matter` > `$ ` @@ -96,7 +95,7 @@ Run the following: The generated software can be found in `out/rs911x_xxx/BRD4161A/*.out`. -This is what you will burn into the EFR32. +This is what you will flash into the EFR32.
@@ -105,7 +104,7 @@ This is what you will burn into the EFR32. - Build the ChipTool on a laptop which has Wi-Fi and Bluetooth LE - Run the following commands: - > `$ cd $MATTER_WORKDIR/connectedhomeip`
+ > `$ cd $MATTER_WORKDIR/matter`
> `$ ./scripts/examples/gn_build_example.sh examples/chip-tool out/standalone` diff --git a/docs/silabs/wifi/DEMO_OVERVIEW.md b/docs/silabs/wifi/DEMO_OVERVIEW.md index 2674a53d2aa7aa..4352b7e949705c 100644 --- a/docs/silabs/wifi/DEMO_OVERVIEW.md +++ b/docs/silabs/wifi/DEMO_OVERVIEW.md @@ -1,17 +1,17 @@ # Matter over Wi-Fi Demo Overview This document walks through the steps to build the Matter Lighting-app project using -EFR32 BRD4161A + RS911X and EFR32 BRD4161A + WF200. Silicon Labs has two -families of Wi-Fi adapters (1. RS911X 2. WF200). Both are supported in this Wi-Fi +EFR32 BRD4161A, BRD4163A, or BRD4164A + RS911X and EFR32 BRD4161A, BRD4163A, or BRD4164A + WF200. +Silicon Labs has two families of Wi-Fi adapters (1. RS911X 2. WF200). Both are supported in this Wi-Fi port of Matter. ## Step 1: Matter Wi-Fi Prerequisites -Before you being running the Matter Wi-Fi demo or developing for Wi-Fi you will want to make sure that you have all the required hardware and software for each use case. T +Before you being running the Matter Wi-Fi demo or developing for Wi-Fi you will want to make sure that you have all the required hardware and software for each use case. 1. [Matter Wi-Fi Prerequisites](WIFI_PREREQS.md) - This page goes through the hardware and software (host side) required for the demo. Make sure you have all the necessary hardware and software available before continuing. + This page goes through the hardware and software (host side) required for the demo. ## Step 2: Building the Chip-Tool for Wi-Fi diff --git a/docs/silabs/wifi/FAQ.md b/docs/silabs/wifi/FAQ.md index d3feaa601d8ff7..ef31389639b780 100644 --- a/docs/silabs/wifi/FAQ.md +++ b/docs/silabs/wifi/FAQ.md @@ -1,5 +1,79 @@ -# Frequently Asked Questions for Matter over Wifi +# Frequently Asked Questions and Troubleshooting for Matter over Wi-Fi +## Troubleshooting ----- -[Table of Contents](../README.md) | [Thread Demo](../thread/DEMO_OVERVIEW.md) | [Wi-Fi Demo](./DEMO_OVERVIEW.md) \ No newline at end of file +
+ +### 1. Bluetooth connection fails when trying to commission the system through the ChipTool: + +
+ +**Command leading to error:** + + $ out/standalone/chip-tool pairing ble-wifi 1122 mySSID myPassword 20202021 3840 + +> Where `mySSID` is **your AP's SSID** and `mypassword` is **your AP's +> password**. + +
+ +**Error example:** + + [1659464425.856025][34818:34823] CHIP:DL: HandlePlatformSpecificBLEEvent 16386 + + [1659464425.856035][34818:34823] CHIP:IN: Clearing BLE pending packets. + + [1659464425.856055][34818:34823] CHIP:IN: BleConnection Error: ../../examples/chip-tool/third_party/connectedhomeip/src/platform/Linux/bluez/Helper.cpp:1775: CHIP Error 0x000000AC: Internal error + +> This error indicates that the Bluetooth connection between your system and +> laptop is failing. Follow the given procedure and then retry the ChipTool +> commissioning command. + +
+ +**Procedure:** + +1. Stop Bluetooth service: `$ systemctl stop bluetooth.service` +2. Wait 20 seconds +3. Restart Bluetooth service: `$ sudo service bluetooth restart` +4. Unblock Bluetooth service: `$ rfkill unblock all` +5. Enable Bluetooth service: `$ sudo systemctl enable bluetooth` +6. Issue the pairing command: + `$ out/standalone/chip-tool pairing ble-wifi 1122 mySSID mypassword 20202021 3840` +
+ + > Where `mySSID` is **your AP's SSID** and `mypassword` is **your AP's + > password**. + +

+ +### 2. Unsupported certificate format Error: + +
+ +When trying to commission the system, if an `Unsupported certificate format` +error (example below) is encountered, follow the procedure stated below. + +
+ +**Error example:** + + [1659631352.672826][5076:5076] CHIP:TOO: Run command failure: ../../examples/chip-tool/third_party/connectedhomeip/src/controller/CHIPDeviceController.cpp:1275: CHIP Error 0x00000050: Unsupported certificate format + +
+ +**Procedure:** + +- Delete the existing certificates on your laptop with the following command + run from the `/connectedhomeip` directory: + + > $ /bin/rm/tmp/chip\_\* + +- Issue the commissioning command + +
+ +--- + +[Table of Contents](../README.md) | [Thread Demo](../thread/DEMO_OVERVIEW.md) | +[Wi-Fi Demo](./DEMO_OVERVIEW.md) diff --git a/docs/silabs/wifi/RUN_DEMO.md b/docs/silabs/wifi/RUN_DEMO.md index eeaf32bdeba4c4..9cf4c2b39acdae 100644 --- a/docs/silabs/wifi/RUN_DEMO.md +++ b/docs/silabs/wifi/RUN_DEMO.md @@ -72,12 +72,10 @@ > Linux or Raspberry Pi 1. Get the SSID and PSK of the Wi-Fi network (WPA2 - Security) you are connected - to -2. Position the hardware near the laptop as the BLE antenna on the BRD4161A is - slightly weak -3. Run the following: + to. +2. Run the following: - > `$ cd $MATTER_WORKDIR/connectedhomeip` + > `$ cd $MATTER_WORKDIR/matter` ### Commissioning Command: @@ -87,26 +85,26 @@ > '\$SSID' is a placeholder for your Wi-Fi SSID and '\$PSK' is a placeholder > for the password of your Wi-Fi network. -4. Turning **on** the LED on the EFR32MG12:
  +4. To turn **on** the LED on the EFR32MG12:
  `$ out/standalone/chip-tool onoff on 1122 1` -5. Turning **off** the LED on the EFR32MG12:
  +5. To turn **off** the LED on the EFR32MG12:
  `$ out/standalone/chip-tool onoff off 1122 1` > If there are any failures, run the following command and then re-run the > ChipTool command: `$ rm -rf /tmp/chip_*` -> If you are having difficulty getting the Chip-Tool to commission the device successfully it may be because you have more than one network interface available to the Chip-Tool. The device on which you are running the Chip-Tool must be on the same Wi-Fi network as your RS9116 or WF200 and there cannot be another network interface on the device that is running the Chip-Tool. For instance if you have an Ethernet connection as well as a Wi-Fi connection, you need to unplug the Ethernet connection and try running the Chip-Tool as in step #3 above. +> If you are having difficulty getting the Chip-Tool to commission the device successfully, it may be because you have more than one network interface available to the Chip-Tool. The device on which you are running the Chip-Tool must be on the same Wi-Fi network as your RS9116 or WF200 and there cannot be another network interface on the device that is running the Chip-Tool. For instance, if you have an Ethernet connection as well as a Wi-Fi connection, you need to unplug the Ethernet connection and try running the Chip-Tool as in step #3 above. > As the device remembers the Access Point credentials given for commissioning, > if you want to run the demo multiple times, do a factory reset by pressing the > BTN0 on EFR32 MG12 for about 6-7 seconds. The LED0 and LED1 -> flashes 3 times and the QR code appears again on the LCD screen. +> will flash 3 times and the QR code will appear again on the LCD screen.
The commissioning command mentioned above does the following: -- ChipTool scans BLE and located the Silicon Labs device that uses the specified +- ChipTool scans BLE and locates the Silicon Labs device that uses the specified discriminator - Sends the Wi-Fi SSID and Passkey - The Silicon Labs device will join the Wi-Fi network and get an IPv4 address. It diff --git a/docs/silabs/wifi/SW_SETUP.md b/docs/silabs/wifi/SW_SETUP.md index fd28e250c0c19b..97667b96e5d31a 100644 --- a/docs/silabs/wifi/SW_SETUP.md +++ b/docs/silabs/wifi/SW_SETUP.md @@ -15,27 +15,26 @@ Virtual Machine to clone the repository and run bootstrap to prepare to build th 1. To download the [SiliconLabs Matter codebase](https://github.com/SiliconLabs/matter.git) run - the following commands. Create a working directory - we will name it `matter` - as part of this example flow: + the following commands. Create a working directory named `git`: - > `$ mkdir matter` + > `$ mkdir git` - > `$ cd matter` + > `$ cd git` - > `$ MATTER_WORKDIR=pwd`    --> We will use $MATTER_WORKDIR later + > `$ MATTER_WORKDIR=git`    --> We will use $MATTER_WORKDIR later > `$ git clone https://github.com/SiliconLabs/matter.git` 2. Bootstrapping: - > `$ cd connectedhomeip` + > `$ cd matter` - > `$ git submodule update --init --recursive` + > `$ ./scripts/checkout_submodules.py --shallow --recursive --platform efr32` > `$ . scripts/bootstrap.sh` - Create a directory where binaries will be updated/compiled. We will call it - `out` in this example: + Create a directory where binaries will be updated/compiled called + `out`: > `$ mkdir out` @@ -54,14 +53,14 @@ Build command for WF200: Run the following: -> `$ cd connectedhomeip` +> `$ cd matter` > `$ ` The generated software can be found in `out/rs911x_xxx/BRD4161A/*.out` for the RS9116 and in `out/wf200_xxx/BRD4161A/*.out` for the WF200. -This is what you will burn onto the EFR32. +This is what you will flash onto the EFR32. ## Compiling the ChipTool @@ -69,21 +68,21 @@ In order to control the Wi-Fi Matter Accessory Device you will have to compile a If you have not cloned this repository, you can run the following commands to clone the repository and set it up to build the ChipTool from source. -1. Run the following commands on a terminal where you will run chip-tool: +1. Run the following commands on a terminal where you will run chip-tool (if not already performed above in Software Setup section): - > `$ mkdir matter` + > `$ mkdir git` - > `$ cd matter` + > `$ cd git` - > `$ MATTER_WORKDIR=pwd`    --> We will use $MATTER_WORKDIR later + > `$ MATTER_WORKDIR=git`    --> We will use $MATTER_WORKDIR later > `$ git clone https://github.com/SiliconLabs/matter.git` -2. Bootstrapping: +2. Bootstrapping (if not already performed above in Software Setup section): - > `$ cd connectedhomeip` + > `$ cd matter` - > `$ git submodule update --init --recursive` + > `$ git submodule update --init` > `$ . scripts/bootstrap.sh` diff --git a/docs/silabs/wifi/WIFI_ANDROID.md b/docs/silabs/wifi/WIFI_ANDROID.md index f1d0cb8fc4e82e..e756036b03cfcb 100644 --- a/docs/silabs/wifi/WIFI_ANDROID.md +++ b/docs/silabs/wifi/WIFI_ANDROID.md @@ -6,21 +6,19 @@ Download pre-build application from the [Matter Artifacts page](../general/ARTIFACTS.md). 1. Open the .apk that is installed in the Android mobile -2. Connect the Android phone to the Wi-Fi Access Point that is going to be used -3. Run the installed CHIP app -4. Click 'Provision Chip device with Wi-Fi' -5. The app will bring up the camera: +1. Connect the Android phone to the Wi-Fi Access Point that is going to be used +1. Run the installed CHIP app +1. Click 'Provision Chip device with Wi-Fi' +1. The app will bring up the camera: - Hold the camera to the LCD on the WSTK board - Scan the QR Code displayed on LCD screen of EFR32 MG12 Platform -6. Input the SSID/Passphrase of the Wi-Fi Access Point on the next screen -7. Hold the phone very close (a few centimeters) from the EFR32 platform (as the - Bluetooth Antenna is slightly weak) -8. You will see messages (Toasts) pop up - saying that the App is 'Scanning', +1. Input the SSID/Passphrase of the Wi-Fi Access Point on the next screen +1. You will see messages (Toasts) pop up - saying that the App is 'Scanning', then 'Pairing', followed by 'Commissioning Done' -9. Once commissioning is completed, the app will go back to the original/home +1. Once commissioning is completed, the app will go back to the original/home screen -10. Click on 'Light ON/OFF & Level Cluster' -11. You can then bring up the On/Off Cluster and send On/Off Commands (Toggle +1. Click on 'Light ON/OFF & Level Cluster' +1. You can then bring up the On/Off Cluster and send On/Off Commands (Toggle does not work as required currently) - this will cause LED 1 on the WSTK to change states @@ -34,7 +32,7 @@ Download pre-build application from the > - Power up the system again - this should cause the LCD to turn on and the > QR code to show up > - Press the BTN0 button and keep it pressed for about 1 min - this should -> cause LED0 and LED1 to turns ON and OFF for 3 times. You can then leave +> cause LED0 and LED1 to turns ON and OFF for 3 times. You can then release > the button ---- diff --git a/docs/silabs/wifi/WIFI_PREREQS.md b/docs/silabs/wifi/WIFI_PREREQS.md index 5ce41b3f8ef0e8..2c85d4c412a4c0 100644 --- a/docs/silabs/wifi/WIFI_PREREQS.md +++ b/docs/silabs/wifi/WIFI_PREREQS.md @@ -31,9 +31,12 @@ follows: commission and control the device) - Kits/Boards: - SLWSTK6000B Wireless Starter Kit main board - - BRD4161A/BRD4186C daughter boards are supported + - BRD4161A/BRD4163A/BRD4164A/BRD4186C/BRD4187C daughter boards are supported - [SLWRB4161A](https://www.silabs.com/development-tools/wireless/zigbee/slwrb4161a-efr32mg12-radio-board) + - [SLWRB4163A](https://www.silabs.com/development-tools/wireless/zigbee/slwrb4163a-efr32mg12-radio-board) + - [SLWRB4164A](https://www.silabs.com/development-tools/wireless/zigbee/slwrb4164a-efr32mg12-radio-board) - [XG24-RB4186C](https://www.silabs.com/development-tools/wireless/xg24-rb4186c-efr32xg24-wireless-gecko-radio-board) + - [XG24-RB4187C](https://www.silabs.com/development-tools/wireless/xg24-rb4187c-efr32xg24-wireless-gecko-radio-board) > BLE and Matter code run here - Wi-Fi Dev Kit, either [RS9116X-SB-EVK1](https://www.silabs.com/development-tools/wireless/wi-fi/rs9116x-sb-evk-development-kit)