Skip to content

Commit 37d604e

Browse files
authored
Merge pull request #222 from SuGlider/arduino_esp_matter
Arduino esp matter
2 parents 3de9c30 + b45dbb4 commit 37d604e

7 files changed

+277
-0
lines changed

CMakeLists.txt

+22
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,25 @@ add_custom_command(
3333
VERBATIM
3434
)
3535
add_custom_target(mem-variant DEPENDS "mem_variant")
36+
37+
##################
38+
### ESP Matter ###
39+
##################
40+
41+
idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-DCHIP_HAVE_CONFIG_H" APPEND)
42+
43+
# WARNING: This is just an example for using key for decrypting the encrypted OTA image
44+
# Please do not use it as is.
45+
#if(CONFIG_ENABLE_ENCRYPTED_OTA)
46+
# target_add_binary_data(light.elf "esp_image_encryption_key.pem" TEXT)
47+
#endif()
48+
49+
#if(CONFIG_IDF_TARGET_ESP32C2)
50+
# include(relinker)
51+
#endif()
52+
53+
#idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-Os;-DCHIP_HAVE_CONFIG_H" APPEND)
54+
#idf_build_set_property(C_COMPILE_OPTIONS "-Os" APPEND)
55+
# For RISCV chips, project_include.cmake sets -Wno-format, but does not clear various
56+
# flags that depend on -Wformat
57+
#idf_build_set_property(COMPILE_OPTIONS "-Wno-format-nonliteral;-Wno-format-security" APPEND)

configs/defconfig.esp32

+47
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,50 @@ CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y
1919
CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y
2020
CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y
2121
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y
22+
23+
# Matter Configuration
24+
25+
#
26+
# mbedTLS
27+
#
28+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
29+
CONFIG_MBEDTLS_ECJPAKE_C=y
30+
CONFIG_MBEDTLS_HKDF_C=y
31+
# libsodium
32+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
33+
# end of mbedTLS
34+
35+
36+
#
37+
# lwIP
38+
#
39+
CONFIG_LWIP_MULTICAST_PING=y
40+
CONFIG_LWIP_BROADCAST_PING=y
41+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
42+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
43+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
44+
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
45+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
46+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
47+
48+
#
49+
# Other
50+
#
51+
52+
# Disable Matter BLE - needs nimBLE to run
53+
CONFIG_ENABLE_CHIPOBLE=n
54+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
55+
56+
# ESP Insights
57+
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n
58+
59+
# Use minimal mDNS
60+
CONFIG_USE_MINIMAL_MDNS=y
61+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
62+
63+
# FreeRTOS should use legacy API
64+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
65+
66+
# Use compact attribute storage mode
67+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
68+

configs/defconfig.esp32c3

+44
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,47 @@ CONFIG_ESP_WIFI_11KV_SUPPORT=y
66
CONFIG_ESP_WIFI_SCAN_CACHE=y
77
CONFIG_ESP_WIFI_MBO_SUPPORT=y
88
CONFIG_ESP_WIFI_11R_SUPPORT=y
9+
10+
# Matter Configuration
11+
12+
#
13+
# mbedTLS
14+
#
15+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
16+
CONFIG_MBEDTLS_ECJPAKE_C=y
17+
CONFIG_MBEDTLS_HKDF_C=y
18+
# libsodium
19+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
20+
# end of mbedTLS
21+
22+
23+
#
24+
# lwIP
25+
#
26+
CONFIG_LWIP_MULTICAST_PING=y
27+
CONFIG_LWIP_BROADCAST_PING=y
28+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
29+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
30+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
31+
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
32+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
33+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
34+
35+
#
36+
# Other
37+
#
38+
39+
# Disable Matter BLE - needs nimBLE to run
40+
CONFIG_ENABLE_CHIPOBLE=n
41+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
42+
43+
# Use minimal mDNS
44+
CONFIG_USE_MINIMAL_MDNS=y
45+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
46+
47+
# FreeRTOS should use legacy API
48+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
49+
50+
# Use compact attribute storage mode
51+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
52+

configs/defconfig.esp32c6

+30
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,52 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
99
#CONFIG_ULP_COPROC_RESERVE_MEM=4096
1010

1111
#
12+
# Matter and Thread Configuration
13+
#
14+
15+
# Disable Matter BLE - needs nimBLE to run
16+
CONFIG_ENABLE_CHIPOBLE=n
17+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
18+
19+
# ESP Insights
20+
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n
21+
22+
# Matter over Thread
23+
CONFIG_ENABLE_MATTER_OVER_THREAD=y
24+
1225
# ESP32 Arduino OpenThread Configuration
1326
#
1427
# lwIP
1528
#
1629
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
1730
CONFIG_LWIP_MULTICAST_PING=y
1831
CONFIG_LWIP_BROADCAST_PING=y
32+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
33+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
34+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
1935
# end of lwip
2036

2137
#
2238
# mbedTLS
2339
#
2440
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
2541
CONFIG_MBEDTLS_ECJPAKE_C=y
42+
CONFIG_MBEDTLS_HKDF_C=y
43+
# libsodium
44+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
2645
# end of mbedTLS
2746

