Skip to content

ESP Matter + Arduino as IDF Component Light example #10290

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 48 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
45261f9
feat(matter): partition file for matter
SuGlider Sep 4, 2024
2d5ed93
feat(matter): matter light source code
SuGlider Sep 4, 2024
8c39ce0
feat(matter): adds sdkconfig and CMake files
SuGlider Sep 4, 2024
4f0f2d0
fix(matter): wrong folder name
SuGlider Sep 4, 2024
293f066
feat(matter): include example into registry
SuGlider Sep 4, 2024
a8df9ec
Merge branch 'espressif:master' into esp_matter_light_example
SuGlider Sep 12, 2024
2951f6a
fix(matter): error with type in wrong place
SuGlider Sep 12, 2024
e86952f
Merge branch 'espressif:master' into esp_matter_light_example
SuGlider Sep 14, 2024
37ed1d5
feat(matter): add readme documentation
SuGlider Sep 14, 2024
d418363
feat(matter): remove soc with no wifi or no ble
SuGlider Sep 14, 2024
04391c9
feat(matter): adjust all sdkconfig files
SuGlider Sep 14, 2024
196f63d
feat(matter): improve code and led status
SuGlider Sep 14, 2024
63c8e83
feat(matter): add button and led gpio with kconfig
SuGlider Sep 14, 2024
6fe9d26
fix(matter): remove commented lines
SuGlider Sep 14, 2024
1be6b0e
fix(matter): remove commented lines
SuGlider Sep 14, 2024
365bb07
Merge branch 'master' into esp_matter_light_example
SuGlider Sep 16, 2024
b392e8a
feat(matter): added a 2.4GHz SSID note
SuGlider Sep 16, 2024
f30ad99
feat(matter): arduino managed comonent version
SuGlider Sep 16, 2024
bae7b60
Merge branch 'master' into esp_matter_light_example
SuGlider Sep 17, 2024
fe50297
feat(matter): adds information about google
SuGlider Sep 17, 2024
2c18489
feat(matter): arduino component version
SuGlider Sep 17, 2024
ed71437
Merge branch 'master' into esp_matter_light_example
SuGlider Sep 17, 2024
2dd56d1
ci(pre-commit): Apply automatic fixes
pre-commit-ci-lite[bot] Sep 18, 2024
cafb78d
Merge branch 'master' into esp_matter_light_example
SuGlider Sep 18, 2024
9f1c706
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
6b56195
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
40ead46
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
e361e75
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
14eee60
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
d46fafc
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
ea5f261
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
4d576d4
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
99dc865
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
91a06ee
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
7efd65e
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
e7623e2
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
fd02781
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
a9527de
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
dc90ee8
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
27383e0
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
bdf04b4
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
13a95f8
fix(typo): typo and commentaries
SuGlider Sep 18, 2024
7713e03
fix(matter): spell check ignore for CI
SuGlider Sep 18, 2024
9b55b76
ci(pre-commit): Apply automatic fixes
pre-commit-ci-lite[bot] Sep 18, 2024
5b5a2a8
fix(matter): spell check ignore for CI
SuGlider Sep 18, 2024
ca63443
fix(matter): spell check ignore for CI
SuGlider Sep 18, 2024
9db98d3
fix(matter): spell check ignore for CI
SuGlider Sep 18, 2024
fef5da3
ci(pre-commit): Apply automatic fixes
pre-commit-ci-lite[bot] Sep 18, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat(matter): adds sdkconfig and CMake files
Adds target sdkconfig files and the CMakeLists.txt in orde to build the application using Arduino+Matter as IDF component
  • Loading branch information
SuGlider authored Sep 4, 2024
commit 8c39ce0c8b4751db728a1f15550f4a9d2c8f9300
28 changes: 28 additions & 0 deletions idf_component_examples/esp_matter_llight/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# The following lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)

set(PROJECT_VER "1.0")
set(PROJECT_VER_NUMBER 1)

# This should be done before using the IDF_TARGET variable.
include($ENV{IDF_PATH}/tools/cmake/project.cmake)

