Skip to content

Commit 8c39ce0

Browse files
authored
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
1 parent 2d5ed93 commit 8c39ce0

9 files changed

+573
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# The following lines of boilerplate have to be in your project's
2+
# CMakeLists in this exact order for cmake to work correctly
3+
cmake_minimum_required(VERSION 3.5)
4+
5+
set(PROJECT_VER "1.0")
6+
set(PROJECT_VER_NUMBER 1)
7+
8+
# This should be done before using the IDF_TARGET variable.
9+
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
10+
11+
project(arduino_managed_component_light)
12+
13+
# WARNING: This is just an example for using key for decrypting the encrypted OTA image
14+
# Please do not use it as is.
15+
if(CONFIG_ENABLE_ENCRYPTED_OTA)
16+
target_add_binary_data(light.elf "esp_image_encryption_key.pem" TEXT)
17+
endif()
18+
19+
if(CONFIG_IDF_TARGET_ESP32C2)
20+
include(relinker)
21+
endif()
22+
23+
idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DCHIP_HAVE_CONFIG_H" APPEND)
24+
idf_build_set_property(C_COMPILE_OPTIONS "-Os" APPEND)
25+
# For RISCV chips, project_include.cmake sets -Wno-format, but does not clear various
26+
# flags that depend on -Wformat
27+
idf_build_set_property(COMPILE_OPTIONS "-Wno-format-nonliteral;-Wno-format-security" APPEND)
28+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Arduino Settings
2+
CONFIG_FREERTOS_HZ=1000
3+
CONFIG_AUTOSTART_ARDUINO=y
4+
5+
# Log Levels
6+
# Boot Messages - Log level
7+
CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y
8+
# Arduino Log Level
9+
CONFIG_ARDUHAL_LOG_DEFAULT_LEVEL_VERBOSE=y
10+
# IDF Log Level
11+
CONFIG_LOG_DEFAULT_LEVEL_WARN=y
12+
13+
# Default to 921600 baud when flashing and monitoring device
14+
CONFIG_ESPTOOLPY_BAUD_921600B=y
15+
CONFIG_ESPTOOLPY_BAUD=921600
16+
CONFIG_ESPTOOLPY_COMPRESSED=y
17+
CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y
18+
CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
19+
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
20+
21+
#enable BT
22+
CONFIG_BT_ENABLED=y
23+
CONFIG_BT_NIMBLE_ENABLED=y
24+
25+
#disable BT connection reattempt
26+
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
27+
28+
#enable lwip ipv6 autoconfig
29+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
30+
31+
# Use a custom partition table
32+
CONFIG_PARTITION_TABLE_CUSTOM=y
33+
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
34+
CONFIG_PARTITION_TABLE_OFFSET=0xC000
35+
36+
# Disable chip shell
37+
CONFIG_ENABLE_CHIP_SHELL=n
38+
39+
#enable lwIP route hooks
40+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
41+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
42+
43+
# disable softap by default
44+
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
45+
46+
# Disable DS Peripheral
47+
CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n
48+
49+
# Use compact attribute storage mode
50+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
51+
52+
# Enable HKDF in mbedtls
53+
CONFIG_MBEDTLS_HKDF_C=y
54+
55+
# Increase LwIP IPv6 address number to 6 (MAX_FABRIC + 1)
56+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
57+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=6
58+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
CONFIG_IDF_TARGET="esp32c6"
2+
3+
# libsodium
4+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
5+
6+
# NIMBLE
7+
CONFIG_BT_ENABLED=y
8+
CONFIG_BT_NIMBLE_ENABLED=y
9+
CONFIG_BT_NIMBLE_EXT_ADV=n
10+
CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70
11+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
12+
13+
# FreeRTOS should use legacy API
14+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
15+
16+
# Enable OpenThread
17+
CONFIG_OPENTHREAD_ENABLED=y
18+
CONFIG_OPENTHREAD_SRP_CLIENT=y
19+
CONFIG_OPENTHREAD_DNS_CLIENT=y
20+
CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n
21+
CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y
22+
CONFIG_OPENTHREAD_CLI=n
23+
24+
# Disable lwip ipv6 autoconfig
25+
CONFIG_LWIP_IPV6_AUTOCONFIG=n
26+
27+
# Use a custom partition table
28+
CONFIG_PARTITION_TABLE_CUSTOM=y
29+
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
30+
31+
# LwIP config for OpenThread
32+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
33+
CONFIG_LWIP_MULTICAST_PING=y
34+
35+
# MDNS platform
36+
CONFIG_USE_MINIMAL_MDNS=n
37+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
38+
39+
# Enable OTA Requestor
40+
CONFIG_ENABLE_OTA_REQUESTOR=y
41+
42+
# Disable STA and AP for ESP32C6
43+
CONFIG_ENABLE_WIFI_STATION=n
44+
CONFIG_ENABLE_WIFI_AP=n
45+
46+
# Button
47+
CONFIG_BUTTON_PERIOD_TIME_MS=20
48+
CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000
49+
50+
# Enable chip shell
51+
CONFIG_ENABLE_CHIP_SHELL=y
52+
53+
# Disable persist subscriptions
54+
CONFIG_ENABLE_PERSIST_SUBSCRIPTIONS=n
55+
56+
# MRP configs
57+
CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_THREAD=5000
58+
CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_THREAD=5000
59+
CONFIG_MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_THREAD=5000
60+
CONFIG_MRP_MAX_RETRANS=3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
# Bluetooth
2+
CONFIG_BT_ENABLED=y
3+
CONFIG_BT_NIMBLE_ENABLED=y
4+
## NimBLE Options
5+
CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1
6+
CONFIG_BT_NIMBLE_MAX_BONDS=2
7+
CONFIG_BT_NIMBLE_MAX_CCCDS=2
8+
CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=3072
9+
CONFIG_BT_NIMBLE_ROLE_CENTRAL=n
10+
CONFIG_BT_NIMBLE_ROLE_OBSERVER=n
11+
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=10
12+
CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=100
13+
CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=4
14+
CONFIG_BT_NIMBLE_ACL_BUF_COUNT=5
15+
CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT=5
16+
CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT=3
17+
CONFIG_BT_NIMBLE_GATT_MAX_PROCS=1
18+
CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n
19+
CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=n
20+
CONFIG_BT_NIMBLE_WHITELIST_SIZE=1
21+
## Controller Options
22+
CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE=3072
23+
CONFIG_BT_LE_LL_RESOLV_LIST_SIZE=1
24+
CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT=1
25+
26+
# Release BT IRAM memory
27+
CONFIG_BT_RELEASE_IRAM=y
28+
29+
# SPI Configuration
30+
CONFIG_SPI_MASTER_ISR_IN_IRAM=n
31+
CONFIG_SPI_SLAVE_ISR_IN_IRAM=n
32+
33+
# Ethernet
34+
CONFIG_ETH_USE_SPI_ETHERNET=n
35+
36+
# Event Loop Library
37+
CONFIG_ESP_EVENT_POST_FROM_ISR=n
38+
39+
# Chip revision
40+
CONFIG_ESP32C2_REV2_DEVELOPMENT=y
41+
42+
# Main XTAL Config
43+
CONFIG_XTAL_FREQ_26=y
44+
CONFIG_XTAL_FREQ_40=n
45+
46+
# ESP Ringbuf
47+
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y
48+
CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y
49+
50+
# ESP System Settings
51+
CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=16
52+
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048
53+
CONFIG_ESP_MAIN_TASK_STACK_SIZE=3072
54+
55+
## Memory protection
56+
CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=n
57+
58+
# High resolution timer (esp_timer)
59+
CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048
60+
61+
# Wi-Fi
62+
CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=n
63+
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=3
64+
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=6
65+
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=6
66+
CONFIG_ESP32_WIFI_IRAM_OPT=n
67+
CONFIG_ESP32_WIFI_RX_IRAM_OPT=n
68+
CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=n
69+
CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=n
70+
CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=n
71+
CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n
72+
73+
# FreeRTOS
74+
## Kernel
75+
CONFIG_FREERTOS_HZ=1000
76+
CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y
77+
## Port
78+
CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=n
79+
CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y
80+
CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y
81+
82+
# Hardware Abstraction Layer (HAL) and Low Level (LL)
83+
CONFIG_HAL_ASSERTION_DISABLE=y
84+
85+
# LWIP
86+
CONFIG_LWIP_MAX_SOCKETS=5
87+
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16
88+
CONFIG_LWIP_DHCPS=n
89+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
90+
CONFIG_LWIP_MAX_ACTIVE_TCP=5
91+
CONFIG_LWIP_MAX_LISTENING_TCP=5
92+
CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=n
93+
CONFIG_LWIP_TCP_SYNMAXRTX=12
94+
CONFIG_LWIP_TCP_MSL=40000
95+
CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=16000
96+
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=4096
97+
CONFIG_LWIP_TCP_WND_DEFAULT=2440
98+
CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS=y
99+
CONFIG_LWIP_TCP_RTO_TIME=1500
100+
CONFIG_LWIP_MAX_UDP_PCBS=8
101+
CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560
102+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
103+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
104+
105+
# mbedTLS
106+
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
107+
CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y
108+
CONFIG_MBEDTLS_DYNAMIC_FREE_CA_CERT=y
109+
CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH=y
110+
CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=n
111+
CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN=y
112+
CONFIG_MBEDTLS_TLS_CLIENT_ONLY=y
113+
CONFIG_MBEDTLS_SSL_PROTO_SSL3=n
114+
CONFIG_MBEDTLS_SSL_PROTO_TLS1=n
115+
CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=n
116+
117+
# ESP-MQTT Configurations
118+
CONFIG_MQTT_PROTOCOL_311=n
119+
120+
# Protocomm
121+
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=n
122+
CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=n
123+
124+
# SPI Flash driver
125+
CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=n
126+
CONFIG_SPI_FLASH_ROM_IMPL=y
127+
128+
# Websocket
129+
CONFIG_WS_TRANSPORT=n
130+
131+
# Virtual file system
132+
CONFIG_VFS_SUPPORT_DIR=n
133+
CONFIG_VFS_SUPPORT_SELECT=n
134+
CONFIG_VFS_SUPPORT_TERMIOS=n
135+
136+
# Wear Levelling
137+
CONFIG_WL_SECTOR_SIZE_512=y
138+
139+
# CHIP Core
140+
## General Options
141+
CONFIG_MAX_EXCHANGE_CONTEXTS=6
142+
CONFIG_MAX_BINDINGS=6
143+
CONFIG_MAX_PEER_NODES=12
144+
CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS=6
145+
CONFIG_ENABLE_CHIP_SHELL=n
146+
CONFIG_DISABLE_IPV4=y
147+
CONFIG_BUILD_CHIP_TESTS=n
148+
## Networking Options
149+
CONFIG_NUM_TCP_ENDPOINTS=1
150+
CONFIG_NUM_UDP_ENDPOINTS=6
151+
## System Options
152+
CONFIG_NUM_TIMERS=24
153+
CONFIG_ENABLE_OTA_REQUESTOR=y
154+
155+
# CHIP Device Layer
156+
## General Options
157+
CONFIG_CHIP_TASK_STACK_SIZE=6144
158+
CONFIG_MAX_EVENT_QUEUE_SIZE=20
159+
## Event Logging Options
160+
CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=256
161+
CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=256
162+
CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=256
163+
164+
# ESP Matter
165+
CONFIG_ESP_MATTER_MAX_DEVICE_TYPE_COUNT=4
166+
CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=4
167+
168+
# CMake Utilities
169+
CONFIG_CU_RELINKER_ENABLE=y
170+
CONFIG_CU_RELINKER_ENABLE_CUSTOMIZED_CONFIGURATION_FILES=y
171+
CONFIG_CU_RELINKER_CUSTOMIZED_CONFIGURATION_FILES_PATH="../common/relinker/esp32c2"
172+
173+
# ESP32-C2-DevKitM-1 Settings
174+
# Buttons
175+
CONFIG_BSP_BUTTONS_NUM=1
176+
CONFIG_BSP_BUTTON_1_TYPE_GPIO=y
177+
CONFIG_BSP_BUTTON_1_GPIO=0
178+
CONFIG_BSP_BUTTON_1_LEVEL=0
179+
# LEDs
180+
CONFIG_BSP_LEDS_NUM=1
181+
CONFIG_BSP_LED_TYPE_RGB_CLASSIC=y
182+
CONFIG_BSP_LED_RGB_RED_GPIO=0
183+
CONFIG_BSP_LED_RGB_GREEN_GPIO=1
184+
CONFIG_BSP_LED_RGB_BLUE_GPIO=8
185+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
CONFIG_IDF_TARGET="esp32c3"
2+
3+
# Enable OTA Requestor
4+
CONFIG_ENABLE_OTA_REQUESTOR=y
5+
6+
# Disable AP
7+
CONFIG_ENABLE_WIFI_STATION=y
8+
CONFIG_ENABLE_WIFI_AP=n
9+
10+
# ESP32-C3-DevKitC-02 Settings
11+
# Buttons
12+
CONFIG_BSP_BUTTONS_NUM=1
13+
CONFIG_BSP_BUTTON_1_TYPE_GPIO=y
14+
CONFIG_BSP_BUTTON_1_GPIO=9
15+
CONFIG_BSP_BUTTON_1_LEVEL=0
16+
# LEDs
17+
CONFIG_BSP_LEDS_NUM=1
18+
CONFIG_BSP_LED_TYPE_RGB=y
19+
CONFIG_BSP_LED_RGB_GPIO=8
20+
CONFIG_BSP_LED_RGB_BACKEND_RMT=y
21+

0 commit comments

Comments
 (0)