blob: de2963901fd7bea9858f5ce3cc9028630ae96a5d [file] [log] [blame]
#
# Copyright (c) 2020-2022 Project CHIP Authors
# Copyright (c) 2018 Nest Labs, Inc.
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Description:
# Configuration options CHIP within the ESP32 ESP-IDF environment.
#
#
# Options for configuring CHIP core
#
menu "CHIP Core"
menu "General Options"
config MAX_EXCHANGE_CONTEXTS
int "Max CHIP Exchange Contexts"
range 0 65535
default 8
help
The maximum number of simultaneously active CHIP exchange contexts.
An exchange context object is used to track the state of an ongoing CHIP message
exchange (conversation) with a peer, e.g. a cloud service, a mobile application, or
another device.
config MAX_BINDINGS
int "Max Bindings"
range 0 65535
default 8
help
The maximum number of simultaneously active CHIP Binding objects.
A Binding object is used to configure how the local device communicates with
a remote entity, be it a cloud service, a mobile application, or another device.
config MAX_FABRICS
int "Max Fabrics"
range 5 255
default 5
help
The maxinum number of fabrics the device can participate in.
Each fabric can provision the device with its unique operational credentials and
manage its own access control lists.
config MAX_PEER_NODES
int "Max Peer Nodes"
range 0 65535
default 16
help
The maximum number of peer nodes that the local node can communicate with using
connectionless communication (e.g. UDP). This value sizes a table that tracks
communication state with peer nodes by their CHIP node id.
config MAX_UNSOLICITED_MESSAGE_HANDLERS
int "Max Unsolicited Message Handlers"
range 0 65535
default 8
help
The maximum number of simultaneously active unsolicited message handlers.
Applications or protocol libraries acting as a CHIP server register unsolicited
message handlers with the CHIP message layer to direct incoming messages to
their code.
config ENABLE_PW_RPC
bool "Enable Pigweed RPC library"
default n
help
Link the application with the library containing Pigweed RPC functionalities
config USE_MINIMAL_MDNS
bool "Use the minimal mDNS implementation shipped in the CHIP library"
default y
help
The CHIP library is shipped with a minimal mDNS implementation,
enable this config to use it rather than the mDNS library in IDF.
config ENABLE_CHIP_SHELL
bool "Use the CHIP shell library"
default n
help
Link the application against CHIP interactive shell.
config CHIP_SHELL_CMD_LINE_BUF_MAX_LENGTH
int "Maximum command line buffer length of the chip shell"
depends on ENABLE_CHIP_SHELL
default 256
help
Maximum command line buffer length of the chip shell. The command strings might be received
incompletely in the command handlers if they are longer than this buffer length.
config CHIP_SHELL_CMD_LINE_ARG_MAX_COUNT
int "Maximum command line arguments count of the chip shell"
depends on ENABLE_CHIP_SHELL
default 32
help
Maximum command line arguments count of the chip shell. The command arguments might be ignored
if they are more than this count.
config ENABLE_CHIP_CONTROLLER_BUILD
bool "Enable chip-controller build"
default n
help
This option enables chip-controller building.
config DISABLE_IPV4
bool "Disable IPv4 functionality in the CHIP stack"
default "n"
help
Matter spec is based on IPv6 communication only. Enabling this option may save some flash/ram.
config DISABLE_READ_CLIENT
bool "Disable read client in Interaction Model"
default n
help
Some device types don't require the read client. Enabling this option may save some flash/ram.
config ENABLE_PERSIST_SUBSCRIPTIONS
bool "Enable persist subscriptions"
default y
help
Enable persist subscriptions to make the device resume the subscriptions from the persist
subscriptions information after reboot.
config BUILD_CHIP_TESTS
bool "Build CHIP tests"
default n
help
Build CHIP test binaries.
config DISPATCH_EVENT_LONG_DISPATCH_TIME_WARNING_THRESHOLD_MS
int "Set threshold in ms"
default 700
help
Time threshold for warning that dispatched took too long. You can
set this default set to 0 to to disable event dispatching time
measurement and suppress the logs "Long dispatch time:...".
config CHIP_LOG_FILTERING
bool "CHIP log level filtering APIs"
default n
help
Option to enable/disable CHIP log level filtering APIs.
config ENABLE_CHIP_DATA_MODEL
bool "Enable CHIP data model"
default y
help
Option to enable/disable CHIP data model.
config CHIP_SYSTEM_CONFIG_POOL_USE_HEAP
bool "Use heap memory to allocate object pools"
default n
help
This option enables the use of heap memory to allocate object pools.
When enabled, object pools are not pre-allocated.
Additionally, the maximum number of entries that can be allocated is
only limited by the available heap memory.
This option can be useful if you encounter static DRAM overflow.
NOTE: Since there is no cap on pool sizes, this may lead to issues
where embedded code assumes the pool size is limited, and no other
mechanisms are in place to restrict the size of allocations.
NOTE: If enabled and the free heap is exhausted, this may result in
undefined behavior, potential non-compliance with specifications,
or failure during certification tests. Even if it passes, it may fail
to function properly with actual controllers.
config MAX_GROUP_ENDPOINTS_PER_FABRIC
int "Maximum Group Endpoints per Fabric"
default 1
help
Specifies the maximum number of group endpoints supported per fabric.
config MAX_GROUPS_PER_FABRIC_PER_ENDPOINT
int "Maximum Groups per Fabric per Endpoint"
default 4
help
Specifies the maximum number of groups per fabric for each endpoint.
The value of CHIP_CONFIG_MAX_GROUPS_PER_FABRIC is calculated as:
(MAX_GROUP_ENDPOINTS_PER_FABRIC * MAX_GROUPS_PER_FABRIC_PER_ENDPOINT)
config MAX_GROUP_KEYS_PER_FABRIC
int "Maximum Number of Group Key Sets per Fabric"
default 3
help
Specifies the maximum number of group key sets supported per fabric.
endmenu # "General Options"
menu "Networking Options"
config NUM_TCP_ENDPOINTS
int "Max TCP EndPoints"
default 8
help
The maximum number of simultaneously active TCP EndPoint objects.
CHIP generally needs one TCP EndPoint object for each active CHIP TCP
connection, plus up to 3 additional EndPoints to listen for incoming
connections.
config NUM_UDP_ENDPOINTS
int "Max UDP EndPoints"
default 8
help
The maximum number of simultaneously active UDP EndPoint objects.
CHIP generally needs one UDP EndPoint object for each local network
interface, plus 2 additional EndPoints for general UDP communcation.
config MAX_CONNECTIONS
int "Max CHIP Connections"
range 0 65535
default 8
help
The maximum number of simultaneously active CHIP connections, either locally
or remotely initiated. This limit covers both CHIP TCP connections, and
CHIP-over-BLE (WoBLE) connections.
config DEFAULT_INCOMING_CONNECTION_IDLE_TIMEOUT
int "Default Incoming Connection Idle Timeout (ms)"
range 0 1000000
default 15000
help
The maximum amount of time, in milliseconds, that an idle inbound
CHIP connection will be allowed to exist before being closed.
This is a default value that can be overridden at runtime by the
application.
A value of 0 disables automatic closing of idle connections.
config ENABLE_ROUTE_HOOK
bool "Enable route hook"
depends on LWIP_HOOK_IP6_ROUTE_DEFAULT && LWIP_HOOK_ND6_GET_GW_DEFAULT
default y
help
Enable this option to use LwIP default IPv6 route hook for Route Information Option(RIO) feature.
config ENABLE_ENDPOINT_QUEUE_FILTER
bool "Enable UDP Endpoint queue filter for mDNS Broadcast packets"
depends on USE_MINIMAL_MDNS
default y
help
Enable this option to start a UDP Endpoint queue filter for mDNS Broadcast packets
config ENABLE_LWIP_THREAD_SAFETY
bool "Enable LwIP Thread safety options"
default y
select LWIP_TCPIP_CORE_LOCKING
select LWIP_CHECK_THREAD_SAFETY
help
CHIP SDK performs LwIP core locking before calling an LwIP API.
To make the calls thread safe we have to enable LWIP_TCPIP_CORE_LOCKING.
Here, we are also enabling LWIP_CHECK_THREAD_SAFETY which will assert when
LwIP code gets called from any other context or without holding the LwIP lock.
endmenu # "Networking Options"
menu "System Options"
config NUM_TIMERS
int "Max System Timers"
default 32
help
The maximum number of simultaneously timers in the CHIP System Layer.
config ENABLE_OTA_REQUESTOR
bool "Enable OTA Requestor"
default n
help
Enable this option to enable OTA Requestor for example
config ENABLE_ENCRYPTED_OTA
bool "Enable pre encrypted OTA"
depends on ENABLE_OTA_REQUESTOR
default n
help
Enable this option to use the pre encrypted OTA image
config ENABLE_DELTA_OTA
bool "Enable delta OTA"
depends on ENABLE_OTA_REQUESTOR
default n
help
Enable this option for delta OTA image updates.
Delta OTA updates allow for smaller, more efficient updates by only
sending the changes between the current and new firmware versions.
config OTA_AUTO_REBOOT_ON_APPLY
bool "Reboot the device after applying the OTA image"
depends on ENABLE_OTA_REQUESTOR
default y
help
Enable this option to reboot the device after applying the new image.
config OTA_AUTO_REBOOT_DELAY_MS
int "OTA reboot delay time (ms)"
depends on OTA_AUTO_REBOOT_ON_APPLY
default 5000
help
The delay time for OTA reboot on applying.
config CHIP_ENABLE_PAIRING_AUTOSTART
bool "Open commissioning window on boot"
default y
help
Opens the commissioning window automatically at application boot time if
the node is not yet commissioned.
config ENABLE_SNTP_TIME_SYNC
bool "Enable SNTP time synchronization"
default n
help
Enable this option to enable SNTP time synchronization
endmenu # "System Options"
menu "Security Options"
menu "Debugging"
config SECURITY_TEST_MODE
bool "Enable CHIP Security Test Mode"
default n
help
Enable various features that make it easier to debug secure CHIP communication.
WARNING: This option makes it possible to circumvent basic CHIP security functionality,
including message encryption. Because of this it SHOULD NEVER BE ENABLED IN PRODUCTION BUILDS.
endmenu # "Debugging"
endmenu # "Security Options"
endmenu # "CHIP"
#
# Options for configuring the CHIP Device Layer
#
menu "CHIP Device Layer"
menu "General Options"
config CHIP_PROJECT_CONFIG
string "CHIP Project Configuration file"
default ""
help
CHIP's project configuration file location.
config CHIP_TASK_STACK_SIZE
int "CHIP Task Stack Size"
range 0 65535
default 8192
help
The size (in bytes) of the CHIP task stack.
config CHIP_TASK_PRIORITY
int "CHIP Task Priority"
range 0 256
default 1
help
The priority of the CHIP task.
On the ESP32 platform this value is added to ESP_TASK_PRIO_MIN to determine the FreeRTOS priority value.
config MAX_EVENT_QUEUE_SIZE
int "Max Event Queue Size"
range 0 65535
default 40
help
The maximum number of events that can be held in the CHIP Platform event queue.
Should be set greater than CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM. For SoCs other than
ESP32-C2, where the Wi-Fi buffer number is 8, recommended to use the default value.
config ENABLE_EXTENDED_DISCOVERY
bool "Enable Extended discovery Support"
default n
help
Enables support for Extended Discovery.
config ENABLE_COMMISSIONABLE_DEVICE_TYPE
bool "Enable Device type in commissionable node discovery."
default n
help
Enables or Disables the support for Commissionable Device Type.
menuconfig ENABLE_ICD_SERVER
bool "Enable ICD server"
depends on OPENTHREAD_MTD
default n
help
Enables or Disables ICD server
config ICD_ENFORCE_SIT_SLOW_POLL_LIMIT
bool "Enforce SIT Slow Polling Max value to 15 seconds"
depends on ENABLE_ICD_SERVER
default n
help
Set to true to enforce SIT Slow Polling Max value to 15seconds
config ICD_REPORT_ON_ACTIVE_MODE
bool "Emit a report on entering active mode"
depends on ENABLE_ICD_SERVER
default n
help
Make the ICD manager emit a report on entering active mode
config ICD_SLOW_POLL_INTERVAL_MS
int "ICD Slow Polling Interval(ms)"
depends on ENABLE_ICD_SERVER
default 5000
help
The value defines the fastest frequency at which the device will typically receive
messages in Idle Mode. The Slow Polling interval MAY be the same as the Idle Mode
Interval.
config ICD_FAST_POLL_INTERVAL_MS
int "ICD Fast Polling Interval(ms)"
depends on ENABLE_ICD_SERVER
default 200
help
Fast Polling defines the fastest frequency at which the device can receive messages
in Active Mode. The Fast Polling interval SHALL be smaller than the Active Mode
Interval.
config ICD_IDLE_MODE_INTERVAL_SEC
int "ICD Idle Mode Interval(sec)"
depends on ENABLE_ICD_SERVER
default 2
help
This value indicates the maximum interval in seconds the server can stay in idle
mode.
config ICD_ACTIVE_MODE_INTERVAL_MS
int "ICD Active Mode Interval(ms)"
depends on ENABLE_ICD_SERVER
default 300
help
This value indicates the minimum interval in milliseconds the server can stay in
active mode.
config ICD_ACTIVE_MODE_THRESHOLD_MS
int "ICD Active Mode Threshold(ms)"
depends on ENABLE_ICD_SERVER
default 300
help
This value indicates the minimum amount of time in milliseconds the server typically
will stay active after network activity when in active mode.
config ENABLE_ICD_LIT
bool "Enable Long Idle Time ICD"
depends on ENABLE_ICD_SERVER
default n
help
Enables or Disables LIT ICD
config ENABLE_ICD_CIP
bool "Enable Check-in protocol"
depends on ENABLE_ICD_LIT
default y
help
Enables or Disables ICD Check-in protocol
config ICD_CLIENTS_SUPPORTED_PER_FABRIC
int "ICD Clients Number Supported Per Fabric"
depends on ENABLE_ICD_CIP
default 1
help
This value indicates the maximum number of entries that the ICD server is able to store
for each fabric in the RegisteredClients attribute.
config ICD_MAX_NOTIFICATION_SUBSCRIBERS
int "Max ICD notification subscribers"
depends on ENABLE_ICD_SERVER
default 1
help
The ICDManager implements the ICDListener functions and is always subscribed to the ICDNotifier
This allows other Matter modules to inform the ICDManager that it needs to go and may have to stay in Active Mode,
outside of its standard ActiveModeDuration and IdleModeDuration, without being tightly coupled the application
data model
This implementation also allows other modules to implement an ICDListener and subscribe to ICDNotifier
to couple behaviours with the ICD cycles. In such cases, ICD_MAX_NOTIFICATION_SUBSCRIBERS need to be adjusted
config ENABLE_ICD_USER_ACTIVE_MODE_TRIGGER
bool "Enable User Active Mode Trigger feature"
depends on ENABLE_ICD_LIT
default y
help
Enables or Disables ICD User Active Mode Trigger feature
config ENABLE_BG_EVENT_PROCESSING
bool "Enable Background event processing"
default n
help
Some cryptographic operations requires more time for processing,
When this option is enabled, the main matter task can delegate some
time consuming operations to a background task so that the main matter
task is not blocked and can process other work.
config BG_CHIP_TASK_STACK_SIZE
depends on ENABLE_BG_EVENT_PROCESSING
int "Background CHIP Task Stack Size"
range 0 8192
default 6144
help
The size (in bytes) of the background CHIP task stack.
config BG_CHIP_TASK_PRIORITY
depends on ENABLE_BG_EVENT_PROCESSING
int "Background CHIP Task Priority"
range 0 256
default 1
help
The priority of the background CHIP task.
config BG_MAX_EVENT_QUEUE_SIZE
depends on ENABLE_BG_EVENT_PROCESSING
int "Max Event Queue Size"
range 1 8
default 1
help
The maximum number of events that can be held in the background CHIP Platform event queue.
endmenu
menu "Device Identification Options"
config DEVICE_VENDOR_ID
hex "Device Vendor Id"
range 1 0xFFFE
default 0xFFF1
help
The device vendor id (in hex). This a CHIP-assigned id for the organization responsible for producing the device.
Defaults to test VID 0xFFF1.
config DEVICE_PRODUCT_ID
hex "Device Product Id"
range 1 0xFFFE
default 0x8000
help
The device product id (in hex). This is a unique id assigned by the device vendor to identify the product or device type.
Defaults to a CHIP-assigned id designating a non-production or test "product".
config DEFAULT_DEVICE_HARDWARE_VERSION
int "Default Device Hardware Version"
range 0 65535
default 0
help
The default device hardware version.
Hardware versions are specific to a particular device vendor and product id, and typically
correspond to a version of the physical device, a change to its packaging, and/or a change
to its marketing presentation. This value is generally *not* incremented for device software
versions.
This is a default value which is used when a hardware version has not been stored in device
persistent storage (e.g. by a factory provisioning process).
config DEVICE_SOFTWARE_VERSION_NUMBER
int "Device Software Version Number"
default 0
help
Software version number running on the device.
config DEVICE_TYPE
int "Default Device type"
default 0
help
The default device type.
endmenu
menu "WiFi Station Options"
config ENABLE_WIFI_STATION
bool "Enable CHIP WIFI STATION"
default y
help
Enables WiFi station for CHIP.
config DEFAULT_WIFI_SSID
string "Default WiFi SSID"
default ""
depends on ENABLE_WIFI_STATION
help
The SSID of network to connect to if no WiFi station configuration exists in NV storage
at the time the device boots.
This option is for testing only and should be disabled in production releases.
config DEFAULT_WIFI_PASSWORD
string "Default WiFi Password"
default ""
depends on ENABLE_WIFI_STATION
help
The password for the default WiFi network.
This option is for testing only and should be disabled in production releases.
config WIFI_STATION_RECONNECT_INTERVAL
int "WiFi Station Interface Reconnect Interval (ms)"
range 0 65535
default 100
depends on ENABLE_WIFI_STATION
help
The interval at which the CHIP platform will attempt to reconnect to the configured WiFi network (in milliseconds).
config MAX_SCAN_NETWORKS_RESULTS
int "Max ScanNetworks Results"
range 0 65535
default 10
depends on ENABLE_WIFI_STATION
help
The maximum number of networks to return as a result of a CHIP NetworkProvisioning:ScanNetworks request.
config WIFI_SCAN_COMPLETION_TIMEOUT
int "WiFi Scan Completion Timeout (ms)"
range 0 65535
default 10000
depends on ENABLE_WIFI_STATION
help
The amount of time (in milliseconds) after which the CHIP platform will timeout a WiFi scan
operation that hasn't completed. A value of 0 will disable the timeout logic.
config WIFI_CONNECTIVITY_TIMEOUT
int "WiFi Connectivity Timeout (ms)"
range 0 65535
default 30000
depends on ENABLE_WIFI_STATION
help
The amount of time (in milliseconds) to wait for Internet connectivity to be established on
the device's WiFi station interface during a Network Provisioning TestConnectivity operation.
endmenu
menu "WiFi AP Options"
config ENABLE_WIFI_AP
depends on ESP_WIFI_SOFTAP_SUPPORT
bool "Enable CHIP WIFI AP"
default y
help
Enables WiFi AP for CHIP.
config WIFI_AP_SSID_PREFIX
string "WiFi AP SSID Prefix"
default "MATTER-"
depends on ENABLE_WIFI_AP
help
A prefix string used in forming the WiFi soft-AP SSID. The remainder of the SSID
consists of the final two bytes of the device's primary WiFi MAC address in hex.
config WIFI_AP_CHANNEL
int "WiFi AP Channel"
range 1 14
default 1
depends on ENABLE_WIFI_AP
help
The WiFi channel number to be used by the soft-AP.
config WIFI_AP_MAX_STATIONS
int "WiFi AP Max Allowed Stations"
range 1 10
default 4
depends on ENABLE_WIFI_AP
help
The maximum number of stations allowed to connect to the soft-AP.
config WIFI_AP_BEACON_INTERVAL
int "WiFi AP Beacon Interval (ms)"
range 100 60000
default 100
depends on ENABLE_WIFI_AP
help
The beacon interval (in milliseconds) for the WiFi soft-AP.
config WIFI_AP_IDLE_TIMEOUT
int "WiFi AP Idle Timeout (ms)"
range 0 600000
default 120000
depends on ENABLE_WIFI_AP
help
The amount of time (in milliseconds) after which the CHIP platform will deactivate the soft-AP
if it has been idle.
endmenu
menu "BLE Options"
visible if BT_ENABLED
config ENABLE_CHIPOBLE
bool "Enable CHIP-over-BLE (CHIPoBLE) Support"
default y
depends on BT_ENABLED
help
Enables support for sending and receiving CHIP messages over a BLE connection.
NOTE: This feature depends on BLE central support being enabled in ESP-IDF. In
particular, the ESP-IDF features CONFIG_BT_ENABLED and CONFIG_GATTS_ENABLE must
both be enabled.
config BLE_DEVICE_NAME_PREFIX
string "BLE Device Name Prefix"
default "MATTER-"
depends on ENABLE_CHIPOBLE
help
A prefix string used in forming the BLE device name. The remainder of the name
consists of the final two bytes of the device's CHIP node id in hex.
NOTE: The device layer limits the total length of a device name to 16 characters.
However, due to other data sent in WoBLE advertise packets, the device name
may need to be shorter.
config BLE_FAST_ADVERTISING_INTERVAL_MIN
int "Fast Advertising Min Interval"
default 40
depends on ENABLE_CHIPOBLE
help
The minimum interval (in units of 0.625ms) at which the device will send BLE advertisements while
in fast advertising mode.
config BLE_FAST_ADVERTISING_INTERVAL_MAX
int "Fast Advertising Max Interval"
default 40
depends on ENABLE_CHIPOBLE
help
The maximum interval (in units of 0.625ms) at which the device will send BLE advertisements while
in fast advertising mode.
config BLE_SLOW_ADVERTISING_INTERVAL_MIN
int "Slow Advertising Min Interval"
default 800
depends on ENABLE_CHIPOBLE
help
The minimum interval (in units of 0.625ms) at which the device will send BLE advertisements while
in slow advertising mode.
config BLE_SLOW_ADVERTISING_INTERVAL_MAX
int "Slow Advertising Max Interval"
default 800
depends on ENABLE_CHIPOBLE
help
The maximum interval (in units of 0.625ms) at which the device will send BLE advertisements while
in slow advertising mode.
config CHIPOBLE_SINGLE_CONNECTION
bool "Single Connection Mode"
default y
depends on ENABLE_CHIPOBLE
help
Limit support for CHIP-over-BLE (WoBLE) to a single inbound connection.
When set, WoBLE advertisements will stop while a WoBLE connection is active.
config CHIPOBLE_ENABLE_ADVERTISING_AUTOSTART
int "Enable CHIPoBLE advertising start automatically after device power-up"
range 0 1
default 0
depends on ENABLE_CHIPOBLE
help
CHIPs device may start advertising automatically only if its all primary device
functions are within a CHIP network. Device providing unrelated to CHIP functionalities
should not start advertising automatically after power-up.
config USE_BLE_ONLY_FOR_COMMISSIONING
depends on BT_ENABLED
bool "Use BLE only for commissioning"
default y
help
Disable this flag if BLE is used for any other purpose than commissioning.
When enabled, it deinitialized the BLE on successful commissioning, and on
bootup do not initialize the BLE if device is already provisioned with Wi-Fi/Thread credentials.
endmenu
menu "CHIP Thread Options"
visible if OPENTHREAD_ENABLED
config ENABLE_MATTER_OVER_THREAD
bool "Enable Matter-over-Thread Support"
default y
depends on OPENTHREAD_ENABLED
help
Enables support for sending and receiving CHIP messages over a Thread Connection.
config THREAD_TASK_STACK_SIZE
int "Thread task stack size"
default 5120
depends on OPENTHREAD_ENABLED
help
Stack size of Thread task.
endmenu
menu "Ethernet Options"
visible if ENABLE_ETHERNET_TELEMETRY
config GPIO_RANGE_MIN
int
depends on ENABLE_ETHERNET_TELEMETRY
default 0
config GPIO_RANGE_MAX
int
depends on ENABLE_ETHERNET_TELEMETRY
default 33 if IDF_TARGET_ESP32
default 46 if IDF_TARGET_ESP32S2
default 19 if IDF_TARGET_ESP32C3
default 48 if IDF_TARGET_ESP32S3
default 26 if IDF_TARGET_ESP32H2
config ETH_MDC_GPIO
int "SMI MDC GPIO number"
depends on ENABLE_ETHERNET_TELEMETRY
range GPIO_RANGE_MIN GPIO_RANGE_MAX
default 23 if ENABLE_ETHERNET_TELEMETRY
help
Set the GPIO number used by SMI MDC.
config ETH_MDIO_GPIO
int "SMI MDIO GPIO number"
depends on ENABLE_ETHERNET_TELEMETRY
range GPIO_RANGE_MIN GPIO_RANGE_MAX
default 18 if ENABLE_ETHERNET_TELEMETRY
help
Set the GPIO number used by SMI MDIO.
config ETH_PHY_RST_GPIO
int "PHY Reset GPIO number"
depends on ENABLE_ETHERNET_TELEMETRY
range -1 GPIO_RANGE_MAX
default 5 if ENABLE_ETHERNET_TELEMETRY
help
Set the GPIO number used to reset PHY chip.
Set to -1 to disable PHY chip hardware reset.
config ETH_PHY_ADDR
int "PHY Address"
range 0 31
default 1 if ENABLE_ETHERNET_TELEMETRY
help
Set PHY address according your board schematic.
endmenu
menu "Time Sync Options"
config ENABLE_SERVICE_DIRECTORY_TIME_SYNC
bool "Enable Service Directory Time Sync"
default y
help
Enables synchronizing the device real-time clock using information returned during
a CHIP service directory query. For any device that uses the CHIP service directory
to lookup a tunnel server, enabling this option will result in the real time clock being
synchronized every time the service tunnel is established.
config ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
bool "Enable Time Service Time Sync"
default n
help
Enables synchronizing the device's real time clock with a remote CHIP Time service
using the CHIP Time Sync protocol.
config CHIP_TIME_SERVICE_ENDPOINT_ID
hex "CHIP Time Service Endpoint Id"
default 18B4300200000005
depends on ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
help
Specifies the service endpoint id of the CHIP Time Sync service to be used to synchronize time.
config DEFAULT_TIME_SYNC_INTERVAL
int "Time Sync Interval (seconds)"
default 60
depends on ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
help
Specifies the minimum interval (in seconds) at which the device should synchronize its real time
clock with the configured CHIP Time Sync server.
config TIME_SYNC_TIMEOUT
int "Time Sync Timeout (ms)"
default 10000
depends on ENABLE_CHIP_TIME_SERVICE_TIME_SYNC
help
Specifies the maximum amount of time (in milliseconds) to wait for a response from a
CHIP Time Sync server.
endmenu
menu "Service Provisioning Options"
config SERVICE_PROVISIONING_ENDPOINT_ID
hex "CHIP Service Provisioning Endpoint Id"
default 18B4300200000010
help
Specifies the service endpoint id of the CHIP Service Provisioning service. When a device
undergoes service provisioning, this is the endpoint to which it will send its Pair Device
to Account request.
config SERVICE_PROVISIONING_CONNECTIVITY_TIMEOUT
int "Service Provisioning Connectivity Timeout (ms)"
default 10000
help
The maximum amount of time (in milliseconds) to wait for service connectivity during the device
service provisioning step. More specifically, this is the maximum amount of time the device will
wait for connectivity to be established with the service at the point where the device waiting
to send a Pair Device to Account request to the Service Provisioning service.
config SERVICE_PROVISIONING_REQUEST_TIMEOUT
int "Service Provisioning Request Timeout (ms)"
default 10000
help
Specifies the maximum amount of time (in milliseconds) to wait for a response from the Service
Provisioning service.
endmenu
menu "Commissioning options"
config RENDEZVOUS_WAIT_FOR_COMMISSIONING_COMPLETE
int "Use full IP-based commissioning (expect cluster commands)"
default 0
help
Setting this to y will cause the commissioner to send commissioning commands to the
various clusters after establishing a PASE session.
config ENABLE_ROTATING_DEVICE_ID
depends on ENABLE_CHIPOBLE
bool "Enable Rotating Device Identifier Support"
default n
config ENABLE_ESP32_FACTORY_DATA_PROVIDER
bool "Use ESP32 Factory Data Provider"
default n
help
If this option is enabled, then ESP32 implementation of CommissionableDataProvider and
DeviceAttestationCredentialsProvider is used. Otherwise, the test-mode CommissionableDataProvider
and Example DeviceAttestationCredentialsProvider is used. ESP32 implementation reads factory data from
nvs partition. Factory partition can be configured using CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL
option, default is "nvs".
config ENABLE_ESP32_DEVICE_INSTANCE_INFO_PROVIDER
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER
bool "Use ESP32 Device Instance Info Provider"
default n
help
Use ESP32 Device Instance Info Provider to get device instance info from factory partition.
Details like Vendor Name, Vendor Id, Product Name, Product Id, Serial Number, Manufacturing Date,
Hardware Version, Hardware Version String, and Rotating Device Id UniqueId will be read from factory
partition.
config ENABLE_ESP32_DEVICE_INFO_PROVIDER
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER
bool "Use ESP32 Device Info Provider"
default n
help
Use ESP32 Device Info Provider to get device instance info from factory partition.
Details like Supported calendar types, supported locales, and fixed labels will be read from factory
partition.
config ENABLE_ESP32_LOCATIONCAPABILITY
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER
bool "Enable ESP32 Device LocationCapability"
default n
help
Enable ESP32 Device LocationCapability
config SEC_CERT_DAC_PROVIDER
bool "Use Secure Cert DAC Provider"
default n
help
Use ESP32 Secure Cert DAC Provider which is ESP32 DeviceAttestationCredentialsProvider implementation which reads attestation
information from the esp_secure_cert partition
config USE_ESP32_ECDSA_PERIPHERAL
bool "Use ESP32 ECDSA Peripheral"
depends on SEC_CERT_DAC_PROVIDER && SOC_ECDSA_SUPPORTED
default y
select MBEDTLS_HARDWARE_ECDSA_SIGN
help
If DAC is being read from secure cert and SOC supports ECDSA signing using on-chip peripheral
then this option gets enabled.
Also, please disable ESP_SECURE_CERT_DS_PERIPHERAL from the menuconfig when this option is disabled
config ENABLE_SET_CERT_DECLARATION_API
depends on ENABLE_ESP32_FACTORY_DATA_PROVIDER || SEC_CERT_DAC_PROVIDER
bool "Enable Set CD API"
default n
help
By default, the implementation reads the Certification Declaration (CD) from the 'chip-factory'
NVS namespace. If this option is enabled, the application can use an API to set a CD,
the configured CD will be used for subsequent CD reads.
config ENABLE_ESP_INSIGHTS_TRACE
bool "Enable Matter ESP Insights"
depends on ESP_INSIGHTS_ENABLED
default y
help
ESP Insights is a remote diagnostics solution to monitor the health of ESP devices in the field.
Enabling the above option will enable the esp32 specific tracing functionality and report the
diagnostic information to the insights cloud.
config ENABLE_ESP_INSIGHTS_SYSTEM_STATS
bool "Enable System Stats for insights"
depends on ESP_INSIGHTS_ENABLED
default n
help
This option enables the system statistics to be sent to the insights cloud.
config MAX_PERMIT_LIST_SIZE
int "Set permit list size for Insights traces"
range 5 30
depends on ESP_INSIGHTS_ENABLED
default 20
help
Maximum number of group entries that can be included in the permit list for reporting
the traces to insights.
endmenu
menu "Testing Options"
config USE_TEST_SERIAL_NUMBER
string "Use Test Serial Number"
default "TEST_SN"
help
Specifies a hard-coded device serial number to be used if none is found in CHIP NV storage.
Setting the value to an empty string disables the feature.
Note that any string up to 32 characters can be used here. This value is a unique identifier
assigned to each device by the device vendor.
This option is for testing only and should not be enabled in production releases.
config ENABLE_TEST_SETUP_PARAMS
bool "Enable Test Setup Parameters"
default y
help
Enable use of test setup parameters for testing purposes only.
WARNING: This option makes it possible to circumvent basic chip security functionality.
Because of this it SHOULD NEVER BE ENABLED IN PRODUCTION BUILDS.
config TEST_EVENT_TRIGGER_ENABLED
bool "Enable Test Event Trigger"
default y
help
Enable TestEventTrigger in GeneralDiagnostics cluster.
config TEST_EVENT_TRIGGER_ENABLE_KEY
string "Test Event Trigger Enable Key"
depends on TEST_EVENT_TRIGGER_ENABLED
default "00112233445566778899aabbccddeeff"
help
The EnableKey in hex string format used by TestEventTrigger command in GeneralDiagnostics
cluster. The length of the string should be 32.
config ENABLE_FIXED_TUNNEL_SERVER
bool "Use Fixed Tunnel Server"
default n
help
Forces the use of a service tunnel server at a fixed IP address and port. This
bypasses the need for a directory query to the service directory endpoint to
determine the tunnel server address. When enabled, this option allows devices
that haven't been service provisioned to establish a service tunnel.
config TUNNEL_SERVER_ADDRESS
string "Tunnel Server Address"
default ""
depends on ENABLE_FIXED_TUNNEL_SERVER
help
The IP address and port of the server to which the device should establish a service tunnel.
The supplied address must be a dot-notation IP address--not a host name. The port number is
optional; if present it should be separated from the IP address with a colon (e.g. 192.168.1.100:5540).
endmenu
menu "Network Telemetry Options"
config ENABLE_WIFI_TELEMETRY
bool "Enable WiFi Telemetry"
default y
help
Enable automatically uploading Wi-Fi telemetry via trait on an interval.
config ENABLE_THREAD_TELEMETRY
bool "Enable Thread Telemetry"
default n
help
Enable automatically uploading minimal Thread telemetry and topology via trait on an interval.
config ENABLE_THREAD_TELEMETRY_FULL
bool "Enable Full Thread Telemetry"
default n
help
Enable automatically uploading all Thread telemetry and topology via trait on an interval.
This is suitable for products that have router capability.
This option can be enabled only when Thread telemetry is enabled.
config ENABLE_TUNNEL_TELEMETRY
bool "Enable CHIP Tunnel Telemetry"
default n
help
Enable automatically uploading CHIP tunnel telemetry via trait on an interval.
config ENABLE_ETHERNET_TELEMETRY
bool "Enable Ethernet Telemetry"
default n
help
Enable ethernet support for boards with Internal Ethernet
endmenu
menu "Event Logging Options"
config EVENT_LOGGING_CRIT_BUFFER_SIZE
int "Event Logging Critical Production Buffer Size"
range 0 65535
default 4096
help
A size, in bytes, of the individual critical production event logging buffer.
This critical production event buffer must exist.
config EVENT_LOGGING_INFO_BUFFER_SIZE
int "Event Logging Info Buffer Size"
range 0 65535
default 1024
help
A size, in bytes, of the individual info event logging buffer.
When size is set to 0, the info event buffer and all support
for the info level events are disabled.
config EVENT_LOGGING_DEBUG_BUFFER_SIZE
int "Event Logging Debug Buffer Size"
range 0 65535
default 1024
help
A size, in bytes, of the individual debug event logging buffer.
When size is set to 0, the debug event buffer and all support
for the debug level events are disabled.
config CHIP_CONFIG_IM_PRETTY_PRINT
bool "Enable IM Pretty Print"
default y
help
If enabled, incoming message payloads are logged in detail.
To see detailed logging please set default log level to Debug.
(Component config --> Log output --> Default log verbosity --> Debug)
choice CHIP_LOG_DEFAULT_LEVEL
bool "CHIP default log verbosity"
default CHIP_LOG_DEFAULT_LEVEL_EQUALS_LOG_DEFAULT_LEVEL
help
Default log level for CHIP logs. Note that CHIP_LOG_DEFAULT_LEVEL can only be less than or equal to LOG_DEFAULT_LEVEL.
config CHIP_LOG_DEFAULT_LEVEL_EQUALS_LOG_DEFAULT_LEVEL
bool "Same as default log level"
config CHIP_LOG_DEFAULT_LEVEL_NONE
bool "CHIP logging disabled"
config CHIP_LOG_DEFAULT_LEVEL_ERROR
bool "Enable Error Logs"
config CHIP_LOG_DEFAULT_LEVEL_PROGRESS
bool "Enable Progress Logs"
config CHIP_LOG_DEFAULT_LEVEL_DETAIL
bool "Enable Detail Logs"
config CHIP_LOG_DEFAULT_LEVEL_AUTOMATION
bool "Enable Automation Logs"
endchoice
config CHIP_LOG_DEFAULT_LEVEL
int
range 0 LOG_DEFAULT_LEVEL
default LOG_DEFAULT_LEVEL if CHIP_LOG_DEFAULT_LEVEL_EQUALS_LOG_DEFAULT_LEVEL
default 0 if CHIP_LOG_DEFAULT_LEVEL_NONE
default 1 if CHIP_LOG_DEFAULT_LEVEL_ERROR
default 3 if CHIP_LOG_DEFAULT_LEVEL_PROGRESS
default 4 if CHIP_LOG_DEFAULT_LEVEL_DETAIL
default 5 if CHIP_LOG_DEFAULT_LEVEL_AUTOMATION
endmenu
config CHIP_ENABLE_BDX_LOG_TRANSFER
bool "Enable BDX log transfer"
default n
help
Enables the BDX protocol for diagnostics log transfer
menu "Matter OTA Image"
config CHIP_OTA_IMAGE_BUILD
bool "Generate Matter OTA image"
help
Enable building OTA (Over-the-air update) image which includes Matter OTA header.
config CHIP_OTA_IMAGE_EXTRA_ARGS
string "OTA image creator extra arguments"
depends on CHIP_OTA_IMAGE_BUILD
help
ota_image_tool.py is used to create the OTA image.
Mandatory arguments(Version, VersionString, VID, PID) are picked up from the config options.
This option allows us to pass optional arguments(MinApplicableSoftwareVersion, MaxApplicableSoftwareVersion,
and ReleaseNotesURL) to the ota_image_tool.py script.
eg: "-mi 2 -ma 4 -rn https://github.com/espressif/esp-idf/releases/tag/v4.4"
endmenu
menu "External Platform"
config CHIP_ENABLE_EXTERNAL_PLATFORM
bool "Enable external platform layer"
default n
help
Use external platform layer to override the default ESP32 platform in Matter SDK.
config CHIP_EXTERNAL_PLATFORM_DIR
string "The external platform directory"
depends on CHIP_ENABLE_EXTERNAL_PLATFORM
help
The directory of the external platform.
config CHIP_EXTERNAL_PLATFORM_INCLUDE_DIR
string "The external platform including directory"
depends on CHIP_ENABLE_EXTERNAL_PLATFORM
help
The including directory of the external platform.
endmenu
menu "Matter Manufacturing Options"
config CHIP_FACTORY_NAMESPACE_PARTITION_LABEL
string "chip-factory namespace partition label"
default "nvs"
help
Label of the partition to store key-values in the "chip-factory" namespace.
config CHIP_CONFIG_NAMESPACE_PARTITION_LABEL
string "chip-config namespace partition label"
default "nvs"
help
Label of the partition to store key-values in the "chip-config" namespace.
config CHIP_COUNTERS_NAMESPACE_PARTITION_LABEL
string "chip-counters namespace partition label"
default "nvs"
help
Label of the partition to store key-values in the "chip-counters" namespace.
config CHIP_KVS_NAMESPACE_PARTITION_LABEL
string "chip-kvs namespace partition label"
default "nvs"
help
Label of the partition to store key-values in the "chip-kvs" namespace.
endmenu
menu "Commissioning Window Options"
config CHIP_DISCOVERY_TIMEOUT_SECS
int "Commissioning Window Timeout in seconds"
range 180 900 if !ENABLE_BLE_EXT_ANNOUNCEMENT
range 901 172800 if ENABLE_BLE_EXT_ANNOUNCEMENT
default 900 if !ENABLE_BLE_EXT_ANNOUNCEMENT
default 172800 if ENABLE_BLE_EXT_ANNOUNCEMENT
help
The amount of time (in seconds) after which the CHIP platform will close the Commissioning Window
endmenu
menu "Enable ESP32 as a BLE Commissioner"
config ENABLE_ESP32_BLE_CONTROLLER
bool "Enable ESP32 as a BLE Commissioner"
default n
help
Enable esp32 as a BLE Commissioner.
endmenu
menu "Enable Matter Event List"
config ENABLE_MATTER_EVENT_LIST
bool "Enable Matter support Event List attribute"
default n
help
Enable Matter support Event List attribute.
endmenu
menu "Enable BLE Extended Announcement"
config ENABLE_BLE_EXT_ANNOUNCEMENT
bool "Enable BLE Extended Announcement"
default n
help
Enable BLE Extended Announcement.To be used with CHIP_DISCOVERY_TIMEOUT_SECS for extended announcement duration.
endmenu
menu "Message Reliable Protocol Options"
config MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_THREAD
int "MRP local active retry interval for Thread network in milliseconds"
depends on ENABLE_MATTER_OVER_THREAD
range 0 3600000
default 800
help
Base retry interval of the present Thread node when it is in the active state.
config MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_WIFI_ETHERNET
int "MRP local active retry interval for WIFI or ETHERNET network in milliseconds"
depends on !ENABLE_MATTER_OVER_THREAD
range 0 3600000
default 300
help
Base retry interval of the present node (WIFI or ETHERNET) when it is in the active state.
config MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_THREAD
int "MRP local idle retry interval for Thread network in milliseconds"
depends on ENABLE_MATTER_OVER_THREAD
range 0 3600000
default 800
help
Base retry interval of the present Thread node when it is in the idle state.
config MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_WIFI_ETHERNET
int "MRP local idle retry interval for WIFI or ETHERNET network in milliseconds"
depends on !ENABLE_MATTER_OVER_THREAD
range 0 3600000
default 500
help
Base retry interval of the present node (WIFI or ETHERNET) when it is in the idle state.
config MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_THREAD
int "MRP retransmission delta timeout for Thread network in milliseconds"
depends on ENABLE_MATTER_OVER_THREAD
range 0 3600000
default 500
help
A constant value added to the calculated retransmission timeout.
config MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_WIFI_ETHERNET
int "MRP retransmission delta timeout for WIFI or ETHERNET network in milliseconds"
depends on !ENABLE_MATTER_OVER_THREAD
range 0 3600000
default 0
help
A constant value added to the calculated retransmission timeout.
config MRP_MAX_RETRANS
int "MRP retransmission maximum count"
range 1 10
default 4
help
The maximum number of retransmissions before giving up.
endmenu
menu "Network Commissioning Driver Endpoint Id"
config THREAD_NETWORK_COMMISSIONING_DRIVER
bool "Use the generic Thread network commissioning driver"
depends on ENABLE_MATTER_OVER_THREAD && ENABLE_CHIP_DATA_MODEL
default y
help
Option to enable/disable the use of generic Thread network commissioning driver.
config THREAD_NETWORK_ENDPOINT_ID
int "Endpoint Id for Thread network"
depends on THREAD_NETWORK_COMMISSIONING_DRIVER
range 0 65534
default 0
help
The endpoint id for the generic Thread network commissioning driver.
config WIFI_NETWORK_COMMISSIONING_DRIVER
bool "Use ESP Wi-Fi network commissioning driver"
depends on (ENABLE_WIFI_STATION || ENABLE_WIFI_AP) && ENABLE_CHIP_DATA_MODEL
default y
help
Option to enable/disable the use of ESP Wi-Fi network commissioning driver.
config WIFI_NETWORK_ENDPOINT_ID
int "Endpoint Id for Wi-Fi network"
depends on WIFI_NETWORK_COMMISSIONING_DRIVER
range 0 65534
default 0
help
The endpoint id for the ESP Wi-Fi network commissioning driver.
config ETHERNET_NETWORK_COMMISSIONING_DRIVER
bool "Use ESP Ethernet network commissioning driver"
depends on ENABLE_ETHERNET_TELEMETRY && ENABLE_CHIP_DATA_MODEL
default y
help
Option to enable/disable the use of ESP Ethernet network commissioning driver.
config ETHERNET_NETWORK_ENDPOINT_ID
int "Endpoint Id for Ethernet network"
depends on ETHERNET_NETWORK_COMMISSIONING_DRIVER
range 0 65534
default 0
help
The endpoint id for the ESP Ethernet network commissioning driver.
endmenu
endmenu