project(arduino_managed_component_light)

# WARNING: This is just an example for using key for decrypting the encrypted OTA image
# Please do not use it as is.
if(CONFIG_ENABLE_ENCRYPTED_OTA)
target_add_binary_data(light.elf "esp_image_encryption_key.pem" TEXT)
endif()

if(CONFIG_IDF_TARGET_ESP32C2)
include(relinker)
endif()

idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DCHIP_HAVE_CONFIG_H" APPEND)
idf_build_set_property(C_COMPILE_OPTIONS "-Os" APPEND)
# For RISCV chips, project_include.cmake sets -Wno-format, but does not clear various
# flags that depend on -Wformat
idf_build_set_property(COMPILE_OPTIONS "-Wno-format-nonliteral;-Wno-format-security" APPEND)

58 changes: 58 additions & 0 deletions idf_component_examples/esp_matter_llight/sdkconfig.defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Arduino Settings
CONFIG_FREERTOS_HZ=1000
CONFIG_AUTOSTART_ARDUINO=y

# Log Levels
# Boot Messages - Log level
CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y
# Arduino Log Level
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE=y
# IDF Log Level
CONFIG_LOG_DEFAULT_LEVEL_WARN=y

# Default to 921600 baud when flashing and monitoring device
CONFIG_ESPTOOLPY_BAUD_921600B=y
CONFIG_ESPTOOLPY_BAUD=921600
CONFIG_ESPTOOLPY_COMPRESSED=y
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y

#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

# Disable chip shell
CONFIG_ENABLE_CHIP_SHELL=n

#enable lwIP route hooks
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y

# 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

Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
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=n

# 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 ESP32C6
CONFIG_ENABLE_WIFI_STATION=n
CONFIG_ENABLE_WIFI_AP=n

# Button
CONFIG_BUTTON_PERIOD_TIME_MS=20
CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000

# Enable chip shell
CONFIG_ENABLE_CHIP_SHELL=y

# Disable persist subscriptions
CONFIG_ENABLE_PERSIST_SUBSCRIPTIONS=n

# MRP configs
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
185 changes: 185 additions & 0 deletions idf_component_examples/esp_matter_llight/sdkconfig.defaults.esp32c2
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
# Bluetooth
CONFIG_BT_ENABLED=y
CONFIG_BT_NIMBLE_ENABLED=y
## NimBLE Options
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
CONFIG_BT_NIMBLE_MAX_BONDS=2
CONFIG_BT_NIMBLE_MAX_CCCDS=2
CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=3072
CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=10
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=100
CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=4
CONFIG_BT_NIMBLE_ACL_BUF_COUNT=5
CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT=5
CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT=3
CONFIG_BT_NIMBLE_GATT_MAX_PROCS=1
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=n
CONFIG_BT_NIMBLE_WHITELIST_SIZE=1
## Controller Options
CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE=3072
CONFIG_BT_LE_LL_RESOLV_LIST_SIZE=1
CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT=1

# Release BT IRAM memory
CONFIG_BT_RELEASE_IRAM=y

# SPI Configuration
CONFIG_SPI_MASTER_ISR_IN_IRAM=n
CONFIG_SPI_SLAVE_ISR_IN_IRAM=n

# Ethernet
CONFIG_ETH_USE_SPI_ETHERNET=n

# Event Loop Library
CONFIG_ESP_EVENT_POST_FROM_ISR=n

# Chip revision
CONFIG_ESP32C2_REV2_DEVELOPMENT=y

# Main XTAL Config
CONFIG_XTAL_FREQ_26=y
CONFIG_XTAL_FREQ_40=n

# ESP Ringbuf
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y

# ESP System Settings
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=16
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3072

## Memory protection
CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=n

# High resolution timer (esp_timer)
CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048

# Wi-Fi
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=n
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=3
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=6
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=6
CONFIG_ESP32_WIFI_IRAM_OPT=n
CONFIG_ESP32_WIFI_RX_IRAM_OPT=n
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=n
CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=n
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=n
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n

