mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
Add ESP32-C6 support for ICD example
This commit is contained in:
@@ -75,9 +75,9 @@ examples/mfg_test_app:
|
|||||||
temporary: true
|
temporary: true
|
||||||
reason: the other targets are not tested yet
|
reason: the other targets are not tested yet
|
||||||
|
|
||||||
examples/sleepy_device:
|
examples/icd_app:
|
||||||
enable:
|
enable:
|
||||||
- if: IDF_TARGET in ["esp32h2"]
|
- if: IDF_TARGET in ["esp32h2", "esp32c6"]
|
||||||
temporary: true
|
temporary: true
|
||||||
reason: the other targets are not tested yet
|
reason: the other targets are not tested yet
|
||||||
|
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ endif(NOT DEFINED ENV{ESP_MATTER_PATH})
|
|||||||
if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
|
if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
|
||||||
if("${IDF_TARGET}" STREQUAL "esp32h2")
|
if("${IDF_TARGET}" STREQUAL "esp32h2")
|
||||||
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32h2_devkit_c)
|
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32h2_devkit_c)
|
||||||
|
elseif("${IDF_TARGET}" STREQUAL "esp32c6")
|
||||||
|
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c6_devkit_c)
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "Unsupported IDF_TARGET")
|
message(FATAL_ERROR "Unsupported IDF_TARGET")
|
||||||
endif()
|
endif()
|
||||||
@@ -31,7 +33,7 @@ set(EXTRA_COMPONENT_DIRS
|
|||||||
"${ESP_MATTER_PATH}/device_hal/device"
|
"${ESP_MATTER_PATH}/device_hal/device"
|
||||||
${extra_components_dirs_append})
|
${extra_components_dirs_append})
|
||||||
|
|
||||||
project(sleepy_device)
|
project(icd_app)
|
||||||
|
|
||||||
idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DCHIP_HAVE_CONFIG_H;-DCONFIG_OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_MAX_SERVICES=5" APPEND)
|
idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DCHIP_HAVE_CONFIG_H;-DCONFIG_OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_MAX_SERVICES=5" APPEND)
|
||||||
idf_build_set_property(C_COMPILE_OPTIONS "-Os;-DCONFIG_OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_MAX_SERVICES=5" APPEND)
|
idf_build_set_property(C_COMPILE_OPTIONS "-Os;-DCONFIG_OPENTHREAD_CONFIG_SRP_CLIENT_BUFFERS_MAX_SERVICES=5" APPEND)
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
# Intermittently Connected Device (ICD)
|
||||||
|
|
||||||
|
This example creates a Matter ICD device using the ESP Matter data model. Currently it is available for ESP32-H2 and ESP32-C6.
|
||||||
|
|
||||||
|
See the [docs](https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html) for more information about building and flashing the firmware.
|
||||||
|
|
||||||
|
## 1. Additional Environment Setup
|
||||||
|
|
||||||
|
No additional setup is required.
|
||||||
|
|
||||||
|
## 2. Post Commissioning Setup
|
||||||
|
|
||||||
|
No additional setup is required.
|
||||||
|
|
||||||
|
## 3. ICD configuration options
|
||||||
|
|
||||||
|
The ICD configuration parameters can be configured in menuconfig.
|
||||||
|
|
||||||
|
```
|
||||||
|
# Enable ICD server
|
||||||
|
CONFIG_ENABLE_ICD_SERVER=y
|
||||||
|
# ICD Active mode interval(ms)
|
||||||
|
CONFIG_ICD_ACTIVE_MODE_INTERVAL_MS=1000
|
||||||
|
# ICD Active mode threshold(ms)
|
||||||
|
CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS=1000
|
||||||
|
# ICD Idle mode interval(s)
|
||||||
|
CONFIG_ICD_IDLE_MODE_INTERVAL_SEC=60
|
||||||
|
# ICD Fast Poll interval(ms)
|
||||||
|
CONFIG_ICD_FAST_POLL_INTERVAL_MS=500
|
||||||
|
# ICD Slow Poll interval(ms)
|
||||||
|
CONFIG_ICD_SLOW_POLL_INTERVAL_MS=5000
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. Power usage
|
||||||
|
|
||||||
|
The power usage will be various for different configuration parameters of ICD server.
|
||||||
|
|
||||||
|
Below are example current wave figures for ESP32-H2 Devkit-C and ESP32-C6 Devkit-C. The ICD configurations and radio TX power are list in the table.
|
||||||
|
|
||||||
|
| Parameter | Value |
|
||||||
|
|---------------------------|--------|
|
||||||
|
| ICD Fast Polling Interval | 500ms |
|
||||||
|
| ICD Slow Polling Interval | 5000ms |
|
||||||
|
| ICD Active Mode Duration | 1000ms |
|
||||||
|
| ICD Idle Mode Duration | 60s |
|
||||||
|
| Radio TX Power | 20dBm |
|
||||||
|
|
||||||
|
Current Wave Figure for ESP32-H2:
|
||||||
|

|
||||||
|
|
||||||
|
Current Wave Figure for ESP32-C6:
|
||||||
|

|
||||||
|
|
||||||
|
**Note**: For ESP32-C6, please use ESP-IDF on branch `release/v5.1` with the commit id [931eaf7320](https://github.com/espressif/esp-idf/tree/931eaf7320b6c0b9acc9711ba4774f4f1bd3dae7).
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 91 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
@@ -0,0 +1,94 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32c6"
|
||||||
|
|
||||||
|
# libsodium
|
||||||
|
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
|
||||||
|
|
||||||
|
# NIMBLE
|
||||||
|
CONFIG_BT_ENABLED=y
|
||||||
|
CONFIG_BT_NIMBLE_ENABLED=y
|
||||||
|
CONFIG_BT_NIMBLE_EXT_ADV=n
|
||||||
|
CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70
|
||||||
|
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=y
|
||||||
|
|
||||||
|
# FreeRTOS should use legacy API
|
||||||
|
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
|
||||||
|
|
||||||
|
# Enable OpenThread
|
||||||
|
CONFIG_OPENTHREAD_ENABLED=y
|
||||||
|
CONFIG_OPENTHREAD_SRP_CLIENT=y
|
||||||
|
CONFIG_OPENTHREAD_DNS_CLIENT=y
|
||||||
|
CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n
|
||||||
|
CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y
|
||||||
|
CONFIG_OPENTHREAD_CLI=n
|
||||||
|
|
||||||
|
# Disable lwip ipv6 autoconfig
|
||||||
|
CONFIG_LWIP_IPV6_AUTOCONFIG=n
|
||||||
|
|
||||||
|
# Use a custom partition table
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM=y
|
||||||
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
|
||||||
|
|
||||||
|
# LwIP config for OpenThread
|
||||||
|
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
|
||||||
|
CONFIG_LWIP_MULTICAST_PING=y
|
||||||
|
|
||||||
|
# MDNS platform
|
||||||
|
CONFIG_USE_MINIMAL_MDNS=n
|
||||||
|
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
|
||||||
|
|
||||||
|
# Enable OTA Requestor
|
||||||
|
CONFIG_ENABLE_OTA_REQUESTOR=y
|
||||||
|
|
||||||
|
# Disable STA and AP for ESP32H2
|
||||||
|
CONFIG_ENABLE_WIFI_STATION=n
|
||||||
|
CONFIG_ENABLE_WIFI_AP=n
|
||||||
|
|
||||||
|
# Disable chip shell
|
||||||
|
CONFIG_ENABLE_CHIP_SHELL=n
|
||||||
|
|
||||||
|
# Enable DS Peripheral
|
||||||
|
CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=y
|
||||||
|
|
||||||
|
# BLE Sleep
|
||||||
|
CONFIG_BT_LE_SLEEP_ENABLE=y
|
||||||
|
CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL=y
|
||||||
|
|
||||||
|
# Disable external 32K crystal
|
||||||
|
CONFIG_RTC_CLK_SRC_EXT_CRYS=n
|
||||||
|
|
||||||
|
# Enable power management
|
||||||
|
CONFIG_PM_ENABLE=y
|
||||||
|
CONFIG_PM_DFS_INIT_AUTO=y
|
||||||
|
CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP=y
|
||||||
|
CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=n
|
||||||
|
CONFIG_ESP_PHY_MAC_BB_PD=y
|
||||||
|
|
||||||
|
# FreeRTOS config for light sleep
|
||||||
|
CONFIG_FREERTOS_HZ=1000
|
||||||
|
CONFIG_FREERTOS_USE_TICKLESS_IDLE=y
|
||||||
|
|
||||||
|
# Enable IEEE 802.15.4 sleep
|
||||||
|
CONFIG_IEEE802154_SLEEP_ENABLE=y
|
||||||
|
|
||||||
|
# FreeRTOS config for light sleep
|
||||||
|
CONFIG_LWIP_ND6=n
|
||||||
|
CONFIG_LWIP_IPV4=n
|
||||||
|
CONFIG_DISABLE_IPV4=y
|
||||||
|
|
||||||
|
# Disable hardware acceleration
|
||||||
|
CONFIG_MBEDTLS_HARDWARE_AES=n
|
||||||
|
CONFIG_MBEDTLS_HARDWARE_MPI=n
|
||||||
|
CONFIG_MBEDTLS_HARDWARE_SHA=n
|
||||||
|
CONFIG_MBEDTLS_HARDWARE_ECC=n
|
||||||
|
CONFIG_MBEDTLS_HARDWARE_ECDSA_VERIFY=n
|
||||||
|
CONFIG_MBEDTLS_SSL_PROTO_DTLS=y
|
||||||
|
|
||||||
|
# Use OpenThread MTD
|
||||||
|
CONFIG_OPENTHREAD_MTD=y
|
||||||
|
|
||||||
|
# ICD configurations
|
||||||
|
CONFIG_ENABLE_ICD_SERVER=y
|
||||||
|
CONFIG_ICD_FAST_POLL_INTERVAL_MS=500
|
||||||
|
CONFIG_ICD_IDLE_MODE_INTERVAL_SEC=60
|
||||||
|
CONFIG_ICD_ACTIVE_MODE_INTERVAL_MS=1000
|
||||||
|
CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS=1000
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
# Sleepy device
|
|
||||||
|
|
||||||
This example creates a Sleepy device using the ESP Matter
|
|
||||||
data model. Currently it can be only available for ESP32-H2.
|
|
||||||
|
|
||||||
See the [docs](https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html) for more information about building and flashing the firmware.
|
|
||||||
|
|
||||||
## 1. Additional Environment Setup
|
|
||||||
|
|
||||||
No additional setup is required.
|
|
||||||
|
|
||||||
## 2. Post Commissioning Setup
|
|
||||||
|
|
||||||
No additional setup is required.
|
|
||||||
|
|
||||||
## 3. ICD configuration options
|
|
||||||
|
|
||||||
The ICD configuration parameters can be configured in menuconfig.
|
|
||||||
|
|
||||||
```
|
|
||||||
# Enable ICD server
|
|
||||||
CONFIG_ENABLE_ICD_SERVER=y
|
|
||||||
# ICD Active mode interval(ms)
|
|
||||||
CONFIG_ICD_ACTIVE_MODE_INTERVAL_MS=1000
|
|
||||||
# ICD Active mode threshold(ms)
|
|
||||||
CONFIG_ICD_ACTIVE_MODE_THRESHOLD_MS=1000
|
|
||||||
# ICD Idle mode interval(s)
|
|
||||||
CONFIG_ICD_IDLE_MODE_INTERVAL_SEC=60
|
|
||||||
# ICD Fast Poll interval(ms)
|
|
||||||
CONFIG_ICD_FAST_POLL_INTERVAL_MS=500
|
|
||||||
# ICD Slow Poll interval(ms)
|
|
||||||
CONFIG_ICD_SLOW_POLL_INTERVAL_MS=5000
|
|
||||||
```
|
|
||||||
|
|
||||||
## 4. Power usage
|
|
||||||
|
|
||||||
The power usage will be various for different configuration parameters of ICD server. Below is an example current wave figure for ESP32-H2 Devkit-C. The ICD configurations and radio TX power are also on the picture.
|
|
||||||

|
|
||||||
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 129 KiB |
@@ -1,6 +0,0 @@
|
|||||||
dependencies:
|
|
||||||
espressif/cmake_utilities:
|
|
||||||
version: 0.*
|
|
||||||
rules: # will add "optional_component" only when all if clauses are True
|
|
||||||
- if: "idf_version >=5.0"
|
|
||||||
- if: "target in [esp32c2]"
|
|
||||||
Reference in New Issue
Block a user