Usage: ./out/debug/chip-tool temperaturemeasurement read measured-value <NODE ID> 1
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 ├── crash.log ├── end_user_support.log └── network_diag.log
These files contain dummy data.
# 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 over BDX > diagnosticlogs retrieve-logs-request 1 1 1 0 --TransferFileDesignator crash.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 logs over BDX chip-tool interactive start > diagnosticlogs retrieve-logs-request 1 1 1 0 --TransferFileDesignator crash.bin
Decode the crash logs, using espcoredump.py
espcoredump.py --chip (CHIP) info_corefile --core /tmp/crash.bin \ --core-format elf build/chip-temperature-measurement-app.elf
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