# FreeRTOS
## Kernel
CONFIG_FREERTOS_HZ=1000
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
## Port
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=n
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y

# Hardware Abstraction Layer (HAL) and Low Level (LL)
CONFIG_HAL_ASSERTION_DISABLE=y

# LWIP
CONFIG_LWIP_MAX_SOCKETS=5
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
CONFIG_LWIP_DHCPS=n
CONFIG_LWIP_IPV6_AUTOCONFIG=y
CONFIG_LWIP_MAX_ACTIVE_TCP=5
CONFIG_LWIP_MAX_LISTENING_TCP=5
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=n
CONFIG_LWIP_TCP_SYNMAXRTX=12
CONFIG_LWIP_TCP_MSL=40000
CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=16000
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=4096
CONFIG_LWIP_TCP_WND_DEFAULT=2440
CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS=y
CONFIG_LWIP_TCP_RTO_TIME=1500
CONFIG_LWIP_MAX_UDP_PCBS=8
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y

# mbedTLS
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y
CONFIG_MBEDTLS_DYNAMIC_FREE_CA_CERT=y
CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH=y
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=n
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN=y
CONFIG_MBEDTLS_TLS_CLIENT_ONLY=y
CONFIG_MBEDTLS_SSL_PROTO_SSL3=n
CONFIG_MBEDTLS_SSL_PROTO_TLS1=n
CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=n

# ESP-MQTT Configurations
CONFIG_MQTT_PROTOCOL_311=n

# Protocomm
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=n
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=n

# SPI Flash driver
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=n
CONFIG_SPI_FLASH_ROM_IMPL=y

# Websocket
CONFIG_WS_TRANSPORT=n

# Virtual file system
CONFIG_VFS_SUPPORT_DIR=n
CONFIG_VFS_SUPPORT_SELECT=n
CONFIG_VFS_SUPPORT_TERMIOS=n

# Wear Levelling
CONFIG_WL_SECTOR_SIZE_512=y

# CHIP Core
## General Options
CONFIG_MAX_EXCHANGE_CONTEXTS=6
CONFIG_MAX_BINDINGS=6
CONFIG_MAX_PEER_NODES=12
CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS=6
CONFIG_ENABLE_CHIP_SHELL=n
CONFIG_DISABLE_IPV4=y
CONFIG_BUILD_CHIP_TESTS=n
## Networking Options
CONFIG_NUM_TCP_ENDPOINTS=1
CONFIG_NUM_UDP_ENDPOINTS=6
## System Options
CONFIG_NUM_TIMERS=24
CONFIG_ENABLE_OTA_REQUESTOR=y

# CHIP Device Layer
## General Options
CONFIG_CHIP_TASK_STACK_SIZE=6144
CONFIG_MAX_EVENT_QUEUE_SIZE=20
## Event Logging Options
CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=256
CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=256
CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=256

# ESP Matter
CONFIG_ESP_MATTER_MAX_DEVICE_TYPE_COUNT=4
CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=4

# CMake Utilities
CONFIG_CU_RELINKER_ENABLE=y
CONFIG_CU_RELINKER_ENABLE_CUSTOMIZED_CONFIGURATION_FILES=y
CONFIG_CU_RELINKER_CUSTOMIZED_CONFIGURATION_FILES_PATH="../common/relinker/esp32c2"

# ESP32-C2-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
# LEDs
CONFIG_BSP_LEDS_NUM=1
CONFIG_BSP_LED_TYPE_RGB_CLASSIC=y
CONFIG_BSP_LED_RGB_RED_GPIO=0
CONFIG_BSP_LED_RGB_GREEN_GPIO=1
CONFIG_BSP_LED_RGB_BLUE_GPIO=8

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
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
# LEDs
CONFIG_BSP_LEDS_NUM=1
CONFIG_BSP_LED_TYPE_RGB=y
CONFIG_BSP_LED_RGB_GPIO=8
CONFIG_BSP_LED_RGB_BACKEND_RMT=y

Loading