From 6f5da35df596d4ef6ebac8e2fa326562fb028b28 Mon Sep 17 00:00:00 2001 From: WanqQixiang Date: Wed, 11 Dec 2024 15:51:13 +0800 Subject: [PATCH] submodule: update to 43aa98c2d3 to support ESP32-P4 --- .gitlab-ci.yml | 4 +- README.md | 2 +- connectedhomeip/connectedhomeip | 2 +- docs/_static/esp_sdk_matter_version.js | 3 +- docs/conf_common.py | 2 +- docs/en/developing.rst | 26 ++++++++++-- examples/door_lock/sdkconfig.defaults.esp32p4 | 40 ++++++++++++++++++ .../generic_switch/sdkconfig.defaults.esp32p4 | 40 ++++++++++++++++++ examples/light/sdkconfig.defaults.esp32p4 | 40 ++++++++++++++++++ .../light_switch/sdkconfig.defaults.esp32p4 | 41 +++++++++++++++++++ .../sdkconfig.defaults.esp32p4 | 40 ++++++++++++++++++ .../refrigerator/sdkconfig.defaults.esp32p4 | 41 +++++++++++++++++++ 12 files changed, 272 insertions(+), 9 deletions(-) create mode 100644 examples/door_lock/sdkconfig.defaults.esp32p4 create mode 100644 examples/generic_switch/sdkconfig.defaults.esp32p4 create mode 100644 examples/light/sdkconfig.defaults.esp32p4 create mode 100644 examples/light_switch/sdkconfig.defaults.esp32p4 create mode 100644 examples/multiple_on_off_plugin_units/sdkconfig.defaults.esp32p4 create mode 100644 examples/refrigerator/sdkconfig.defaults.esp32p4 diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e19f0517b..32e0c01b1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -25,7 +25,7 @@ variables: IDF_CHECKOUT_REF: "v5.2.3" # This variable represents the short hash of the connectedhomeip submodule. # Note: Do change this short hash on submodule update MRs. - CHIP_SHORT_HASH: "9b008bc10d" + CHIP_SHORT_HASH: "43aa98c2d3" DOCKER_IMAGE_NAME: "espressif/chip-idf" .add_gitlab_ssh_key: &add_gitlab_ssh_key | @@ -528,7 +528,7 @@ build_docs: script: - cd docs - pip install -r requirements.txt - - build-docs -t esp32 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 -l en + - build-docs -t esp32 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 -l en .deploy_docs_template: stage: docs diff --git a/README.md b/README.md index 26cf88124..31bb668aa 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ section in the ESP-Matter Programming Guide. ## Supported ESP-IDF and connectedhomeip versions -- This SDK currently works with commit [9b008bc10d](https://github.com/project-chip/connectedhomeip/tree/9b008bc10d) of connectedhomeip. +- This SDK currently works with commit [43aa98c2d3](https://github.com/project-chip/connectedhomeip/tree/43aa98c2d3) of connectedhomeip. - For Matter projects development with this SDK, it is recommended to utilize ESP-IDF [v5.2.3](https://github.com/espressif/esp-idf/tree/v5.2.3). ## Documentation diff --git a/connectedhomeip/connectedhomeip b/connectedhomeip/connectedhomeip index 9b008bc10..43aa98c2d 160000 --- a/connectedhomeip/connectedhomeip +++ b/connectedhomeip/connectedhomeip @@ -1 +1 @@ -Subproject commit 9b008bc10d48bef1184cf9f0405b12b41af5d328 +Subproject commit 43aa98c2d30ee547c6b587b9de7bbb794f175ece diff --git a/docs/_static/esp_sdk_matter_version.js b/docs/_static/esp_sdk_matter_version.js index 17afe01e2..c101fefb3 100644 --- a/docs/_static/esp_sdk_matter_version.js +++ b/docs/_static/esp_sdk_matter_version.js @@ -3,7 +3,7 @@ var DOCUMENTATION_VERSIONS = { supported_targets: [ "esp32" ] }, VERSIONS: [ - { name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32s3", "esp32h2" ] }, + { name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ] }, ], IDF_TARGETS: [ { text: "ESP32", value: "esp32" }, @@ -12,5 +12,6 @@ var DOCUMENTATION_VERSIONS = { { text: "ESP32-C3", value: "esp32c3" }, { text: "ESP32-C6", value: "esp32c6" }, { text: "ESP32-H2", value: "esp32h2" }, + { text: "ESP32-P4", value: "esp32p4" }, ] }; diff --git a/docs/conf_common.py b/docs/conf_common.py index 9ca6207f5..14dc5e49a 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -1,7 +1,7 @@ from esp_docs.conf_docs import * # noqa: F403,F401 languages = ['en'] -idf_targets = ['esp32', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c6', 'esp32h2'] +idf_targets = ['esp32', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c6', 'esp32h2', 'esp32p4'] extensions += ['sphinx_copybutton', # Needed as a trigger for running doxygen diff --git a/docs/en/developing.rst b/docs/en/developing.rst index 49ae62c89..b569a7f8e 100644 --- a/docs/en/developing.rst +++ b/docs/en/developing.rst @@ -262,6 +262,12 @@ Choose IDF target. idf.py set-target esp32c6 +.. only:: esp32p4 + + :: + + idf.py set-target esp32p4 + - If IDF target has not been set explicitly, then ``esp32`` is considered as default. - The default device for ``esp32``/``esp32c3`` is @@ -278,6 +284,20 @@ Choose IDF target. - The configuration of the peripheral components can be found in ``$ESP_MATTER_DEVICE_PATH/esp_matter_device.cmake``. +.. only:: esp32p4 + + - Setup the slave device for ESP32-P4 + + It is possible to use Wi-Fi and BLE connection on ESP32-P4 that does not support native Wi-Fi and BLE peripherals, which requires another ESP target with native Wi-Fi support physically connected to the ESP32-P4. + This uses `esp_hosted `__ component, please refer to its documentation for more details. + We recommend to use `ESP32-P4 Function_EV_Board `__ to build the examples for ESP32-P4. It is composed of an ESP32-P4 and an ESP32-C6. + After setting IDF target, the ``esp_hosted`` will be downloaded at managed_components directory, build and flash the slave device for ESP32-C6. Note that you need the `ESP-Prog Board `__ to flash the slave firmware to ESP32-C6. + + :: + + idf.py -C managed_components/espressif__esp_hosted/slave/ -B build_slave set-target esp32c6 + idf.py -C managed_components/espressif__esp_hosted/slave/ -B build_slave build flash monitor + .. only:: esp32c6 - ESP32-C6 supports both the Wi-Fi and IEEE 802.15.4 radio, so you can run Wi-Fi or Thread matter example on it. @@ -333,7 +353,7 @@ Use ``chip-tool`` in interactive mode to commission the device: chip-tool interactive start -.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 +.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 :: @@ -360,7 +380,7 @@ Above method commissions the device using setup passcode and discriminator. Devi To Commission the device using manual pairing code 34970112332 -.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 +.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 :: @@ -387,7 +407,7 @@ Above default manual pairing code contains following values: To commission the device using QR code MT:Y.K9042C00KA0648G00 -.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 +.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 :: diff --git a/examples/door_lock/sdkconfig.defaults.esp32p4 b/examples/door_lock/sdkconfig.defaults.esp32p4 new file mode 100644 index 000000000..b49dd0842 --- /dev/null +++ b/examples/door_lock/sdkconfig.defaults.esp32p4 @@ -0,0 +1,40 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Flash size and partition +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Enable BLE Host but use remote controller +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Disable Wi-Fi Soft AP +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# LwIP +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 + +# mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# Matter shell +CONFIG_ENABLE_CHIP_SHELL=y + +# OTA requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTON_1_GPIO=35 diff --git a/examples/generic_switch/sdkconfig.defaults.esp32p4 b/examples/generic_switch/sdkconfig.defaults.esp32p4 new file mode 100644 index 000000000..b49dd0842 --- /dev/null +++ b/examples/generic_switch/sdkconfig.defaults.esp32p4 @@ -0,0 +1,40 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Flash size and partition +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Enable BLE Host but use remote controller +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Disable Wi-Fi Soft AP +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# LwIP +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 + +# mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# Matter shell +CONFIG_ENABLE_CHIP_SHELL=y + +# OTA requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTON_1_GPIO=35 diff --git a/examples/light/sdkconfig.defaults.esp32p4 b/examples/light/sdkconfig.defaults.esp32p4 new file mode 100644 index 000000000..b49dd0842 --- /dev/null +++ b/examples/light/sdkconfig.defaults.esp32p4 @@ -0,0 +1,40 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Flash size and partition +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Enable BLE Host but use remote controller +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Disable Wi-Fi Soft AP +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# LwIP +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 + +# mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# Matter shell +CONFIG_ENABLE_CHIP_SHELL=y + +# OTA requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTON_1_GPIO=35 diff --git a/examples/light_switch/sdkconfig.defaults.esp32p4 b/examples/light_switch/sdkconfig.defaults.esp32p4 new file mode 100644 index 000000000..5fc7c9a05 --- /dev/null +++ b/examples/light_switch/sdkconfig.defaults.esp32p4 @@ -0,0 +1,41 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Flash size and partition +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Enable BLE Host but use remote controller +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Disable Wi-Fi Soft AP +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# LwIP +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 + +# mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# Matter shell +CONFIG_ENABLE_CHIP_SHELL=y + +# OTA requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_GPIO=35 diff --git a/examples/multiple_on_off_plugin_units/sdkconfig.defaults.esp32p4 b/examples/multiple_on_off_plugin_units/sdkconfig.defaults.esp32p4 new file mode 100644 index 000000000..b49dd0842 --- /dev/null +++ b/examples/multiple_on_off_plugin_units/sdkconfig.defaults.esp32p4 @@ -0,0 +1,40 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Flash size and partition +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Enable BLE Host but use remote controller +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Disable Wi-Fi Soft AP +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# LwIP +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 + +# mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# Matter shell +CONFIG_ENABLE_CHIP_SHELL=y + +# OTA requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTON_1_GPIO=35 diff --git a/examples/refrigerator/sdkconfig.defaults.esp32p4 b/examples/refrigerator/sdkconfig.defaults.esp32p4 new file mode 100644 index 000000000..5fc7c9a05 --- /dev/null +++ b/examples/refrigerator/sdkconfig.defaults.esp32p4 @@ -0,0 +1,41 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Flash size and partition +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# Enable BLE Host but use remote controller +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Disable Wi-Fi Soft AP +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# LwIP +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 + +# mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# Matter shell +CONFIG_ENABLE_CHIP_SHELL=y + +# OTA requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_GPIO=35