47+
# Use minimal mDNS
48+
CONFIG_USE_MINIMAL_MDNS=y
49+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
50+
51+
# FreeRTOS should use legacy API
52+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
53+
54+
# Use compact attribute storage mode
55+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
56+
57+
2858
#
2959
# OpenThread
3060
#

configs/defconfig.esp32h2

+37
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
1212
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
1313
CONFIG_LWIP_MULTICAST_PING=y
1414
CONFIG_LWIP_BROADCAST_PING=y
15+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
16+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
17+
CONFIG_LWIP_IPV6_AUTOCONFIG=n
1518
# end of lwip
1619

1720
#
@@ -20,6 +23,11 @@ CONFIG_LWIP_BROADCAST_PING=y
2023
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
2124
CONFIG_MBEDTLS_ECJPAKE_C=y
2225
# end of mbedTLS
26+
# Enable HKDF in mbedtls
27+
CONFIG_MBEDTLS_HKDF_C=y
28+
# libsodium
29+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
30+
# end of mbedTLS
2331

2432
#
2533
# OpenThread
@@ -47,3 +55,32 @@ CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe"
4755
CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff"
4856
CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53"
4957
# end of OpenThread
58+
59+
# Matter Configuration
60+
61+
# Disable Matter BLE
62+
CONFIG_ENABLE_CHIPOBLE=n
63+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
64+
65+
# Use minimal mDNS
66+
CONFIG_USE_MINIMAL_MDNS=y
67+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
68+
69+
# FreeRTOS should use legacy API
70+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
71+
72+
# Use compact attribute storage mode
73+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
74+
75+
# MRP configs
76+
CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_THREAD=5000
77+
CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_THREAD=5000
78+
CONFIG_MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_THREAD=5000
79+
CONFIG_MRP_MAX_RETRANS=3
80+
81+
# ESP Insights
82+
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n
83+
84+
# Matter over Thread
85+
CONFIG_ENABLE_MATTER_OVER_THREAD=y
86+

configs/defconfig.esp32s2

+49
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,52 @@ CONFIG_ULP_COPROC_ENABLED=y
1515
CONFIG_ULP_COPROC_TYPE_FSM=y
1616
# CONFIG_ULP_COPROC_TYPE_RISCV=y
1717
CONFIG_ULP_COPROC_RESERVE_MEM=512
18+
19+
20+
# Matter Configuration
21+
22+
#
23+
# mbedTLS
24+
#
25+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
26+
CONFIG_MBEDTLS_ECJPAKE_C=y
27+
# Enable HKDF in mbedtls
28+
CONFIG_MBEDTLS_HKDF_C=y
29+
# libsodium
30+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
31+
# end of mbedTLS
32+
33+
34+
#
35+
# lwIP
36+
#
37+
CONFIG_LWIP_MULTICAST_PING=y
38+
CONFIG_LWIP_BROADCAST_PING=y
39+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
40+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
41+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
42+
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
43+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
44+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
45+
46+
#
47+
# Other
48+
#
49+
50+
# Disable Matter BLE
51+
CONFIG_ENABLE_CHIPOBLE=n
52+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
53+
54+
# ESP Insights
55+
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n
56+
57+
# Use minimal mDNS
58+
CONFIG_USE_MINIMAL_MDNS=y
59+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
60+
61+
# FreeRTOS should use legacy API
62+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
63+
64+
# Use compact attribute storage mode
65+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
66+

configs/defconfig.esp32s3

+48
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,51 @@ CONFIG_ULP_COPROC_ENABLED=y
1717
CONFIG_ULP_COPROC_TYPE_FSM=y
1818
# CONFIG_ULP_COPROC_TYPE_RISCV=y
1919
CONFIG_ULP_COPROC_RESERVE_MEM=512
20+
21+
# Matter Configuration
22+
23+
#
24+
# mbedTLS
25+
#
26+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
27+
CONFIG_MBEDTLS_ECJPAKE_C=y
28+
# Enable HKDF in mbedtls
29+
CONFIG_MBEDTLS_HKDF_C=y
30+
# libsodium
31+
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
32+
# end of mbedTLS
33+
34+
35+
#
36+
# lwIP
37+
#
38+
CONFIG_LWIP_MULTICAST_PING=y
39+
CONFIG_LWIP_BROADCAST_PING=y
40+
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
41+
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
42+
CONFIG_LWIP_IPV6_AUTOCONFIG=y
43+
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
44+
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
45+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
46+
47+
#
48+
# Other
49+
#
50+
51+
# Disable Matter BLE
52+
CONFIG_ENABLE_CHIPOBLE=n
53+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
54+
55+
# ESP Insights
56+
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n
57+
58+
# Use minimal mDNS
59+
CONFIG_USE_MINIMAL_MDNS=y
60+
CONFIG_ENABLE_EXTENDED_DISCOVERY=y
61+
62+
# FreeRTOS should use legacy API
63+
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y
64+
65+
# Use compact attribute storage mode
66+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y
67+

0 commit comments

Comments
 (0)