mirror of
https://github.com/espressif/esp-matter.git
synced 2026-04-27 19:13:13 +00:00
Target: add esp32c61 support
This commit is contained in:
+1
-1
@@ -658,7 +658,7 @@ build_docs:
|
|||||||
script:
|
script:
|
||||||
- cd docs
|
- cd docs
|
||||||
- pip install -r requirements.txt
|
- pip install -r requirements.txt
|
||||||
- build-docs -bs html latex -t esp32 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 esp32c5 -l en
|
- build-docs -bs html latex -t esp32 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4 esp32c5 esp32c61 -l en
|
||||||
# disable link checks for now, as it is failing due to some links taking longer time to respond
|
# disable link checks for now, as it is failing due to some links taking longer time to respond
|
||||||
# - build-docs -t esp32 -l en linkcheck
|
# - build-docs -t esp32 -l en linkcheck
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ section in the ESP-Matter Programming Guide.
|
|||||||
|
|
||||||
- This SDK currently works with commit [bdc38cd772] (https://github.com/project-chip/connectedhomeip/tree/bdc38cd772) of connectedhomeip.
|
- This SDK currently works with commit [bdc38cd772] (https://github.com/project-chip/connectedhomeip/tree/bdc38cd772) of connectedhomeip.
|
||||||
- For Matter projects development with this SDK, it is recommended to utilize ESP-IDF [v5.4.1](https://github.com/espressif/esp-idf/tree/v5.4.1).
|
- For Matter projects development with this SDK, it is recommended to utilize ESP-IDF [v5.4.1](https://github.com/espressif/esp-idf/tree/v5.4.1).
|
||||||
- For ESP32C5, it is recommended to utilize ESP-IDF [98cd765953](https://github.com/espressif/esp-idf/commit/98cd765953dfe0e7bb1c5df8367e1b54bd966cce).
|
- For ESP32C5 and ESP32C61, it is recommended to utilize ESP-IDF [v5.5.1](https://github.com/espressif/esp-idf/tree/v5.5.1).
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.5)
|
cmake_minimum_required(VERSION 3.5)
|
||||||
if (NOT ("${IDF_TARGET}" STREQUAL "esp32c5" ))
|
if (NOT ("${IDF_TARGET}" STREQUAL "esp32c5" ))
|
||||||
message(FATAL_ERROR "please set esp32c5 as the IDF_TARGET using 'idf.py --preview set-target esp32c5'")
|
message(FATAL_ERROR "please set esp32c5 as the IDF_TARGET using 'idf.py set-target esp32c5'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
SET(device_type esp32c5_devkit_c)
|
SET(device_type esp32c5_devkit_c)
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
// Copyright 2025 Espressif Systems (Shanghai) CO LTD
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License
|
||||||
|
|
||||||
|
#include <esp_log.h>
|
||||||
|
#include <iot_button.h>
|
||||||
|
#include <button_gpio.h>
|
||||||
|
#include <driver/gpio.h>
|
||||||
|
#include <led_driver.h>
|
||||||
|
|
||||||
|
#define LED_GPIO_PIN GPIO_NUM_8
|
||||||
|
#define LED_CHANNEL 0 /* RMT_CHANNEL_0 */
|
||||||
|
#define BUTTON_GPIO_PIN GPIO_NUM_9
|
||||||
|
|
||||||
|
static const char *TAG = "device";
|
||||||
|
|
||||||
|
led_driver_config_t led_driver_get_config()
|
||||||
|
{
|
||||||
|
led_driver_config_t config = {
|
||||||
|
.gpio = LED_GPIO_PIN,
|
||||||
|
.channel = LED_CHANNEL,
|
||||||
|
};
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
|
button_gpio_config_t button_driver_get_config()
|
||||||
|
{
|
||||||
|
button_gpio_config_t config = {
|
||||||
|
.gpio_num = BUTTON_GPIO_PIN,
|
||||||
|
.active_level = 0,
|
||||||
|
};
|
||||||
|
return config;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
if (NOT ("${IDF_TARGET}" STREQUAL "esp32c61" ))
|
||||||
|
message(FATAL_ERROR "please set esp32c61 as the IDF_TARGET using 'idf.py set-target esp32c61'")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
SET(device_type esp32c61_devkit_c)
|
||||||
|
SET(led_type gpio)
|
||||||
|
SET(button_type iot)
|
||||||
|
|
||||||
|
SET(extra_components_dirs_append "$ENV{ESP_MATTER_DEVICE_PATH}/../../led_driver"
|
||||||
|
"$ENV{ESP_MATTER_DEVICE_PATH}/../../button_driver/iot_button")
|
||||||
+2
-2
@@ -3,14 +3,13 @@ var DOCUMENTATION_VERSIONS = {
|
|||||||
supported_targets: [ "esp32" ]
|
supported_targets: [ "esp32" ]
|
||||||
},
|
},
|
||||||
VERSIONS: [
|
VERSIONS: [
|
||||||
{ name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ] },
|
{ name: "latest", has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32c61", "esp32s3", "esp32h2", "esp32p4" ] },
|
||||||
{ name: "release-v1.4.2", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ]},
|
{ name: "release-v1.4.2", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ]},
|
||||||
{ name: "release-v1.4", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ]},
|
{ name: "release-v1.4", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32s3", "esp32h2", "esp32p4" ]},
|
||||||
{ name: "release-v1.3", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
|
{ name: "release-v1.3", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
|
||||||
{ name: "release-v1.2", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
|
{ name: "release-v1.2", old: false, end_of_life: false, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
|
||||||
{ name: "release-v1.1", old: true, end_of_life: true, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
|
{ name: "release-v1.1", old: true, end_of_life: true, has_targets: true, supported_targets: [ "esp32", "esp32c2", "esp32c3", "esp32c6", "esp32h2", "esp32s3" ]},
|
||||||
{ name: "release-v1.0", old: true, end_of_life: true, has_targets: true, supported_targets: [ "esp32", "esp32c3", "esp32h2", "esp32s3" ]},
|
{ name: "release-v1.0", old: true, end_of_life: true, has_targets: true, supported_targets: [ "esp32", "esp32c3", "esp32h2", "esp32s3" ]},
|
||||||
|
|
||||||
],
|
],
|
||||||
IDF_TARGETS: [
|
IDF_TARGETS: [
|
||||||
{ text: "ESP32", value: "esp32" },
|
{ text: "ESP32", value: "esp32" },
|
||||||
@@ -19,6 +18,7 @@ var DOCUMENTATION_VERSIONS = {
|
|||||||
{ text: "ESP32-C3", value: "esp32c3" },
|
{ text: "ESP32-C3", value: "esp32c3" },
|
||||||
{ text: "ESP32-C5", value: "esp32c5" },
|
{ text: "ESP32-C5", value: "esp32c5" },
|
||||||
{ text: "ESP32-C6", value: "esp32c6" },
|
{ text: "ESP32-C6", value: "esp32c6" },
|
||||||
|
{ text: "ESP32-C61", value: "esp32c61" },
|
||||||
{ text: "ESP32-H2", value: "esp32h2" },
|
{ text: "ESP32-H2", value: "esp32h2" },
|
||||||
{ text: "ESP32-P4", value: "esp32p4" },
|
{ text: "ESP32-P4", value: "esp32p4" },
|
||||||
]
|
]
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ from esp_docs.conf_docs import * # noqa: F403,F401
|
|||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
languages = ['en']
|
languages = ['en']
|
||||||
idf_targets = ['esp32', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32h2', 'esp32p4']
|
idf_targets = ['esp32', 'esp32s3', 'esp32c2', 'esp32c3', 'esp32c5', 'esp32c6', 'esp32c61', 'esp32h2', 'esp32p4']
|
||||||
|
|
||||||
extensions += ['sphinx_copybutton',
|
extensions += ['sphinx_copybutton',
|
||||||
# Needed as a trigger for running doxygen
|
# Needed as a trigger for running doxygen
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ The option ``-n`` (count) is the number of generated binaries. In the above comm
|
|||||||
|
|
||||||
The option ``--paa-trust-store-path`` should be added when using chip-tool to pair the device for manual tests.
|
The option ``--paa-trust-store-path`` should be added when using chip-tool to pair the device for manual tests.
|
||||||
|
|
||||||
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32c5
|
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32c5 or esp32c61
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
|||||||
+16
-10
@@ -52,16 +52,16 @@ The Prerequisites for ESP-IDF:
|
|||||||
|
|
||||||
- Please get the `Prerequisites for ESP-IDF`_. For beginners, please check `step by step installation guide`_ for esp-idf.
|
- Please get the `Prerequisites for ESP-IDF`_. For beginners, please check `step by step installation guide`_ for esp-idf.
|
||||||
|
|
||||||
.. only:: esp32c5
|
.. only:: esp32c5 or esp32c61
|
||||||
|
|
||||||
- For ``ESP32C5``, the IDF version should be `98cd765953 <https://github.com/espressif/esp-idf/commit/98cd765953dfe0e7bb1c5df8367e1b54bd966cce>`__ or newer.
|
- For ``ESP32C5`` and ``ESP32C61``, the IDF version should be `v5.5.1 <https://github.com/espressif/esp-idf/tree/v5.5.1>`__ or newer.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
``git clone`` command accepts the optional argument ``--jobs N``, which can significantly speed up the
|
``git clone`` command accepts the optional argument ``--jobs N``, which can significantly speed up the
|
||||||
process by parallelizing submodule cloning. Consider using this option when cloning repositories.
|
process by parallelizing submodule cloning. Consider using this option when cloning repositories.
|
||||||
|
|
||||||
.. only:: not esp32c5
|
.. only:: not esp32c5 and not esp32c61
|
||||||
|
|
||||||
Cloning esp-idf:
|
Cloning esp-idf:
|
||||||
|
|
||||||
@@ -72,14 +72,14 @@ The Prerequisites for ESP-IDF:
|
|||||||
./install.sh
|
./install.sh
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
.. only:: esp32c5
|
.. only:: esp32c5 or esp32c61
|
||||||
|
|
||||||
Cloning esp-idf:
|
Cloning esp-idf:
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
git clone --recursive https://github.com/espressif/esp-idf.git
|
git clone --recursive https://github.com/espressif/esp-idf.git
|
||||||
cd esp-idf; git checkout 98cd765953; git submodule update --init --recursive;
|
cd esp-idf; git checkout v5.5.1; git submodule update --init --recursive;
|
||||||
./install.sh
|
./install.sh
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
@@ -283,7 +283,13 @@ Choose IDF target.
|
|||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
idf.py --preview set-target esp32c5
|
idf.py set-target esp32c5
|
||||||
|
|
||||||
|
.. only:: esp32c61
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
idf.py set-target esp32c61
|
||||||
|
|
||||||
.. only:: esp32p4
|
.. only:: esp32p4
|
||||||
|
|
||||||
@@ -387,7 +393,7 @@ Use ``chip-tool`` in interactive mode to commission the device:
|
|||||||
chip-tool interactive start
|
chip-tool interactive start
|
||||||
|
|
||||||
|
|
||||||
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5
|
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5 or esp32c61
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -414,7 +420,7 @@ Above method commissions the device using setup passcode and discriminator. Devi
|
|||||||
|
|
||||||
To Commission the device using manual pairing code 34970112332
|
To Commission the device using manual pairing code 34970112332
|
||||||
|
|
||||||
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5
|
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5 or esp32c61
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -441,7 +447,7 @@ Above default manual pairing code contains following values:
|
|||||||
|
|
||||||
To commission the device using QR code MT:Y.K9042C00KA0648G00
|
To commission the device using QR code MT:Y.K9042C00KA0648G00
|
||||||
|
|
||||||
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5
|
.. only:: esp32 or esp32s3 or esp32c3 or esp32c2 or esp32c6 or esp32p4 or esp32c5 or esp32c61
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
@@ -912,7 +918,7 @@ For example: Thermostat cluster has O.a+ conformance for Heating and Cooling fea
|
|||||||
thermostat_config.features.heating.occupied_heating_setpoint = 2200;
|
thermostat_config.features.heating.occupied_heating_setpoint = 2200;
|
||||||
thermostat_config.feature_flags = thermostat::feature::heating::get_id();
|
thermostat_config.feature_flags = thermostat::feature::heating::get_id();
|
||||||
cluster::thermostat::create(endpoint, &(config->thermostat_config), CLUSTER_FLAG_SERVER);
|
cluster::thermostat::create(endpoint, &(config->thermostat_config), CLUSTER_FLAG_SERVER);
|
||||||
|
|
||||||
Optional features which are applicable to a cluster can also be added.
|
Optional features which are applicable to a cluster can also be added.
|
||||||
|
|
||||||
- feature: taglist: Descriptor cluster:
|
- feature: taglist: Descriptor cluster:
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ DAC private needs to be protected from remote as well as physical attacks in the
|
|||||||
|
|
||||||
Recommended ways for DAC private key protection:
|
Recommended ways for DAC private key protection:
|
||||||
|
|
||||||
.. only:: esp32h2 or esp32c5
|
.. only:: esp32h2 or esp32c5 or esp32c61
|
||||||
|
|
||||||
- {IDF_TARGET_NAME} supports ECDSA hardware peripheral with the ECDSA key programmed in the eFuse. This key is software read protected (in default mode). This peripheral can help to protect the identity of the DAC private key on the device.
|
- {IDF_TARGET_NAME} supports ECDSA hardware peripheral with the ECDSA key programmed in the eFuse. This key is software read protected (in default mode). This peripheral can help to protect the identity of the DAC private key on the device.
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH})
|
|||||||
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32s3_devkit_c)
|
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32s3_devkit_c)
|
||||||
elseif("${IDF_TARGET}" STREQUAL "esp32c6")
|
elseif("${IDF_TARGET}" STREQUAL "esp32c6")
|
||||||
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c6_devkit_c)
|
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c6_devkit_c)
|
||||||
|
elseif("${IDF_TARGET}" STREQUAL "esp32c61")
|
||||||
|
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c61_devkit_c)
|
||||||
elseif("${IDF_TARGET}" STREQUAL "esp32c5")
|
elseif("${IDF_TARGET}" STREQUAL "esp32c5")
|
||||||
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c5_devkit_c)
|
set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c5_devkit_c)
|
||||||
elseif("${IDF_TARGET}" STREQUAL "esp32p4")
|
elseif("${IDF_TARGET}" STREQUAL "esp32p4")
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32c61"
|
||||||
|
|
||||||
|
# ESP Ringbuf
|
||||||
|
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y
|
||||||
|
# FreeRTOS
|
||||||
|
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
|
||||||
|
|
||||||
|
CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32c61"
|
||||||
|
|
||||||
|
# ESP Ringbuf
|
||||||
|
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y
|
||||||
|
# FreeRTOS
|
||||||
|
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
|
||||||
|
|
||||||
|
CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32c61"
|
||||||
|
|
||||||
|
# ESP Ringbuf
|
||||||
|
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y
|
||||||
|
# FreeRTOS
|
||||||
|
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
|
||||||
|
|
||||||
|
CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32c61"
|
||||||
|
|
||||||
|
# ESP Ringbuf
|
||||||
|
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y
|
||||||
|
# FreeRTOS
|
||||||
|
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
|
||||||
|
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
|
||||||
|
|
||||||
|
CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n
|
||||||
Reference in New Issue
Block a user