Matter ESP32 Temperature Sensor Example#

This example is meant to represent a minimal-sized application.

Please setup ESP-IDF and CHIP Environment and refer building and commissioning guides to get started.



Cluster control#

temperaturemeasurement#

Usage:
  ./out/debug/chip-tool temperaturemeasurement read measured-value <NODE ID> 1

Additional details#

This example demonstrates the utilization of the diagnostic logs cluster to send diagnostic logs to the client.

In this scenario, the main/diagnostic_logs directory contains three files:

main/diagnostic_logs
├── end_user_support.log
└── network_diag.log

These files contain dummy data.

To test the diagnostic logs cluster#

# Commission the app
chip-tool pairing ble-wifi 1 SSID PASSPHRASE 20202021 3840

# Read end user support logs using response payload protocol
chip-tool diagnosticlogs retrieve-logs-request 0 0 1 0

# Read network diagnostic using BDX protocol
chip-tool interactive start
> diagnosticlogs retrieve-logs-request 1 1 1 0 --TransferFileDesignator network-diag.log
# Retrieve crash summary over BDX
> diagnosticlogs retrieve-logs-request 2 1 1 0 --TransferFileDesignator crash-summary.bin

esp-idf supports storing and retrieving core dump in flash.

To support that, application needs to add core dump partition’s entry in partitons.csv and we need to enable few menuconfig options.

CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH=y
CONFIG_ESP32_COREDUMP_DATA_FORMAT_ELF=y

This example’s partition table and sdkconfig.default are already modified

  • Retrieve the core dump using diagnostic logs cluster

    # Read crash summary over BDX
    chip-tool interactive start
    > diagnosticlogs retrieve-logs-request 2 1 1 0 --TransferFileDesignator crash-summary.bin
    

Optimization#

Optimization related to WiFi, BLuetooth, Asserts etc are the part of this example by default. To enable this option set is_debug=false from command-line.

# Reconfigure the project for additional optimizations
rm -rf sdkconfig build/
idf.py -Dis_debug=false reconfigure

# Set additional configurations if required
idf.py menuconfig

# Build, flash, and monitor the device
idf.py -p /dev/tty.SLAB_USBtoUART build flash monitor