Skip to content

Commit 5d4ed02

Browse files
me-no-devSuGlider
andauthored
Add Matter component as part of the libs (espressif#220)
* Add Matter component as part of the libs * feat(matter): adds necessary setup * feat(matter): sdkconfig for each SoC * fix(matter): no wifi within C2 * fix(matter): replaces wrong pieces * fix(matter): forgot folder reference * feat(matter): strip matter lib.a * fix(matter): missing double quote * fix(matter): bad folder name * feat(matter): testing freertos backward compatibility * feat(matter): testing not using minimal mdns * feat(matter): disable lwip ipv6 autoconfig * feat(matter): common settings * feat(matter): revert changes * feat(matter): revert changes * feat(matter): revert changes * feat(matter): revert changes * feat(matter): no WiFi matter for H2 - thread only * feat(matter): revert changes * feat(matter): revert changes * feat(matter): no support for H2 - no WiFi * feat(matter): clean up * feat(matter): script clean up --------- Co-authored-by: SuGliger <[email protected]> Co-authored-by: Rodrigo Garcia <[email protected]>
1 parent 11e303c commit 5d4ed02

File tree

6 files changed

+38
-35
lines changed

6 files changed

+38
-35
lines changed

CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,8 @@ add_custom_command(
3333
VERBATIM
3434
)
3535
add_custom_target(mem-variant DEPENDS "mem_variant")
36+
37+
##################
38+
### ESP Matter ###
39+
##################
40+
idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-DCHIP_HAVE_CONFIG_H" APPEND)

configs/defconfig.common

+16
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,14 @@ CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
7575
CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT=y
7676
CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT=y
7777
CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM=y
78+
CONFIG_LWIP_MULTICAST_PING=y
79+
CONFIG_LWIP_BROADCAST_PING=y
80+
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
7881
CONFIG_MBEDTLS_PSK_MODES=y
7982
CONFIG_MBEDTLS_KEY_EXCHANGE_PSK=y
83+
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
84+
CONFIG_MBEDTLS_ECJPAKE_C=y
85+
CONFIG_MBEDTLS_HKDF_C=y
8086
CONFIG_MBEDTLS_CAMELLIA_C=y
8187
CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y
8288
# CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN is not set
@@ -111,3 +117,13 @@ CONFIG_ESP_COREDUMP_STACK_SIZE=1024
111117
CONFIG_MBEDTLS_DYNAMIC_BUFFER=y
112118
CONFIG_MBEDTLS_DYNAMIC_FREE_PEER_CERT=y
113119
CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y
120+
#
121+
# Matter Settings
122+
#
123+
# Disable Matter BLE
124+
CONFIG_ENABLE_CHIPOBLE=n
125+
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n
126+
# ESP Insights
127+
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n
128+
# Use compact attribute storage mode
129+
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y

configs/defconfig.esp32c6

-17
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,6 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
88
#CONFIG_ULP_COPROC_LP_CORE=y
99
#CONFIG_ULP_COPROC_RESERVE_MEM=4096
1010

11-
#
12-
# ESP32 Arduino OpenThread Configuration
13-
#
14-
# lwIP
15-
#
16-
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
17-
CONFIG_LWIP_MULTICAST_PING=y
18-
CONFIG_LWIP_BROADCAST_PING=y
19-
# end of lwip
20-
21-
#
22-
# mbedTLS
23-
#
24-
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
25-
CONFIG_MBEDTLS_ECJPAKE_C=y
26-
# end of mbedTLS
27-
2811
#
2912
# OpenThread
3013
#

configs/defconfig.esp32h2

-17
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,6 @@ CONFIG_RTC_CLK_CAL_CYCLES=576
44
# CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0 is not set
55
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
66

7-
#
8-
# ESP32 Arduino OpenThread Configuration
9-
#
10-
# lwIP
11-
#
12-
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
13-
CONFIG_LWIP_MULTICAST_PING=y
14-
CONFIG_LWIP_BROADCAST_PING=y
15-
# end of lwip
16-
17-
#
18-
# mbedTLS
19-
#
20-
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
21-
CONFIG_MBEDTLS_ECJPAKE_C=y
22-
# end of mbedTLS
23-
247
#
258
# OpenThread
269
#

main/idf_component.yml

+5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ dependencies:
2222
version: ">=1.4.2"
2323
rules:
2424
- if: "target in [esp32s3]"
25+
espressif/esp_matter:
26+
version: "^1.3.0"
27+
require: public
28+
rules:
29+
- if: "target not in [esp32c2, esp32h2]"
2530

2631
# esp-sr: "^1.3.1"
2732
# esp32-camera: "^2.0.4"

tools/copy-libs.sh

+12-1
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,17 @@ echo -n "$LD_FLAGS" > "$FLAGS_DIR/ld_flags"
491491
echo -n "$LD_SCRIPTS" > "$FLAGS_DIR/ld_scripts"
492492
echo -n "$AR_LIBS" > "$FLAGS_DIR/ld_libs"
493493

494+
# Matter Library adjustments
495+
for flag_file in "c_flags" "cpp_flags" "S_flags"; do
496+
echo "Fixing $FLAGS_DIR/$flag_file"
497+
sed 's/\\\"-DCHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER=<lib\/address_resolve\/AddressResolve_DefaultImpl.h>\\\"/-DCHIP_HAVE_CONFIG_H/' $FLAGS_DIR/$flag_file > $FLAGS_DIR/$flag_file.temp
498+
mv $FLAGS_DIR/$flag_file.temp $FLAGS_DIR/$flag_file
499+
done
500+
CHIP_RESOLVE_DIR="$AR_SDK/include/espressif__esp_matter/connectedhomeip/connectedhomeip/src/lib/address_resolve"
501+
sed 's/CHIP_ADDRESS_RESOLVE_IMPL_INCLUDE_HEADER/<lib\/address_resolve\/AddressResolve_DefaultImpl.h>/' $CHIP_RESOLVE_DIR/AddressResolve.h > $CHIP_RESOLVE_DIR/AddressResolve_temp.h
502+
mv $CHIP_RESOLVE_DIR/AddressResolve_temp.h $CHIP_RESOLVE_DIR/AddressResolve.h
503+
# End of Matter Library adjustments
504+
494505
# copy zigbee + zboss lib
495506
if [ -d "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET/" ]; then
496507
cp -r "managed_components/espressif__esp-zigbee-lib/lib/$IDF_TARGET"/* "$AR_SDK/lib/"
@@ -530,7 +541,7 @@ for item; do
530541
done
531542
done
532543

533-
for lib in "openthread" "espressif__esp-tflite-micro" "bt"; do
544+
for lib in "openthread" "espressif__esp-tflite-micro" "bt" "espressif__esp_matter"; do
534545
if [ -f "$AR_SDK/lib/lib$lib.a" ]; then
535546
echo "Stripping $AR_SDK/lib/lib$lib.a"
536547
"$TOOLCHAIN-strip" -g "$AR_SDK/lib/lib$lib.a"

0 commit comments

Comments
 (0)