From 536ea2956c6f672e9e46146c11cf43288394ff93 Mon Sep 17 00:00:00 2001 From: Pavel Borcin Date: Tue, 12 Mar 2024 14:34:06 +0100 Subject: [PATCH] change light_switch example to use bsp, remove unused esp32s3 defaults --- .../generic_switch/sdkconfig.defaults.esp32s3 | 13 ------- examples/light/sdkconfig.defaults.esp32s3 | 18 ---------- examples/light_switch/CMakeLists.txt | 20 ----------- examples/light_switch/main/app_driver.cpp | 12 +++---- examples/light_switch/main/idf_component.yml | 2 ++ .../light_switch/sdkconfig.defaults.esp32c3 | 15 ++++++++ .../light_switch/sdkconfig.defaults.esp32c6 | 6 ++++ .../light_switch/sdkconfig.defaults.esp32h2 | 7 ++++ .../light_switch/sdkconfig.defaults.esp32s2 | 7 ++++ .../light_switch/sdkconfig.defaults.esp32s3 | 35 +++++++++++++++++++ 10 files changed, 78 insertions(+), 57 deletions(-) create mode 100644 examples/light_switch/sdkconfig.defaults.esp32c3 create mode 100644 examples/light_switch/sdkconfig.defaults.esp32s3 diff --git a/examples/generic_switch/sdkconfig.defaults.esp32s3 b/examples/generic_switch/sdkconfig.defaults.esp32s3 index fc08c424c..3c908d0db 100644 --- a/examples/generic_switch/sdkconfig.defaults.esp32s3 +++ b/examples/generic_switch/sdkconfig.defaults.esp32s3 @@ -28,22 +28,9 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y CONFIG_BUTTON_PERIOD_TIME_MS=20 CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 -# disable softap by default -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n - -# Disable DS Peripheral -CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n - -# Use compact attribute storage mode -CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y - # Enable HKDF in mbedtls CONFIG_MBEDTLS_HKDF_C=y -# Increase LwIP IPv6 address number to 6 (MAX_FABRIC + 1) -# unique local addresses for fabrics(MAX_FABRIC), a link local address(1) -CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 - # ESP32-S3-DevKitC-1 Settings # Buttons CONFIG_BSP_BUTTONS_NUM=1 diff --git a/examples/light/sdkconfig.defaults.esp32s3 b/examples/light/sdkconfig.defaults.esp32s3 index 111eb7ebd..a88cfcc9b 100644 --- a/examples/light/sdkconfig.defaults.esp32s3 +++ b/examples/light/sdkconfig.defaults.esp32s3 @@ -24,30 +24,12 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y CONFIG_BUTTON_PERIOD_TIME_MS=20 CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 -# disable softap by default -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n - -# Disable DS Peripheral -CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n - -# Use compact attribute storage mode -CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y - # Enable HKDF in mbedtls CONFIG_MBEDTLS_HKDF_C=y -# Increase LwIP IPv6 address number to 6 (MAX_FABRIC + 1) -# unique local addresses for fabrics(MAX_FABRIC), a link local address(1) -CONFIG_LWIP_IPV6_NUM_ADDRESSES=6 - # ESP32-S3-DevKitC-1 Settings # Buttons CONFIG_BSP_BUTTONS_NUM=1 CONFIG_BSP_BUTTON_1_TYPE_GPIO=y CONFIG_BSP_BUTTON_1_GPIO=0 CONFIG_BSP_BUTTON_1_LEVEL=0 -# LEDs -CONFIG_BSP_LEDS_NUM=1 -CONFIG_BSP_LED_TYPE_RGB=y -CONFIG_BSP_LED_RGB_GPIO=48 -CONFIG_BSP_LED_RGB_BACKEND_RMT=y diff --git a/examples/light_switch/CMakeLists.txt b/examples/light_switch/CMakeLists.txt index cce8f9247..169ade58c 100644 --- a/examples/light_switch/CMakeLists.txt +++ b/examples/light_switch/CMakeLists.txt @@ -6,24 +6,6 @@ if(NOT DEFINED ENV{ESP_MATTER_PATH}) message(FATAL_ERROR "Please set ESP_MATTER_PATH to the path of esp-matter repo") endif(NOT DEFINED ENV{ESP_MATTER_PATH}) -if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) - if("${IDF_TARGET}" STREQUAL "esp32" OR "${IDF_TARGET}" STREQUAL "") - set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32_devkit_c) - elseif("${IDF_TARGET}" STREQUAL "esp32c3") - set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c3_devkit_m) - elseif("${IDF_TARGET}" STREQUAL "esp32c2") - set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c2_devkit_m) - elseif("${IDF_TARGET}" STREQUAL "esp32h2") - set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32h2_devkit_c) - elseif("${IDF_TARGET}" STREQUAL "esp32s3") - set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32s3_devkit_c) - elseif("${IDF_TARGET}" STREQUAL "esp32c6") - set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c6_devkit_c) - else() - message(FATAL_ERROR "Unsupported IDF_TARGET") - endif() -endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) - set(PROJECT_VER "1.0") set(PROJECT_VER_NUMBER 1) @@ -32,14 +14,12 @@ set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) # This should be done before using the IDF_TARGET variable. include($ENV{IDF_PATH}/tools/cmake/project.cmake) -include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake) include(${ESP_MATTER_PATH}/examples/common/cmake_common/components_include.cmake) set(EXTRA_COMPONENT_DIRS "${ESP_MATTER_PATH}/examples/common" "${MATTER_SDK_PATH}/config/esp32/components" "${ESP_MATTER_PATH}/components" - "${ESP_MATTER_PATH}/device_hal/device" ${extra_components_dirs_append}) project(light_switch) diff --git a/examples/light_switch/main/app_driver.cpp b/examples/light_switch/main/app_driver.cpp index 91b84f535..76963811c 100644 --- a/examples/light_switch/main/app_driver.cpp +++ b/examples/light_switch/main/app_driver.cpp @@ -10,10 +10,9 @@ #include #include -#include #include #include -#include +#include "bsp/esp-bsp.h" #include #include @@ -244,9 +243,10 @@ static void app_driver_button_toggle_cb(void *arg, void *data) app_driver_handle_t app_driver_switch_init() { /* Initialize button */ - button_config_t config = button_driver_get_config(); - button_handle_t handle = iot_button_create(&config); - iot_button_register_cb(handle, BUTTON_PRESS_DOWN, app_driver_button_toggle_cb, NULL); + + button_handle_t btns[BSP_BUTTON_NUM]; + ESP_ERROR_CHECK(bsp_iot_button_create(btns, NULL, BSP_BUTTON_NUM)); + ESP_ERROR_CHECK(iot_button_register_cb(btns[0], BUTTON_PRESS_DOWN, app_driver_button_toggle_cb, NULL)); /* Other initializations */ #if CONFIG_ENABLE_CHIP_SHELL @@ -254,5 +254,5 @@ app_driver_handle_t app_driver_switch_init() #endif // CONFIG_ENABLE_CHIP_SHELL client::set_command_callback(app_driver_client_command_callback, app_driver_client_group_command_callback, NULL); - return (app_driver_handle_t)handle; + return (app_driver_handle_t)btns[0]; } diff --git a/examples/light_switch/main/idf_component.yml b/examples/light_switch/main/idf_component.yml index 95ee7845b..547b39ec2 100644 --- a/examples/light_switch/main/idf_component.yml +++ b/examples/light_switch/main/idf_component.yml @@ -4,3 +4,5 @@ dependencies: rules: # will add "optional_component" only when all if clauses are True - if: "idf_version >=5.0" - if: "target in [esp32c2]" + esp_bsp_generic: + version: "^1.1.0" diff --git a/examples/light_switch/sdkconfig.defaults.esp32c3 b/examples/light_switch/sdkconfig.defaults.esp32c3 new file mode 100644 index 000000000..dd22759e8 --- /dev/null +++ b/examples/light_switch/sdkconfig.defaults.esp32c3 @@ -0,0 +1,15 @@ +CONFIG_IDF_TARGET="esp32c3" + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable AP +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_ENABLE_WIFI_AP=n + +# ESP32-C3-DevKitC-02 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=9 +CONFIG_BSP_BUTTON_1_LEVEL=0 diff --git a/examples/light_switch/sdkconfig.defaults.esp32c6 b/examples/light_switch/sdkconfig.defaults.esp32c6 index 42508614a..8c6594280 100644 --- a/examples/light_switch/sdkconfig.defaults.esp32c6 +++ b/examples/light_switch/sdkconfig.defaults.esp32c6 @@ -38,3 +38,9 @@ CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 # Enable chip shell CONFIG_ENABLE_CHIP_SHELL=y +# ESP32-C6-DevKitM-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=9 +CONFIG_BSP_BUTTON_1_LEVEL=0 diff --git a/examples/light_switch/sdkconfig.defaults.esp32h2 b/examples/light_switch/sdkconfig.defaults.esp32h2 index bcd5d743b..d9174aa76 100644 --- a/examples/light_switch/sdkconfig.defaults.esp32h2 +++ b/examples/light_switch/sdkconfig.defaults.esp32h2 @@ -62,3 +62,10 @@ CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_THREAD=5000 CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_THREAD=5000 CONFIG_MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_THREAD=5000 CONFIG_MRP_MAX_RETRANS=3 + +# ESP32-H2-DevKitM-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=9 +CONFIG_BSP_BUTTON_1_LEVEL=0 diff --git a/examples/light_switch/sdkconfig.defaults.esp32s2 b/examples/light_switch/sdkconfig.defaults.esp32s2 index 1d221cfc7..2034a24b6 100644 --- a/examples/light_switch/sdkconfig.defaults.esp32s2 +++ b/examples/light_switch/sdkconfig.defaults.esp32s2 @@ -26,3 +26,10 @@ CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 # Disable BLE CONFIG_ENABLE_CHIPOBLE=n + +# ESP32-S2-DevKitM-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=0 +CONFIG_BSP_BUTTON_1_LEVEL=0 diff --git a/examples/light_switch/sdkconfig.defaults.esp32s3 b/examples/light_switch/sdkconfig.defaults.esp32s3 new file mode 100644 index 000000000..a88cfcc9b --- /dev/null +++ b/examples/light_switch/sdkconfig.defaults.esp32s3 @@ -0,0 +1,35 @@ +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#disable BT connection reattempt +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_OFFSET=0xC000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +#enable lwIP route hooks +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable HKDF in mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# ESP32-S3-DevKitC-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=0 +CONFIG_BSP_BUTTON_1_LEVEL=0