Skip to content

Arduino esp matter #222

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 2 commits into from
Sep 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
22 changes: 22 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,25 @@ add_custom_command(
VERBATIM
)
add_custom_target(mem-variant DEPENDS "mem_variant")

##################
### ESP Matter ###
##################

idf_build_set_property(CXX_COMPILE_OPTIONS "-std=gnu++17;-DCHIP_HAVE_CONFIG_H" APPEND)

# 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)
47 changes: 47 additions & 0 deletions configs/defconfig.esp32
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,50 @@ CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y
CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y
CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y
CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK=y

# Matter Configuration

#
# mbedTLS
#
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
CONFIG_MBEDTLS_ECJPAKE_C=y
CONFIG_MBEDTLS_HKDF_C=y
# libsodium
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
# end of mbedTLS


#
# lwIP
#
CONFIG_LWIP_MULTICAST_PING=y
CONFIG_LWIP_BROADCAST_PING=y
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
CONFIG_LWIP_IPV6_AUTOCONFIG=y
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8

#
# Other
#

# Disable Matter BLE - needs nimBLE to run
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n

# ESP Insights
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n

# Use minimal mDNS
CONFIG_USE_MINIMAL_MDNS=y
CONFIG_ENABLE_EXTENDED_DISCOVERY=y

# FreeRTOS should use legacy API
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y

# Use compact attribute storage mode
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y

44 changes: 44 additions & 0 deletions configs/defconfig.esp32c3
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,47 @@ CONFIG_ESP_WIFI_11KV_SUPPORT=y
CONFIG_ESP_WIFI_SCAN_CACHE=y
CONFIG_ESP_WIFI_MBO_SUPPORT=y
CONFIG_ESP_WIFI_11R_SUPPORT=y

# Matter Configuration

#
# mbedTLS
#
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
CONFIG_MBEDTLS_ECJPAKE_C=y
CONFIG_MBEDTLS_HKDF_C=y
# libsodium
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
# end of mbedTLS


#
# lwIP
#
CONFIG_LWIP_MULTICAST_PING=y
CONFIG_LWIP_BROADCAST_PING=y
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
CONFIG_LWIP_IPV6_AUTOCONFIG=y
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8

#
# Other
#

# Disable Matter BLE - needs nimBLE to run
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n

# Use minimal mDNS
CONFIG_USE_MINIMAL_MDNS=y
CONFIG_ENABLE_EXTENDED_DISCOVERY=y

# FreeRTOS should use legacy API
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y

# Use compact attribute storage mode
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y

30 changes: 30 additions & 0 deletions configs/defconfig.esp32c6
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,52 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
#CONFIG_ULP_COPROC_RESERVE_MEM=4096

#
# Matter and Thread Configuration
#

# Disable Matter BLE - needs nimBLE to run
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n

# ESP Insights
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n

# Matter over Thread
CONFIG_ENABLE_MATTER_OVER_THREAD=y

# ESP32 Arduino OpenThread Configuration
#
# lwIP
#
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
CONFIG_LWIP_MULTICAST_PING=y
CONFIG_LWIP_BROADCAST_PING=y
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
CONFIG_LWIP_IPV6_AUTOCONFIG=y
# end of lwip

#
# mbedTLS
#
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
CONFIG_MBEDTLS_ECJPAKE_C=y
CONFIG_MBEDTLS_HKDF_C=y
# libsodium
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
# end of mbedTLS

# Use minimal mDNS
CONFIG_USE_MINIMAL_MDNS=y
CONFIG_ENABLE_EXTENDED_DISCOVERY=y

# FreeRTOS should use legacy API
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y

# Use compact attribute storage mode
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y


#
# OpenThread
#
Expand Down
37 changes: 37 additions & 0 deletions configs/defconfig.esp32h2
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=2304
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8
CONFIG_LWIP_MULTICAST_PING=y
CONFIG_LWIP_BROADCAST_PING=y
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
CONFIG_LWIP_IPV6_AUTOCONFIG=n
# end of lwip

