From 7c3926ea82b99e54f5d530e27a65f24b708d97ad Mon Sep 17 00:00:00 2001 From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com> Date: Wed, 12 Nov 2025 13:14:15 -0300 Subject: [PATCH 01/10] feat(esp32c61): Add support for ESP32-C61 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com> Co-authored-by: Sugar Glider --- .github/workflows/push.yml | 2 +- configs/builds.json | 17 ++++++++++++- configs/defconfig.esp32c5 | 4 --- configs/defconfig.esp32c61 | 51 ++++++++++++++++++++++++++++++++++++++ tools/copy-libs.sh | 15 ++++++++--- 5 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 configs/defconfig.esp32c61 diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c76e45a6b..c29be2464 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4, esp32c5] + target: [esp32, esp32s2, esp32s3, esp32c2, esp32c3, esp32c6, esp32h2, esp32p4, esp32c5, esp32c61] fail-fast: false steps: - name: Checkout repository diff --git a/configs/builds.json b/configs/builds.json index d40c15d2f..74f9b41b0 100644 --- a/configs/builds.json +++ b/configs/builds.json @@ -4,7 +4,7 @@ "file":"libspi_flash.a", "src":"build/esp-idf/spi_flash/libspi_flash.a", "out":"lib/libspi_flash.a", - "targets":["esp32","esp32c2","esp32c3","esp32s2","esp32s3","esp32c6","esp32h2","esp32p4","esp32c5"] + "targets":["esp32","esp32c2","esp32c3","esp32s2","esp32s3","esp32c6","esp32h2","esp32p4","esp32c5", "esp32c61"] }, { "file":"libesp_psram.a", @@ -44,6 +44,21 @@ } ], "targets":[ + { + "target": "esp32c61", + "skip": 1, + "features":["qio_ram"], + "idf_libs":["qio","80m"], + "bootloaders":[ + ["qio","80m"], + ["dio","80m"], + ["qio","40m"], + ["dio","40m"] + ], + "mem_variants":[ + ["dio","80m"] + ] + }, { "target": "esp32c5", "features":["qio_ram"], diff --git a/configs/defconfig.esp32c5 b/configs/defconfig.esp32c5 index 2ad03f3ac..4a71edfd3 100644 --- a/configs/defconfig.esp32c5 +++ b/configs/defconfig.esp32c5 @@ -15,10 +15,6 @@ CONFIG_BT_NIMBLE_NVS_PERSIST=y CONFIG_RTC_CLK_CAL_CYCLES=576 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 -# This Enables RISCV LP for C6 - but it can't be used within Arduino at this time. -#CONFIG_ULP_COPROC_ENABLED=y -#CONFIG_ULP_COPROC_LP_CORE=y -#CONFIG_ULP_COPROC_RESERVE_MEM=4096 # # OpenThread diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 new file mode 100644 index 000000000..4cc79d8c8 --- /dev/null +++ b/configs/defconfig.esp32c61 @@ -0,0 +1,51 @@ +CONFIG_SPIRAM=y + +CONFIG_BT_ENABLED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=n +CONFIG_BTDM_CTRL_MODE_BTDM=n +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_BLUFI_ENABLE=y +CONFIG_BT_NIMBLE_NVS_PERSIST=y +CONFIG_RTC_CLK_CAL_CYCLES=576 +# CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 + +# +# OpenThread +# +CONFIG_OPENTHREAD_ENABLED=y +# Border Router disabled +# CONFIG_OPENTHREAD_BORDER_ROUTER=y +# CONFIG_OPENTHREAD_RADIO_SPINEL_UART=y + +# DNS64 and NAT64 will be disabled for a while +# OT IDF issue https://github.com/espressif/esp-idf/issues/15069 +# CONFIG_OPENTHREAD_DNS64_CLIENT=y + +# Radio for RPC +# CONFIG_OPENTHREAD_RADIO=y +# CONFIG_OPENTHREAD_RADIO_NATIVE=y +# CONFIG_OPENTHREAD_DIAG=n +CONFIG_OPENTHREAD_COMMISSIONER=y +CONFIG_OPENTHREAD_JOINER=y +CONFIG_OPENTHREAD_CLI=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +# Default dataset for quick start +CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP" +CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64" +CONFIG_OPENTHREAD_NETWORK_CHANNEL=15 +CONFIG_OPENTHREAD_NETWORK_PANID=0x1234 +CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" +CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" +CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" +# end of OpenThread + +# Matter settings: WiFi and OpenThread + CHIPoBLE +CONFIG_ENABLE_CHIPOBLE=y +CONFIG_ENABLE_MATTER_OVER_THREAD=y +# Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. +CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 diff --git a/tools/copy-libs.sh b/tools/copy-libs.sh index a49b851f0..03af32580 100755 --- a/tools/copy-libs.sh +++ b/tools/copy-libs.sh @@ -452,10 +452,17 @@ for item; do mkdir -p "$out_cpath$rel_p" cp -n $f "$out_cpath$rel_p/" done - # Temporary measure to fix issues caused by https://github.com/espressif/esp-idf/commit/dc4731101dd567cc74bbe4d0f03afe52b7db9afb#diff-1d2ce0d3989a80830fdf230bcaafb3117f32046d16cf46616ac3d55b4df2a988R17 - if [[ "$fname" == "bt" && "$out_sub" == "/include/$IDF_TARGET/include" && -f "$ipath/controller/$IDF_TARGET/esp_bt_cfg.h" ]]; then - mkdir -p "$AR_SDK/include/$fname/controller/$IDF_TARGET" - cp -n "$ipath/controller/$IDF_TARGET/esp_bt_cfg.h" "$AR_SDK/include/$fname/controller/$IDF_TARGET/esp_bt_cfg.h" + + # Copy the the files in /include/esp32*/include for the soc found in bt + # This is necessary as there might be cross soc dependencies in the bt component. + # For example, the esp32c61 requires the esp_bt_cfg.h and esp_bt.h from the esp32c6. + if [[ "$fname" == "bt" && "$out_sub" =~ ^/include/esp32[^/]+/include$ ]]; then + soc_name=$(echo "$out_sub" | sed -n 's|/include/\(esp32[^/]*\)/include$|\1|p') + echo "Copying bt config file for soc: $soc_name" + if [ -n "$soc_name" ] && [ -f "$ipath/controller/$soc_name/esp_bt_cfg.h" ]; then + mkdir -p "$AR_SDK/include/$fname/controller/$soc_name" + cp -n "$ipath/controller/$soc_name/esp_bt_cfg.h" "$AR_SDK/include/$fname/controller/$soc_name/esp_bt_cfg.h" + fi fi fi done From 39047b59494edb748ca456764555a443f786f3fc Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 12 Nov 2025 13:23:42 -0300 Subject: [PATCH 02/10] Modify Matter settings for WiFi and CHIPoBLE Updated Matter settings to enable CHIPoBLE and disable Matter over Thread. --- configs/defconfig.esp32c61 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index 4cc79d8c8..065f285bc 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -43,9 +43,11 @@ CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" # end of OpenThread -# Matter settings: WiFi and OpenThread + CHIPoBLE +# Matter settings: WiFi + CHIPoBLE CONFIG_ENABLE_CHIPOBLE=y -CONFIG_ENABLE_MATTER_OVER_THREAD=y + +# Matter with WiFi + Thread - not enabled for now +#CONFIG_ENABLE_MATTER_OVER_THREAD=y # Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. -CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 -CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 +#CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 +#CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 From 5c2f024c1367a8873d9850b9eb173948842a7de8 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 12 Nov 2025 14:01:34 -0300 Subject: [PATCH 03/10] fix(matter): keeping network endpoints --- configs/defconfig.esp32c61 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index 065f285bc..cc9532739 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -49,5 +49,5 @@ CONFIG_ENABLE_CHIPOBLE=y # Matter with WiFi + Thread - not enabled for now #CONFIG_ENABLE_MATTER_OVER_THREAD=y # Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. -#CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 -#CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 +CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 From 1f87a3b74044b805056305e850039f7e11bef778 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 12 Nov 2025 14:02:33 -0300 Subject: [PATCH 04/10] fix(matter): exclicit Disable Matter over Thread --- configs/defconfig.esp32c61 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index cc9532739..e6d932005 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -47,7 +47,7 @@ CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" CONFIG_ENABLE_CHIPOBLE=y # Matter with WiFi + Thread - not enabled for now -#CONFIG_ENABLE_MATTER_OVER_THREAD=y +CONFIG_ENABLE_MATTER_OVER_THREAD=n # Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 From b72a52bde13f18b7f73890bbec675b0d86432054 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 12 Nov 2025 14:36:03 -0300 Subject: [PATCH 05/10] feat(matter): Update Matter settings for OpenThread and CHIPoBLE --- configs/defconfig.esp32c61 | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index e6d932005..6b83bd521 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -43,11 +43,16 @@ CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" # end of OpenThread -# Matter settings: WiFi + CHIPoBLE +# Matter settings: OpenThread + CHIPoBLE CONFIG_ENABLE_CHIPOBLE=y +CONFIG_ENABLE_MATTER_OVER_THREAD=y +# Disable Matter over WiFi +CONFIG_ENABLE_WIFI_AP=n +CONFIG_ENABLE_WIFI_STATION=n -# Matter with WiFi + Thread - not enabled for now -CONFIG_ENABLE_MATTER_OVER_THREAD=n -# Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. -CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 -CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 +# +# Zigbee +# +CONFIG_ZB_ZED=y +CONFIG_ZB_RADIO_NATIVE=y +# end of Zigbee From 58da14d1a2fb1d4fd0f309e4cf917fa01c143dca Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Wed, 12 Nov 2025 14:38:14 -0300 Subject: [PATCH 06/10] Remove Zigbee settings from defconfig Removed Zigbee configuration options from defconfig. --- configs/defconfig.esp32c61 | 7 ------- 1 file changed, 7 deletions(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index 6b83bd521..ec47aa424 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -49,10 +49,3 @@ CONFIG_ENABLE_MATTER_OVER_THREAD=y # Disable Matter over WiFi CONFIG_ENABLE_WIFI_AP=n CONFIG_ENABLE_WIFI_STATION=n - -# -# Zigbee -# -CONFIG_ZB_ZED=y -CONFIG_ZB_RADIO_NATIVE=y -# end of Zigbee From 9a0f5895c1ed044bc7fa16a753ed5849fafe05a4 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Thu, 13 Nov 2025 08:54:51 -0300 Subject: [PATCH 07/10] fix(matter): Remove OpenThread - no support Removed OpenThread configuration settings from defconfig. --- configs/defconfig.esp32c61 | 37 +------------------------------------ 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index ec47aa424..0acafe127 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -12,40 +12,5 @@ CONFIG_RTC_CLK_CAL_CYCLES=576 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 -# -# OpenThread -# -CONFIG_OPENTHREAD_ENABLED=y -# Border Router disabled -# CONFIG_OPENTHREAD_BORDER_ROUTER=y -# CONFIG_OPENTHREAD_RADIO_SPINEL_UART=y - -# DNS64 and NAT64 will be disabled for a while -# OT IDF issue https://github.com/espressif/esp-idf/issues/15069 -# CONFIG_OPENTHREAD_DNS64_CLIENT=y - -# Radio for RPC -# CONFIG_OPENTHREAD_RADIO=y -# CONFIG_OPENTHREAD_RADIO_NATIVE=y -# CONFIG_OPENTHREAD_DIAG=n -CONFIG_OPENTHREAD_COMMISSIONER=y -CONFIG_OPENTHREAD_JOINER=y -CONFIG_OPENTHREAD_CLI=y -CONFIG_OPENTHREAD_SRP_CLIENT=y -CONFIG_OPENTHREAD_DNS_CLIENT=y -# Default dataset for quick start -CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP" -CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64" -CONFIG_OPENTHREAD_NETWORK_CHANNEL=15 -CONFIG_OPENTHREAD_NETWORK_PANID=0x1234 -CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" -CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" -CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" -# end of OpenThread - -# Matter settings: OpenThread + CHIPoBLE +# Matter settings: CONFIG_ENABLE_CHIPOBLE=y -CONFIG_ENABLE_MATTER_OVER_THREAD=y -# Disable Matter over WiFi -CONFIG_ENABLE_WIFI_AP=n -CONFIG_ENABLE_WIFI_STATION=n From eff900b1f684d2c3912c2ea9b9bec712da2b9823 Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Thu, 13 Nov 2025 10:09:39 -0300 Subject: [PATCH 08/10] fix(matter): Disable OpenThread C61 configuration --- configs/defconfig.esp32c61 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index 0acafe127..6f6359150 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -14,3 +14,5 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 # Matter settings: CONFIG_ENABLE_CHIPOBLE=y +CONFIG_OPENTHREAD_ENABLED=n +CONFIO_OPENTHREAD_CLI=n From bba92f90b1c269c930b41a650f5699caa0ecfd0f Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Fri, 14 Nov 2025 11:51:57 -0300 Subject: [PATCH 09/10] fix(matter): Remove Matter settings C61 Remove Matter settings from ESP32 configuration. --- configs/defconfig.esp32c61 | 5 ----- 1 file changed, 5 deletions(-) diff --git a/configs/defconfig.esp32c61 b/configs/defconfig.esp32c61 index 6f6359150..923b9d37c 100644 --- a/configs/defconfig.esp32c61 +++ b/configs/defconfig.esp32c61 @@ -11,8 +11,3 @@ CONFIG_BT_NIMBLE_NVS_PERSIST=y CONFIG_RTC_CLK_CAL_CYCLES=576 # CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304 - -# Matter settings: -CONFIG_ENABLE_CHIPOBLE=y -CONFIG_OPENTHREAD_ENABLED=n -CONFIO_OPENTHREAD_CLI=n From 8d48bd984711a55e967670957130b9a855c1ec3d Mon Sep 17 00:00:00 2001 From: Sugar Glider Date: Fri, 14 Nov 2025 11:52:51 -0300 Subject: [PATCH 10/10] fix(matter): remove c61 in idf_component.yml --- main/idf_component.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/idf_component.yml b/main/idf_component.yml index 4ba96d85a..2a89f7828 100644 --- a/main/idf_component.yml +++ b/main/idf_component.yml @@ -20,4 +20,4 @@ dependencies: version: "1.4.1" require: public rules: - - if: "target not in [esp32c2, esp32p4]" + - if: "target not in [esp32c2, esp32p4, esp32c61]"