# Matter ESP32 Temperature Sensor Example This example is meant to represent a minimal-sized application. Please [setup ESP-IDF and CHIP Environment](../../../docs/platforms/esp32/setup_idf_chip.md) and refer [building and commissioning](../../../docs/platforms/esp32/build_app_and_commission.md) guides to get started. --- - [Cluster control](#cluster-control) - [Optimization](#optimization) --- ### Cluster control #### temperaturemeasurement ```bash Usage: ./out/debug/chip-tool temperaturemeasurement read measured-value 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](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](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/core_dump.html#core-dump-to-flash). To support that, application needs to add core dump partition's entry in [partitons.csv](partitions.csv#7) 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 ```