#
Expand All @@ -20,6 +23,11 @@ CONFIG_LWIP_BROADCAST_PING=y
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
CONFIG_MBEDTLS_ECJPAKE_C=y
# end of mbedTLS
# Enable HKDF in mbedtls
CONFIG_MBEDTLS_HKDF_C=y
# libsodium
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
# end of mbedTLS

#
# OpenThread
Expand Down Expand Up @@ -47,3 +55,32 @@ CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe"
CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff"
CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53"
# end of OpenThread

# Matter Configuration

# Disable Matter BLE
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n

# Use minimal mDNS
CONFIG_USE_MINIMAL_MDNS=y
CONFIG_ENABLE_EXTENDED_DISCOVERY=y

# FreeRTOS should use legacy API
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y

# Use compact attribute storage mode
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y

# 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

# ESP Insights
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n

# Matter over Thread
CONFIG_ENABLE_MATTER_OVER_THREAD=y

49 changes: 49 additions & 0 deletions configs/defconfig.esp32s2
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,52 @@ CONFIG_ULP_COPROC_ENABLED=y
CONFIG_ULP_COPROC_TYPE_FSM=y
# CONFIG_ULP_COPROC_TYPE_RISCV=y
CONFIG_ULP_COPROC_RESERVE_MEM=512


# Matter Configuration

#
# mbedTLS
#
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
CONFIG_MBEDTLS_ECJPAKE_C=y
# Enable HKDF in mbedtls
CONFIG_MBEDTLS_HKDF_C=y
# libsodium
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
# end of mbedTLS


#
# lwIP
#
CONFIG_LWIP_MULTICAST_PING=y
CONFIG_LWIP_BROADCAST_PING=y
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
CONFIG_LWIP_IPV6_AUTOCONFIG=y
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8

#
# Other
#

# Disable Matter BLE
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n

# ESP Insights
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n

# Use minimal mDNS
CONFIG_USE_MINIMAL_MDNS=y
CONFIG_ENABLE_EXTENDED_DISCOVERY=y

# FreeRTOS should use legacy API
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y

# Use compact attribute storage mode
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y

48 changes: 48 additions & 0 deletions configs/defconfig.esp32s3
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,51 @@ CONFIG_ULP_COPROC_ENABLED=y
CONFIG_ULP_COPROC_TYPE_FSM=y
# CONFIG_ULP_COPROC_TYPE_RISCV=y
CONFIG_ULP_COPROC_RESERVE_MEM=512

# Matter Configuration

#
# mbedTLS
#
CONFIG_MBEDTLS_KEY_EXCHANGE_ECJPAKE=y
CONFIG_MBEDTLS_ECJPAKE_C=y
# Enable HKDF in mbedtls
CONFIG_MBEDTLS_HKDF_C=y
# libsodium
CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y
# end of mbedTLS


#
# lwIP
#
CONFIG_LWIP_MULTICAST_PING=y
CONFIG_LWIP_BROADCAST_PING=y
CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y
CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y
CONFIG_LWIP_IPV6_AUTOCONFIG=y
# Increase LwIP IPv6 address number to 8 (MAX_FABRIC + 1)
# unique local addresses for fabrics(MAX_FABRIC), a link local address(1)
CONFIG_LWIP_IPV6_NUM_ADDRESSES=8

#
# Other
#

# Disable Matter BLE
CONFIG_ENABLE_CHIPOBLE=n
CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n

# ESP Insights
CONFIG_ENABLE_ESP_INSIGHTS_TRACE=n

# Use minimal mDNS
CONFIG_USE_MINIMAL_MDNS=y
CONFIG_ENABLE_EXTENDED_DISCOVERY=y

# FreeRTOS should use legacy API
CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y

# Use compact attribute storage mode
CONFIG_ESP_MATTER_NVS_USE_COMPACT_ATTR_STORAGE=y