commit e02859a336bc7f933f63c5f56ab186f5c75ced55 Author: xiaoli <1273914445@qq.com> Date: Thu Feb 26 09:59:27 2026 +0800 Initial commit diff --git a/01_Source/matter-light-c6-wifi/CMakeLists.txt b/01_Source/matter-light-c6-wifi/CMakeLists.txt new file mode 100644 index 0000000..f8b9a44 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/CMakeLists.txt @@ -0,0 +1,75 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) + +if(NOT DEFINED ENV{ESP_MATTER_PATH}) + message(FATAL_ERROR "Please set ESP_MATTER_PATH to the path of esp-matter repo") +endif(NOT DEFINED ENV{ESP_MATTER_PATH}) + +if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) + if("${IDF_TARGET}" STREQUAL "esp32" OR "${IDF_TARGET}" STREQUAL "") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c3") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c3_devkit_m) + elseif("${IDF_TARGET}" STREQUAL "esp32c2") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c2_devkit_m) + elseif("${IDF_TARGET}" STREQUAL "esp32h2") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32h2_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32s3") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32s3_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c6") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c6_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c61") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c61_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c5") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c5_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32p4") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/hollow) + else() + message(FATAL_ERROR "Unsupported IDF_TARGET") + endif() +endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) + +set(ESP_MATTER_PATH_RAW "$ENV{ESP_MATTER_PATH}") +string(STRIP "${ESP_MATTER_PATH_RAW}" ESP_MATTER_PATH_RAW) +file(TO_CMAKE_PATH "${ESP_MATTER_PATH_RAW}" ESP_MATTER_PATH) +set(ENV{ESP_MATTER_PATH} "${ESP_MATTER_PATH}") + +set(ESP_MATTER_DEVICE_PATH_RAW "$ENV{ESP_MATTER_DEVICE_PATH}") +string(STRIP "${ESP_MATTER_DEVICE_PATH_RAW}" ESP_MATTER_DEVICE_PATH_RAW) +file(TO_CMAKE_PATH "${ESP_MATTER_DEVICE_PATH_RAW}" ESP_MATTER_DEVICE_PATH) +set(ENV{ESP_MATTER_DEVICE_PATH} "${ESP_MATTER_DEVICE_PATH}") + +set(PROJECT_VER "2.0" CACHE STRING "Application version") +set(PROJECT_VER_NUMBER 2 CACHE STRING "Application version number") +set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) + +# This should be done before using the IDF_TARGET variable. +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +include(${ESP_MATTER_PATH}/examples/common/cmake_common/components_include.cmake) +include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake) + +set(EXTRA_COMPONENT_DIRS + "${ESP_MATTER_PATH}/examples/common" + "${MATTER_SDK_PATH}/config/esp32/components" + "${ESP_MATTER_PATH}/components" + "${ESP_MATTER_PATH}/device_hal/device" + ${extra_components_dirs_append}) + +project(light) + +# 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;-Wno-overloaded-virtual" 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) diff --git a/01_Source/matter-light-c6-wifi/CMakeLists_1.txt b/01_Source/matter-light-c6-wifi/CMakeLists_1.txt new file mode 100644 index 0000000..ca4e7ad --- /dev/null +++ b/01_Source/matter-light-c6-wifi/CMakeLists_1.txt @@ -0,0 +1,75 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) + +if(NOT DEFINED ENV{ESP_MATTER_PATH}) + message(FATAL_ERROR "Please set ESP_MATTER_PATH to the path of esp-matter repo") +endif(NOT DEFINED ENV{ESP_MATTER_PATH}) + +if(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) + if("${IDF_TARGET}" STREQUAL "esp32" OR "${IDF_TARGET}" STREQUAL "") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c3") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c3_devkit_m) + elseif("${IDF_TARGET}" STREQUAL "esp32c2") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c2_devkit_m) + elseif("${IDF_TARGET}" STREQUAL "esp32h2") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32h2_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32s3") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32s3_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c6") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c6_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c61") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c61_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32c5") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/esp32c5_devkit_c) + elseif("${IDF_TARGET}" STREQUAL "esp32p4") + set(ENV{ESP_MATTER_DEVICE_PATH} $ENV{ESP_MATTER_PATH}/device_hal/device/hollow) + else() + message(FATAL_ERROR "Unsupported IDF_TARGET") + endif() +endif(NOT DEFINED ENV{ESP_MATTER_DEVICE_PATH}) + +set(ESP_MATTER_PATH_RAW "$ENV{ESP_MATTER_PATH}") +string(STRIP "${ESP_MATTER_PATH_RAW}" ESP_MATTER_PATH_RAW) +file(TO_CMAKE_PATH "${ESP_MATTER_PATH_RAW}" ESP_MATTER_PATH) +set(ENV{ESP_MATTER_PATH} "${ESP_MATTER_PATH}") + +set(ESP_MATTER_DEVICE_PATH_RAW "$ENV{ESP_MATTER_DEVICE_PATH}") +string(STRIP "${ESP_MATTER_DEVICE_PATH_RAW}" ESP_MATTER_DEVICE_PATH_RAW) +file(TO_CMAKE_PATH "${ESP_MATTER_DEVICE_PATH_RAW}" ESP_MATTER_DEVICE_PATH) +set(ENV{ESP_MATTER_DEVICE_PATH} "${ESP_MATTER_DEVICE_PATH}") + +set(PROJECT_VER "1.0") +set(PROJECT_VER_NUMBER 1) +set(MATTER_SDK_PATH ${ESP_MATTER_PATH}/connectedhomeip/connectedhomeip) + +# This should be done before using the IDF_TARGET variable. +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +include(${ESP_MATTER_PATH}/examples/common/cmake_common/components_include.cmake) +include($ENV{ESP_MATTER_DEVICE_PATH}/esp_matter_device.cmake) + +set(EXTRA_COMPONENT_DIRS + "${ESP_MATTER_PATH}/examples/common" + "${MATTER_SDK_PATH}/config/esp32/components" + "${ESP_MATTER_PATH}/components" + "${ESP_MATTER_PATH}/device_hal/device" + ${extra_components_dirs_append}) + +project(light) + +# 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;-Wno-overloaded-virtual" 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) diff --git a/01_Source/matter-light-c6-wifi/DEV_PROGRESS.md b/01_Source/matter-light-c6-wifi/DEV_PROGRESS.md new file mode 100644 index 0000000..7ac23a5 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/DEV_PROGRESS.md @@ -0,0 +1,414 @@ +# ESP32-C6 Matter + ESP-NOW 混合固件开发进度(单色灯 + 双色温灯) + +## 1. 项目目标(来自《项目制作需求》) + +- 基于 ESP32(候选:C3/C6),开发 Matter + ESP-NOW 混合固件。 +- 支持两类灯: + - 单色灯:开关 + 调光(白光)。 + - 双色温灯:开关 + 调光 + 调色温(暖/冷)。 +- 开发阶段:Wi-Fi commissioning(通过 Wi-Fi 完成配网)。 +- 最终目标:Wi-Fi 完成配网、Thread 实现本地 mesh 控制(混合网络模式)。 +- 需要 OTA、QR 码生成、VID/PID/DAC 相关出厂数据与认证准备支持。 +- 交付:双版本(或可配置)源码仓库 + Factory/OTA 固件 + 烧录/QR 脚本 + 测试报告 + 技术文档。 + +## 1.1 关键硬性约束与解决方案 + +- 量产遥控器固件不变,且 ESP-NOW 固定信道为 `channel=1`。 +- **问题**:若使用 Matter-over-Wi-Fi,Wi-Fi STA 信道会被路由器决定,与 ESP-NOW 固定 ch1 冲突。 +- **解决方案**:利用 ESP32-C6 的**双射频**能力: + - **Wi-Fi 2.4GHz 射频**:专用于 ESP-NOW(固定 channel 1,不连接路由器做 STA) + - **802.15.4 射频**:专用于 Matter over Thread(与 Wi-Fi 射频完全独立) + - **BLE**:用于 Matter commissioning(配网阶段) +- 结论:单芯片 ESP32-C6 可实现 ESP-NOW + Matter 共存,无需依赖路由器信道。 + +## 1.2 需求对齐清单(当前工程状态) + +| 需求项 | 状态 | 备注 | +| --- | --- | --- | +| ESP-NOW 代码功能 100% 保持 | 部分 | 已按遥控器协议实现 RX/配对/命令映射,但信道冲突仍未解决为“量产可用”方案 | +| Matter clusters: OnOff / LevelControl | 已完成 | 双 endpoint 已跑通 | +| Matter clusters: Groups / Scenes | 已完成(已验证) | 已在 App 上验证可创建/应用场景 | +| ColorControl(双色温) | 已完成(开发态) | 当前实现为 ColorTemperature;已确认硬件为 SK6812 RGBW 模块,调色温方向正常 | +| ESP-NOW 组播/广播组命令→所有控制器同步→Matter 状态更新 | 已完成(已稳定) | 控制器能处理 cmd 并更新 Matter 属性;组控一致性/延迟表现正常,无需再测试 | +| QR 码配网(Apple/Google/Alexa/RainMaker) | 部分 | iOS Home 已验证;Google/Alexa/RainMaker 未做系统性验证 | +| OTA(HTTP 远程服务器) | 已完成 | 已实现 HTTP OTA(从远程服务器下载固件),可通过 Matter shell 命令触发,已验证升级后 App version 变更 | +| Matter 标准 OTA | 暂停 | 采用 HTTP OTA(远程服务器)方案,不再推进标准 Matter OTA | +| 断电重置(如 3 次开关机) | 已完成(已稳定) | 已实现并验证:3 次重启触发 Matter 工厂重置(含 5 秒确认窗);已测试稳定,无需再测 | +| 交付:源码/编译说明/bin/脚本/测试报告 | 进行中 | 文档与脚本需要补齐并固化 | + +## 1.4 当前进度总览(已完成 vs 未完成) + +### 1.4.1 已完成 + +- HTTP OTA(远程服务器下载固件,shell 命令触发),并验证升级成功后 `App version` 变更(2.0 → 2.1) +- Matter clusters: Groups / Scenes 已在 App 上验证可创建/应用场景 +- 分区表调整为双 OTA(`ota_0`/`ota_1`/`otadata`),固件大小可容纳 OTA 升级 +- OTA 触发命令已接入 Matter shell(`matter esp ota `) +- 已可在 Windows 上稳定完成 build/flash/monitor(含 GN/Pigweed 环境) +- 断电重置(工厂重置):已实现并验证 3 次重启触发 factory reset(含 5 秒确认窗),重置后进入可重新配网状态 +- 修复断电计数不生效问题:将 NVS key 缩短到 15 字符以内并加入兼容读取逻辑 +- ESP-NOW 配对与多设备联调:已支持“单遥控器(Zone1/Zone2)+ APP”控制两台 ESP32-C6 灯具;并修复“电源重启触发配对时未及时广播配对 beacon”的问题,提升遥控器绑定成功率 + +### 1.4.2 未完成(待办) + +- 多生态验证:Google Home / Alexa / RainMaker 的 commissioning + 控制验证 +- 交付物固化:一键环境初始化/构建脚本、烧录脚本、测试报告与完整技术文档 + +## 3. 已完成的关键里程碑 + +### 3.1 构建与烧录链路打通(Windows) + +- 已实现:`idf.py build` 成功、可 `flash` 到 COM4、可 `monitor` 观察启动日志。 +- 已解决的关键构建问题(历史记录): + - `gn command not found`:定位 `gn.exe` 并加入 PATH。 + - Pigweed 环境变量缺失:补齐 `_PW_ACTUAL_ENVIRONMENT_ROOT`。 + - 链接错误 `undefined reference to mbedtls_hkdf`:启用 `CONFIG_MBEDTLS_HKDF_C=y`。 + - app 分区过小:切换到自定义分区表 `partitions.csv`(双 OTA),并设置 flash size=16MB(与硬件一致),最小 app 分区 `0x1E0000`。 + - Windows 反斜杠路径导致 CMake `Invalid character escape`:CMakeLists 里将 env path 转为 CMake path。 + +补充:构建该工程的关键环境变量(PowerShell 会话级别): + +- `ESP_MATTER_PATH=D:\ESP-LED\esp-matter-gh` +- `ESP_MATTER_DEVICE_PATH=D:\ESP-LED\esp-matter-gh\device_hal\device\esp32c6_devkit_c` +- `_PW_ACTUAL_ENVIRONMENT_ROOT=D:\ESP-LED\esp-matter-gh\connectedhomeip\connectedhomeip\third_party\pigweed\repo\environment` +- GN 工具路径(将目录加入 PATH): + - `...\third_party\pigweed\repo\environment\cipd\packages\pigweed`(包含 `gn.exe`) + +### 3.2 Matter 双 endpoint 架构(已运行验证) + +- 当前固件创建两个 endpoint: + - Endpoint 1:单色灯(OnOff + LevelControl)。 + - Endpoint 2:双色温灯(OnOff + LevelControl + ColorControl(ColorTemperature))。 +- 串口日志已确认: + - `RGB light created with endpoint_id 1` + - `CCT light created with endpoint_id 2` + +### 3.3 驱动层对接(已跑通) + +- Endpoint 1(单色灯):LEDC PWM 驱动(GPIO4/5/6)。 +- Endpoint 2(双色温灯):RMT 驱动 SK6812(GPIO2)。 + +### 3.4 日志报错修复 + +- 修复启动时 `E data_model: Cluster cannot be NULL.`: + - 原因:对不含 ColorControl 的 endpoint 调用 `attribute::get(endpoint, ColorControl...)`。 + - 处理:先检查 `cluster::get(endpoint, ColorControl::Id)` 是否存在,再读取 ColorMode / Hue / Temp 等属性。 + +### 3.5 iOS Home / Matter Commissioning + 控制验证(已完成) + +- 现状:手机端已完成配网,Home App 可同时控制两个灯的开关/亮度/(CCT 灯)色温。 +- 关键修复:为满足 iOS Home 的发现/配网流程,已启用 BLE commissioning: + - `CONFIG_BT_ENABLED=y` + - `CONFIG_BT_NIMBLE_ENABLED=y` + - `CONFIG_ENABLE_CHIPOBLE=y` +- 串口日志关键特征(表示 BLE commissioning 正常): + - `Configuring CHIPoBLE advertising ...` + - `CHIPoBLE advertising started` + - `Commissioning window opened` +- 设备启动时可打印 Onboarding Codes(用于手动输入/生成二维码): + - MT 串(SetupQRCode):`MT:Y.K9042C00KA0648G00` + - 11 位码(Manual pairing code):`34970112332` +- 注意:上述二维码/手动码为开发阶段示例/测试参数(默认 VID/PID 等),量产需替换正式 VID/PID、DAC/CD/工厂数据与每台唯一的 onboarding 信息。 + +### 3.6 单芯片双射频方案验证成功(2026-01-07) + +- **架构**:ESP32-C6 单芯片同时运行: + - **Thread (802.15.4)**:Matter 网络层 + - **Wi-Fi (channel 1)**:ESP-NOW 接收(不连接路由器) + - **BLE**:Matter commissioning +- **关键配置**: + - `CONFIG_ENABLE_WIFI_STATION=n`:禁用 Matter Wi-Fi STA + - `CONFIG_ENABLE_THREAD=y`:启用 Matter over Thread + - 独立初始化 Wi-Fi 用于 ESP-NOW,固定 channel 1 +- **验证通过的日志特征**: + - `OpenThread started: OK` + - `Wi-Fi channel fixed to 1 for ESP-NOW` + - `ESP-NOW RX initialized` + - `CHIPoBLE advertising started` + - `Server Listening...` +- **固件大小**:~2MB(含 Thread + Wi-Fi + BLE + ESP-NOW) +- **状态**:设备稳定启动,无崩溃 + +### 3.7 HTTP OTA(远程服务器)验证成功(2026-01-15) + +- **目标**:支持“远程服务器方式”OTA(HTTP),不依赖 HTTPS/TLS,固件体积可控。 +- **实现概览**: + - 使用 `esp_http_client` + `esp_ota_*` 实现分段下载与写入 OTA 分区。 + - 提供 Matter shell 命令触发:`matter esp ota `。 + - 仅支持 `http://`,拒绝 `https://` 以减小固件体积。 +- **验证结果(串口日志特征)**: + - `HTTP OTA progress: ... 100%` + - `HTTP OTA upgrade successful! Rebooting in 3 seconds...` + - 重启后:`Loaded app from partition at offset 0x210000`(切换到 ota_1) + - 重启后:`App version: 2.1`(已确认版本号随固件更新) + +### 3.8 多设备控制联调进展(APP + ESP-NOW 遥控器)(2026-01-15) + +- **目标**:一台遥控器 + 手机 App 同时控制两台 ESP32-C6 灯具(两块开发板)。 +- **实现状态**: + - App 侧(iOS Home)已可同时添加两台设备并分别控制。 + - 遥控器侧支持 Zone1/Zone2 独立绑定不同灯具(通过 ESP-NOW 配对流程完成)。 +- **配对机制(开发态)**: + - 3 次重启:触发 Matter factory reset(5 秒确认窗)。 + - 5 次重启:进入 ESP-NOW pairing mode(5 秒确认窗)。 + - 遥控器在目标 Zone 下长按配对键,设备收到 `0xA5` 后退出配对模式。 +- **关键修复**: + - 修复“电源重启触发配对模式后,因 Wi-Fi 连接状态导致配对 beacon 未及时广播”的问题:进入配对后将主动启动配对 beacon 广播,确保遥控器可发现并完成绑定。 + +## 4. 当前仍在进行中的问题/待验证点 + +### 4.1 单色灯输出"白光"的定义与实现(已确定:RGB 三路混白) + +- 当前单色灯硬件接法为 RGB 三路 PWM(GPIO4/5/6)。 +- 已做的软件调整:将 RGB 三路占空比设置为 1:1:1(同亮度混色)以尽量呈现白光。 +- 已确认:单色灯即 RGB 三路混白方案(不做单通道白灯条改造)。 +- 注意:RGB 分立灯珠近距离仍可能看到“三色点”,属于物理结构;可通过扩散罩/导光改善。 + +### 4.2 双色温灯的“暖/冷”实现(已确认:SK6812 RGBW) + +- 已确认:双色温灯硬件为 SK6812 RGBW 模块,采用 RMT 单线驱动。 +- 当前实现:Matter ColorTemperature(mireds)→ 颜色映射 → SK6812 输出;调色温方向已验证正确。 +- 注意:SK6812 RGBW 的“色温”属于近似实现(需要 RGB 参与补色),效果取决于映射/校准策略。 +- 状态:当前效果表现正常,无需再做专项“色温校准/一致性测试”。 + +### 4.3 Flash 容量提示告警(已解决) + +- 现象:启动时提示检测到 16MB,但固件镜像头标记为 4MB: + - `Detected size(16384k) larger than the size in the binary image header(4096k)` +- 影响:通常可运行,但不利于后续分区与 OTA 风险控制。 +- 已处理并确认:将工程 Flash size 配置调整为 16MB(`CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y`),已复测确认告警消失。 + +## 5. 控制器/遥控器(ESP-NOW)现状梳理(已读源码) + +- 控制器原码路径:`D:\ESP-LED\控制器原码\Ecolight\...` +- 协议:ESP-NOW(channel=1) +- Pairing beacon magic:`0xABCDEF01`(4字节) +- 命令(1字节): + - `0x01` Toggle + - `0x02` On + - `0x03` Brightness Up + - `0x04` Brightness Down + - `0x05` Off + - `0xA5` Pairing Confirm + +结论:控制器原码与甲方提供的遥控器一致,且该 ESP-NOW 遥控协议可接入当前 Matter 灯固件(C6 端作为 ESPNOW 接收端),收到命令后同步更新 Matter 属性。 + +## 6. VID/PID/DAC/QR 码阶段性策略 + +- 开发阶段可以使用示例/测试用的 VID/PID/证书链推进开发。 +- 后续拿到正式 VID/PID/DAC 后: + - 替换证书与出厂数据。 + - 重新生成 QR。 + - 通常需要恢复出厂并重新配网(属正常流程)。 + +## 7. 下一步开发路线图(按阶段) + +### 阶段 A:功能验证与参数固化(短期) + +- 单色灯:明确硬件定义(RGB 混白 vs 单路白灯条),固化白光方案。 +- 双色温:已确认 SK6812 RGBW,固化色温映射与效果参数(端点/曲线/gamma/限幅),并确认通道顺序与供电/信号稳定性。 +- 建立功能测试用例并记录: + - endpoint 1:开/关、亮度 + - endpoint 2:开/关、亮度、色温 + +### 阶段 B:ESP-NOW + Matter 共存(核心) + +- 在 C6 Matter 固件中加入 ESPNOW RX: + - 接收 1-byte 命令并映射到 endpoint 1/2 的 Matter 属性更新。 + - 目标:遥控器控制灯,Matter 侧状态同步。 +- 解决 Wi-Fi channel 与 ESPNOW channel=1 的冲突(以“遥控器固件不变”为前提): + - 方案 1(最小改动,但依赖环境):路由器/热点 2.4G 固定 `channel=1`。 + - 方案 2(推荐量产架构):双芯片/双射频解耦(ESP-NOW 固定 ch1 与 Matter Wi-Fi 任意信道互不影响)。 + - 方案 3(与 Addendum 对齐):Wi-Fi 用于 commissioning,日常控制走 Thread(需要 Thread Border Router 环境),从而避免 Wi-Fi 信道对 ESP-NOW 的牵制。 +- 性能目标:端到端延迟 < 20ms(需要定义测量方法和基准)。 + +### 7.2 芯片选型建议(C3 vs C6) + +- 若坚持单芯片承载 Matter(含 Groups/Scenes/OTA/多生态)+ 应用逻辑 + ESPNOW:更推荐 ESP32-C6。 + - 原因:内存与资源更充足,Matter 生态适配与稳定性更优,且可扩展 Thread(满足 Addendum)。 +- 若控制器仍使用 ESP32-C3:需要评估以下风险项: + - Matter + BLE commissioning + OTA + Groups/Scenes 的 RAM/Flash 压力。 + - 与 ESPNOW 同时运行的峰值内存/任务栈/队列占用。 +- 当路由器信道不可控且遥控器固件不变时: + - 单芯片方案存在先天信道冲突。 + - 需要硬件/架构调整(例如额外加一颗 C3 专做 ESPNOW 固定 ch1,C6 专做 Matter/Wi-Fi/Thread,通过 UART/SPI 同步状态)。 + +### 7.3 方案 A(双芯片解耦)系统架构(量产推荐) + +#### 7.3.1 总体思路 + +- MCU1(ESP-NOW 控制器,建议 ESP32-C3): + - 只负责:ESP-NOW(固定 ch1)、遥控器配对/命令接收、组控广播一致性、驱动输出(PWM/RMT/恒流等)。 + - 不连接路由器(或不承担 Matter Wi-Fi)。 +- MCU2(Matter 控制器,建议 ESP32-C6): + - 只负责:Matter over Wi-Fi(commissioning/长久在线/多生态)、(可选)Thread、Matter OTA、Groups/Scenes/状态机。 + - 通过 UART/SPI 与 MCU1 交换“控制命令/状态变化/诊断”。 + +补充确认:本项目采用 UART 作为 MCU1↔MCU2 通信方式。 + +#### 7.3.2 数据流与一致性目标 + +- 遥控器 → MCU1(ESP-NOW RX)→ + - MCU1 先本地执行灯控(保证延迟与体验不变) + - MCU1 同步上报事件给 MCU2(用于 Matter 属性更新与组/场景一致性) +- App/Matter → MCU2(属性更新/命令)→ MCU2 下发到 MCU1 → MCU1 执行驱动输出 → MCU1 回报最终状态给 MCU2(闭环) + +#### 7.3.3 量产可测的关键指标 + +- 遥控器端到端延迟(按键到灯输出):目标 < 20 ms(以 MCU1 本地执行为准) +- Matter 状态同步延迟(灯输出到 Matter 属性更新可见):给出目标与测量方法(建议 < 200 ms) +- 长期稳定性:Wi-Fi/Matter 长久在线,不影响 MCU1 的 ESP-NOW 实时性 + +#### 7.3.4 PCB/硬件接口建议(小改动范围) + +- UART: + - MCU1_TX -> MCU2_RX(GPIO 待定:MCU1=____ / MCU2=____) + - MCU1_RX <- MCU2_TX(GPIO 待定:MCU1=____ / MCU2=____) +- 可选硬件流控(建议预留焊盘,量产可按稳定性决定是否启用): + - MCU2->MCU1 `RESET_REQ`(请求 MCU1 执行:清码/恢复出厂/重新配对/进入测试) + - MCU1->MCU2 `IRQ_EVT`(有新事件/状态上报,降低轮询开销) +- 电平:两者均为 3.3V TTL(无需电平转换) +- 调试:建议预留测试点(TX/RX/GND)便于产线与现场抓包 + +## 8. 测试计划(面向交付物) + +### 8.1 遥控器 + ESP-NOW(不改固件) + +- 工厂重置:三次断电/复位触发工厂重置(含 5 秒确认窗) +- 配对:五次断电/复位进入配对模式;遥控器 slot 长按配对 +- 单控:0x01..0x05 全命令覆盖,重复按键/长按/连发 +- 组控:遥控器广播组命令,多个控制器同步输出一致 +- 延迟:示波器/逻辑分析仪测量(按键触发到 GPIO/PWM 变化),记录 P50/P95 + +### 8.2 Matter 多生态(MCU2) + +- Apple Home / Google Home / Alexa(至少两项)commissioning 演示 +- Clusters:OnOff/LevelControl/Groups/Scenes(双色温含 ColorControl) +- OTA:升级演示 + 回滚验证 + +### 8.3 共存与稳定性 + +- Wi-Fi 长久在线(24h/72h)期间,遥控器控制无明显延迟/无丢包异常 +- 异常恢复: + - MCU1 重启不影响 MCU2(Matter 仍在线;状态恢复后同步) + - MCU2 重启不影响 MCU1(遥控器控制不中断;MCU2 恢复后重新拉取状态) + +## 9. Matter 功能测试用例(建议用 chip-tool 记录) + +### Endpoint 1(单色灯:开关/调光) + +```bash +chip-tool onoff on 1 1 +chip-tool onoff off 1 1 +chip-tool levelcontrol movetolevelwithonoff 1 1 10 0 0 +chip-tool levelcontrol movetolevelwithonoff 1 1 200 0 0 +``` + +### Endpoint 2(双色温灯:开关/调光/色温) + +```bash +chip-tool onoff on 1 2 +chip-tool onoff off 1 2 +chip-tool levelcontrol movetolevelwithonoff 1 2 20 0 0 +chip-tool levelcontrol movetolevelwithonoff 1 2 220 0 0 +chip-tool colorcontrol movetocolortemperature 1 2 153 0 0 +chip-tool colorcontrol movetocolortemperature 1 2 450 0 0 +``` + +## 10. 风险与注意事项 + +- ESPNOW channel 固定为 1:当路由器信道不可固定到 1 且遥控器固件不可改时,单芯片方案存在先天冲突,需要改架构。 +- 单色灯“白光”体验可能受硬件(RGB 三色灯珠)限制,软件无法消除近距离三色颗粒。 +- 双色温(SK6812 RGBW)“色温”为近似实现:不同亮度下可能存在色偏;需要通过端点/曲线/gamma 与 RGB/W 分配进行校准。 +- Thread + Wi-Fi 混合网络模式需要明确最终产品拓扑与测试方法。 + +## 11. MCU 间通信协议草案(方案 A) + +### 11.1 物理层与链路建议 + +- UART:建议 921600 或 1Mbps,8N1 +- 帧格式:固定 header + version + flags + type + seq + len + payload + CRC32 +- 可靠性建议: + - 带 `seq` 与 `ACK`(至少对“状态设置/模式切换/工厂重置”等关键命令) + - 对“按键事件上报”可不必 ACK,但需要丢包容忍(MCU2 以 MCU1 的最终状态为准) + +### 11.1.1 帧格式(建议稿,可直接实现) + +- `SOF`:2 bytes,固定 `0x55 0xAA` +- `VER`:1 byte,协议版本(初版 `0x01`) +- `FLAGS`:1 byte + - bit0:是否需要 ACK + - bit1:是否为 ACK 包 + - bit2:错误包 + - bit3..7:预留 +- `TYPE`:1 byte,消息类型 +- `SEQ`:2 bytes,递增序号(小端) +- `LEN`:2 bytes,payload 长度(小端,0..1024 建议上限) +- `PAYLOAD`:LEN bytes +- `CRC32`:4 bytes(对从 `VER` 到 `PAYLOAD` 的 CRC32,小端) + +### 11.1.2 ACK/重试/超时(建议稿) + +- 对 `FLAGS.need_ack=1` 的包: + - 接收方在成功处理后回 `ACK` 包(`FLAGS.is_ack=1`,`SEQ` 原样回显,`TYPE`=原 TYPE 或 `TYPE=ACK(0x7F)` 二选一) + - 发送方超时 `T_ACK=50ms` 未收到 ACK:重发,最多 `N_RETRY=3` + - 连续失败后进入降级策略:记录错误计数并上报 `EVT_DIAG`(或触发重新握手) +- 对 `EVT_KEY_CMD`:可 `need_ack=0`(允许丢);但要求 MCU1 后续用 `EVT_LOCAL_STATE` 做闭环状态同步 + +### 11.1.3 上电/复位握手(建议稿) + +- MCU2 启动后发送 `HELLO`(包含 MCU2 fw_ver/proto_ver/boot_reason) +- MCU1 回 `HELLO_RSP`(包含 MCU1 fw_ver/proto_ver、灯型/能力、当前输出状态摘要) +- MCU2 收到后发送 `GET_STATE`(拉取完整状态),并以此刷新 Matter 属性(避免 MCU2 重启后状态漂移) + +### 11.2 消息类型(最小集) + +- `EVT_KEY_CMD`(MCU1→MCU2):遥控器命令事件 + - 字段:cmd(0x01..0x05/扩展)、src_mac、timestamp、group_mode/slot +- `EVT_LOCAL_STATE`(MCU1→MCU2):MCU1 本地执行后的最终状态 + - 字段:endpoint/light_id、onoff、level、cct(如有)、transition_time +- `SET_STATE`(MCU2→MCU1):来自 Matter 的控制请求 + - 字段:目标灯/组、onoff/level/cct、期望渐变时间 +- `SET_MODE`(MCU2→MCU1):模式切换(配对、清码、恢复出厂、进入测试模式) +- `HEARTBEAT`(双向):存活与版本信息(fw_ver、proto_ver、uptime、heap) + +建议补充类型: + +- `GET_STATE`(MCU2→MCU1):请求 MCU1 上报完整状态 +- `EVT_DIAG`(双向):错误码/计数器(CRC 错、丢包、重试次数、WDT、重启原因) + +### 11.2.1 字段定义建议(便于落地与调试) + +- `light_id`:1 byte + - `0x01` 单色灯 + - `0x02` 双色温灯 +- `onoff`:1 byte(0/1) +- `level`:1 byte(0..254,按 Matter 约定) +- `cct_mireds`:2 bytes(小端,按 Matter ColorTemperatureMireds) +- `transition_ms`:2 bytes(小端) +- `timestamp_ms`:4 bytes(小端,MCU1 uptime 毫秒) + +### 11.3 一致性原则(避免双写打架) + +- MCU1 为“灯输出唯一权威”(source of truth for physical output)。 +- MCU2 为“ Matter 属性权威”(source of truth for ecosystem state)。 +- MCU2 更新 Matter 属性应以 `EVT_LOCAL_STATE` 为准,而不是以 `EVT_KEY_CMD` 直接推导(防止执行失败/限幅/场景叠加导致不一致)。 + +## 11.4 PCB 连线清单(方案 A,UART) + +- UART: + - MCU1_TX -> MCU2_RX(GPIO 待定:MCU1=____ / MCU2=____) + - MCU1_RX <- MCU2_TX(GPIO 待定:MCU1=____ / MCU2=____) +- 可选硬件流控(建议预留焊盘,量产可按稳定性决定是否启用): + - MCU1_RTS / MCU1_CTS + - MCU2_RTS / MCU2_CTS +- 额外控制/中断线(建议预留): + - MCU2->MCU1 `RESET_REQ`(请求 MCU1 执行:清码/恢复出厂/重新配对/进入测试) + - MCU1->MCU2 `IRQ_EVT`(有新事件/状态上报,降低轮询开销) +- 电平:两者均为 3.3V TTL(无需电平转换) +- 调试:建议预留测试点(TX/RX/GND)便于产线与现场抓包 + +## 13. 可对外汇报摘要(可直接发甲方) + +本阶段已完成 ESP32-C6 Matter + ESP-NOW 混合固件的核心功能联调:固件已实现双 endpoint(单色灯 + 双色温灯)并通过 iOS Home 完成 Matter commissioning 与控制验证;同时接入甲方量产遥控器的 ESP-NOW 协议(channel=1、命令 0x01..0x05/0xA5),可通过“5 次重启进入配对模式 + 遥控器 Zone 配对”实现一台遥控器(Zone1/Zone2)分别绑定两台 ESP32-C6 灯具。当前 APP(iOS Home)与遥控器均可对两台设备进行控制;设备支持 HTTP OTA(远程服务器下载升级,支持双 OTA 分区切换),已验证升级后版本号变化。下一步将推进 Google Home/Alexa/RainMaker 等生态兼容性测试,并固化交付脚本、测试报告与完整技术文档。 + diff --git a/01_Source/matter-light-c6-wifi/README.md b/01_Source/matter-light-c6-wifi/README.md new file mode 100644 index 0000000..ce4bc49 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/README.md @@ -0,0 +1,40 @@ +# Light + +This example creates a Color Temperature Light device using the ESP +Matter data model. + +See the [docs](https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html) for more information about building and flashing the firmware. + +## 1. Additional Environment Setup + +No additional setup is required. + +## 2. Post Commissioning Setup + +No additional setup is required. + +## 3. Device Performance + +### 3.1 Memory usage + +The following is the Memory and Flash Usage. + +- `Bootup` == Device just finished booting up. Device is not + commissionined or connected to wifi yet. +- `After Commissioning` == Device is conneted to wifi and is also + commissioned and is rebooted. +- device used: esp32c3_devkit_m +- tested on: + [6a244a7](https://github.com/espressif/esp-matter/commit/6a244a7b1e5c70b0aa1bf57254f19718b0755d95) + (2022-06-16) + +| | Bootup | After Commissioning | +|:- |:-: |:-: | +|**Free Internal Memory** |108KB |105KB | + +**Flash Usage**: Firmware binary size: 1.26MB + +This should give you a good idea about the amount of free memory that is +available for you to run your application's code. + +Applications that do not require BLE post commissioning, can disable it using app_ble_disable() once commissioning is complete. It is not done explicitly because of a known issue with esp32c3 and will be fixed with the next IDF release (v4.4.2). diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_thread b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_thread new file mode 100644 index 0000000..710bc9f --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_thread @@ -0,0 +1,59 @@ +CONFIG_IDF_TARGET="esp32c5" + +# libsodium +CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y + +# NIMBLE +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n +CONFIG_ENABLE_EXTENDED_DISCOVERY=y + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable STA for ESP32C5 +CONFIG_ENABLE_WIFI_STATION=n + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +# ESP32-C5-DevKitC-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=28 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=27 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_thread_1 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_thread_1 new file mode 100644 index 0000000..710bc9f --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_thread_1 @@ -0,0 +1,59 @@ +CONFIG_IDF_TARGET="esp32c5" + +# libsodium +CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y + +# NIMBLE +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n +CONFIG_ENABLE_EXTENDED_DISCOVERY=y + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable STA for ESP32C5 +CONFIG_ENABLE_WIFI_STATION=n + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +# ESP32-C5-DevKitC-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=28 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=27 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_wifi_thread b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_wifi_thread new file mode 100644 index 0000000..389bc18 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_wifi_thread @@ -0,0 +1,75 @@ +CONFIG_IDF_TARGET="esp32c5" + +# libsodium +CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y + +# NIMBLE +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# This example use 3 dynamic endpoints: RootNode, light, and secondary network commissioning +CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=3 + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n +CONFIG_ENABLE_EXTENDED_DISCOVERY=y + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable AP +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_ENABLE_WIFI_AP=n + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +# ESP32-C5-DevKitC-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=28 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=27 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y + +# Firmware size optimization +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y +CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y +CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y +CONFIG_NEWLIB_NANO_FORMAT=y +CONFIG_ESP_ERR_TO_NAME_LOOKUP=n + +# Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. +CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_wifi_thread_1 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_wifi_thread_1 new file mode 100644 index 0000000..389bc18 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c5_wifi_thread_1 @@ -0,0 +1,75 @@ +CONFIG_IDF_TARGET="esp32c5" + +# libsodium +CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y + +# NIMBLE +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# This example use 3 dynamic endpoints: RootNode, light, and secondary network commissioning +CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=3 + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n +CONFIG_ENABLE_EXTENDED_DISCOVERY=y + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable AP +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_ENABLE_WIFI_AP=n + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +# ESP32-C5-DevKitC-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=28 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=27 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y + +# Firmware size optimization +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y +CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y +CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y +CONFIG_NEWLIB_NANO_FORMAT=y +CONFIG_ESP_ERR_TO_NAME_LOOKUP=n + +# Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. +CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c6_thread b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c6_thread new file mode 100644 index 0000000..221b45c --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c6_thread @@ -0,0 +1,59 @@ +CONFIG_IDF_TARGET="esp32c6" + +# libsodium +CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y + +# NIMBLE +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n +CONFIG_ENABLE_EXTENDED_DISCOVERY=y + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable STA for ESP32C6 +CONFIG_ENABLE_WIFI_STATION=n + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +# ESP32-C6-DevKitM-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=9 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=8 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c6_wifi_thread b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c6_wifi_thread new file mode 100644 index 0000000..43a4a75 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.c6_wifi_thread @@ -0,0 +1,75 @@ +CONFIG_IDF_TARGET="esp32c6" + +# libsodium +CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y + +# NIMBLE +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_DNS_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n +CONFIG_ENABLE_EXTENDED_DISCOVERY=y + +# Enable OTA Requestor +CONFIG_ENABLE_OTA_REQUESTOR=y + +# Disable AP +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_ENABLE_WIFI_AP=n + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# Enable chip shell +CONFIG_ENABLE_CHIP_SHELL=y + +# This example use 3 dynamic endpoints: RootNode, light, and secondary network commissioning +CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=3 + +# ESP32-C6-DevKitM-1 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=9 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=8 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y + +# Firmware size optimization +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y +CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT=y +CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y +CONFIG_NEWLIB_NANO_FORMAT=y +CONFIG_ESP_ERR_TO_NAME_LOOKUP=n + +# Set endpoint id for Thread and Wi-Fi, depending on the secondary network interface endpoint id. +CONFIG_THREAD_NETWORK_ENDPOINT_ID=2 +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2 new file mode 100644 index 0000000..a1cce2e --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2 @@ -0,0 +1,174 @@ +CONFIG_IDF_TARGET="esp32c2" + +# Compiler options +CONFIG_COMPILER_OPTIMIZATION_SIZE=y +CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE=y + +## NimBLE Options +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=1 +CONFIG_BT_NIMBLE_MAX_BONDS=2 +CONFIG_BT_NIMBLE_MAX_CCCDS=2 +CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=3072 +CONFIG_BT_NIMBLE_ROLE_CENTRAL=n +CONFIG_BT_NIMBLE_ROLE_OBSERVER=n +CONFIG_BT_NIMBLE_SECURITY_ENABLE=n +CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=n +CONFIG_BT_NIMBLE_WHITELIST_SIZE=1 +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=1 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=10 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=100 +CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=4 +CONFIG_BT_NIMBLE_MSYS_2_BLOCK_SIZE=320 +CONFIG_BT_NIMBLE_ACL_BUF_COUNT=5 +CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT=5 +CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT=3 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n + +## Controller Options +CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE=3072 +CONFIG_BT_LE_LL_RESOLV_LIST_SIZE=1 +CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT=1 + +# Release BT IRAM memory +CONFIG_BT_RELEASE_IRAM=y + +# SPI Configuration +CONFIG_SPI_MASTER_ISR_IN_IRAM=n +CONFIG_SPI_SLAVE_ISR_IN_IRAM=n + +# Ethernet +CONFIG_ETH_USE_SPI_ETHERNET=n + +# Event Loop Library +CONFIG_ESP_EVENT_POST_FROM_ISR=n + +# Chip revision +CONFIG_ESP32C2_REV2_DEVELOPMENT=y + +# Main XTAL Config +CONFIG_XTAL_FREQ_26=y +CONFIG_XTAL_FREQ_40=n + +# ESP Ringbuf +CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y +CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y + +# ESP System Settings +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=16 +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2048 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3072 + +## Memory protection +CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=n + +# High resolution timer (esp_timer) +CONFIG_ESP_TIMER_TASK_STACK_SIZE=2048 + +# Wi-Fi +CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=n +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=3 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=6 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=6 +CONFIG_ESP32_WIFI_IRAM_OPT=n +CONFIG_ESP32_WIFI_RX_IRAM_OPT=n +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=n +CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=n +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=n +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# FreeRTOS +## Kernel +CONFIG_FREERTOS_HZ=1000 +CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y +## Port +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=n +CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y + +# Hardware Abstraction Layer (HAL) and Low Level (LL) +CONFIG_HAL_ASSERTION_DISABLE=y + +# LWIP +CONFIG_LWIP_IPV4=n +CONFIG_LWIP_MAX_SOCKETS=5 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=16 +CONFIG_LWIP_DHCPS=n +CONFIG_LWIP_IPV6_AUTOCONFIG=y +CONFIG_LWIP_MAX_ACTIVE_TCP=5 +CONFIG_LWIP_MAX_LISTENING_TCP=5 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=n +CONFIG_LWIP_TCP_SYNMAXRTX=12 +CONFIG_LWIP_TCP_MSL=40000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=16000 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=4096 +CONFIG_LWIP_TCP_WND_DEFAULT=2440 +CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS=y +CONFIG_LWIP_TCP_RTO_TIME=1500 +CONFIG_LWIP_MAX_UDP_PCBS=8 +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=2560 +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y + +# mbedTLS +CONFIG_MBEDTLS_DYNAMIC_BUFFER=y +CONFIG_MBEDTLS_DYNAMIC_FREE_CONFIG_DATA=y +CONFIG_MBEDTLS_DYNAMIC_FREE_CA_CERT=y +CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH=y +CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=n +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN=y +CONFIG_MBEDTLS_TLS_CLIENT_ONLY=y +CONFIG_MBEDTLS_SSL_PROTO_SSL3=n +CONFIG_MBEDTLS_SSL_PROTO_TLS1=n +CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=n + +# ESP-MQTT Configurations +CONFIG_MQTT_PROTOCOL_311=n + +# Protocomm +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=n +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=n + +# SPI Flash driver +CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=n +CONFIG_SPI_FLASH_ROM_IMPL=y + +# Websocket +CONFIG_WS_TRANSPORT=n + +# Virtual file system +CONFIG_VFS_SUPPORT_DIR=n +CONFIG_VFS_SUPPORT_SELECT=n +CONFIG_VFS_SUPPORT_TERMIOS=n + +# Wear Levelling +CONFIG_WL_SECTOR_SIZE_512=y + +# CHIP Core +## General Options +CONFIG_MAX_EXCHANGE_CONTEXTS=6 +CONFIG_MAX_BINDINGS=6 +CONFIG_MAX_PEER_NODES=12 +CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS=6 +CONFIG_ENABLE_CHIP_SHELL=n +CONFIG_DISABLE_IPV4=y +CONFIG_BUILD_CHIP_TESTS=n +## Networking Options +CONFIG_NUM_TCP_ENDPOINTS=1 +CONFIG_NUM_UDP_ENDPOINTS=6 +## System Options +CONFIG_NUM_TIMERS=24 +CONFIG_ENABLE_OTA_REQUESTOR=y + +# CHIP Device Layer +## General Options +CONFIG_CHIP_TASK_STACK_SIZE=7168 +CONFIG_MAX_EVENT_QUEUE_SIZE=20 +## Event Logging Options +CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=256 +CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=256 +CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=256 + +# ESP Matter +CONFIG_ESP_MATTER_MAX_DEVICE_TYPE_COUNT=4 +CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=4 diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.1 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.1 new file mode 100644 index 0000000..245ec12 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.1 @@ -0,0 +1,4 @@ +# CMake Utilities +CONFIG_CU_RELINKER_ENABLE=y +CONFIG_CU_RELINKER_ENABLE_CUSTOMIZED_CONFIGURATION_FILES=y +CONFIG_CU_RELINKER_CUSTOMIZED_CONFIGURATION_FILES_PATH="../common/relinker/esp32c2_v5.1" diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.2 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.2 new file mode 100644 index 0000000..5d4ed95 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.2 @@ -0,0 +1,4 @@ +# CMake Utilities +CONFIG_CU_RELINKER_ENABLE=y +CONFIG_CU_RELINKER_ENABLE_CUSTOMIZED_CONFIGURATION_FILES=y +CONFIG_CU_RELINKER_CUSTOMIZED_CONFIGURATION_FILES_PATH="../common/relinker/esp32c2_v5.2" diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.4 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.4 new file mode 100644 index 0000000..ae37ff8 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c2.v5.4 @@ -0,0 +1,4 @@ +# CMake Utilities +CONFIG_CU_RELINKER_ENABLE=y +CONFIG_CU_RELINKER_ENABLE_CUSTOMIZED_CONFIGURATION_FILES=y +CONFIG_CU_RELINKER_CUSTOMIZED_CONFIGURATION_FILES_PATH="../common/relinker/esp32c2_v5.4" diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c3 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c3 new file mode 100644 index 0000000..7f8f9ca --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c3 @@ -0,0 +1,14 @@ +CONFIG_IDF_TARGET="esp32c3" + +# ESP32-C3-DevKitC-02 Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=9 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=1 +CONFIG_BSP_LED_TYPE_RGB=y +CONFIG_BSP_LED_RGB_GPIO=8 +CONFIG_BSP_LED_RGB_BACKEND_RMT=y + diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c5 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c5 new file mode 100644 index 0000000..164b924 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c5 @@ -0,0 +1 @@ +CONFIG_IDF_TARGET="esp32c5" diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c61 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c61 new file mode 100644 index 0000000..d1821a5 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32c61 @@ -0,0 +1,10 @@ +CONFIG_IDF_TARGET="esp32c61" + +# ESP Ringbuf +CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH=y +CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH=y +# FreeRTOS +CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y + +CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32h2 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32h2 new file mode 100644 index 0000000..a124e26 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32h2 @@ -0,0 +1,21 @@ +CONFIG_IDF_TARGET="esp32h2" + +# Enable OpenThread +CONFIG_OPENTHREAD_ENABLED=y +CONFIG_OPENTHREAD_SRP_CLIENT=y +CONFIG_OPENTHREAD_LOG_LEVEL_DYNAMIC=n +CONFIG_OPENTHREAD_LOG_LEVEL_NOTE=y +CONFIG_OPENTHREAD_CLI=n + +# Disable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=n + +# LwIP config for OpenThread +CONFIG_LWIP_IPV6_NUM_ADDRESSES=8 +CONFIG_LWIP_MULTICAST_PING=y + +# MDNS platform +CONFIG_USE_MINIMAL_MDNS=n + +# Disable STA +CONFIG_ENABLE_WIFI_STATION=n diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32p4 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32p4 new file mode 100644 index 0000000..c645b46 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32p4 @@ -0,0 +1,17 @@ +CONFIG_IDF_TARGET="esp32p4" + +# Enable BLE Host but use remote controller +CONFIG_BT_NIMBLE_TRANSPORT_UART=n +CONFIG_ESP_ENABLE_BT=y + +# Increase main task stack size +CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096 + +# Do not deinit BLE after commissioning +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=n + +# ESP32-P4 Function EV Board use ESP32C6 as slave device +CONFIG_SLAVE_IDF_TARGET_ESP32C6=y + +# BSP button +CONFIG_BSP_BUTTON_1_GPIO=35 diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32s3 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32s3 new file mode 100644 index 0000000..b01fdbe --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.esp32s3 @@ -0,0 +1 @@ +CONFIG_IDF_TARGET="esp32s3" diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.ext_plat b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.ext_plat new file mode 100644 index 0000000..fdc272c --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.ext_plat @@ -0,0 +1,46 @@ +# Default to 921600 baud when flashing and monitoring device +CONFIG_ESPTOOLPY_BAUD_921600B=y +CONFIG_ESPTOOLPY_BAUD=921600 +CONFIG_ESPTOOLPY_COMPRESSED=y +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y + +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#disable BT connection reattempt +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" + +# Disable chip tests +CONFIG_BUILD_CHIP_TESTS=n + +#enable lwIP route hooks +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# External Platform +CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM=y +CONFIG_CHIP_EXTERNAL_PLATFORM_DIR="../../../../../platform/ESP32_custom" +CONFIG_CHIP_EXTERNAL_PLATFORM_INCLUDE_DIR="../../../../.." + +# disable softap by default +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# Disable DS Peripheral +CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n + +# Enable HKDF in mbedtls +CONFIG_MBEDTLS_HKDF_C=y diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.ext_plat_ci b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.ext_plat_ci new file mode 100644 index 0000000..16441af --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.ext_plat_ci @@ -0,0 +1,59 @@ +# Default to 921600 baud when flashing and monitoring device +CONFIG_ESPTOOLPY_BAUD_921600B=y +CONFIG_ESPTOOLPY_BAUD=921600 +CONFIG_ESPTOOLPY_COMPRESSED=y +CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 +CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y + +#enable BT +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +#disable BT connection reattempt +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=n + +#enable lwip ipv6 autoconfig +CONFIG_LWIP_IPV6_AUTOCONFIG=y + +# Use a custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" + +# Disable chip shell +CONFIG_ENABLE_CHIP_SHELL=n + +# Disable chip tests +CONFIG_BUILD_CHIP_TESTS=n + +#enable lwIP route hooks +CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT=y +CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT=y + +# Button +CONFIG_BUTTON_PERIOD_TIME_MS=20 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=5000 + +# External Platform +CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM=y +CONFIG_CHIP_EXTERNAL_PLATFORM_DIR="../../../../../builds/app-frameworks/platform/ESP32_custom" +CONFIG_CHIP_EXTERNAL_PLATFORM_INCLUDE_DIR="../../../../../builds/app-frameworks/" + +# disable softap by default +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=n + +# Disable DS Peripheral +CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=n + +# Enable HKDF in mbedtls +CONFIG_MBEDTLS_HKDF_C=y + +# ESP32-DevKit Settings +# Buttons +CONFIG_BSP_BUTTONS_NUM=1 +CONFIG_BSP_BUTTON_1_TYPE_GPIO=y +CONFIG_BSP_BUTTON_1_GPIO=0 +CONFIG_BSP_BUTTON_1_LEVEL=0 +# LEDs +CONFIG_BSP_LEDS_NUM=0 + diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.shell.v4.4 b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.shell.v4.4 new file mode 100644 index 0000000..e54ac03 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.defaults.shell.v4.4 @@ -0,0 +1 @@ +CONFIG_ENABLE_CHIP_SHELL=n diff --git a/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.old b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.old new file mode 100644 index 0000000..71382d7 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/configs/defaults_variants/sdkconfig.old @@ -0,0 +1,2963 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration +# +CONFIG_SOC_ADC_SUPPORTED=y +CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y +CONFIG_SOC_UART_SUPPORTED=y +CONFIG_SOC_UHCI_SUPPORTED=y +CONFIG_SOC_GDMA_SUPPORTED=y +CONFIG_SOC_AHB_GDMA_SUPPORTED=y +CONFIG_SOC_GPTIMER_SUPPORTED=y +CONFIG_SOC_PCNT_SUPPORTED=y +CONFIG_SOC_MCPWM_SUPPORTED=y +CONFIG_SOC_TWAI_SUPPORTED=y +CONFIG_SOC_ETM_SUPPORTED=y +CONFIG_SOC_PARLIO_SUPPORTED=y +CONFIG_SOC_BT_SUPPORTED=y +CONFIG_SOC_IEEE802154_SUPPORTED=y +CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y +CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y +CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y +CONFIG_SOC_PHY_SUPPORTED=y +CONFIG_SOC_WIFI_SUPPORTED=y +CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y +CONFIG_SOC_ULP_SUPPORTED=y +CONFIG_SOC_LP_CORE_SUPPORTED=y +CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y +CONFIG_SOC_EFUSE_SUPPORTED=y +CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y +CONFIG_SOC_RTC_MEM_SUPPORTED=y +CONFIG_SOC_I2S_SUPPORTED=y +CONFIG_SOC_RMT_SUPPORTED=y +CONFIG_SOC_SDM_SUPPORTED=y +CONFIG_SOC_GPSPI_SUPPORTED=y +CONFIG_SOC_LEDC_SUPPORTED=y +CONFIG_SOC_I2C_SUPPORTED=y +CONFIG_SOC_SYSTIMER_SUPPORTED=y +CONFIG_SOC_SUPPORT_COEXISTENCE=y +CONFIG_SOC_AES_SUPPORTED=y +CONFIG_SOC_MPI_SUPPORTED=y +CONFIG_SOC_SHA_SUPPORTED=y +CONFIG_SOC_HMAC_SUPPORTED=y +CONFIG_SOC_DIG_SIGN_SUPPORTED=y +CONFIG_SOC_ECC_SUPPORTED=y +CONFIG_SOC_FLASH_ENC_SUPPORTED=y +CONFIG_SOC_SECURE_BOOT_SUPPORTED=y +CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y +CONFIG_SOC_BOD_SUPPORTED=y +CONFIG_SOC_APM_SUPPORTED=y +CONFIG_SOC_PMU_SUPPORTED=y +CONFIG_SOC_PAU_SUPPORTED=y +CONFIG_SOC_LP_TIMER_SUPPORTED=y +CONFIG_SOC_LP_AON_SUPPORTED=y +CONFIG_SOC_LP_PERIPHERALS_SUPPORTED=y +CONFIG_SOC_LP_I2C_SUPPORTED=y +CONFIG_SOC_ULP_LP_UART_SUPPORTED=y +CONFIG_SOC_CLK_TREE_SUPPORTED=y +CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y +CONFIG_SOC_WDT_SUPPORTED=y +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +CONFIG_SOC_RNG_SUPPORTED=y +CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y +CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y +CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y +CONFIG_SOC_PM_SUPPORTED=y +CONFIG_SOC_XTAL_SUPPORT_40M=y +CONFIG_SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN=y +CONFIG_SOC_AES_SUPPORT_DMA=y +CONFIG_SOC_AES_GDMA=y +CONFIG_SOC_AES_SUPPORT_AES_128=y +CONFIG_SOC_AES_SUPPORT_AES_256=y +CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y +CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y +CONFIG_SOC_ADC_MONITOR_SUPPORTED=y +CONFIG_SOC_ADC_DMA_SUPPORTED=y +CONFIG_SOC_ADC_PERIPH_NUM=1 +CONFIG_SOC_ADC_MAX_CHANNEL_NUM=7 +CONFIG_SOC_ADC_ATTEN_NUM=4 +CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1 +CONFIG_SOC_ADC_PATT_LEN_MAX=8 +CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 +CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 +CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 +CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 +CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 +CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y +CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y +CONFIG_SOC_ADC_CALIB_CHAN_COMPENS_SUPPORTED=y +CONFIG_SOC_ADC_TEMPERATURE_SHARE_INTR=y +CONFIG_SOC_ADC_SHARED_POWER=y +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y +CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y +CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y +CONFIG_SOC_CPU_CORES_NUM=1 +CONFIG_SOC_CPU_INTR_NUM=32 +CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y +CONFIG_SOC_INT_PLIC_SUPPORTED=y +CONFIG_SOC_CPU_HAS_CSR_PC=y +CONFIG_SOC_CPU_BREAKPOINTS_NUM=4 +CONFIG_SOC_CPU_WATCHPOINTS_NUM=4 +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000 +CONFIG_SOC_CPU_HAS_PMA=y +CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y +CONFIG_SOC_CPU_PMP_REGION_GRANULARITY=4 +CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072 +CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 +CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 +CONFIG_SOC_AHB_GDMA_VERSION=1 +CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 +CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=3 +CONFIG_SOC_GDMA_SUPPORT_ETM=y +CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_ETM_GROUPS=1 +CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50 +CONFIG_SOC_ETM_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_GPIO_PORT=1 +CONFIG_SOC_GPIO_PIN_COUNT=31 +CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y +CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8 +CONFIG_SOC_GPIO_SUPPORT_ETM=y +CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y +CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y +CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y +CONFIG_SOC_GPIO_IN_RANGE_MAX=30 +CONFIG_SOC_GPIO_OUT_RANGE_MAX=30 +CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0 +CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=8 +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00 +CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y +CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y +CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y +CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y +CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y +CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +CONFIG_SOC_RTCIO_PIN_COUNT=8 +CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y +CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y +CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y +CONFIG_SOC_RTCIO_EDGE_WAKE_SUPPORTED=y +CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 +CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 +CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y +CONFIG_SOC_I2C_NUM=2 +CONFIG_SOC_HP_I2C_NUM=1 +CONFIG_SOC_I2C_FIFO_LEN=32 +CONFIG_SOC_I2C_CMD_REG_NUM=8 +CONFIG_SOC_I2C_SUPPORT_SLAVE=y +CONFIG_SOC_I2C_SUPPORT_HW_FSM_RST=y +CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y +CONFIG_SOC_I2C_SUPPORT_XTAL=y +CONFIG_SOC_I2C_SUPPORT_RTC=y +CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y +CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y +CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y +CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y +CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y +CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_LP_I2C_NUM=1 +CONFIG_SOC_LP_I2C_FIFO_LEN=16 +CONFIG_SOC_I2S_NUM=1 +CONFIG_SOC_I2S_HW_VERSION_2=y +CONFIG_SOC_I2S_SUPPORTS_ETM=y +CONFIG_SOC_I2S_SUPPORTS_XTAL=y +CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y +CONFIG_SOC_I2S_SUPPORTS_PCM=y +CONFIG_SOC_I2S_SUPPORTS_PDM=y +CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y +CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 +CONFIG_SOC_I2S_SUPPORTS_TDM=y +CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y +CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y +CONFIG_SOC_LEDC_TIMER_NUM=4 +CONFIG_SOC_LEDC_CHANNEL_NUM=6 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y +CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y +CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16 +CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10 +CONFIG_SOC_LEDC_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MMU_PAGE_SIZE_CONFIGURABLE=y +CONFIG_SOC_MMU_PAGE_SIZE_8KB_SUPPORTED=y +CONFIG_SOC_MMU_PERIPH_NUM=1 +CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 +CONFIG_SOC_MMU_DI_VADDR_SHARED=y +CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 +CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 +CONFIG_SOC_PCNT_GROUPS=1 +CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 +CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 +CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 +CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y +CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_RMT_GROUPS=1 +CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2 +CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2 +CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4 +CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 +CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y +CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y +CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y +CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y +CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y +CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y +CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y +CONFIG_SOC_RMT_SUPPORT_XTAL=y +CONFIG_SOC_RMT_SUPPORT_RC_FAST=y +CONFIG_SOC_RMT_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MCPWM_GROUPS=1 +CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 +CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 +CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y +CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 +CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y +CONFIG_SOC_MCPWM_SUPPORT_ETM=y +CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y +CONFIG_SOC_MCPWM_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_PARLIO_GROUPS=1 +CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1 +CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1 +CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=16 +CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=16 +CONFIG_SOC_PARLIO_TX_RX_SHARE_INTERRUPT=y +CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +CONFIG_SOC_MPI_OPERATIONS_NUM=3 +CONFIG_SOC_RSA_MAX_BIT_LEN=3072 +CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 +CONFIG_SOC_SHA_SUPPORT_DMA=y +CONFIG_SOC_SHA_SUPPORT_RESUME=y +CONFIG_SOC_SHA_GDMA=y +CONFIG_SOC_SHA_SUPPORT_SHA1=y +CONFIG_SOC_SHA_SUPPORT_SHA224=y +CONFIG_SOC_SHA_SUPPORT_SHA256=y +CONFIG_SOC_SDM_GROUPS=1 +CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4 +CONFIG_SOC_SDM_CLK_SUPPORT_PLL_F80M=y +CONFIG_SOC_SDM_CLK_SUPPORT_XTAL=y +CONFIG_SOC_SPI_PERIPH_NUM=2 +CONFIG_SOC_SPI_MAX_CS_NUM=6 +CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 +CONFIG_SOC_SPI_SUPPORT_DDRCLK=y +CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y +CONFIG_SOC_SPI_SUPPORT_CD_SIG=y +CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y +CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y +CONFIG_SOC_SPI_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y +CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y +CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y +CONFIG_SOC_SPI_SCT_SUPPORTED=y +CONFIG_SOC_SPI_SCT_REG_NUM=14 +CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y +CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA +CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y +CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 +CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y +CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y +CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y +CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y +CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y +CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y +CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y +CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y +CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 +CONFIG_SOC_SYSTIMER_ALARM_NUM=3 +CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 +CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 +CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y +CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y +CONFIG_SOC_SYSTIMER_INT_LEVEL=y +CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y +CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y +CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 +CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 +CONFIG_SOC_TIMER_GROUPS=2 +CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1 +CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 +CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y +CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y +CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2 +CONFIG_SOC_TIMER_SUPPORT_ETM=y +CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MWDT_SUPPORT_XTAL=y +CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_TWAI_CONTROLLER_NUM=2 +CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 +CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y +CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_BRP_MAX=32768 +CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y +CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y +CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y +CONFIG_SOC_EFUSE_DIS_USB_JTAG=y +CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y +CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y +CONFIG_SOC_EFUSE_DIS_ICACHE=y +CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y +CONFIG_SOC_SECURE_BOOT_V2_RSA=y +CONFIG_SOC_SECURE_BOOT_V2_ECC=y +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 +CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y +CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y +CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 +CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y +CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y +CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y +CONFIG_SOC_APM_LP_APM0_SUPPORTED=y +CONFIG_SOC_APM_SUPPORT_LP_TEE_CTRL=y +CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y +CONFIG_SOC_UART_NUM=3 +CONFIG_SOC_UART_HP_NUM=2 +CONFIG_SOC_UART_LP_NUM=1 +CONFIG_SOC_UART_FIFO_LEN=128 +CONFIG_SOC_LP_UART_FIFO_LEN=16 +CONFIG_SOC_UART_BITRATE_MAX=5000000 +CONFIG_SOC_UART_SUPPORT_PLL_F80M_CLK=y +CONFIG_SOC_UART_SUPPORT_RTC_CLK=y +CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y +CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y +CONFIG_SOC_UART_HAS_LP_UART=y +CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y +CONFIG_SOC_UART_WAKEUP_CHARS_SEQ_MAX_LEN=5 +CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_FIFO_THRESH_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_START_BIT_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_CHAR_SEQ_MODE=y +CONFIG_SOC_UHCI_NUM=1 +CONFIG_SOC_COEX_HW_PTI=y +CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y +CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 +CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 +CONFIG_SOC_RTC_MEM_SUPPORT_SPEED_MODE_SWITCH=y +CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_BEACON_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN=y +CONFIG_SOC_PM_SUPPORT_CPU_PD=y +CONFIG_SOC_PM_SUPPORT_MODEM_PD=y +CONFIG_SOC_PM_SUPPORT_XTAL32K_PD=y +CONFIG_SOC_PM_SUPPORT_RC32K_PD=y +CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y +CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y +CONFIG_SOC_PM_SUPPORT_TOP_PD=y +CONFIG_SOC_PM_SUPPORT_HP_AON_PD=y +CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y +CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y +CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y +CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y +CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y +CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y +CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y +CONFIG_SOC_PM_RETENTION_HAS_CLOCK_BUG=y +CONFIG_SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN=y +CONFIG_SOC_PM_PAU_LINK_NUM=4 +CONFIG_SOC_PM_PAU_REGDMA_LINK_MULTI_ADDR=y +CONFIG_SOC_PM_PAU_REGDMA_LINK_WIFIMAC=y +CONFIG_SOC_PM_PAU_REGDMA_UPDATE_CACHE_BEFORE_WAIT_COMPARE=y +CONFIG_SOC_PM_PMU_MIN_SLP_SLOW_CLK_CYCLE_FIXED=y +CONFIG_SOC_PM_RETENTION_MODULE_NUM=32 +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y +CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y +CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y +CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y +CONFIG_SOC_CLK_RC32K_SUPPORTED=y +CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y +CONFIG_SOC_RCC_IS_INDEPENDENT=y +CONFIG_SOC_CLK_ANA_I2C_MST_HAS_ROOT_GATE=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y +CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_ETM=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN=y +CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y +CONFIG_SOC_WIFI_HW_TSF=y +CONFIG_SOC_WIFI_FTM_SUPPORT=y +CONFIG_SOC_WIFI_GCMP_SUPPORT=y +CONFIG_SOC_WIFI_WAPI_SUPPORT=y +CONFIG_SOC_WIFI_CSI_SUPPORT=y +CONFIG_SOC_WIFI_MESH_SUPPORT=y +CONFIG_SOC_WIFI_HE_SUPPORT=y +CONFIG_SOC_WIFI_MAC_VERSION_NUM=2 +CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y +CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y +CONFIG_SOC_BLE_50_SUPPORTED=y +CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y +CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y +CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y +CONFIG_SOC_BLUFI_SUPPORTED=y +CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y +CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y +CONFIG_SOC_PHY_COMBO_MODULE=y +CONFIG_SOC_CAPS_NO_RESET_BY_ANA_BOD=y +CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y +CONFIG_SOC_LP_CORE_SUPPORT_ETM=y +CONFIG_SOC_DEBUG_HAVE_OCD_STUB_BINS=y +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TOOLCHAIN_GCC=y +CONFIG_IDF_TARGET_ARCH_RISCV=y +CONFIG_IDF_TARGET_ARCH="riscv" +CONFIG_IDF_TARGET="esp32c6" +CONFIG_IDF_INIT_VERSION="5.5.1" +CONFIG_IDF_TARGET_ESP32C6=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D + +# +# Build type +# +CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y +# CONFIG_APP_BUILD_TYPE_RAM is not set +CONFIG_APP_BUILD_GENERATE_BINARIES=y +CONFIG_APP_BUILD_BOOTLOADER=y +CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y +# CONFIG_APP_REPRODUCIBLE_BUILD is not set +# CONFIG_APP_NO_BLOBS is not set +# end of Build type + +# +# Bootloader config +# + +# +# Bootloader manager +# +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + +# +# Application Rollback +# +# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set +# end of Application Rollback + +# +# Recovery Bootloader and Rollback +# +# end of Recovery Bootloader and Rollback + +CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 +CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set + +# +# Log +# +CONFIG_BOOTLOADER_LOG_VERSION_1=y +CONFIG_BOOTLOADER_LOG_VERSION=1 +# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set +CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y +# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set +CONFIG_BOOTLOADER_LOG_LEVEL=3 + +# +# Format +# +# CONFIG_BOOTLOADER_LOG_COLORS is not set +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format + +# +# Settings +# +CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y +CONFIG_BOOTLOADER_LOG_MODE_TEXT=y +# end of Settings +# end of Log + +# +# Serial Flash Configurations +# +# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set +CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y +# end of Serial Flash Configurations + +# CONFIG_BOOTLOADER_FACTORY_RESET is not set +# CONFIG_BOOTLOADER_APP_TEST is not set +CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y +CONFIG_BOOTLOADER_WDT_ENABLE=y +# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set +CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set +CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 +# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set +# end of Bootloader config + +# +# Security features +# +CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y +CONFIG_SECURE_BOOT_V2_ECC_SUPPORTED=y +CONFIG_SECURE_BOOT_V2_PREFERRED=y +# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set +# CONFIG_SECURE_BOOT is not set +# CONFIG_SECURE_FLASH_ENC_ENABLED is not set +CONFIG_SECURE_ROM_DL_MODE_ENABLED=y +# end of Security features + +# +# Application manager +# +CONFIG_APP_COMPILE_TIME_DATE=y +# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set +# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 +# end of Application manager + +CONFIG_ESP_ROM_HAS_CRC_LE=y +CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_JPEG_DECODE=y +CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3 +CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y +CONFIG_ESP_ROM_GET_CLK_FREQ=y +CONFIG_ESP_ROM_HAS_RVFPLIB=y +CONFIG_ESP_ROM_HAS_HAL_WDT=y +CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y +CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y +CONFIG_ESP_ROM_HAS_HEAP_TLSF=y +CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y +CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y +CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y +CONFIG_ESP_ROM_HAS_SPI_FLASH=y +CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y +CONFIG_ESP_ROM_HAS_REGI2C_BUG=y +CONFIG_ESP_ROM_HAS_NEWLIB=y +CONFIG_ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT=y +CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE=y +CONFIG_ESP_ROM_WDT_INIT_PATCH=y +CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y +CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +CONFIG_ESP_ROM_USB_OTG_NUM=-1 +CONFIG_ESP_ROM_HAS_VERSION=y +CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y +CONFIG_ESP_ROM_NO_USB_SERIAL_OUTPUT_API=y +CONFIG_ESP_ROM_HAS_SUBOPTIMAL_NEWLIB_ON_MISALIGNED_MEMORY=y + +# +# Boot ROM Behavior +# +CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y +# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set +# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set +# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set +# end of Boot ROM Behavior + +# +# ESP-TEE (Trusted Execution Environment) +# +# CONFIG_SECURE_ENABLE_TEE is not set +CONFIG_SECURE_TEE_LOG_LEVEL=0 +# end of ESP-TEE (Trusted Execution Environment) + +# +# Serial flasher config +# +# CONFIG_ESPTOOLPY_NO_STUB is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set +CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y +CONFIG_ESPTOOLPY_FLASHMODE="dio" +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set +# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set +CONFIG_ESPTOOLPY_FLASHFREQ="80m" +# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE="2MB" +# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set +CONFIG_ESPTOOLPY_BEFORE_RESET=y +# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set +CONFIG_ESPTOOLPY_BEFORE="default_reset" +CONFIG_ESPTOOLPY_AFTER_RESET=y +# CONFIG_ESPTOOLPY_AFTER_NORESET is not set +CONFIG_ESPTOOLPY_AFTER="hard_reset" +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 +# end of Serial flasher config + +# +# Partition Table +# +# CONFIG_PARTITION_TABLE_SINGLE_APP is not set +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y +# CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set +# CONFIG_PARTITION_TABLE_CUSTOM is not set +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp_large.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table + +# +# Example Configuration +# +# CONFIG_ENABLE_MEMORY_PROFILING is not set +# end of Example Configuration + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_DEBUG=y +# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +# CONFIG_COMPILER_OPTIMIZATION_PERF is not set +# CONFIG_COMPILER_OPTIMIZATION_NONE is not set +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y +# CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB is not set +CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +# CONFIG_COMPILER_CXX_EXCEPTIONS is not set +# CONFIG_COMPILER_CXX_RTTI is not set +CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y +# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set +# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set +CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y +# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set +# CONFIG_COMPILER_DUMP_RTL_FILES is not set +CONFIG_COMPILER_RT_LIB_GCCLIB=y +CONFIG_COMPILER_RT_LIB_NAME="gcc" +CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y +# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set +# CONFIG_COMPILER_STATIC_ANALYZER is not set +# end of Compiler options + +# +# Component config +# + +# +# Application Level Tracing +# +# CONFIG_APPTRACE_DEST_JTAG is not set +CONFIG_APPTRACE_DEST_NONE=y +# CONFIG_APPTRACE_DEST_UART1 is not set +# CONFIG_APPTRACE_DEST_UART2 is not set +CONFIG_APPTRACE_DEST_UART_NONE=y +CONFIG_APPTRACE_UART_TASK_PRIO=1 +CONFIG_APPTRACE_LOCK_ENABLE=y +# end of Application Level Tracing + +# +# Bluetooth +# +# CONFIG_BT_ENABLED is not set + +# +# Common Options +# +# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set +# end of Common Options +# end of Bluetooth + +# +# Console Library +# +# CONFIG_CONSOLE_SORTED_HELP is not set +# end of Console Library + +# +# Driver Configurations +# + +# +# Legacy TWAI Driver Configurations +# +# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy TWAI Driver Configurations + +# +# Legacy ADC Driver Configuration +# +# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set + +# +# Legacy ADC Calibration Configuration +# +# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set +# end of Legacy ADC Calibration Configuration +# end of Legacy ADC Driver Configuration + +# +# Legacy MCPWM Driver Configurations +# +# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy MCPWM Driver Configurations + +# +# Legacy Timer Group Driver Configurations +# +# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Timer Group Driver Configurations + +# +# Legacy RMT Driver Configurations +# +# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy RMT Driver Configurations + +# +# Legacy I2S Driver Configurations +# +# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2S Driver Configurations + +# +# Legacy I2C Driver Configurations +# +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations + +# +# Legacy PCNT Driver Configurations +# +# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy PCNT Driver Configurations + +# +# Legacy SDM Driver Configurations +# +# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy SDM Driver Configurations + +# +# Legacy Temperature Sensor Driver Configurations +# +# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Temperature Sensor Driver Configurations +# end of Driver Configurations + +# +# eFuse Bit Manager +# +# CONFIG_EFUSE_CUSTOM_TABLE is not set +# CONFIG_EFUSE_VIRTUAL is not set +CONFIG_EFUSE_MAX_BLK_LEN=256 +# end of eFuse Bit Manager + +# +# ESP-TLS +# +CONFIG_ESP_TLS_USING_MBEDTLS=y +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set +CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y +# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set +# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set +# CONFIG_ESP_TLS_PSK_VERIFICATION is not set +# CONFIG_ESP_TLS_INSECURE is not set +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y +# end of ESP-TLS + +# +# ADC and ADC Calibration +# +# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set +# CONFIG_ADC_ENABLE_DEBUG_LOG is not set +# end of ADC and ADC Calibration + +# +# Wireless Coexistence +# +CONFIG_ESP_COEX_ENABLED=y +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y +# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set +# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set +# CONFIG_ESP_COEX_GPIO_DEBUG is not set +# end of Wireless Coexistence + +# +# Common ESP-related +# +CONFIG_ESP_ERR_TO_NAME_LOOKUP=y +# end of Common ESP-related + +# +# ESP-Driver:GPIO Configurations +# +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:GPIO Configurations + +# +# ESP-Driver:GPTimer Configurations +# +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:GPTimer Configurations + +# +# ESP-Driver:I2C Configurations +# +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set +CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y +# end of ESP-Driver:I2C Configurations + +# +# ESP-Driver:I2S Configurations +# +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:I2S Configurations + +# +# ESP-Driver:LEDC Configurations +# +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:LEDC Configurations + +# +# ESP-Driver:MCPWM Configurations +# +CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y +# CONFIG_MCPWM_ISR_CACHE_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +CONFIG_MCPWM_OBJ_CACHE_SAFE=y +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:MCPWM Configurations + +# +# ESP-Driver:Parallel IO Configurations +# +CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=y +# CONFIG_PARLIO_TX_ISR_CACHE_SAFE is not set +# CONFIG_PARLIO_RX_ISR_CACHE_SAFE is not set +CONFIG_PARLIO_OBJ_CACHE_SAFE=y +# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set +# CONFIG_PARLIO_ISR_IRAM_SAFE is not set +# end of ESP-Driver:Parallel IO Configurations + +# +# ESP-Driver:PCNT Configurations +# +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:PCNT Configurations + +# +# ESP-Driver:RMT Configurations +# +CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set +# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set +CONFIG_RMT_OBJ_CACHE_SAFE=y +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# end of ESP-Driver:RMT Configurations + +# +# ESP-Driver:Sigma Delta Modulator Configurations +# +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Sigma Delta Modulator Configurations + +# +# ESP-Driver:SPI Configurations +# +# CONFIG_SPI_MASTER_IN_IRAM is not set +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# CONFIG_SPI_SLAVE_IN_IRAM is not set +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of ESP-Driver:SPI Configurations + +# +# ESP-Driver:Temperature Sensor Configurations +# +# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set +# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set +# end of ESP-Driver:Temperature Sensor Configurations + +# +# ESP-Driver:TWAI Configurations +# +# CONFIG_TWAI_ISR_IN_IRAM is not set +# CONFIG_TWAI_ISR_CACHE_SAFE is not set +# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:TWAI Configurations + +# +# ESP-Driver:UART Configurations +# +# CONFIG_UART_ISR_IN_IRAM is not set +# end of ESP-Driver:UART Configurations + +# +# ESP-Driver:UHCI Configurations +# +# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set +# CONFIG_UHCI_ISR_CACHE_SAFE is not set +# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:UHCI Configurations + +# +# ESP-Driver:USB Serial/JTAG Configuration +# +CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y +# end of ESP-Driver:USB Serial/JTAG Configuration + +# +# Ethernet +# +CONFIG_ETH_ENABLED=y +CONFIG_ETH_USE_SPI_ETHERNET=y +# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set +# CONFIG_ETH_SPI_ETHERNET_W5500 is not set +# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set +# CONFIG_ETH_USE_OPENETH is not set +# CONFIG_ETH_TRANSMIT_MUTEX is not set +# end of Ethernet + +# +# Event Loop Library +# +# CONFIG_ESP_EVENT_LOOP_PROFILING is not set +CONFIG_ESP_EVENT_POST_FROM_ISR=y +CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y +# end of Event Loop Library + +# +# GDB Stub +# +CONFIG_ESP_GDBSTUB_ENABLED=y +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 +# end of GDB Stub + +# +# ESP HID +# +CONFIG_ESPHID_TASK_SIZE_BT=2048 +CONFIG_ESPHID_TASK_SIZE_BLE=4096 +# end of ESP HID + +# +# ESP HTTP client +# +CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y +# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 +# end of ESP HTTP client + +# +# HTTP Server +# +CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 +CONFIG_HTTPD_MAX_URI_LEN=512 +CONFIG_HTTPD_ERR_RESP_NO_DELAY=y +CONFIG_HTTPD_PURGE_BUF_LEN=32 +# CONFIG_HTTPD_LOG_PURGE_DATA is not set +# CONFIG_HTTPD_WS_SUPPORT is not set +# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 +# end of HTTP Server + +# +# ESP HTTPS OTA +# +# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set +# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 +# end of ESP HTTPS OTA + +# +# ESP HTTPS server +# +# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 +# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set +# end of ESP HTTPS server + +# +# Hardware Settings +# + +# +# Chip revision +# +CONFIG_ESP32C6_REV_MIN_0=y +# CONFIG_ESP32C6_REV_MIN_1 is not set +# CONFIG_ESP32C6_REV_MIN_2 is not set +CONFIG_ESP32C6_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32-C6 Revision (Rev v0.99) +# +CONFIG_ESP32C6_REV_MAX_FULL=99 +CONFIG_ESP_REV_MAX_FULL=99 +CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 +CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 + +# +# Maximum Supported ESP32-C6 eFuse Block Revision (eFuse Block Rev v0.99) +# +# end of Chip revision + +# +# MAC Config +# +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 +# CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_TWO is not set +CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES=4 +# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set +# end of MAC Config + +# +# Sleep Config +# +# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set +CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y +# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set +CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y +CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=0 +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set +# CONFIG_ESP_SLEEP_DEBUG is not set +CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y +# end of Sleep Config + +# +# RTC Clock Config +# +CONFIG_RTC_CLK_SRC_INT_RC=y +# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED is not set +CONFIG_RTC_CLK_CAL_CYCLES=1024 +# end of RTC Clock Config + +# +# Peripheral Control +# +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y +# end of Peripheral Control + +# +# ETM Configuration +# +# CONFIG_ETM_ENABLE_DEBUG_LOG is not set +# end of ETM Configuration + +# +# GDMA Configurations +# +CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y +CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y +CONFIG_GDMA_OBJ_DRAM_SAFE=y +# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set +# CONFIG_GDMA_ISR_IRAM_SAFE is not set +# end of GDMA Configurations + +# +# Main XTAL Config +# +CONFIG_XTAL_FREQ_40=y +CONFIG_XTAL_FREQ=40 +# end of Main XTAL Config + +# +# Power Supplier +# + +# +# Brownout Detector +# +CONFIG_ESP_BROWNOUT_DET=y +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +CONFIG_ESP_BROWNOUT_DET_LVL=7 +CONFIG_ESP_BROWNOUT_USE_INTR=y +# end of Brownout Detector +# end of Power Supplier + +CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +CONFIG_ESP_INTR_IN_IRAM=y +# end of Hardware Settings + +# +# ESP-Driver:LCD Controller Configurations +# +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:LCD Controller Configurations + +# +# ESP-MM: Memory Management Configurations +# +# end of ESP-MM: Memory Management Configurations + +# +# ESP NETIF Adapter +# +CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set +CONFIG_ESP_NETIF_TCPIP_LWIP=y +# CONFIG_ESP_NETIF_LOOPBACK is not set +CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y +# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set +# CONFIG_ESP_NETIF_L2_TAP is not set +# CONFIG_ESP_NETIF_BRIDGE_EN is not set +# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set +# end of ESP NETIF Adapter + +# +# Partition API Configuration +# +# end of Partition API Configuration + +# +# PHY +# +CONFIG_ESP_PHY_ENABLED=y +CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP_PHY_MAX_TX_POWER=20 +# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set +# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set +CONFIG_ESP_PHY_RF_CAL_PARTIAL=y +# CONFIG_ESP_PHY_RF_CAL_NONE is not set +# CONFIG_ESP_PHY_RF_CAL_FULL is not set +CONFIG_ESP_PHY_CALIBRATION_MODE=0 +CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 +# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set +CONFIG_ESP_PHY_IRAM_OPT=y +# CONFIG_ESP_PHY_DEBUG is not set +# end of PHY + +# +# Power Management +# +CONFIG_PM_SLEEP_FUNC_IN_IRAM=y +# CONFIG_PM_ENABLE is not set +CONFIG_PM_SLP_IRAM_OPT=y +CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y +CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y +# CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set +# end of Power Management + +# +# ESP PSRAM +# + +# +# ESP Ringbuf +# +# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set +# end of ESP Ringbuf + +# +# ESP-ROM +# +CONFIG_ESP_ROM_PRINT_IN_IRAM=y +# end of ESP-ROM + +# +# ESP Security Specific +# + +# +# Crypto DPA Protection +# +CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y +CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y +# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set +# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set +CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 +# end of Crypto DPA Protection +# end of ESP Security Specific + +# +# ESP System Settings +# +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_120 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 +CONFIG_ESP_SYSTEM_IN_IRAM=y +# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set +CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set +CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 +CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y +CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y +CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y +CONFIG_ESP_SYSTEM_NO_BACKTRACE=y +# CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set +# CONFIG_ESP_SYSTEM_USE_FRAME_POINTER is not set + +# +# Memory protection +# +CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y +# CONFIG_ESP_SYSTEM_PMP_LP_CORE_RESERVE_MEM_EXECUTABLE is not set +# end of Memory protection + +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 +CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y +# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 +CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set +# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set +# CONFIG_ESP_CONSOLE_NONE is not set +# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set +CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y +CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y +CONFIG_ESP_CONSOLE_UART=y +CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 +CONFIG_ESP_INT_WDT=y +CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 +CONFIG_ESP_TASK_WDT_EN=y +CONFIG_ESP_TASK_WDT_INIT=y +# CONFIG_ESP_TASK_WDT_PANIC is not set +CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# CONFIG_ESP_PANIC_HANDLER_IRAM is not set +# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set +# CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS is not set +CONFIG_ESP_DEBUG_OCDAWARE=y +CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y +CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y +CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y +CONFIG_ESP_SYSTEM_HW_PC_RECORD=y +# end of ESP System Settings + +# +# IPC (Inter-Processor Call) +# +CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 +# end of IPC (Inter-Processor Call) + +# +# ESP Timer (High Resolution Timer) +# +CONFIG_ESP_TIMER_IN_IRAM=y +# CONFIG_ESP_TIMER_PROFILING is not set +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y +CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 +# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set +CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 +CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y +CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y +# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set +CONFIG_ESP_TIMER_IMPL_SYSTIMER=y +# end of ESP Timer (High Resolution Timer) + +# +# Wi-Fi +# +CONFIG_ESP_WIFI_ENABLED=y +CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y +# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 +CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 +# CONFIG_ESP_WIFI_CSI_ENABLED is not set +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP_WIFI_TX_BA_WIN=6 +CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP_WIFI_RX_BA_WIN=6 +CONFIG_ESP_WIFI_NVS_ENABLED=y +CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP_WIFI_IRAM_OPT=y +CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=y +CONFIG_ESP_WIFI_RX_IRAM_OPT=y +CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y +CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y +CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_ESP_WIFI_SLP_IRAM_OPT=y +CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 +CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT=y +CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 +CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 +# CONFIG_ESP_WIFI_FTM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y +# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set +CONFIG_ESP_WIFI_GMAC_SUPPORT=y +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y +# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 +CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y +CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y +# CONFIG_ESP_WIFI_WAPI_PSK is not set +# CONFIG_ESP_WIFI_SUITE_B_192 is not set +# CONFIG_ESP_WIFI_11KV_SUPPORT is not set +# CONFIG_ESP_WIFI_MBO_SUPPORT is not set +# CONFIG_ESP_WIFI_DPP_SUPPORT is not set +# CONFIG_ESP_WIFI_11R_SUPPORT is not set +# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set +# CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS is not set +# CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS is not set +CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3 + +# +# WPS Configuration Options +# +# CONFIG_ESP_WIFI_WPS_STRICT is not set +# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set +# end of WPS Configuration Options + +# CONFIG_ESP_WIFI_DEBUG_PRINT is not set +# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set +CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y +# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set +# end of Wi-Fi + +# +# Core dump +# +# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# end of Core dump + +# +# FAT Filesystem support +# +CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set +# CONFIG_FATFS_SECTOR_512 is not set +CONFIG_FATFS_SECTOR_4096=y +# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set +CONFIG_FATFS_CODEPAGE_437=y +# CONFIG_FATFS_CODEPAGE_720 is not set +# CONFIG_FATFS_CODEPAGE_737 is not set +# CONFIG_FATFS_CODEPAGE_771 is not set +# CONFIG_FATFS_CODEPAGE_775 is not set +# CONFIG_FATFS_CODEPAGE_850 is not set +# CONFIG_FATFS_CODEPAGE_852 is not set +# CONFIG_FATFS_CODEPAGE_855 is not set +# CONFIG_FATFS_CODEPAGE_857 is not set +# CONFIG_FATFS_CODEPAGE_860 is not set +# CONFIG_FATFS_CODEPAGE_861 is not set +# CONFIG_FATFS_CODEPAGE_862 is not set +# CONFIG_FATFS_CODEPAGE_863 is not set +# CONFIG_FATFS_CODEPAGE_864 is not set +# CONFIG_FATFS_CODEPAGE_865 is not set +# CONFIG_FATFS_CODEPAGE_866 is not set +# CONFIG_FATFS_CODEPAGE_869 is not set +# CONFIG_FATFS_CODEPAGE_932 is not set +# CONFIG_FATFS_CODEPAGE_936 is not set +# CONFIG_FATFS_CODEPAGE_949 is not set +# CONFIG_FATFS_CODEPAGE_950 is not set +CONFIG_FATFS_CODEPAGE=437 +CONFIG_FATFS_FS_LOCK=0 +CONFIG_FATFS_TIMEOUT_MS=10000 +CONFIG_FATFS_PER_FILE_CACHE=y +# CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_USE_STRFUNC_NONE=y +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set +CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# CONFIG_FATFS_USE_LABEL is not set +CONFIG_FATFS_LINK_LOCK=y +# CONFIG_FATFS_USE_DYN_BUFFERS is not set + +# +# File system free space calculation behavior +# +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior +# end of FAT Filesystem support + +# +# FreeRTOS +# + +# +# Kernel +# +# CONFIG_FREERTOS_SMP is not set +CONFIG_FREERTOS_UNICORE=y +CONFIG_FREERTOS_HZ=100 +CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set +CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y +CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 +# CONFIG_FREERTOS_USE_IDLE_HOOK is not set +# CONFIG_FREERTOS_USE_TICK_HOOK is not set +CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 +# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_USE_TIMERS=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set +CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 +CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 +# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set +# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set +# end of Kernel + +# +# Port +# +CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y +# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set +# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y +CONFIG_FREERTOS_ISR_STACKSIZE=1536 +CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y +CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y +# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set +CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y +# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set +# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set +# end of Port + +# +# Extra +# +# end of Extra + +CONFIG_FREERTOS_PORT=y +CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF +CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y +CONFIG_FREERTOS_DEBUG_OCDAWARE=y +CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y +CONFIG_FREERTOS_NUMBER_OF_CORES=1 +CONFIG_FREERTOS_IN_IRAM=y +# end of FreeRTOS + +# +# Hardware Abstraction Layer (HAL) and Low Level (LL) +# +CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y +# CONFIG_HAL_ASSERTION_DISABLE is not set +# CONFIG_HAL_ASSERTION_SILENT is not set +# CONFIG_HAL_ASSERTION_ENABLE is not set +CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 +CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y +CONFIG_HAL_WDT_USE_ROM_IMPL=y +# end of Hardware Abstraction Layer (HAL) and Low Level (LL) + +# +# Heap memory debugging +# +CONFIG_HEAP_POISONING_DISABLED=y +# CONFIG_HEAP_POISONING_LIGHT is not set +# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set +CONFIG_HEAP_TRACING_OFF=y +# CONFIG_HEAP_TRACING_STANDALONE is not set +# CONFIG_HEAP_TRACING_TOHOST is not set +# CONFIG_HEAP_USE_HOOKS is not set +# CONFIG_HEAP_TASK_TRACKING is not set +# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set +CONFIG_HEAP_TLSF_USE_ROM_IMPL=y +# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set +# end of Heap memory debugging + +# +# IEEE 802.15.4 +# +CONFIG_IEEE802154_ENABLED=y +CONFIG_IEEE802154_RX_BUFFER_SIZE=20 +# CONFIG_IEEE802154_CCA_CARRIER is not set +CONFIG_IEEE802154_CCA_ED=y +# CONFIG_IEEE802154_CCA_CARRIER_OR_ED is not set +# CONFIG_IEEE802154_CCA_CARRIER_AND_ED is not set +CONFIG_IEEE802154_CCA_MODE=1 +CONFIG_IEEE802154_CCA_THRESHOLD=-60 +CONFIG_IEEE802154_PENDING_TABLE_SIZE=20 +# CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set +CONFIG_IEEE802154_TIMING_OPTIMIZATION=y +# CONFIG_IEEE802154_DEBUG is not set +# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set +# end of IEEE 802.15.4 + +# +# Log +# +CONFIG_LOG_VERSION_1=y +# CONFIG_LOG_VERSION_2 is not set +CONFIG_LOG_VERSION=1 + +# +# Log Level +# +# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set +# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set +# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set +CONFIG_LOG_DEFAULT_LEVEL_INFO=y +# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set +# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set +CONFIG_LOG_DEFAULT_LEVEL=3 +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set +CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# +# CONFIG_LOG_MASTER_LEVEL is not set +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# +# CONFIG_LOG_COLORS is not set +CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y +# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Format + +# +# Settings +# +CONFIG_LOG_MODE_TEXT_EN=y +CONFIG_LOG_MODE_TEXT=y +# end of Settings + +CONFIG_LOG_IN_IRAM=y +# end of Log + +# +# LWIP +# +CONFIG_LWIP_ENABLE=y +CONFIG_LWIP_LOCAL_HOSTNAME="espressif" +CONFIG_LWIP_TCPIP_TASK_PRIO=18 +CONFIG_LWIP_TCPIP_CORE_LOCKING=y +# CONFIG_LWIP_TCPIP_CORE_LOCKING_INPUT is not set +CONFIG_LWIP_CHECK_THREAD_SAFETY=y +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y +# CONFIG_LWIP_L2_TO_L3_COPY is not set +# CONFIG_LWIP_IRAM_OPTIMIZATION is not set +# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set +CONFIG_LWIP_TIMERS_ONDEMAND=y +CONFIG_LWIP_ND6=y +# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set +CONFIG_LWIP_MAX_SOCKETS=10 +# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set +CONFIG_LWIP_SO_REUSE=y +CONFIG_LWIP_SO_REUSE_RXTOALL=y +# CONFIG_LWIP_SO_RCVBUF is not set +# CONFIG_LWIP_NETBUF_RECVINFO is not set +CONFIG_LWIP_IP_DEFAULT_TTL=64 +CONFIG_LWIP_IP4_FRAG=y +CONFIG_LWIP_IP6_FRAG=y +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# CONFIG_LWIP_IP6_REASSEMBLY is not set +CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 +# CONFIG_LWIP_IP_FORWARD is not set +# CONFIG_LWIP_STATS is not set +CONFIG_LWIP_ESP_GRATUITOUS_ARP=y +CONFIG_LWIP_GARP_TMR_INTERVAL=60 +CONFIG_LWIP_ESP_MLDV6_REPORT=y +CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 +CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set +# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set +CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y +# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set +CONFIG_LWIP_DHCP_OPTIONS_LEN=69 +CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 +CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 + +# +# DHCP server +# +CONFIG_LWIP_DHCPS=y +CONFIG_LWIP_DHCPS_LEASE_UNIT=60 +CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +CONFIG_LWIP_DHCPS_ADD_DNS=y +# end of DHCP server + +# CONFIG_LWIP_AUTOIP is not set +CONFIG_LWIP_IPV4=y +CONFIG_LWIP_IPV6=y +# CONFIG_LWIP_IPV6_AUTOCONFIG is not set +CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 +# CONFIG_LWIP_IPV6_FORWARD is not set +# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set +CONFIG_LWIP_NETIF_LOOPBACK=y +CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 + +# +# TCP +# +CONFIG_LWIP_MAX_ACTIVE_TCP=16 +CONFIG_LWIP_MAX_LISTENING_TCP=16 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y +CONFIG_LWIP_TCP_MAXRTX=12 +CONFIG_LWIP_TCP_SYNMAXRTX=12 +CONFIG_LWIP_TCP_MSS=1440 +CONFIG_LWIP_TCP_TMR_INTERVAL=250 +CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 +CONFIG_LWIP_TCP_WND_DEFAULT=5760 +CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 +CONFIG_LWIP_TCP_QUEUE_OOSEQ=y +CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 +CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 +# CONFIG_LWIP_TCP_SACK_OUT is not set +CONFIG_LWIP_TCP_OVERSIZE_MSS=y +# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set +CONFIG_LWIP_TCP_RTO_TIME=1500 +# end of TCP + +# +# UDP +# +CONFIG_LWIP_MAX_UDP_PCBS=16 +CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 +# end of UDP + +# +# Checksums +# +# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set +# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set +CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y +# end of Checksums + +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set +CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 +CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 +CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 +# CONFIG_LWIP_PPP_SUPPORT is not set +# CONFIG_LWIP_SLIP_SUPPORT is not set + +# +# ICMP +# +CONFIG_LWIP_ICMP=y +# CONFIG_LWIP_MULTICAST_PING is not set +# CONFIG_LWIP_BROADCAST_PING is not set +# end of ICMP + +# +# LWIP RAW API +# +CONFIG_LWIP_MAX_RAW_PCBS=16 +# end of LWIP RAW API + +# +# SNTP +# +CONFIG_LWIP_SNTP_MAX_SERVERS=1 +# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set +CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +CONFIG_LWIP_SNTP_STARTUP_DELAY=y +CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 +# end of SNTP + +# +# DNS +# +CONFIG_LWIP_DNS_MAX_HOST_IP=1 +CONFIG_LWIP_DNS_MAX_SERVERS=3 +# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set +# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set +# end of DNS + +CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 +CONFIG_LWIP_ESP_LWIP_ASSERT=y + +# +# Hooks +# +# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set +CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y +# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y +# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set +CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y +# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set +# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set +CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set +CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set +# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set +CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y +# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set +# end of Hooks + +# CONFIG_LWIP_DEBUG is not set +# end of LWIP + +# +# mbedTLS +# +CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set +# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set +CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y +CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 +CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 +# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set +# CONFIG_MBEDTLS_DEBUG is not set + +# +# mbedTLS v3.x related +# +# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set +# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set +# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set +# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set +CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y +# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set +CONFIG_MBEDTLS_PKCS7_C=y +# end of mbedTLS v3.x related + +# +# Certificate Bundle +# +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set +# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 +# end of Certificate Bundle + +# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set +CONFIG_MBEDTLS_CMAC_C=y +CONFIG_MBEDTLS_HARDWARE_AES=y +CONFIG_MBEDTLS_AES_USE_INTERRUPT=y +CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 +CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y +CONFIG_MBEDTLS_HARDWARE_MPI=y +CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y +CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y +CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 +CONFIG_MBEDTLS_HARDWARE_SHA=y +CONFIG_MBEDTLS_HARDWARE_ECC=y +CONFIG_MBEDTLS_ECC_OTHER_CURVES_SOFT_FALLBACK=y +CONFIG_MBEDTLS_ROM_MD5=y +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set +CONFIG_MBEDTLS_HAVE_TIME=y +# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set +# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set +CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA1_C=y +CONFIG_MBEDTLS_SHA512_C=y +# CONFIG_MBEDTLS_SHA3_C is not set +CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y +# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set +# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set +# CONFIG_MBEDTLS_TLS_DISABLED is not set +CONFIG_MBEDTLS_TLS_SERVER=y +CONFIG_MBEDTLS_TLS_CLIENT=y +CONFIG_MBEDTLS_TLS_ENABLED=y + +# +# TLS Key Exchange Methods +# +# CONFIG_MBEDTLS_PSK_MODES is not set +CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y +# end of TLS Key Exchange Methods + +CONFIG_MBEDTLS_SSL_RENEGOTIATION=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set +# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set +CONFIG_MBEDTLS_SSL_ALPN=y +CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y +CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y + +# +# Symmetric Ciphers +# +CONFIG_MBEDTLS_AES_C=y +# CONFIG_MBEDTLS_CAMELLIA_C is not set +# CONFIG_MBEDTLS_DES_C is not set +# CONFIG_MBEDTLS_BLOWFISH_C is not set +# CONFIG_MBEDTLS_XTEA_C is not set +CONFIG_MBEDTLS_CCM_C=y +CONFIG_MBEDTLS_GCM_C=y +# CONFIG_MBEDTLS_NIST_KW_C is not set +# end of Symmetric Ciphers + +# CONFIG_MBEDTLS_RIPEMD160_C is not set + +# +# Certificates +# +CONFIG_MBEDTLS_PEM_PARSE_C=y +CONFIG_MBEDTLS_PEM_WRITE_C=y +CONFIG_MBEDTLS_X509_CRL_PARSE_C=y +CONFIG_MBEDTLS_X509_CSR_PARSE_C=y +# end of Certificates + +CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y +# CONFIG_MBEDTLS_DHM_C is not set +CONFIG_MBEDTLS_ECDH_C=y +CONFIG_MBEDTLS_ECDSA_C=y +# CONFIG_MBEDTLS_ECJPAKE_C is not set +CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y +CONFIG_MBEDTLS_ECP_NIST_OPTIM=y +# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set +# CONFIG_MBEDTLS_POLY1305_C is not set +# CONFIG_MBEDTLS_CHACHA20_C is not set +CONFIG_MBEDTLS_HKDF_C=y +# CONFIG_MBEDTLS_THREADING_C is not set +CONFIG_MBEDTLS_ERROR_STRINGS=y +CONFIG_MBEDTLS_FS_IO=y +# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set +# end of mbedTLS + +# +# ESP-MQTT Configurations +# +CONFIG_MQTT_PROTOCOL_311=y +# CONFIG_MQTT_PROTOCOL_5 is not set +CONFIG_MQTT_TRANSPORT_SSL=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y +# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set +# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set +# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set +# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set +# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set +# CONFIG_MQTT_CUSTOM_OUTBOX is not set +# end of ESP-MQTT Configurations + +# +# LibC +# +CONFIG_LIBC_NEWLIB=y +CONFIG_LIBC_MISC_IN_IRAM=y +CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y +CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set +# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set +# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set +CONFIG_LIBC_STDIN_LINE_ENDING_CR=y +# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set +CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y +# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set +# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set +# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set +# CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS is not set +# end of LibC + +# +# NVS +# +# CONFIG_NVS_ENCRYPTION is not set +# CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set +# end of NVS + +# +# OpenThread +# +# CONFIG_OPENTHREAD_ENABLED is not set + +# +# OpenThread Spinel +# +# CONFIG_OPENTHREAD_SPINEL_ONLY is not set +# end of OpenThread Spinel +# end of OpenThread + +# +# Protocomm +# +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y +# end of Protocomm + +# +# PThreads +# +CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_PTHREAD_STACK_MIN=768 +CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" +# end of PThreads + +# +# MMU Config +# +CONFIG_MMU_PAGE_SIZE_32KB=y +CONFIG_MMU_PAGE_MODE="32KB" +CONFIG_MMU_PAGE_SIZE=0x8000 +# end of MMU Config + +# +# Main Flash configuration +# + +# +# SPI Flash behavior when brownout +# +CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y +CONFIG_SPI_FLASH_BROWNOUT_RESET=y +# end of SPI Flash behavior when brownout + +# +# Optional and Experimental Features (READ DOCS FIRST) +# + +# +# Features here require specific hardware (READ DOCS FIRST!) +# +# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set +CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 +# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set +CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y +# end of Optional and Experimental Features (READ DOCS FIRST) +# end of Main Flash configuration + +# +# SPI Flash driver +# +# CONFIG_SPI_FLASH_VERIFY_WRITE is not set +# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set +CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y +# CONFIG_SPI_FLASH_ROM_IMPL is not set +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 +CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 +# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set +# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set +# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set + +# +# Auto-detect flash chips +# +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y +# CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +# CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set +# end of Auto-detect flash chips + +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y +# end of SPI Flash driver + +# +# SPIFFS Configuration +# +CONFIG_SPIFFS_MAX_PARTITIONS=3 + +# +# SPIFFS Cache Configuration +# +CONFIG_SPIFFS_CACHE=y +CONFIG_SPIFFS_CACHE_WR=y +# CONFIG_SPIFFS_CACHE_STATS is not set +# end of SPIFFS Cache Configuration + +CONFIG_SPIFFS_PAGE_CHECK=y +CONFIG_SPIFFS_GC_MAX_RUNS=10 +# CONFIG_SPIFFS_GC_STATS is not set +CONFIG_SPIFFS_PAGE_SIZE=256 +CONFIG_SPIFFS_OBJ_NAME_LEN=32 +# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set +CONFIG_SPIFFS_USE_MAGIC=y +CONFIG_SPIFFS_USE_MAGIC_LENGTH=y +CONFIG_SPIFFS_META_LENGTH=4 +CONFIG_SPIFFS_USE_MTIME=y + +# +# Debug Configuration +# +# CONFIG_SPIFFS_DBG is not set +# CONFIG_SPIFFS_API_DBG is not set +# CONFIG_SPIFFS_GC_DBG is not set +# CONFIG_SPIFFS_CACHE_DBG is not set +# CONFIG_SPIFFS_CHECK_DBG is not set +# CONFIG_SPIFFS_TEST_VISUALISATION is not set +# end of Debug Configuration +# end of SPIFFS Configuration + +# +# TCP Transport +# + +# +# Websocket +# +CONFIG_WS_TRANSPORT=y +CONFIG_WS_BUFFER_SIZE=1024 +# CONFIG_WS_DYNAMIC_BUFFER is not set +# end of Websocket +# end of TCP Transport + +# +# Ultra Low Power (ULP) Co-processor +# +# CONFIG_ULP_COPROC_ENABLED is not set + +# +# ULP Debugging Options +# +# end of ULP Debugging Options +# end of Ultra Low Power (ULP) Co-processor + +# +# Unity unit testing library +# +CONFIG_UNITY_ENABLE_FLOAT=y +CONFIG_UNITY_ENABLE_DOUBLE=y +# CONFIG_UNITY_ENABLE_64BIT is not set +# CONFIG_UNITY_ENABLE_COLOR is not set +CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y +# CONFIG_UNITY_ENABLE_FIXTURE is not set +# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set +# end of Unity unit testing library + +# +# Virtual file system +# +CONFIG_VFS_SUPPORT_IO=y +CONFIG_VFS_SUPPORT_DIR=y +CONFIG_VFS_SUPPORT_SELECT=y +CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# CONFIG_VFS_SELECT_IN_RAM is not set +CONFIG_VFS_SUPPORT_TERMIOS=y +CONFIG_VFS_MAX_COUNT=8 + +# +# Host File System I/O (Semihosting) +# +CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# end of Host File System I/O (Semihosting) + +CONFIG_VFS_INITIALIZE_DEV_NULL=y +# end of Virtual file system + +# +# Wear Levelling +# +# CONFIG_WL_SECTOR_SIZE_512 is not set +CONFIG_WL_SECTOR_SIZE_4096=y +CONFIG_WL_SECTOR_SIZE=4096 +# end of Wear Levelling + +# +# Wi-Fi Provisioning Manager +# +CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 +CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 +CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y +# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set +# end of Wi-Fi Provisioning Manager + +# +# CHIP Core +# + +# +# General Options +# +CONFIG_MAX_EXCHANGE_CONTEXTS=8 +CONFIG_MAX_FABRICS=5 +CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS=8 +# CONFIG_ENABLE_PW_RPC is not set +CONFIG_USE_MINIMAL_MDNS=y +# CONFIG_ENABLE_CHIP_SHELL is not set +# CONFIG_ENABLE_CHIP_CONTROLLER_BUILD is not set +# CONFIG_DISABLE_IPV4 is not set +# CONFIG_DISABLE_READ_CLIENT is not set +CONFIG_ENABLE_PERSIST_SUBSCRIPTIONS=y +# CONFIG_BUILD_CHIP_TESTS is not set +CONFIG_DISPATCH_EVENT_LONG_DISPATCH_TIME_WARNING_THRESHOLD_MS=700 +# CONFIG_CHIP_LOG_FILTERING is not set +# CONFIG_CHIP_SYSTEM_CONFIG_POOL_USE_HEAP is not set +CONFIG_MAX_GROUP_ENDPOINTS_PER_FABRIC=1 +CONFIG_MAX_GROUPS_PER_FABRIC_PER_ENDPOINT=4 +CONFIG_MAX_GROUP_KEYS_PER_FABRIC=3 +# CONFIG_CHIP_DEVICE_ENABLE_DYNAMIC_SERVER is not set +# CONFIG_CHIP_MEM_ALLOC_MODE_INTERNAL is not set +CONFIG_CHIP_MEM_ALLOC_MODE_DEFAULT=y +# end of General Options + +# +# Networking Options +# +CONFIG_NUM_TCP_ENDPOINTS=8 +CONFIG_NUM_UDP_ENDPOINTS=8 +CONFIG_ENABLE_ENDPOINT_QUEUE_FILTER=y +CONFIG_USE_TCPIP_CORE_LOCK_FOR_THREAD_SAFETY=y +# end of Networking Options + +# +# System Options +# +CONFIG_NUM_TIMERS=32 +# CONFIG_ENABLE_OTA_REQUESTOR is not set +CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y +# CONFIG_ENABLE_SNTP_TIME_SYNC is not set +# end of System Options + +# +# Security Options +# + +# +# Debugging +# +# CONFIG_SECURITY_TEST_MODE is not set +# end of Debugging +# end of Security Options +# end of CHIP Core + +# +# CHIP Device Layer +# + +# +# General Options +# +CONFIG_CHIP_PROJECT_CONFIG="" +CONFIG_CHIP_TASK_STACK_SIZE=8192 +CONFIG_CHIP_TASK_PRIORITY=1 +CONFIG_MAX_EVENT_QUEUE_SIZE=40 +# CONFIG_ENABLE_EXTENDED_DISCOVERY is not set +# CONFIG_ENABLE_COMMISSIONABLE_DEVICE_TYPE is not set +# CONFIG_ENABLE_BG_EVENT_PROCESSING is not set +# end of General Options + +# +# Device Identification Options +# +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8000 +CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION=0 +CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=0 +CONFIG_DEVICE_TYPE=0 +# end of Device Identification Options + +# +# WiFi Station Options +# +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_DEFAULT_WIFI_SSID="" +CONFIG_DEFAULT_WIFI_PASSWORD="" +CONFIG_WIFI_STATION_RECONNECT_INTERVAL=100 +CONFIG_MAX_SCAN_NETWORKS_RESULTS=10 +CONFIG_WIFI_SCAN_COMPLETION_TIMEOUT=10000 +CONFIG_WIFI_CONNECTIVITY_TIMEOUT=30000 +# end of WiFi Station Options + +# +# Commissioning options +# +# CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER is not set +# CONFIG_SEC_CERT_DAC_PROVIDER is not set +# end of Commissioning options + +# +# Diagnostics Options +# +# CONFIG_ENABLE_ESP_DIAGNOSTICS is not set +# end of Diagnostics Options + +# +# Testing Options +# +CONFIG_USE_TEST_SERIAL_NUMBER="TEST_SN" +CONFIG_ENABLE_TEST_SETUP_PARAMS=y +CONFIG_TEST_EVENT_TRIGGER_ENABLED=y +CONFIG_TEST_EVENT_TRIGGER_ENABLE_KEY="00112233445566778899aabbccddeeff" +# end of Testing Options + +# +# Network Telemetry Options +# +CONFIG_ENABLE_WIFI_TELEMETRY=y +# CONFIG_ENABLE_THREAD_TELEMETRY is not set +# CONFIG_ENABLE_THREAD_TELEMETRY_FULL is not set +# CONFIG_ENABLE_TUNNEL_TELEMETRY is not set +# CONFIG_ENABLE_ETHERNET_TELEMETRY is not set +# end of Network Telemetry Options + +# +# Event Logging Options +# +CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=4096 +CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=1024 +CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=1024 +CONFIG_CHIP_CONFIG_IM_PRETTY_PRINT=y +CONFIG_CHIP_LOG_DEFAULT_LEVEL_EQUALS_LOG_DEFAULT_LEVEL=y +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_NONE is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_ERROR is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_PROGRESS is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_DETAIL is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_AUTOMATION is not set +CONFIG_CHIP_LOG_DEFAULT_LEVEL=3 +# end of Event Logging Options + +# CONFIG_CHIP_ENABLE_BDX_LOG_TRANSFER is not set + +# +# Matter OTA Image +# +# CONFIG_CHIP_OTA_IMAGE_BUILD is not set +# end of Matter OTA Image + +# +# External Platform +# +# CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM is not set +# end of External Platform + +# +# Matter Manufacturing Options +# +CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_CONFIG_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_COUNTERS_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_KVS_NAMESPACE_PARTITION_LABEL="nvs" +# end of Matter Manufacturing Options + +# +# Commissioning Window Options +# +CONFIG_CHIP_DISCOVERY_TIMEOUT_SECS=900 +# end of Commissioning Window Options + +# +# Enable ESP32 as a BLE Commissioner +# +# CONFIG_ENABLE_ESP32_BLE_CONTROLLER is not set +# end of Enable ESP32 as a BLE Commissioner + +# +# Enable BLE Extended Announcement +# +# CONFIG_ENABLE_BLE_EXT_ANNOUNCEMENT is not set +# end of Enable BLE Extended Announcement + +# +# Message Reliable Protocol Options +# +CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_WIFI_ETHERNET=300 +CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_WIFI_ETHERNET=500 +CONFIG_MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_WIFI_ETHERNET=0 +CONFIG_MRP_MAX_RETRANS=4 +# end of Message Reliable Protocol Options + +# +# Network Commissioning Driver Endpoint Id +# +CONFIG_WIFI_NETWORK_COMMISSIONING_DRIVER=y +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 +# end of Network Commissioning Driver Endpoint Id + +# +# Cluster Configuration Options +# +# CONFIG_ENABLE_ACCESS_RESTRICTIONS is not set +# end of Cluster Configuration Options +# end of CHIP Device Layer + +# +# ESP Matter +# +CONFIG_ESP_MATTER_MAX_DEVICE_TYPE_COUNT=16 +CONFIG_ESP_MATTER_ATTRIBUTE_BUFFER_LARGEST=259 +CONFIG_ESP_MATTER_NVS_PART_NAME="nvs" +CONFIG_ESP_MATTER_DEFERRED_ATTR_PERSISTENCE_TIME_MS=3000 +CONFIG_EXAMPLE_DAC_PROVIDER=y +# CONFIG_CUSTOM_DAC_PROVIDER is not set +CONFIG_EXAMPLE_COMMISSIONABLE_DATA_PROVIDER=y +# CONFIG_SEC_CERT_COMMISSIONABLE_DATA_PROVIDER is not set +# CONFIG_CUSTOM_COMMISSIONABLE_DATA_PROVIDER is not set +CONFIG_EXAMPLE_DEVICE_INSTANCE_INFO_PROVIDER=y +# CONFIG_SEC_CERT_DEVICE_INSTANCE_INFO_PROVIDER is not set +# CONFIG_CUSTOM_DEVICE_INSTANCE_INFO_PROVIDER is not set +CONFIG_NONE_DEVICE_INFO_PROVIDER=y +# CONFIG_CUSTOM_DEVICE_INFO_PROVIDER is not set +CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=16 +CONFIG_ESP_MATTER_MODE_SELECT_CLUSTER_ENDPOINT_COUNT=0 +CONFIG_ESP_MATTER_TEMPERATURE_CONTROL_CLUSTER_ENDPOINT_COUNT=0 +CONFIG_ESP_MATTER_SCENES_TABLE_SIZE=16 +CONFIG_ESP_MATTER_BINDING_TABLE_SIZE=10 +CONFIG_ESP_MATTER_MEM_ALLOC_MODE_INTERNAL=y +# CONFIG_ESP_MATTER_MEM_ALLOC_MODE_DEFAULT is not set +CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y +CONFIG_ESP_MATTER_ENABLE_MATTER_SERVER=y +CONFIG_ESP_MATTER_ENABLE_OPENTHREAD=y + +# +# Select Supported Matter Clusters +# +CONFIG_SUPPORT_ACCESS_CONTROL_CLUSTER=y +CONFIG_SUPPORT_ACCOUNT_LOGIN_CLUSTER=y +CONFIG_SUPPORT_ACTIONS_CLUSTER=y +CONFIG_SUPPORT_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER=y +CONFIG_SUPPORT_ADMINISTRATOR_COMMISSIONING_CLUSTER=y +CONFIG_SUPPORT_AIR_QUALITY_CLUSTER=y +CONFIG_SUPPORT_APPLICATION_BASIC_CLUSTER=y +CONFIG_SUPPORT_APPLICATION_LAUNCHER_CLUSTER=y +CONFIG_SUPPORT_AUDIO_OUTPUT_CLUSTER=y +CONFIG_SUPPORT_BASIC_INFORMATION_CLUSTER=y +CONFIG_SUPPORT_BINDING_CLUSTER=y +CONFIG_SUPPORT_BOOLEAN_STATE_CLUSTER=y +CONFIG_SUPPORT_BOOLEAN_STATE_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER=y +CONFIG_SUPPORT_CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_CAMERA_AV_STREAM_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_CHANNEL_CLUSTER=y +CONFIG_SUPPORT_CHIME_CLUSTER=y +CONFIG_SUPPORT_CLOSURE_CONTROL_CLUSTER=y +CONFIG_SUPPORT_CLOSURE_DIMENSION_CLUSTER=y +CONFIG_SUPPORT_COLOR_CONTROL_CLUSTER=y +CONFIG_SUPPORT_COMMISSIONER_CONTROL_CLUSTER=y +CONFIG_SUPPORT_COMMODITY_METERING_CLUSTER=y +CONFIG_SUPPORT_COMMODITY_PRICE_CLUSTER=y +CONFIG_SUPPORT_COMMODITY_TARIFF_CLUSTER=y +CONFIG_SUPPORT_CONTENT_LAUNCHER_CLUSTER=y +CONFIG_SUPPORT_CONTENT_CONTROL_CLUSTER=y +CONFIG_SUPPORT_CONTENT_APP_OBSERVER_CLUSTER=y +CONFIG_SUPPORT_DESCRIPTOR_CLUSTER=y +CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER=y +CONFIG_SUPPORT_DIAGNOSTIC_LOGS_CLUSTER=y +CONFIG_SUPPORT_DISHWASHER_ALARM_CLUSTER=y +CONFIG_SUPPORT_DISHWASHER_MODE_CLUSTER=y +CONFIG_SUPPORT_ELECTRICAL_GRID_CONDITIONS_CLUSTER=y +CONFIG_SUPPORT_GROUPCAST_CLUSTER=y +CONFIG_SUPPORT_METER_IDENTIFICATION_CLUSTER=y +CONFIG_SUPPORT_MICROWAVE_OVEN_MODE_CLUSTER=y +CONFIG_SUPPORT_DOOR_LOCK_CLUSTER=y +CONFIG_SUPPORT_ECOSYSTEM_INFORMATION_CLUSTER=y +CONFIG_SUPPORT_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_ELECTRICAL_POWER_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_ENERGY_EVSE_CLUSTER=y +CONFIG_SUPPORT_ENERGY_EVSE_MODE_CLUSTER=y +CONFIG_SUPPORT_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_ENERGY_PREFERENCE_CLUSTER=y +CONFIG_SUPPORT_FAN_CONTROL_CLUSTER=y +CONFIG_SUPPORT_FAULT_INJECTION_CLUSTER=y +CONFIG_SUPPORT_FIXED_LABEL_CLUSTER=y +CONFIG_SUPPORT_FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_GENERAL_COMMISSIONING_CLUSTER=y +CONFIG_SUPPORT_GENERAL_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_GROUPS_CLUSTER=y +CONFIG_SUPPORT_HEPA_FILTER_MONITORING_CLUSTER=y +CONFIG_SUPPORT_GROUP_KEY_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_ICD_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_IDENTIFY_CLUSTER=y +CONFIG_SUPPORT_JOINT_FABRIC_DATASTORE_CLUSTER=y +CONFIG_SUPPORT_JOINT_FABRIC_ADMINISTRATOR_CLUSTER=y +CONFIG_SUPPORT_KEYPAD_INPUT_CLUSTER=y +CONFIG_SUPPORT_LAUNDRY_WASHER_MODE_CLUSTER=y +CONFIG_SUPPORT_LEVEL_CONTROL_CLUSTER=y +CONFIG_SUPPORT_LOCALIZATION_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_LOW_POWER_CLUSTER=y +CONFIG_SUPPORT_MEDIA_INPUT_CLUSTER=y +CONFIG_SUPPORT_MEDIA_PLAYBACK_CLUSTER=y +CONFIG_SUPPORT_MICROWAVE_OVEN_CONTROL_CLUSTER=y +CONFIG_SUPPORT_MESSAGES_CLUSTER=y +CONFIG_SUPPORT_MODE_SELECT_CLUSTER=y +CONFIG_SUPPORT_NETWORK_COMMISSIONING_CLUSTER=y +CONFIG_SUPPORT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PUSH_AV_STREAM_TRANSPORT_CLUSTER=y +CONFIG_SUPPORT_SAMPLE_MEI_CLUSTER=y +CONFIG_SUPPORT_OCCUPANCY_SENSING_CLUSTER=y +CONFIG_SUPPORT_ON_OFF_CLUSTER=y +CONFIG_SUPPORT_POWER_TOPOLOGY_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_CREDENTIALS_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_STATE_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_STATE_OVEN_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_STATE_RVC_CLUSTER=y +CONFIG_SUPPORT_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER=y +CONFIG_SUPPORT_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER=y +CONFIG_SUPPORT_OVEN_MODE_CLUSTER=y +CONFIG_SUPPORT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PM10_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PM1_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_POWER_SOURCE_CLUSTER=y +CONFIG_SUPPORT_POWER_SOURCE_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER=y +CONFIG_SUPPORT_RADON_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_REFRIGERATOR_ALARM_CLUSTER=y +CONFIG_SUPPORT_REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER=y +CONFIG_SUPPORT_RVC_CLEAN_MODE_CLUSTER=y +CONFIG_SUPPORT_RVC_RUN_MODE_CLUSTER=y +CONFIG_SUPPORT_SCENES_CLUSTER=y +CONFIG_SUPPORT_SERVICE_AREA_CLUSTER=y +CONFIG_SUPPORT_SMOKE_CO_ALARM_CLUSTER=y +CONFIG_SUPPORT_SOFTWARE_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_SOIL_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_SWITCH_CLUSTER=y +CONFIG_SUPPORT_TARGET_NAVIGATOR_CLUSTER=y +CONFIG_SUPPORT_TEMPERATURE_CONTROL_CLUSTER=y +CONFIG_SUPPORT_THERMOSTAT_CLUSTER=y +CONFIG_SUPPORT_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_THREAD_NETWORK_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_THREAD_NETWORK_DIRECTORY_CLUSTER=y +CONFIG_SUPPORT_TIME_FORMAT_LOCALIZATION_CLUSTER=y +CONFIG_SUPPORT_TIME_SYNCHRONIZATION_CLUSTER=y +CONFIG_SUPPORT_TIMER_CLUSTER=y +CONFIG_SUPPORT_TLS_CERTIFICATE_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_TLS_CLIENT_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_TVOC_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_UNIT_LOCALIZATION_CLUSTER=y +CONFIG_SUPPORT_UNIT_TESTING_CLUSTER=y +CONFIG_SUPPORT_USER_LABEL_CLUSTER=y +CONFIG_SUPPORT_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER=y +CONFIG_SUPPORT_WAKE_ON_LAN_CLUSTER=y +CONFIG_SUPPORT_LAUNDRY_WASHER_CONTROLS_CLUSTER=y +CONFIG_SUPPORT_LAUNDRY_DRYER_CONTROLS_CLUSTER=y +CONFIG_SUPPORT_WEB_RTC_TRANSPORT_PROVIDER_CLUSTER=y +CONFIG_SUPPORT_WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER=y +CONFIG_SUPPORT_WIFI_NETWORK_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_WIFI_NETWORK_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_WINDOW_COVERING_CLUSTER=y +CONFIG_SUPPORT_WATER_HEATER_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_WATER_HEATER_MODE_CLUSTER=y +CONFIG_SUPPORT_ZONE_MANAGEMENT_CLUSTER=y +# end of Select Supported Matter Clusters +# end of ESP Matter + +# +# ESP Matter Bridge +# +CONFIG_ESP_MATTER_AGGREGATOR_ENDPOINT_COUNT=1 +CONFIG_ESP_MATTER_BRIDGE_INFO_PART_NAME="nvs" +# end of ESP Matter Bridge + +# +# ESP Matter Console +# +CONFIG_ESP_MATTER_CONSOLE_TASK_STACK=2048 +CONFIG_ESP_MATTER_CONSOLE_MAX_COMMANDS=10 +# end of ESP Matter Console + +# +# ESP Matter Controller +# +# CONFIG_ESP_MATTER_CONTROLLER_ENABLE is not set +# end of ESP Matter Controller + +# +# ESP Matter OTA Provider +# +# CONFIG_ESP_MATTER_OTA_PROVIDER_ENABLED is not set +# end of ESP Matter OTA Provider + +# +# IoT Button +# +CONFIG_BUTTON_PERIOD_TIME_MS=5 +CONFIG_BUTTON_DEBOUNCE_TICKS=2 +CONFIG_BUTTON_SHORT_PRESS_TIME_MS=180 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=1500 +CONFIG_BUTTON_LONG_PRESS_HOLD_SERIAL_TIME_MS=20 +CONFIG_ADC_BUTTON_MAX_CHANNEL=3 +CONFIG_ADC_BUTTON_MAX_BUTTON_PER_CHANNEL=8 +CONFIG_ADC_BUTTON_SAMPLE_TIMES=1 +# end of IoT Button + +# +# CMake Utilities +# +# CONFIG_CU_RELINKER_ENABLE is not set +# CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set +CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y +# CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set +# CONFIG_CU_GCC_LTO_ENABLE is not set +# CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set +# end of CMake Utilities + +# +# ESP serial flasher +# +CONFIG_SERIAL_FLASHER_MD5_ENABLED=y +CONFIG_SERIAL_FLASHER_RESET_HOLD_TIME_MS=100 +CONFIG_SERIAL_FLASHER_BOOT_HOLD_TIME_MS=50 +# end of ESP serial flasher + +# +# Diagnostics data store +# +CONFIG_DIAG_DATA_STORE_RTC=y +# CONFIG_DIAG_DATA_STORE_FLASH is not set +# CONFIG_DIAG_DATA_STORE_DBG_PRINTS is not set +CONFIG_DIAG_DATA_STORE_REPORTING_WATERMARK_PERCENT=80 + +# +# RTC Store +# +CONFIG_RTC_STORE_DATA_SIZE=6144 +CONFIG_RTC_STORE_CRITICAL_DATA_SIZE=4096 +# end of RTC Store +# end of Diagnostics data store + +# +# Diagnostics +# +CONFIG_DIAG_LOG_MSG_ARG_FORMAT_TLV=y +# CONFIG_DIAG_LOG_MSG_ARG_FORMAT_STRING is not set +CONFIG_DIAG_LOG_MSG_ARG_MAX_SIZE=64 +CONFIG_DIAG_LOG_DROP_WIFI_LOGS=y +# CONFIG_DIAG_ENABLE_WRAP_LOG_FUNCTIONS is not set +CONFIG_DIAG_ENABLE_METRICS=y +CONFIG_DIAG_METRICS_MAX_COUNT=20 +CONFIG_DIAG_ENABLE_HEAP_METRICS=y +CONFIG_DIAG_HEAP_POLLING_INTERVAL=30 +CONFIG_DIAG_ENABLE_WIFI_METRICS=y +CONFIG_DIAG_WIFI_POLLING_INTERVAL=30 +CONFIG_DIAG_ENABLE_VARIABLES=y +CONFIG_DIAG_VARIABLES_MAX_COUNT=20 +CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y +# CONFIG_DIAG_MORE_NETWORK_VARS is not set +# CONFIG_DIAG_USE_EXTERNAL_LOG_WRAP is not set +# end of Diagnostics + +# +# ESP Insights +# +# CONFIG_ESP_INSIGHTS_ENABLED is not set +# CONFIG_ESP_INSIGHTS_TRANSPORT_MQTT is not set +CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS=y +CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST="https://client.insights.espressif.com" +CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC=60 +CONFIG_ESP_INSIGHTS_CLOUD_POST_MAX_INTERVAL_SEC=240 +CONFIG_ESP_INSIGHTS_META_VERSION_10=y +# end of ESP Insights + +# +# OpenThread RCP Update +# +# CONFIG_AUTO_UPDATE_RCP is not set +# CONFIG_CREATE_OTA_IMAGE_WITH_RCP_FW is not set +# end of OpenThread RCP Update + +# +# ESP Secure Cert Manager +# +CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=y +# CONFIG_ESP_SECURE_CERT_SUPPORT_LEGACY_FORMATS is not set +# end of ESP Secure Cert Manager + +# +# jsmn +# +# CONFIG_JSMN_PARENT_LINKS is not set +# CONFIG_JSMN_STRICT is not set +# CONFIG_JSMN_STATIC is not set +# end of jsmn + +# +# mDNS +# +CONFIG_MDNS_MAX_INTERFACES=3 +CONFIG_MDNS_MAX_SERVICES=10 +CONFIG_MDNS_TASK_PRIORITY=1 +CONFIG_MDNS_ACTION_QUEUE_LEN=16 +CONFIG_MDNS_TASK_STACK_SIZE=4096 +# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_MDNS_TASK_AFFINITY_CPU0=y +CONFIG_MDNS_TASK_AFFINITY=0x0 + +# +# MDNS Memory Configuration +# +CONFIG_MDNS_TASK_CREATE_FROM_INTERNAL=y +CONFIG_MDNS_MEMORY_ALLOC_INTERNAL=y +# CONFIG_MDNS_MEMORY_CUSTOM_IMPL is not set +# end of MDNS Memory Configuration + +CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 +CONFIG_MDNS_TIMER_PERIOD_MS=100 +# CONFIG_MDNS_NETWORKING_SOCKET is not set +# CONFIG_MDNS_SKIP_SUPPRESSING_OWN_QUERIES is not set +# CONFIG_MDNS_ENABLE_DEBUG_PRINTS is not set +CONFIG_MDNS_ENABLE_CONSOLE_CLI=y +# CONFIG_MDNS_RESPOND_REVERSE_QUERIES is not set +CONFIG_MDNS_MULTIPLE_INSTANCE=y + +# +# MDNS Predefined interfaces +# +CONFIG_MDNS_PREDEF_NETIF_STA=y +CONFIG_MDNS_PREDEF_NETIF_AP=y +CONFIG_MDNS_PREDEF_NETIF_ETH=y +# end of MDNS Predefined interfaces +# end of mDNS + +# +# ESP RainMaker Common +# +CONFIG_ESP_RMAKER_LIB_ESP_MQTT=y +# CONFIG_ESP_RMAKER_LIB_AWS_IOT is not set +CONFIG_ESP_RMAKER_MQTT_GLUE_LIB=1 +CONFIG_ESP_RMAKER_MQTT_PORT_443=y +# CONFIG_ESP_RMAKER_MQTT_PORT_8883 is not set +CONFIG_ESP_RMAKER_MQTT_PORT=1 +# CONFIG_ESP_RMAKER_MQTT_PERSISTENT_SESSION is not set +CONFIG_ESP_RMAKER_MQTT_SEND_USERNAME=y +CONFIG_ESP_RMAKER_MQTT_PRODUCT_NAME="RMDev" +CONFIG_ESP_RMAKER_MQTT_PRODUCT_VERSION="1x0" +CONFIG_ESP_RMAKER_MQTT_PRODUCT_SKU="EX00" +CONFIG_ESP_RMAKER_MQTT_USE_CERT_BUNDLE=y +CONFIG_ESP_RMAKER_MAX_MQTT_SUBSCRIPTIONS=10 +CONFIG_ESP_RMAKER_MQTT_KEEP_ALIVE_INTERVAL=120 +CONFIG_ESP_RMAKER_NETWORK_OVER_WIFI=y +CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK=5120 +CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_PRIORITY=5 +CONFIG_ESP_RMAKER_FACTORY_PARTITION_NAME="fctry" +CONFIG_ESP_RMAKER_FACTORY_NAMESPACE="rmaker_creds" +CONFIG_ESP_RMAKER_DEF_TIMEZONE="Asia/Shanghai" +CONFIG_ESP_RMAKER_SNTP_SERVER_NAME="pool.ntp.org" +CONFIG_ESP_RMAKER_MAX_COMMANDS=10 +CONFIG_ESP_RMAKER_CONSOLE_ENABLED=y +CONFIG_ESP_RMAKER_CONSOLE_TASK_STACK=4096 +CONFIG_ESP_RMAKER_CONSOLE_TASK_PRIORITY=5 +# end of ESP RainMaker Common +# end of Component config + +# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set + +# Deprecated options for backward compatibility +# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set +# CONFIG_NO_BLOBS is not set +# CONFIG_APP_ROLLBACK_ENABLE is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set +CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y +# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set +CONFIG_LOG_BOOTLOADER_LEVEL=3 +# CONFIG_FLASH_ENCRYPTION_ENABLED is not set +# CONFIG_FLASHMODE_QIO is not set +# CONFIG_FLASHMODE_QOUT is not set +CONFIG_FLASHMODE_DIO=y +# CONFIG_FLASHMODE_DOUT is not set +CONFIG_MONITOR_BAUD=115200 +CONFIG_OPTIMIZATION_LEVEL_DEBUG=y +CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y +CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set +CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y +# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set +CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_CXX_EXCEPTIONS is not set +CONFIG_STACK_CHECK_NONE=y +# CONFIG_STACK_CHECK_NORM is not set +# CONFIG_STACK_CHECK_STRONG is not set +# CONFIG_STACK_CHECK_ALL is not set +# CONFIG_WARN_WRITE_STRINGS is not set +# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set +CONFIG_ESP32_APPTRACE_DEST_NONE=y +CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y +CONFIG_SW_COEXIST_ENABLE=y +CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y +CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y +# CONFIG_EXTERNAL_COEX_ENABLE is not set +# CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set +# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_EVENT_LOOP_PROFILING is not set +CONFIG_POST_EVENTS_FROM_ISR=y +CONFIG_POST_EVENTS_FROM_IRAM_ISR=y +CONFIG_GDBSTUB_SUPPORT_TASKS=y +CONFIG_GDBSTUB_MAX_TASKS=32 +# CONFIG_OTA_ALLOW_HTTP is not set +# CONFIG_ESP_SYSTEM_PD_FLASH is not set +CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_BROWNOUT_DET=y +CONFIG_BROWNOUT_DET_LVL_SEL_7=y +# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set +CONFIG_BROWNOUT_DET_LVL=7 +CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y +CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP32_PHY_MAX_TX_POWER=20 +# CONFIG_REDUCE_PHY_TX_POWER is not set +# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set +CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y +CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_MAIN_TASK_STACK_SIZE=3584 +CONFIG_CONSOLE_UART_DEFAULT=y +# CONFIG_CONSOLE_UART_CUSTOM is not set +# CONFIG_CONSOLE_UART_NONE is not set +# CONFIG_ESP_CONSOLE_UART_NONE is not set +CONFIG_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_BAUDRATE=115200 +CONFIG_INT_WDT=y +CONFIG_INT_WDT_TIMEOUT_MS=300 +CONFIG_TASK_WDT=y +CONFIG_ESP_TASK_WDT=y +# CONFIG_TASK_WDT_PANIC is not set +CONFIG_TASK_WDT_TIMEOUT_S=5 +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set +CONFIG_IPC_TASK_STACK_SIZE=1024 +CONFIG_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP32_WIFI_ENABLED=y +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_CSI_ENABLED is not set +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP32_WIFI_TX_BA_WIN=6 +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP32_WIFI_IRAM_OPT=y +CONFIG_ESP32_WIFI_RX_IRAM_OPT=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_WPA_MBEDTLS_CRYPTO=y +CONFIG_WPA_MBEDTLS_TLS_CLIENT=y +# CONFIG_WPA_WAPI_PSK is not set +# CONFIG_WPA_SUITE_B_192 is not set +# CONFIG_WPA_11KV_SUPPORT is not set +# CONFIG_WPA_MBO_SUPPORT is not set +# CONFIG_WPA_DPP_SUPPORT is not set +# CONFIG_WPA_11R_SUPPORT is not set +# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set +# CONFIG_WPA_WPS_STRICT is not set +# CONFIG_WPA_DEBUG_PRINT is not set +# CONFIG_WPA_TESTING_OPTIONS is not set +# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set +# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set +CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y +CONFIG_TIMER_TASK_PRIORITY=1 +CONFIG_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_TIMER_QUEUE_LENGTH=10 +# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set +# CONFIG_HAL_ASSERTION_SILIENT is not set +# CONFIG_L2_TO_L3_COPY is not set +CONFIG_ESP_GRATUITOUS_ARP=y +CONFIG_GARP_TMR_INTERVAL=60 +CONFIG_TCPIP_RECVMBOX_SIZE=32 +CONFIG_TCP_MAXRTX=12 +CONFIG_TCP_SYNMAXRTX=12 +CONFIG_TCP_MSS=1440 +CONFIG_TCP_MSL=60000 +CONFIG_TCP_SND_BUF_DEFAULT=5760 +CONFIG_TCP_WND_DEFAULT=5760 +CONFIG_TCP_RECVMBOX_SIZE=6 +CONFIG_TCP_QUEUE_OOSEQ=y +CONFIG_TCP_OVERSIZE_MSS=y +# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_TCP_OVERSIZE_DISABLE is not set +CONFIG_UDP_RECVMBOX_SIZE=6 +CONFIG_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set +CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_PPP_SUPPORT is not set +CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set +CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y +# CONFIG_NEWLIB_NANO_FORMAT is not set +CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y +# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set +CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_ESP32_PTHREAD_STACK_MIN=768 +CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" +CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y +# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set +# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set +CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y +CONFIG_SUPPORT_TERMIOS=y +CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# End of deprecated options diff --git a/01_Source/matter-light-c6-wifi/dependencies.lock b/01_Source/matter-light-c6-wifi/dependencies.lock new file mode 100644 index 0000000..b9426e6 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/dependencies.lock @@ -0,0 +1,211 @@ +dependencies: + espressif/button: + component_hash: fccb18c37f1cfe0797b74a53a44d3f400f5fd01f4993b40052dfb7f401915089 + dependencies: + - name: espressif/cmake_utilities + registry_url: https://components.espressif.com + require: private + version: '*' + - name: idf + require: private + version: '>=4.0' + source: + registry_url: https://components.espressif.com/ + type: service + version: 4.1.5 + espressif/cbor: + component_hash: dad9ca860963e930366510a10b422b3125a4fb27b979712ed65efcbcd742de50 + dependencies: + - name: idf + require: private + version: '>=5.0' + source: + registry_url: https://components.espressif.com + type: service + version: 0.6.1~4 + espressif/cmake_utilities: + component_hash: 05165f30922b422b4b90c08845e6d449329b97370fbd06309803d8cb539d79e3 + dependencies: + - name: idf + require: private + version: '>=4.1' + source: + registry_url: https://components.espressif.com + type: service + version: 1.1.1 + espressif/esp-serial-flasher: + component_hash: dcc42a16712a1a636509cf0bf90e14032d7f2141784b533613b267b6aa318d52 + dependencies: [] + source: + registry_url: https://components.espressif.com + type: service + version: 0.0.11 + espressif/esp_delta_ota: + component_hash: 147161b602ef51e9f6649eb6d90c4d4ac3c94228cb264fa0e68be7877180462d + dependencies: + - name: idf + require: private + version: '>=4.3' + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.1.4 + espressif/esp_diag_data_store: + component_hash: 93f20de81abb791b4482f1bc99afdc24b25c3ee42aacceeb636e9943e677b1c5 + dependencies: + - name: idf + require: private + version: '>=5.1' + source: + registry_url: https://components.espressif.com + type: service + version: 1.1.0 + espressif/esp_diagnostics: + component_hash: 405803b11fbccfd9c8a26df0b1228081f588ffdb7d1e0c754300e7a2c6241aab + dependencies: + - name: espressif/rmaker_common + registry_url: https://components.espressif.com + require: private + version: ~1.5.0 + - name: idf + require: private + version: '>=5.1' + source: + registry_url: https://components.espressif.com + type: service + version: 1.3.0 + espressif/esp_encrypted_img: + component_hash: e5a065c140fbc6a69a1de4fa1731b7596cc34a4a50b57913b2dc34c9ad3a0a70 + dependencies: + - name: idf + require: private + version: '>=4.4' + source: + registry_url: https://components.espressif.com/ + type: service + version: 2.3.0 + espressif/esp_insights: + component_hash: 5a394c1eacddff2dbeff840abb0108ad5f54fb076048520b50c3f4a9b59415fe + dependencies: + - name: espressif/cbor + registry_url: https://components.espressif.com + require: private + version: ~0.6 + - name: espressif/esp_diag_data_store + registry_url: https://components.espressif.com + require: private + version: 1.1.0 + - name: espressif/esp_diagnostics + registry_url: https://components.espressif.com + require: private + version: '>=1.3.0' + - name: espressif/rmaker_common + registry_url: https://components.espressif.com + require: private + version: ~1.5.0 + - name: idf + require: private + version: '>=5.1' + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.3.1 + espressif/esp_rcp_update: + component_hash: 37f535edd527a45faeaad649c0c56af36e5399074e52d83f0990fce466844dde + dependencies: + - name: espressif/esp-serial-flasher + registry_url: https://components.espressif.com + require: private + version: ~0.0.0 + - name: idf + require: private + version: '>=5.0' + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.3.1 + espressif/esp_secure_cert_mgr: + component_hash: e8ce8d5ac0ef4ef5df12fdb266190413c4170ad39b394435f0e3115a4fddc6a6 + dependencies: + - name: idf + require: private + version: '>=4.3' + source: + registry_url: https://components.espressif.com/ + type: service + version: 2.7.2 + espressif/jsmn: + component_hash: d80350c41bbaa827c98a25b6072df00884e72f54885996fab4a4f0aebce6b6c3 + dependencies: + - name: idf + require: private + version: '>=4.3' + source: + registry_url: https://components.espressif.com + type: service + version: 1.1.0 + espressif/json_generator: + component_hash: 45033e1c199b13f1c8c1b544fb7d4e2df6a8e3071ebdcb1b22582b61a7974ff2 + dependencies: [] + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.1.2 + espressif/json_parser: + component_hash: d74b81729ad06ec11ff5eb5b1b0d7df1d00e6027fc11471f4b139c70dcf1b1e4 + dependencies: + - name: espressif/jsmn + registry_url: https://components.espressif.com + require: private + rules: + - if: idf_version >=5.0 + version: ~1.1 + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.0.3 + espressif/led_strip: + component_hash: e8179c56057c243e80a8286c39361eb4bef33e42eb5f7fc841ea877597ca13f7 + dependencies: [] + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.0.0 + espressif/mdns: + component_hash: 29e47564b1a7ee778135e17fbbf2a2773f71c97ebabfe626c8eda7c958a7ad16 + dependencies: + - name: idf + require: private + version: '>=5.0' + source: + registry_url: https://components.espressif.com/ + type: service + version: 1.9.1 + espressif/rmaker_common: + component_hash: 842d2aaf486a24f11827a86b1147ee8ac7e1881f45e3d65a2141aff5bcbf276a + dependencies: + - name: idf + require: private + version: '>=5.1' + source: + registry_url: https://components.espressif.com + type: service + version: 1.5.3 + idf: + source: + type: idf + version: 5.5.1 +direct_dependencies: +- espressif/button +- espressif/esp_delta_ota +- espressif/esp_encrypted_img +- espressif/esp_insights +- espressif/esp_rcp_update +- espressif/esp_secure_cert_mgr +- espressif/json_generator +- espressif/json_parser +- espressif/led_strip +- espressif/mdns +manifest_hash: c15eaa367fc776fc22627b4c6568183a61ea17ab6b629ec496d666a22ea0947a +target: esp32c6 +version: 2.0.0 diff --git a/01_Source/matter-light-c6-wifi/main/CMakeLists.txt b/01_Source/matter-light-c6-wifi/main/CMakeLists.txt new file mode 100644 index 0000000..fe567b6 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/main/CMakeLists.txt @@ -0,0 +1,14 @@ +idf_component_register(SRC_DIRS "." + PRIV_INCLUDE_DIRS "." "../../OTA" "${ESP_MATTER_PATH}/examples/common/utils" + PRIV_REQUIRES app_update esp_http_client + esp_wifi esp_event esp_netif esp_timer nvs_flash + esp_matter esp_matter_console + device button app_reset) + +if (CONFIG_ENABLE_SET_CERT_DECLARATION_API) + target_add_binary_data(${COMPONENT_TARGET} "certification_declaration/certification_declaration.der" BINARY) +endif() + +target_compile_options(${COMPONENT_LIB} PRIVATE "-DCHIP_HAVE_CONFIG_H") + +target_sources(${COMPONENT_LIB} PRIVATE "../../OTA/OtaManager.cpp") diff --git a/01_Source/matter-light-c6-wifi/main/Kconfig.projbuild b/01_Source/matter-light-c6-wifi/main/Kconfig.projbuild new file mode 100644 index 0000000..6ec0e2d --- /dev/null +++ b/01_Source/matter-light-c6-wifi/main/Kconfig.projbuild @@ -0,0 +1,11 @@ +menu "Example Configuration" + + config ENABLE_MEMORY_PROFILING + bool "Enable Memory Profiling" + default n + help + Enable this option to include memory profiling features in the example. + This will allow you to monitor memory usage during runtime. + +endmenu + diff --git a/01_Source/matter-light-c6-wifi/main/app_driver.cpp b/01_Source/matter-light-c6-wifi/main/app_driver.cpp new file mode 100644 index 0000000..18a675f --- /dev/null +++ b/01_Source/matter-light-c6-wifi/main/app_driver.cpp @@ -0,0 +1,542 @@ +/* + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include + +using namespace chip::app::Clusters; +using namespace esp_matter; + +static const char *TAG = "app_driver"; +extern uint16_t rgb_light_endpoint_id; +extern uint16_t cct_light_endpoint_id; + +// Global variables to store current XY color coordinates +static uint16_t current_x = 0; +static uint16_t current_y = 0; + +typedef enum { + APP_LIGHT_TYPE_RGB_PWM = 1, + APP_LIGHT_TYPE_SK6812 = 2, +} app_light_type_t; + +typedef struct { + app_light_type_t type; + bool power; + uint8_t brightness; +} app_rgb_pwm_light_t; + +typedef struct { + app_light_type_t type; + bool power; + uint8_t brightness; + uint32_t temperature_kelvin; + rmt_channel_t rmt_channel; + uint32_t strip_len; + uint8_t *buffer; +} app_sk6812_light_t; + +static void kelvin_to_rgb(uint32_t kelvin, uint8_t *out_r, uint8_t *out_g, uint8_t *out_b) +{ + if (!out_r || !out_g || !out_b) { + return; + } + if (kelvin < 1000) { + kelvin = 1000; + } + if (kelvin > 40000) { + kelvin = 40000; + } + + float temp = (float)kelvin / 100.0f; + float r; + float g; + float b; + + if (temp <= 66.0f) { + r = 255.0f; + g = 99.4708025861f * logf(temp) - 161.1195681661f; + if (temp <= 19.0f) { + b = 0.0f; + } else { + b = 138.5177312231f * logf(temp - 10.0f) - 305.0447927307f; + } + } else { + r = 329.698727446f * powf(temp - 60.0f, -0.1332047592f); + g = 288.1221695283f * powf(temp - 60.0f, -0.0755148492f); + b = 255.0f; + } + + if (r < 0.0f) r = 0.0f; + if (r > 255.0f) r = 255.0f; + if (g < 0.0f) g = 0.0f; + if (g > 255.0f) g = 255.0f; + if (b < 0.0f) b = 0.0f; + if (b > 255.0f) b = 255.0f; + + *out_r = (uint8_t)r; + *out_g = (uint8_t)g; + *out_b = (uint8_t)b; +} + +static esp_err_t rgb_pwm_apply(app_rgb_pwm_light_t *light) +{ + if (!light) { + return ESP_ERR_INVALID_ARG; + } + + const uint32_t max_duty = (1U << 13) - 1; + uint32_t duty = 0; + if (light->power) { + duty = ((uint32_t)light->brightness * max_duty) / 100; + } + + const uint32_t white_r_scale = 100; + const uint32_t white_g_scale = 100; + const uint32_t white_b_scale = 100; + uint32_t duty_r = (duty * white_r_scale) / 100; + uint32_t duty_g = (duty * white_g_scale) / 100; + uint32_t duty_b = (duty * white_b_scale) / 100; + if (duty_r > max_duty) duty_r = max_duty; + if (duty_g > max_duty) duty_g = max_duty; + if (duty_b > max_duty) duty_b = max_duty; + + // Common-anode RGB module: LED is ON when GPIO is LOW. So invert duty in software. + uint32_t duty_r_inv = max_duty - duty_r; + uint32_t duty_g_inv = max_duty - duty_g; + uint32_t duty_b_inv = max_duty - duty_b; + + ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, duty_r_inv); + ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0); + ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_1, duty_g_inv); + ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_1); + ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_2, duty_b_inv); + ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_2); + + return ESP_OK; +} + +static uint32_t ws_t0h_ticks = 0; +static uint32_t ws_t1h_ticks = 0; +static uint32_t ws_t0l_ticks = 0; +static uint32_t ws_t1l_ticks = 0; + +static void IRAM_ATTR ws2812_like_rmt_adapter(const void *src, rmt_item32_t *dest, size_t src_size, size_t wanted_num, + size_t *translated_size, size_t *item_num) +{ + if (src == NULL || dest == NULL) { + *translated_size = 0; + *item_num = 0; + return; + } + const rmt_item32_t bit0 = {{{ ws_t0h_ticks, 1, ws_t0l_ticks, 0 }}}; + const rmt_item32_t bit1 = {{{ ws_t1h_ticks, 1, ws_t1l_ticks, 0 }}}; + size_t size = 0; + size_t num = 0; + const uint8_t *psrc = (const uint8_t *)src; + rmt_item32_t *pdest = dest; + while (size < src_size && num < wanted_num) { + for (int i = 0; i < 8; i++) { + if (*psrc & (1 << (7 - i))) { + pdest->val = bit1.val; + } else { + pdest->val = bit0.val; + } + num++; + pdest++; + } + size++; + psrc++; + } + *translated_size = size; + *item_num = num; +} + +static esp_err_t sk6812_apply(app_sk6812_light_t *light) +{ + if (!light || !light->buffer) { + return ESP_ERR_INVALID_ARG; + } + + uint8_t r = 0; + uint8_t g = 0; + uint8_t b = 0; + uint8_t w = 0; + + if (light->power) { + kelvin_to_rgb(light->temperature_kelvin, &r, &g, &b); + const uint32_t scale = light->brightness; + r = (uint8_t)(((uint32_t)r * scale) / 100); + g = (uint8_t)(((uint32_t)g * scale) / 100); + b = (uint8_t)(((uint32_t)b * scale) / 100); + w = 0; + } + + // SK6812 RGBW byte order is commonly GRBW + for (uint32_t i = 0; i < light->strip_len; i++) { + uint32_t start = i * 4; + light->buffer[start + 0] = g; + light->buffer[start + 1] = r; + light->buffer[start + 2] = b; + light->buffer[start + 3] = w; + } + + esp_err_t ret = rmt_write_sample(light->rmt_channel, light->buffer, light->strip_len * 4, true); + if (ret != ESP_OK) { + return ret; + } + return rmt_wait_tx_done(light->rmt_channel, pdMS_TO_TICKS(100)); +} + +/* Do any conversions/remapping for the actual value here */ +static esp_err_t app_driver_light_set_power(app_driver_handle_t handle, esp_matter_attr_val_t *val) +{ + if (!handle) { + return ESP_OK; + } + if (!val) { + return ESP_ERR_INVALID_ARG; + } + app_light_type_t type = ((app_rgb_pwm_light_t *)handle)->type; + if (type == APP_LIGHT_TYPE_RGB_PWM) { + app_rgb_pwm_light_t *h = (app_rgb_pwm_light_t *)handle; + h->power = val->val.b; + return rgb_pwm_apply(h); + } + if (type == APP_LIGHT_TYPE_SK6812) { + app_sk6812_light_t *h = (app_sk6812_light_t *)handle; + h->power = val->val.b; + return sk6812_apply(h); + } + return ESP_ERR_INVALID_ARG; +} + +static esp_err_t app_driver_light_set_brightness(app_driver_handle_t handle, esp_matter_attr_val_t *val) +{ + if (!handle) { + return ESP_OK; + } + int value = REMAP_TO_RANGE(val->val.u8, MATTER_BRIGHTNESS, STANDARD_BRIGHTNESS); + if (value < 0) { + value = 0; + } + if (value > 100) { + value = 100; + } + app_light_type_t type = ((app_rgb_pwm_light_t *)handle)->type; + if (type == APP_LIGHT_TYPE_RGB_PWM) { + app_rgb_pwm_light_t *h = (app_rgb_pwm_light_t *)handle; + h->brightness = (uint8_t)value; + return rgb_pwm_apply(h); + } + if (type == APP_LIGHT_TYPE_SK6812) { + app_sk6812_light_t *h = (app_sk6812_light_t *)handle; + h->brightness = (uint8_t)value; + return sk6812_apply(h); + } + return ESP_ERR_INVALID_ARG; +} + +static esp_err_t app_driver_light_set_hue(app_driver_handle_t handle, esp_matter_attr_val_t *val) +{ + int value = REMAP_TO_RANGE(val->val.u8, MATTER_HUE, STANDARD_HUE); + (void)value; + return ESP_OK; +} + +static esp_err_t app_driver_light_set_saturation(app_driver_handle_t handle, esp_matter_attr_val_t *val) +{ + int value = REMAP_TO_RANGE(val->val.u8, MATTER_SATURATION, STANDARD_SATURATION); + (void)value; + return ESP_OK; +} + +static esp_err_t app_driver_light_set_temperature(app_driver_handle_t handle, esp_matter_attr_val_t *val) +{ + if (!handle) { + return ESP_OK; + } + uint32_t value = REMAP_TO_RANGE_INVERSE(val->val.u16, STANDARD_TEMPERATURE_FACTOR); + app_light_type_t type = ((app_rgb_pwm_light_t *)handle)->type; + if (type == APP_LIGHT_TYPE_SK6812) { + app_sk6812_light_t *h = (app_sk6812_light_t *)handle; + h->temperature_kelvin = value; + return sk6812_apply(h); + } + return ESP_OK; +} + +static esp_err_t app_driver_light_set_xy(app_driver_handle_t handle, uint16_t x, uint16_t y) +{ + (void)handle; + (void)x; + (void)y; + return ESP_OK; +} + +static void app_driver_button_long_press_cb(void *arg, void *data) +{ + ESP_LOGW(TAG, "Button LONG PRESS - entering ESP-NOW pairing mode"); + app_enter_espnow_pairing_mode(); +} + +static void app_driver_button_toggle_cb(void *arg, void *data) +{ + ESP_LOGI(TAG, "Toggle button pressed"); + uint16_t endpoint_id = rgb_light_endpoint_id; + uint32_t cluster_id = OnOff::Id; + uint32_t attribute_id = OnOff::Attributes::OnOff::Id; + + attribute_t *attribute = attribute::get(endpoint_id, cluster_id, attribute_id); + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + val.val.b = !val.val.b; + attribute::update(endpoint_id, cluster_id, attribute_id, &val); +} + +esp_err_t app_driver_attribute_update(app_driver_handle_t driver_handle, uint16_t endpoint_id, uint32_t cluster_id, + uint32_t attribute_id, esp_matter_attr_val_t *val) +{ + esp_err_t err = ESP_OK; + (void)endpoint_id; + if (!driver_handle) { + return ESP_OK; + } + if (cluster_id == OnOff::Id) { + if (attribute_id == OnOff::Attributes::OnOff::Id) { + err = app_driver_light_set_power(driver_handle, val); + } + } else if (cluster_id == LevelControl::Id) { + if (attribute_id == LevelControl::Attributes::CurrentLevel::Id) { + err = app_driver_light_set_brightness(driver_handle, val); + } + } else if (cluster_id == ColorControl::Id) { + if (attribute_id == ColorControl::Attributes::CurrentHue::Id) { + err = app_driver_light_set_hue(driver_handle, val); + } else if (attribute_id == ColorControl::Attributes::CurrentSaturation::Id) { + err = app_driver_light_set_saturation(driver_handle, val); + } else if (attribute_id == ColorControl::Attributes::ColorTemperatureMireds::Id) { + err = app_driver_light_set_temperature(driver_handle, val); + } else if (attribute_id == ColorControl::Attributes::CurrentX::Id) { + current_x = val->val.u16; + err = app_driver_light_set_xy(driver_handle, current_x, current_y); + } else if (attribute_id == ColorControl::Attributes::CurrentY::Id) { + current_y = val->val.u16; + err = app_driver_light_set_xy(driver_handle, current_x, current_y); + } + } + return err; +} + +esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id) +{ + esp_err_t err = ESP_OK; + void *priv_data = endpoint::get_priv_data(endpoint_id); + app_driver_handle_t handle = (app_driver_handle_t)priv_data; + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + + /* Setting brightness */ + attribute_t *attribute = attribute::get(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + if (attribute) { + attribute::get_val(attribute, &val); + err |= app_driver_light_set_brightness(handle, &val); + } + + /* Setting color */ + cluster_t *color_cluster = cluster::get(endpoint_id, ColorControl::Id); + if (color_cluster) { + attribute = attribute::get(color_cluster, ColorControl::Attributes::ColorMode::Id); + if (attribute) { + attribute::get_val(attribute, &val); + if (val.val.u8 == (uint8_t)ColorControl::ColorMode::kCurrentHueAndCurrentSaturation) { + /* Setting hue */ + attribute = attribute::get(color_cluster, ColorControl::Attributes::CurrentHue::Id); + if (attribute) { + attribute::get_val(attribute, &val); + err |= app_driver_light_set_hue(handle, &val); + } + /* Setting saturation */ + attribute = attribute::get(color_cluster, ColorControl::Attributes::CurrentSaturation::Id); + if (attribute) { + attribute::get_val(attribute, &val); + err |= app_driver_light_set_saturation(handle, &val); + } + } else if (val.val.u8 == (uint8_t)ColorControl::ColorMode::kColorTemperature) { + /* Setting temperature */ + attribute = attribute::get(color_cluster, ColorControl::Attributes::ColorTemperatureMireds::Id); + if (attribute) { + attribute::get_val(attribute, &val); + err |= app_driver_light_set_temperature(handle, &val); + } + } else if (val.val.u8 == (uint8_t)ColorControl::ColorMode::kCurrentXAndCurrentY) { + /* Setting XY coordinates */ + attribute = attribute::get(color_cluster, ColorControl::Attributes::CurrentX::Id); + if (attribute) { + attribute::get_val(attribute, &val); + current_x = val.val.u16; + } + attribute = attribute::get(color_cluster, ColorControl::Attributes::CurrentY::Id); + if (attribute) { + attribute::get_val(attribute, &val); + current_y = val.val.u16; + } + err |= app_driver_light_set_xy(handle, current_x, current_y); + } else { + ESP_LOGE(TAG, "Color mode not supported"); + } + } + } + + /* Setting power */ + attribute = attribute::get(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id); + if (attribute) { + attribute::get_val(attribute, &val); + err |= app_driver_light_set_power(handle, &val); + } + + return err; +} + +app_driver_handle_t app_driver_light_init() +{ + return app_driver_rgb_light_init(); +} + +app_driver_handle_t app_driver_rgb_light_init() +{ + const int rgb_r_gpio = 4; + const int rgb_g_gpio = 5; + const int rgb_b_gpio = 6; + + ledc_timer_config_t ledc_timer = { + .speed_mode = LEDC_LOW_SPEED_MODE, + .duty_resolution = LEDC_TIMER_13_BIT, + .timer_num = LEDC_TIMER_0, + .freq_hz = 5000, + .clk_cfg = LEDC_AUTO_CLK, + }; + if (ledc_timer_config(&ledc_timer) != ESP_OK) { + ESP_LOGE(TAG, "LEDC timer config failed"); + return NULL; + } + + ledc_channel_config_t ch0 = { + .gpio_num = rgb_r_gpio, + .speed_mode = LEDC_LOW_SPEED_MODE, + .channel = LEDC_CHANNEL_0, + .intr_type = LEDC_INTR_DISABLE, + .timer_sel = LEDC_TIMER_0, + .duty = 0, + .hpoint = 0, + }; + ledc_channel_config_t ch1 = ch0; + ch1.gpio_num = rgb_g_gpio; + ch1.channel = LEDC_CHANNEL_1; + ledc_channel_config_t ch2 = ch0; + ch2.gpio_num = rgb_b_gpio; + ch2.channel = LEDC_CHANNEL_2; + + if (ledc_channel_config(&ch0) != ESP_OK || ledc_channel_config(&ch1) != ESP_OK || ledc_channel_config(&ch2) != ESP_OK) { + ESP_LOGE(TAG, "LEDC channel config failed"); + return NULL; + } + + app_rgb_pwm_light_t *light = (app_rgb_pwm_light_t *)calloc(1, sizeof(app_rgb_pwm_light_t)); + if (!light) { + return NULL; + } + light->type = APP_LIGHT_TYPE_RGB_PWM; + light->power = DEFAULT_POWER; + light->brightness = STANDARD_BRIGHTNESS; + rgb_pwm_apply(light); + return (app_driver_handle_t)light; +} + +app_driver_handle_t app_driver_cct_light_init() +{ + const int sk6812_gpio = 2; + const rmt_channel_t channel = RMT_CHANNEL_0; + const uint32_t strip_len = 8; + + rmt_config_t rmt_cfg = RMT_DEFAULT_CONFIG_TX((gpio_num_t)sk6812_gpio, channel); + rmt_cfg.clk_div = 2; + if (rmt_config(&rmt_cfg) != ESP_OK) { + ESP_LOGE(TAG, "RMT config failed"); + return NULL; + } + if (rmt_driver_install(rmt_cfg.channel, 0, 0) != ESP_OK) { + ESP_LOGE(TAG, "RMT driver install failed"); + return NULL; + } + + uint32_t counter_clk_hz = 0; + if (rmt_get_counter_clock(rmt_cfg.channel, &counter_clk_hz) != ESP_OK) { + ESP_LOGE(TAG, "RMT get counter clock failed"); + return NULL; + } + // Use WS2812-like timings which work for many SK6812 modules + const float ratio = (float)counter_clk_hz / 1e9f; + ws_t0h_ticks = (uint32_t)(ratio * 350.0f); + ws_t0l_ticks = (uint32_t)(ratio * 1000.0f); + ws_t1h_ticks = (uint32_t)(ratio * 1000.0f); + ws_t1l_ticks = (uint32_t)(ratio * 350.0f); + + rmt_translator_init(rmt_cfg.channel, ws2812_like_rmt_adapter); + + app_sk6812_light_t *light = (app_sk6812_light_t *)calloc(1, sizeof(app_sk6812_light_t)); + if (!light) { + return NULL; + } + light->type = APP_LIGHT_TYPE_SK6812; + light->power = DEFAULT_POWER; + light->brightness = STANDARD_BRIGHTNESS; + light->temperature_kelvin = 4000; + light->rmt_channel = rmt_cfg.channel; + light->strip_len = strip_len; + light->buffer = (uint8_t *)calloc(strip_len * 4, 1); + if (!light->buffer) { + free(light); + return NULL; + } + sk6812_apply(light); + return (app_driver_handle_t)light; +} + +app_driver_handle_t app_driver_button_init() +{ + /* Initialize button */ + button_handle_t handle = NULL; + const button_config_t btn_cfg = {0}; + const button_gpio_config_t btn_gpio_cfg = button_driver_get_config(); + + if (iot_button_new_gpio_device(&btn_cfg, &btn_gpio_cfg, &handle) != ESP_OK) { + ESP_LOGE(TAG, "Failed to create button device"); + return NULL; + } + + iot_button_register_cb(handle, BUTTON_PRESS_DOWN, NULL, app_driver_button_toggle_cb, NULL); + iot_button_register_cb(handle, BUTTON_LONG_PRESS_START, NULL, app_driver_button_long_press_cb, NULL); + + return (app_driver_handle_t)handle; +} diff --git a/01_Source/matter-light-c6-wifi/main/app_main.cpp b/01_Source/matter-light-c6-wifi/main/app_main.cpp new file mode 100644 index 0000000..3639e5d --- /dev/null +++ b/01_Source/matter-light-c6-wifi/main/app_main.cpp @@ -0,0 +1,1305 @@ +/* + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include +#include +#include + +#include +#include + +#include + +#include +#include +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +#include +#endif + +#include + +#include +#include + +#include + +#include +#include + +#ifdef CONFIG_ENABLE_SET_CERT_DECLARATION_API +#include +#include +#ifdef CONFIG_SEC_CERT_DAC_PROVIDER +#include +#elif defined(CONFIG_FACTORY_PARTITION_DAC_PROVIDER) +#include +#endif +using namespace chip::DeviceLayer; +#endif + +static const char *TAG = "app_main"; +uint16_t rgb_light_endpoint_id = 0; +uint16_t cct_light_endpoint_id = 0; + +using namespace esp_matter; +using namespace esp_matter::attribute; +using namespace esp_matter::endpoint; +using namespace chip::app::Clusters; + +static void matter_set_onoff(uint16_t endpoint_id, bool on) +{ + attribute_t *attribute = attribute::get(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id); + if (!attribute) { + return; + } + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + val.val.b = on; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); +} + +static void matter_toggle_onoff(uint16_t endpoint_id) +{ + attribute_t *attribute = attribute::get(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id); + if (!attribute) { + return; + } + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + val.val.b = !val.val.b; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &val); +} + +static void matter_adjust_brightness(uint16_t endpoint_id, int delta) +{ + attribute_t *attribute = attribute::get(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + if (!attribute) { + return; + } + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + int level = static_cast(val.val.u8); + level += delta; + if (level < 0) { + level = 0; + } + if (level > MATTER_BRIGHTNESS) { + level = MATTER_BRIGHTNESS; + } + + val.val.u8 = static_cast(level); + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &val); +} + +static void matter_adjust_color_temperature_mireds(uint16_t endpoint_id, int delta) +{ + attribute_t *attribute = + attribute::get(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + if (!attribute) { + return; + } + + esp_matter_attr_val_t val = esp_matter_invalid(NULL); + attribute::get_val(attribute, &val); + + int mireds = static_cast(val.val.u16); + mireds += delta; + + // Try to clamp using physical min/max if present; fall back to common CCT range. + int min_mireds = 153; // ~6500K + int max_mireds = 500; // ~2000K + attribute_t *min_attr = + attribute::get(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMinMireds::Id); + attribute_t *max_attr = + attribute::get(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTempPhysicalMaxMireds::Id); + if (min_attr && max_attr) { + esp_matter_attr_val_t vmin = esp_matter_invalid(NULL); + esp_matter_attr_val_t vmax = esp_matter_invalid(NULL); + attribute::get_val(min_attr, &vmin); + attribute::get_val(max_attr, &vmax); + if (vmin.type == ESP_MATTER_VAL_TYPE_UINT16 && vmax.type == ESP_MATTER_VAL_TYPE_UINT16 && + vmin.val.u16 > 0 && vmax.val.u16 > 0 && vmin.val.u16 < vmax.val.u16) { + min_mireds = static_cast(vmin.val.u16); + max_mireds = static_cast(vmax.val.u16); + } + } + + if (mireds < min_mireds) { + mireds = min_mireds; + } + if (mireds > max_mireds) { + mireds = max_mireds; + } + + val.val.u16 = static_cast(mireds); + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id, &val); +} + +constexpr auto k_timeout_seconds = 300; + +namespace { + +enum EspNowCmd : uint8_t { + kEspNowCmdToggle = 0x01, + kEspNowCmdOn = 0x02, + kEspNowCmdBrightnessUp = 0x03, + kEspNowCmdBrightnessDown = 0x04, + kEspNowCmdOff = 0x05, + kEspNowCmdPairingConfirm = 0xA5, +}; +constexpr uint8_t kBrightnessStep = 20; + +static constexpr uint8_t kCctWarmCmd = kEspNowCmdBrightnessDown; +static constexpr uint8_t kCctCoolCmd = kEspNowCmdBrightnessUp; + +// Short/long inference for CCT endpoint brightness keys. +// Requires the remote to send repeated brightness commands while holding the key. +static constexpr uint32_t kCctLongPressRepeatGapMs = 900; +static constexpr uint8_t kCctLongPressMinRepeats = 3; +static constexpr uint32_t kCctShortPressGapMs = 350; +static constexpr uint32_t kCctPressReleaseGapMs = 1500; +static constexpr uint32_t kCctColorModeGapMs = 800; +static constexpr int kCctTempStepMireds = 10; + +static constexpr chip::GroupId kReadingSceneGroupId = 0x0000; +static constexpr chip::SceneId kReadingSceneId = 0x01; +static constexpr uint8_t kReadingRgbLevel = 180; +static constexpr uint8_t kReadingCctLevel = 180; +static constexpr uint16_t kReadingCctTempMireds = 370; + +static uint8_t s_cct_last_cmd = 0; +static uint8_t s_cct_repeat_count = 0; +static uint32_t s_cct_last_cmd_ms = 0; +static bool s_cct_brightness_applied = false; +static int s_cct_brightness_applied_delta = 0; + +static bool s_cct_color_mode_active = false; +static uint32_t s_cct_last_repeat_ms = 0; + +static bool s_suppress_driver_updates = false; +static bool s_reading_scene_stored_for_fabric[CHIP_CONFIG_MAX_FABRICS + 1] = { 0 }; + +static void store_reading_scene_for_fabric(intptr_t arg); + +static void store_reading_scenes_for_all_fabrics(intptr_t arg) +{ + (void)arg; + const auto & fabric_table = chip::Server::GetInstance().GetFabricTable(); + for (auto it = fabric_table.begin(); it != fabric_table.end(); ++it) { + const chip::FabricIndex fabric = it->GetFabricIndex(); + store_reading_scene_for_fabric((intptr_t) fabric); + } +} + +static void store_reading_scene_for_fabric(intptr_t arg) +{ + const chip::FabricIndex fabric = static_cast(arg); + if (fabric == chip::kUndefinedFabricIndex || fabric > CHIP_CONFIG_MAX_FABRICS) { + return; + } + if (s_reading_scene_stored_for_fabric[fabric]) { + return; + } + + auto store_for_endpoint = [&](uint16_t endpoint_id, bool with_color_temp) { + if (!endpoint_id) { + return; + } + // Require ScenesManagement cluster present. + if (!cluster::get(endpoint_id, ScenesManagement::Id)) { + ESP_LOGW(TAG, "ScenesManagement cluster missing on endpoint %u, skipping reading scene", (unsigned)endpoint_id); + return; + } + + attribute_t *onoff_attr = attribute::get(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id); + attribute_t *level_attr = attribute::get(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + if (!onoff_attr || !level_attr) { + ESP_LOGW(TAG, "Missing OnOff/LevelControl attributes on endpoint %u, skipping reading scene", (unsigned)endpoint_id); + return; + } + + esp_matter_attr_val_t prev_onoff = esp_matter_invalid(NULL); + esp_matter_attr_val_t prev_level = esp_matter_invalid(NULL); + attribute::get_val(onoff_attr, &prev_onoff); + attribute::get_val(level_attr, &prev_level); + + esp_matter_attr_val_t prev_temp = esp_matter_invalid(NULL); + attribute_t *temp_attr = nullptr; + if (with_color_temp) { + temp_attr = attribute::get(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + if (temp_attr) { + attribute::get_val(temp_attr, &prev_temp); + } + } + + s_suppress_driver_updates = true; + // Apply desired scene state to attributes (suppressed from affecting the physical driver). + esp_matter_attr_val_t v_onoff = prev_onoff; + v_onoff.val.b = true; + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &v_onoff); + + esp_matter_attr_val_t v_level = prev_level; + v_level.val.u8 = with_color_temp ? kReadingCctLevel : kReadingRgbLevel; + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &v_level); + + if (with_color_temp && temp_attr) { + esp_matter_attr_val_t v_temp = prev_temp; + v_temp.val.u16 = kReadingCctTempMireds; + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id, &v_temp); + } + + chip::app::Clusters::ScenesManagement::ScenesServer::Instance().StoreCurrentScene(fabric, endpoint_id, kReadingSceneGroupId, + kReadingSceneId); + + // Restore previous attribute values. + attribute::update(endpoint_id, OnOff::Id, OnOff::Attributes::OnOff::Id, &prev_onoff); + attribute::update(endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id, &prev_level); + if (with_color_temp && temp_attr) { + attribute::update(endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id, &prev_temp); + } + s_suppress_driver_updates = false; + }; + + store_for_endpoint(rgb_light_endpoint_id, false); + store_for_endpoint(cct_light_endpoint_id, true); + + s_reading_scene_stored_for_fabric[fabric] = true; + ESP_LOGI(TAG, "Reading scene stored: group=0 scene=1 for fabric %u", (unsigned)fabric); +} + +static void handle_brightness_key(uint8_t cmd) +{ + const uint32_t now_ms = esp_log_timestamp(); + + // If we are in color temperature mode, keep it active until we observe a real "release" gap. + // While in this mode, any incoming brightness key packets (up/down) are treated as temperature steps. + if (s_cct_color_mode_active) { + if ((now_ms - s_cct_last_repeat_ms) > kCctPressReleaseGapMs) { + s_cct_color_mode_active = false; + s_cct_repeat_count = 0; + s_cct_brightness_applied = false; + s_cct_brightness_applied_delta = 0; + } else { + s_cct_last_repeat_ms = now_ms; + if (cct_light_endpoint_id) { + if (cmd == kCctCoolCmd) { + matter_adjust_color_temperature_mireds(cct_light_endpoint_id, -kCctTempStepMireds); + } else if (cmd == kCctWarmCmd) { + matter_adjust_color_temperature_mireds(cct_light_endpoint_id, +kCctTempStepMireds); + } + } + return; + } + } + + // For short presses we want fast response: allow a new short press after a small gap. + const bool new_sequence = (cmd != s_cct_last_cmd) || ((now_ms - s_cct_last_cmd_ms) > kCctShortPressGapMs); + if (new_sequence) { + // New press: allow one brightness step again. + s_cct_last_cmd = cmd; + s_cct_repeat_count = 1; + s_cct_brightness_applied = false; + s_cct_brightness_applied_delta = 0; + } else { + // Same press: only count repeat if it is within the repeat gap. + if ((now_ms - s_cct_last_cmd_ms) <= kCctLongPressRepeatGapMs) { + if (s_cct_repeat_count < 255) { + s_cct_repeat_count++; + } + } + } + s_cct_last_cmd_ms = now_ms; + + if (!s_cct_color_mode_active && s_cct_repeat_count >= kCctLongPressMinRepeats) { + s_cct_color_mode_active = true; + s_cct_last_repeat_ms = now_ms; + if (s_cct_brightness_applied && s_cct_brightness_applied_delta != 0) { + if (rgb_light_endpoint_id) { + matter_adjust_brightness(rgb_light_endpoint_id, -s_cct_brightness_applied_delta); + } + if (cct_light_endpoint_id) { + matter_adjust_brightness(cct_light_endpoint_id, -s_cct_brightness_applied_delta); + } + s_cct_brightness_applied = false; + s_cct_brightness_applied_delta = 0; + } + ESP_LOGI(TAG, "CCT long press detected -> color temperature mode"); + } + + if (s_cct_color_mode_active) { + // Apply one temperature step immediately on the packet that triggers long-press. + s_cct_last_repeat_ms = now_ms; + if (cct_light_endpoint_id) { + if (cmd == kCctCoolCmd) { + matter_adjust_color_temperature_mireds(cct_light_endpoint_id, -kCctTempStepMireds); + } else if (cmd == kCctWarmCmd) { + matter_adjust_color_temperature_mireds(cct_light_endpoint_id, +kCctTempStepMireds); + } + } + return; + } + + // Short press: apply only one brightness step for both endpoints. + if (!s_cct_brightness_applied) { + if (cmd == kEspNowCmdBrightnessUp) { + s_cct_brightness_applied_delta = kBrightnessStep; + s_cct_brightness_applied = true; + if (rgb_light_endpoint_id) { + matter_adjust_brightness(rgb_light_endpoint_id, kBrightnessStep); + } + if (cct_light_endpoint_id) { + matter_adjust_brightness(cct_light_endpoint_id, kBrightnessStep); + } + } else if (cmd == kEspNowCmdBrightnessDown) { + s_cct_brightness_applied_delta = -static_cast(kBrightnessStep); + s_cct_brightness_applied = true; + if (rgb_light_endpoint_id) { + matter_adjust_brightness(rgb_light_endpoint_id, -static_cast(kBrightnessStep)); + } + if (cct_light_endpoint_id) { + matter_adjust_brightness(cct_light_endpoint_id, -static_cast(kBrightnessStep)); + } + } + } +} + +static constexpr uint8_t kBootsToPair = 5; +static constexpr uint8_t kBootsToFactoryReset = 3; +static constexpr uint32_t kBootWindowMs = 60000; // 60 seconds window for 3 reboots +static constexpr uint32_t kPairingConfirmDelayMs = 5000; +static constexpr char kBootNvsNamespace[] = "boot_config"; +static constexpr char kBootNvsKeyPair[] = "bootCount"; +static constexpr char kBootNvsKeyFactory[] = "bootCntFactory"; + +static constexpr uint32_t kPairingBeaconMagic = 0xABCDEF01; + +static bool s_espnow_inited = false; +static bool s_pairing_mode_active = false; +static bool s_boot_counter_reset_pending = false; +static bool s_factory_reset_pending = false; +static bool s_wifi_inited_for_espnow = false; +static bool s_matter_started = false; +static bool s_wifi_sta_connected = false; +static bool s_has_ipv4 = false; +static bool s_has_ipv6 = false; +static bool s_commissioned = false; +static bool s_commissioning_window_open = false; +static uint8_t g_espnow_channel = 1; +static esp_timer_handle_t s_boot_counter_reset_timer = nullptr; +static esp_timer_handle_t s_pairing_confirm_timer = nullptr; +static esp_timer_handle_t s_factory_reset_confirm_timer = nullptr; +static esp_timer_handle_t s_pairing_beacon_timer = nullptr; +static esp_timer_handle_t s_espnow_retry_timer = nullptr; + +static void espnow_try_init(); +static void factory_reset_work(intptr_t arg); + +struct EspNowCmdPacket { + uint8_t cmd; + uint8_t src_addr[6]; +}; + +static TaskHandle_t s_http_ota_task_handle = nullptr; + +static void http_ota_progress_cb(int progress) +{ + ESP_LOGI(TAG, "HTTP OTA progress: %d%%", progress); +} + +static void http_ota_task(void *arg) +{ + char *url = static_cast(arg); + OtaManager *ota = OtaManager::GetInstance(); + ota->init(); + ota->setProgressCallback(http_ota_progress_cb); + + if (!url) { + ESP_LOGE(TAG, "HTTP OTA: url is null"); + } else { + ESP_LOGW(TAG, "HTTP OTA starting: %s", url); + bool ok = ota->performOta(url, true); + if (!ok) { + ESP_LOGE(TAG, "HTTP OTA failed: %s", ota->getLastError().c_str()); + } + } + + if (url) { + free(url); + } + s_http_ota_task_handle = nullptr; + vTaskDelete(nullptr); +} + +static esp_err_t http_ota_dispatch(int argc, char **argv) +{ + if (argc < 1) { + ESP_LOGI(TAG, "Usage: matter esp ota "); + return ESP_OK; + } + if (s_http_ota_task_handle) { + ESP_LOGE(TAG, "HTTP OTA already running"); + return ESP_FAIL; + } + + char *url_copy = strdup(argv[0]); + if (!url_copy) { + ESP_LOGE(TAG, "HTTP OTA: strdup failed"); + return ESP_ERR_NO_MEM; + } + + BaseType_t ret = xTaskCreate(&http_ota_task, "http_ota", 16384, url_copy, 2, &s_http_ota_task_handle); + if (ret != pdPASS) { + ESP_LOGE(TAG, "HTTP OTA: failed to create task"); + free(url_copy); + s_http_ota_task_handle = nullptr; + return ESP_FAIL; + } + return ESP_OK; +} + +static void log_app_state(const char *reason) +{ + ESP_LOGW(TAG, + "[APP_STATE] %s matter=%d wifi_conn=%d ip4=%d ip6=%d commissioned=%d cw_open=%d espnow=%d ch=%u pairing=%d", + reason ? reason : "(null)", (int)s_matter_started, (int)s_wifi_sta_connected, (int)s_has_ipv4, + (int)s_has_ipv6, (int)s_commissioned, (int)s_commissioning_window_open, (int)s_espnow_inited, + (unsigned)g_espnow_channel, (int)s_pairing_mode_active); +} + +static void handle_espnow_cmd(intptr_t arg) +{ + EspNowCmdPacket *pkt = reinterpret_cast(arg); + if (!pkt) { + return; + } + + if (s_pairing_mode_active) { + if (pkt->cmd == kEspNowCmdPairingConfirm) { + ESP_LOGI(TAG, "ESP-NOW pairing confirmed (0xA5). Exiting pairing mode."); + s_pairing_mode_active = false; + if (s_pairing_beacon_timer) { + esp_timer_stop(s_pairing_beacon_timer); + } + } + free(pkt); + return; + } + + switch (pkt->cmd) { + case kEspNowCmdToggle: + if (rgb_light_endpoint_id) { + matter_toggle_onoff(rgb_light_endpoint_id); + } + if (cct_light_endpoint_id) { + matter_toggle_onoff(cct_light_endpoint_id); + } + break; + case kEspNowCmdOn: + if (rgb_light_endpoint_id) { + matter_set_onoff(rgb_light_endpoint_id, true); + } + if (cct_light_endpoint_id) { + matter_set_onoff(cct_light_endpoint_id, true); + } + break; + case kEspNowCmdOff: + if (rgb_light_endpoint_id) { + matter_set_onoff(rgb_light_endpoint_id, false); + } + if (cct_light_endpoint_id) { + matter_set_onoff(cct_light_endpoint_id, false); + } + break; + case kEspNowCmdBrightnessUp: + handle_brightness_key(pkt->cmd); + break; + case kEspNowCmdBrightnessDown: + handle_brightness_key(pkt->cmd); + break; + default: + break; + } + + free(pkt); +} + +static void espnow_recv_cb(const esp_now_recv_info_t *recv_info, const uint8_t *data, int len) +{ + if (!recv_info || !data || len < 1) { + return; + } + + ESP_LOGI(TAG, "ESP-NOW RX: cmd=0x%02X len=%d from %02X:%02X:%02X:%02X:%02X:%02X", data[0], len, recv_info->src_addr[0], + recv_info->src_addr[1], recv_info->src_addr[2], recv_info->src_addr[3], recv_info->src_addr[4], recv_info->src_addr[5]); + + EspNowCmdPacket *pkt = reinterpret_cast(calloc(1, sizeof(EspNowCmdPacket))); + if (!pkt) { + return; + } + pkt->cmd = data[0]; + memcpy(pkt->src_addr, recv_info->src_addr, sizeof(pkt->src_addr)); + + chip::DeviceLayer::PlatformMgr().ScheduleWork(handle_espnow_cmd, reinterpret_cast(pkt)); +} + +static void pairing_beacon_timer_cb(void *arg) +{ + (void)arg; + if (!s_pairing_mode_active || !s_espnow_inited) { + return; + } + + uint8_t bcast[6]; + memset(bcast, 0xFF, sizeof(bcast)); + uint32_t beacon = kPairingBeaconMagic; + esp_now_send(bcast, reinterpret_cast(&beacon), sizeof(beacon)); +} + +static void start_pairing_beacon() +{ + if (!s_espnow_inited) { + ESP_LOGW(TAG, "ESP-NOW not initialized yet, trying to init..."); + espnow_try_init(); + if (!s_espnow_inited) { + ESP_LOGE(TAG, "Failed to initialize ESP-NOW for pairing beacon"); + return; + } + } + + esp_now_peer_info_t broadcast_peer = {}; + memset(broadcast_peer.peer_addr, 0xFF, sizeof(broadcast_peer.peer_addr)); + broadcast_peer.channel = g_espnow_channel; + broadcast_peer.encrypt = false; + esp_now_add_peer(&broadcast_peer); + + esp_timer_create_args_t targs = { + .callback = &pairing_beacon_timer_cb, + .arg = nullptr, + .dispatch_method = ESP_TIMER_TASK, + .name = "espnow_beacon", + .skip_unhandled_events = true, + }; + if (!s_pairing_beacon_timer && esp_timer_create(&targs, &s_pairing_beacon_timer) == ESP_OK) { + esp_timer_start_periodic(s_pairing_beacon_timer, 200 * 1000); + } else if (s_pairing_beacon_timer) { + esp_timer_start_periodic(s_pairing_beacon_timer, 200 * 1000); + } +} + +extern "C" void app_enter_espnow_pairing_mode() +{ + if (s_pairing_mode_active) { + ESP_LOGW(TAG, "Already in ESP-NOW pairing mode"); + return; + } + s_pairing_mode_active = true; + ESP_LOGW(TAG, "\n\n>>> ESP-NOW PAIRING MODE ACTIVE (button long press) <<<\n"); + ESP_LOGW(TAG, "Broadcasting beacon 0x%08lX on channel %u", (unsigned long)kPairingBeaconMagic, (unsigned)g_espnow_channel); + start_pairing_beacon(); +} + +static void boot_counter_reset_timer_cb(void *arg) +{ + (void)arg; + if (!s_boot_counter_reset_pending) { + return; + } + + nvs_handle_t h; + if (nvs_open(kBootNvsNamespace, NVS_READWRITE, &h) == ESP_OK) { + nvs_set_u8(h, kBootNvsKeyPair, 0); + nvs_set_u8(h, kBootNvsKeyFactory, 0); + nvs_commit(h); + nvs_close(h); + } + s_boot_counter_reset_pending = false; + ESP_LOGW(TAG, ">>> bootCount RESET to 0 (30s window expired) <<<"); +} + +static void pairing_confirm_timer_cb(void *arg) +{ + (void)arg; + if (s_factory_reset_pending) { + return; + } + if (s_pairing_mode_active) { + return; + } + s_pairing_mode_active = true; + ESP_LOGW(TAG, "ESP-NOW pairing mode ACTIVE (power-cycle trigger)"); + + ESP_LOGW(TAG, "Broadcasting beacon 0x%08lX on channel %u", (unsigned long)kPairingBeaconMagic, (unsigned)g_espnow_channel); + start_pairing_beacon(); +} + +static void factory_reset_confirm_timer_cb(void *arg) +{ + (void)arg; + if (s_pairing_mode_active) { + return; + } + s_factory_reset_pending = true; + ESP_LOGW(TAG, "Factory reset CONFIRMED (power-cycle trigger)"); + + nvs_handle_t h; + if (nvs_open(kBootNvsNamespace, NVS_READWRITE, &h) == ESP_OK) { + nvs_set_u8(h, kBootNvsKeyPair, 0); + nvs_set_u8(h, kBootNvsKeyFactory, 0); + nvs_commit(h); + nvs_close(h); + } + + if (s_matter_started) { + chip::DeviceLayer::PlatformMgr().ScheduleWork(factory_reset_work, 0); + } +} + +static void pairing_boot_counter_init() +{ + bool schedule_factory_reset = false; + bool schedule_pairing = false; + uint8_t boot_count = 0; + + nvs_handle_t h; + const esp_err_t open_ret = nvs_open(kBootNvsNamespace, NVS_READWRITE, &h); + if (open_ret == ESP_OK) { + // Use a single boot counter to avoid pairing/factory reset conflicts. + esp_err_t get_ret = nvs_get_u8(h, kBootNvsKeyFactory, &boot_count); + esp_err_t get_pair_ret = ESP_OK; + if (get_ret != ESP_OK) { + get_pair_ret = nvs_get_u8(h, kBootNvsKeyPair, &boot_count); + if (get_pair_ret == ESP_OK) { + get_ret = get_pair_ret; + } + } + boot_count++; + + if (boot_count == kBootsToFactoryReset) { + schedule_factory_reset = true; + } else if (boot_count == kBootsToPair) { + schedule_pairing = true; + boot_count = 0; + } else if (boot_count > kBootsToPair) { + boot_count = 0; + } + + // Keep the legacy key in sync for compatibility with existing NVS content. + const esp_err_t set_pair_ret = nvs_set_u8(h, kBootNvsKeyPair, boot_count); + const esp_err_t set_factory_ret = nvs_set_u8(h, kBootNvsKeyFactory, boot_count); + const esp_err_t commit_ret = nvs_commit(h); + nvs_close(h); + + ESP_LOGW(TAG, + "\n\n>>> bootCount: %u (pair=%u, factory=%u, within %lu ms, nvs_get=%d, nvs_get_pair=%d, nvs_set_pair=%d, nvs_set_factory=%d, nvs_commit=%d) <<<\n", + (unsigned)boot_count, (unsigned)kBootsToPair, (unsigned)kBootsToFactoryReset, (unsigned long)kBootWindowMs, + (int)get_ret, (int)get_pair_ret, (int)set_pair_ret, (int)set_factory_ret, (int)commit_ret); + } else { + ESP_LOGE(TAG, "bootCount: nvs_open(%s) failed: %d", kBootNvsNamespace, (int)open_ret); + } + + s_boot_counter_reset_pending = (!schedule_factory_reset) && (boot_count > 0); + + if (schedule_factory_reset) { + esp_timer_create_args_t targs = { + .callback = &factory_reset_confirm_timer_cb, + .arg = nullptr, + .dispatch_method = ESP_TIMER_TASK, + .name = "fac_confirm", + .skip_unhandled_events = true, + }; + if (!s_factory_reset_confirm_timer && esp_timer_create(&targs, &s_factory_reset_confirm_timer) == ESP_OK) { + esp_timer_start_once(s_factory_reset_confirm_timer, (int64_t)kPairingConfirmDelayMs * 1000); + } else if (s_factory_reset_confirm_timer) { + esp_timer_stop(s_factory_reset_confirm_timer); + esp_timer_start_once(s_factory_reset_confirm_timer, (int64_t)kPairingConfirmDelayMs * 1000); + } + ESP_LOGW(TAG, "Factory reset will start in %lu ms if no further power-cycles occur", (unsigned long)kPairingConfirmDelayMs); + } else if (schedule_pairing) { + // Defer entering pairing mode to avoid conflict with an in-progress factory-reset power-cycle sequence. + esp_timer_create_args_t targs = { + .callback = &pairing_confirm_timer_cb, + .arg = nullptr, + .dispatch_method = ESP_TIMER_TASK, + .name = "pair_confirm", + .skip_unhandled_events = true, + }; + if (!s_pairing_confirm_timer && esp_timer_create(&targs, &s_pairing_confirm_timer) == ESP_OK) { + esp_timer_start_once(s_pairing_confirm_timer, (int64_t)kPairingConfirmDelayMs * 1000); + } else if (s_pairing_confirm_timer) { + esp_timer_stop(s_pairing_confirm_timer); + esp_timer_start_once(s_pairing_confirm_timer, (int64_t)kPairingConfirmDelayMs * 1000); + } + ESP_LOGW(TAG, "Pairing will start in %lu ms if no further power-cycles occur", (unsigned long)kPairingConfirmDelayMs); + } else if (s_boot_counter_reset_pending) { + esp_timer_create_args_t targs = { + .callback = &boot_counter_reset_timer_cb, + .arg = nullptr, + .dispatch_method = ESP_TIMER_TASK, + .name = "bootcnt_reset", + .skip_unhandled_events = true, + }; + if (!s_boot_counter_reset_timer && esp_timer_create(&targs, &s_boot_counter_reset_timer) == ESP_OK) { + esp_timer_start_once(s_boot_counter_reset_timer, (int64_t)kBootWindowMs * 1000); + } + } +} + +static void factory_reset_work(intptr_t arg) +{ + (void)arg; + ESP_LOGW(TAG, ">>> Performing factory reset (power-cycle trigger) <<<"); + esp_matter::factory_reset(); +} + +static void wifi_init_for_espnow() +{ + if (s_wifi_inited_for_espnow) { + return; + } + + wifi_mode_t mode = WIFI_MODE_NULL; + esp_err_t err = esp_wifi_get_mode(&mode); + + if (err == ESP_OK && mode != WIFI_MODE_NULL) { + uint8_t primary = 0; + wifi_second_chan_t second = WIFI_SECOND_CHAN_NONE; + esp_wifi_get_channel(&primary, &second); + + if (primary > 0) { + g_espnow_channel = primary; // Use Wi-Fi's current channel for ESP-NOW + ESP_LOGI(TAG, "Wi-Fi managed by Matter (mode=%d, channel=%u), ESP-NOW will use channel %u", (int)mode, primary, g_espnow_channel); + if (primary != 1) { + ESP_LOGW(TAG, ">>> Router channel is %u, remote must also use channel %u <<<", primary, primary); + } + } + + s_wifi_inited_for_espnow = true; + return; + } + + ESP_LOGI(TAG, "Wi-Fi not started by Matter yet, initializing for ESP-NOW (channel %u)", (unsigned)g_espnow_channel); + + err = esp_netif_init(); + if (err != ESP_OK && err != ESP_ERR_INVALID_STATE) { + ESP_LOGW(TAG, "esp_netif_init: %d", err); + } + + wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); + err = esp_wifi_init(&cfg); + if (err != ESP_OK && err != ESP_ERR_WIFI_INIT_STATE) { + ESP_LOGE(TAG, "esp_wifi_init failed: %d", err); + return; + } + + err = esp_wifi_set_mode(WIFI_MODE_STA); + if (err != ESP_OK) { + ESP_LOGE(TAG, "esp_wifi_set_mode failed: %d", err); + return; + } + + err = esp_wifi_start(); + if (err != ESP_OK) { + ESP_LOGE(TAG, "esp_wifi_start failed: %d", err); + return; + } + + err = esp_wifi_set_channel(g_espnow_channel, WIFI_SECOND_CHAN_NONE); + if (err != ESP_OK) { + ESP_LOGW(TAG, "esp_wifi_set_channel failed: %d", err); + } else { + ESP_LOGI(TAG, "Wi-Fi channel fixed to %u for ESP-NOW", (unsigned)g_espnow_channel); + } + + s_wifi_inited_for_espnow = true; +} + +static void espnow_try_init() +{ + if (s_espnow_inited) { + return; + } + + if (!s_wifi_inited_for_espnow) { + wifi_init_for_espnow(); + } + + wifi_mode_t mode = WIFI_MODE_NULL; + if (esp_wifi_get_mode(&mode) != ESP_OK || mode == WIFI_MODE_NULL) { + ESP_LOGW(TAG, "WiFi not ready yet (mode=%d), skip ESP-NOW init", (int)mode); + return; + } + + uint8_t primary = 0; + wifi_second_chan_t second = WIFI_SECOND_CHAN_NONE; + esp_err_t ch_err = esp_wifi_get_channel(&primary, &second); + if (ch_err == ESP_OK && primary > 0) { + g_espnow_channel = primary; // Always use current Wi-Fi channel + ESP_LOGI(TAG, "WiFi channel=%u, ESP-NOW will use this channel", primary); + } else { + ESP_LOGW(TAG, "esp_wifi_get_channel failed (err=%d), using default channel %u", (int)ch_err, g_espnow_channel); + } + + esp_err_t err = esp_now_init(); + if (err != ESP_OK && err != ESP_ERR_ESPNOW_EXIST) { + ESP_LOGE(TAG, "esp_now_init failed, err:%d", err); + return; + } + esp_now_register_recv_cb(espnow_recv_cb); + + if (s_pairing_mode_active) { + esp_now_peer_info_t broadcast_peer = {}; + memset(broadcast_peer.peer_addr, 0xFF, sizeof(broadcast_peer.peer_addr)); + broadcast_peer.channel = g_espnow_channel; + broadcast_peer.encrypt = false; + esp_now_add_peer(&broadcast_peer); + + esp_timer_create_args_t targs = { + .callback = &pairing_beacon_timer_cb, + .arg = nullptr, + .dispatch_method = ESP_TIMER_TASK, + .name = "espnow_beacon", + .skip_unhandled_events = true, + }; + if (!s_pairing_beacon_timer && esp_timer_create(&targs, &s_pairing_beacon_timer) == ESP_OK) { + esp_timer_start_periodic(s_pairing_beacon_timer, 200 * 1000); + } + } + + s_espnow_inited = true; + ESP_LOGI(TAG, "ESP-NOW RX initialized"); +} + +static void espnow_retry_timer_cb(void *arg) +{ + (void)arg; + if (!s_espnow_inited) { + espnow_try_init(); + } + if (s_espnow_inited && s_espnow_retry_timer) { + esp_timer_stop(s_espnow_retry_timer); + } +} + +static void wifi_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) +{ + (void)arg; + (void)event_data; + + if (event_base != WIFI_EVENT) { + return; + } + + ESP_LOGI(TAG, "WIFI_EVENT id=%ld", (long)event_id); + + // For Matter over Wi-Fi: wait until connected to init ESP-NOW with correct channel + if (event_id == WIFI_EVENT_STA_CONNECTED) { + s_wifi_sta_connected = true; + log_app_state("wifi_sta_connected"); + uint8_t primary = 0; + wifi_second_chan_t second = WIFI_SECOND_CHAN_NONE; + if (esp_wifi_get_channel(&primary, &second) == ESP_OK && primary > 0) { + g_espnow_channel = primary; + ESP_LOGI(TAG, "WiFi connected on channel %u, initializing ESP-NOW", primary); + if (primary != 1) { + ESP_LOGW(TAG, ">>> Remote must use channel %u (not 1) to work! <<<", primary); + } + } + // Initialize ESP-NOW after Wi-Fi is connected with correct channel + espnow_try_init(); + + // Start pairing beacon if in pairing mode + if (s_pairing_mode_active && s_espnow_inited) { + ESP_LOGW(TAG, "Starting ESP-NOW pairing beacon on channel %u", g_espnow_channel); + start_pairing_beacon(); + } + } + + if (event_id == WIFI_EVENT_STA_DISCONNECTED) { + s_wifi_sta_connected = false; + s_has_ipv4 = false; + s_has_ipv6 = false; + log_app_state("wifi_sta_disconnected"); + } + + // For AP mode (fallback) + if (event_id == WIFI_EVENT_AP_START) { + espnow_try_init(); + } +} + +static void ip_event_handler(void *arg, esp_event_base_t event_base, int32_t event_id, void *event_data) +{ + (void)arg; + if (event_base != IP_EVENT) { + return; + } + + if (event_id == IP_EVENT_STA_GOT_IP) { + s_has_ipv4 = true; + log_app_state("ip_sta_got_ipv4"); + } else if (event_id == IP_EVENT_STA_LOST_IP) { + s_has_ipv4 = false; + log_app_state("ip_sta_lost_ipv4"); + } else if (event_id == IP_EVENT_GOT_IP6) { + s_has_ipv6 = true; + log_app_state("ip_got_ipv6"); + } +#ifdef IP_EVENT_LOST_IP6 + else if (event_id == IP_EVENT_LOST_IP6) { + s_has_ipv6 = false; + log_app_state("ip_lost_ipv6"); + } else { + (void)event_data; + } +#else + else { + (void)event_data; + } +#endif +} + +} // namespace + +#ifdef CONFIG_ENABLE_SET_CERT_DECLARATION_API +extern const uint8_t cd_start[] asm("_binary_certification_declaration_der_start"); +extern const uint8_t cd_end[] asm("_binary_certification_declaration_der_end"); + +const chip::ByteSpan cdSpan(cd_start, static_cast(cd_end - cd_start)); +#endif // CONFIG_ENABLE_SET_CERT_DECLARATION_API + +#if CONFIG_ENABLE_ENCRYPTED_OTA +extern const char decryption_key_start[] asm("_binary_esp_image_encryption_key_pem_start"); +extern const char decryption_key_end[] asm("_binary_esp_image_encryption_key_pem_end"); + +static const char *s_decryption_key = decryption_key_start; +static const uint16_t s_decryption_key_len = decryption_key_end - decryption_key_start; +#endif // CONFIG_ENABLE_ENCRYPTED_OTA + +static void app_event_cb(const ChipDeviceEvent *event, intptr_t arg) +{ + switch (event->Type) { + case chip::DeviceLayer::DeviceEventType::kInterfaceIpAddressChanged: + ESP_LOGI(TAG, "Interface IP Address changed"); + log_app_state("chip_if_ip_changed"); + break; + + case chip::DeviceLayer::DeviceEventType::kServerReady: + ESP_LOGI(TAG, "Server initialization complete"); + chip::DeviceLayer::PlatformMgr().ScheduleWork(store_reading_scenes_for_all_fabrics, 0); + break; + + case chip::DeviceLayer::DeviceEventType::kCommissioningComplete: + ESP_LOGI(TAG, "Commissioning complete"); + s_commissioned = true; + log_app_state("commissioning_complete"); + MEMORY_PROFILER_DUMP_HEAP_STAT("commissioning complete"); + break; + + case chip::DeviceLayer::DeviceEventType::kFailSafeTimerExpired: + ESP_LOGI(TAG, "Commissioning failed, fail safe timer expired"); + break; + + case chip::DeviceLayer::DeviceEventType::kCommissioningSessionStarted: + ESP_LOGI(TAG, "Commissioning session started"); + log_app_state("commissioning_session_started"); + break; + + case chip::DeviceLayer::DeviceEventType::kCommissioningSessionStopped: + ESP_LOGI(TAG, "Commissioning session stopped"); + log_app_state("commissioning_session_stopped"); + break; + + case chip::DeviceLayer::DeviceEventType::kCommissioningWindowOpened: + ESP_LOGI(TAG, "Commissioning window opened"); + s_commissioning_window_open = true; + s_commissioned = false; + log_app_state("commissioning_window_opened"); + MEMORY_PROFILER_DUMP_HEAP_STAT("commissioning window opened"); + break; + + case chip::DeviceLayer::DeviceEventType::kCommissioningWindowClosed: + ESP_LOGI(TAG, "Commissioning window closed"); + s_commissioning_window_open = false; + log_app_state("commissioning_window_closed"); + break; + + case chip::DeviceLayer::DeviceEventType::kFabricRemoved: + { + ESP_LOGI(TAG, "Fabric removed successfully"); + s_commissioned = false; + log_app_state("fabric_removed"); + if (chip::Server::GetInstance().GetFabricTable().FabricCount() == 0) + { + chip::CommissioningWindowManager & commissionMgr = chip::Server::GetInstance().GetCommissioningWindowManager(); + constexpr auto kTimeoutSeconds = chip::System::Clock::Seconds16(k_timeout_seconds); + if (!commissionMgr.IsCommissioningWindowOpen()) + { + /* After removing last fabric, this example does not remove the Wi-Fi credentials + * and still has IP connectivity so, only advertising on DNS-SD. + */ + CHIP_ERROR err = commissionMgr.OpenBasicCommissioningWindow(kTimeoutSeconds, + chip::CommissioningWindowAdvertisement::kDnssdOnly); + if (err != CHIP_NO_ERROR) + { + ESP_LOGE(TAG, "Failed to open commissioning window, err:%" CHIP_ERROR_FORMAT, err.Format()); + } + } + } + break; + } + + case chip::DeviceLayer::DeviceEventType::kFabricWillBeRemoved: + ESP_LOGI(TAG, "Fabric will be removed"); + log_app_state("fabric_will_be_removed"); + break; + + case chip::DeviceLayer::DeviceEventType::kFabricUpdated: + ESP_LOGI(TAG, "Fabric is updated"); + log_app_state("fabric_updated"); + break; + + case chip::DeviceLayer::DeviceEventType::kFabricCommitted: + ESP_LOGI(TAG, "Fabric is committed"); + s_commissioned = true; + log_app_state("fabric_committed"); + chip::DeviceLayer::PlatformMgr().ScheduleWork(store_reading_scenes_for_all_fabrics, 0); + break; + + case chip::DeviceLayer::DeviceEventType::kBLEDeinitialized: + ESP_LOGI(TAG, "BLE deinitialized and memory reclaimed"); + log_app_state("ble_deinit"); + MEMORY_PROFILER_DUMP_HEAP_STAT("BLE deinitialized"); + break; + + default: + break; + } +} + +static esp_err_t app_identification_cb(identification::callback_type_t type, uint16_t endpoint_id, uint8_t effect_id, + uint8_t effect_variant, void *priv_data) +{ + ESP_LOGI(TAG, "Identification callback: type: %u, effect: %u, variant: %u", type, effect_id, effect_variant); + return ESP_OK; +} + +static esp_err_t app_attribute_update_cb(attribute::callback_type_t type, uint16_t endpoint_id, uint32_t cluster_id, + uint32_t attribute_id, esp_matter_attr_val_t *val, void *priv_data) +{ + esp_err_t err = ESP_OK; + + if (type == PRE_UPDATE) { + /* Driver update */ + app_driver_handle_t driver_handle = (app_driver_handle_t)priv_data; + if (!s_suppress_driver_updates) { + err = app_driver_attribute_update(driver_handle, endpoint_id, cluster_id, attribute_id, val); + } + } + + return err; +} + +#if CONFIG_ENABLE_OTA_REQUESTOR +static void ota_requestor_start_work(intptr_t arg) +{ + (void) arg; + esp_matter_ota_requestor_start(); +} +#endif + +extern "C" void app_main() +{ + esp_err_t err = ESP_OK; + + /* Initialize the ESP NVS layer */ + err = nvs_flash_init(); + if (err != ESP_OK) { + ESP_LOGE(TAG, "nvs_flash_init failed: %d", (int)err); + } + + pairing_boot_counter_init(); + + MEMORY_PROFILER_DUMP_HEAP_STAT("Bootup"); + + /* Initialize light drivers (button init deferred until after Matter start) */ + app_driver_handle_t rgb_light_handle = app_driver_rgb_light_init(); + app_driver_handle_t cct_light_handle = app_driver_cct_light_init(); + + /* Create a Matter node and add the mandatory Root Node device type on endpoint 0 */ + node::config_t node_config; + + // node handle can be used to add/modify other endpoints. + node_t *node = node::create(&node_config, app_attribute_update_cb, app_identification_cb); + ABORT_APP_ON_FAILURE(node != nullptr, ESP_LOGE(TAG, "Failed to create Matter node")); + +#if CONFIG_ENABLE_OTA_REQUESTOR + err = esp_matter_ota_requestor_init(); + ABORT_APP_ON_FAILURE(err == ESP_OK || err == ESP_ERR_NOT_SUPPORTED, + ESP_LOGE(TAG, "Failed to init OTA Requestor, err:%d", (int)err)); +#endif + + MEMORY_PROFILER_DUMP_HEAP_STAT("node created"); + + dimmable_light::config_t rgb_light_config; + rgb_light_config.on_off.on_off = DEFAULT_POWER; + rgb_light_config.on_off_lighting.start_up_on_off = nullptr; + rgb_light_config.level_control.current_level = DEFAULT_BRIGHTNESS; + rgb_light_config.level_control.on_level = DEFAULT_BRIGHTNESS; + rgb_light_config.level_control_lighting.start_up_current_level = DEFAULT_BRIGHTNESS; + + // endpoint handles can be used to add/modify clusters. + endpoint_t *endpoint = dimmable_light::create(node, &rgb_light_config, ENDPOINT_FLAG_NONE, rgb_light_handle); + ABORT_APP_ON_FAILURE(endpoint != nullptr, ESP_LOGE(TAG, "Failed to create dimmable light endpoint")); + + rgb_light_endpoint_id = endpoint::get_id(endpoint); + ESP_LOGI(TAG, "RGB light created with endpoint_id %d", rgb_light_endpoint_id); + + color_temperature_light::config_t cct_light_config; + cct_light_config.on_off.on_off = DEFAULT_POWER; + cct_light_config.on_off_lighting.start_up_on_off = nullptr; + cct_light_config.level_control.current_level = DEFAULT_BRIGHTNESS; + cct_light_config.level_control.on_level = DEFAULT_BRIGHTNESS; + cct_light_config.level_control_lighting.start_up_current_level = DEFAULT_BRIGHTNESS; + cct_light_config.color_control.color_mode = (uint8_t)ColorControl::ColorMode::kColorTemperature; + cct_light_config.color_control.enhanced_color_mode = (uint8_t)ColorControl::ColorMode::kColorTemperature; + cct_light_config.color_control_color_temperature.start_up_color_temperature_mireds = nullptr; + + endpoint = color_temperature_light::create(node, &cct_light_config, ENDPOINT_FLAG_NONE, cct_light_handle); + ABORT_APP_ON_FAILURE(endpoint != nullptr, ESP_LOGE(TAG, "Failed to create color temperature light endpoint")); + + cct_light_endpoint_id = endpoint::get_id(endpoint); + ESP_LOGI(TAG, "CCT light created with endpoint_id %d", cct_light_endpoint_id); + + /* Mark deferred persistence for some attributes that might be changed rapidly */ + attribute_t *current_level_attribute = attribute::get(rgb_light_endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + attribute::set_deferred_persistence(current_level_attribute); + + current_level_attribute = attribute::get(cct_light_endpoint_id, LevelControl::Id, LevelControl::Attributes::CurrentLevel::Id); + attribute::set_deferred_persistence(current_level_attribute); + + attribute_t *color_temp_attribute = attribute::get(cct_light_endpoint_id, ColorControl::Id, ColorControl::Attributes::ColorTemperatureMireds::Id); + attribute::set_deferred_persistence(color_temp_attribute); + +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD && CHIP_DEVICE_CONFIG_ENABLE_WIFI_STATION + // Enable secondary network interface + secondary_network_interface::config_t secondary_network_interface_config; + endpoint = endpoint::secondary_network_interface::create(node, &secondary_network_interface_config, ENDPOINT_FLAG_NONE, nullptr); + ABORT_APP_ON_FAILURE(endpoint != nullptr, ESP_LOGE(TAG, "Failed to create secondary network interface endpoint")); +#endif + +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD + /* Set OpenThread platform config */ + esp_openthread_platform_config_t config = { + .radio_config = ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG(), + .host_config = ESP_OPENTHREAD_DEFAULT_HOST_CONFIG(), + .port_config = ESP_OPENTHREAD_DEFAULT_PORT_CONFIG(), + }; + set_openthread_platform_config(&config); +#endif + +#ifdef CONFIG_ENABLE_SET_CERT_DECLARATION_API + auto * dac_provider = get_dac_provider(); +#ifdef CONFIG_SEC_CERT_DAC_PROVIDER + static_cast(dac_provider)->SetCertificationDeclaration(cdSpan); +#elif defined(CONFIG_FACTORY_PARTITION_DAC_PROVIDER) + static_cast(dac_provider)->SetCertificationDeclaration(cdSpan); +#endif +#endif // CONFIG_ENABLE_SET_CERT_DECLARATION_API + + /* Matter start */ + err = esp_matter::start(app_event_cb); + ABORT_APP_ON_FAILURE(err == ESP_OK, ESP_LOGE(TAG, "Failed to start Matter, err:%d", err)); + +#if CONFIG_ENABLE_OTA_REQUESTOR + chip::DeviceLayer::PlatformMgr().ScheduleWork(ota_requestor_start_work, 0); +#endif + + s_matter_started = true; + log_app_state("matter_started"); + + if (s_factory_reset_pending) { + s_factory_reset_pending = false; + chip::DeviceLayer::PlatformMgr().ScheduleWork(factory_reset_work, 0); + while (true) { + vTaskDelay(1000 / portTICK_PERIOD_MS); + } + } + + PrintOnboardingCodes(chip::RendezvousInformationFlags(chip::RendezvousInformationFlag::kBLE)); + + /* Initialize Wi-Fi for ESP-NOW (independent of Matter, fixed channel 1) */ + wifi_init_for_espnow(); + espnow_try_init(); + + log_app_state("after_espnow_init"); + + err = esp_event_handler_register(WIFI_EVENT, ESP_EVENT_ANY_ID, &wifi_event_handler, nullptr); + if (err != ESP_OK) { + ESP_LOGE(TAG, "esp_event_handler_register(WIFI_EVENT) failed, err:%d", (int)err); + } + + err = esp_event_handler_register(IP_EVENT, ESP_EVENT_ANY_ID, &ip_event_handler, nullptr); + if (err != ESP_OK) { + ESP_LOGE(TAG, "esp_event_handler_register(IP_EVENT) failed, err:%d", (int)err); + } + + MEMORY_PROFILER_DUMP_HEAP_STAT("matter started"); + + /* Initialize button after Matter is ready to avoid callback crash */ + app_driver_handle_t button_handle = app_driver_button_init(); + app_reset_button_register(button_handle); + + /* Starting driver with default values */ + app_driver_light_set_defaults(rgb_light_endpoint_id); + app_driver_light_set_defaults(cct_light_endpoint_id); + +#if CONFIG_ENABLE_ENCRYPTED_OTA + err = esp_matter_ota_requestor_encrypted_init(s_decryption_key, s_decryption_key_len); + ABORT_APP_ON_FAILURE(err == ESP_OK, ESP_LOGE(TAG, "Failed to initialized the encrypted OTA, err: %d", err)); +#endif // CONFIG_ENABLE_ENCRYPTED_OTA + +#if CONFIG_ENABLE_CHIP_SHELL + esp_matter::console::diagnostics_register_commands(); + esp_matter::console::wifi_register_commands(); + esp_matter::console::factoryreset_register_commands(); + esp_matter::console::attribute_register_commands(); +#if CONFIG_OPENTHREAD_CLI + esp_matter::console::otcli_register_commands(); +#endif + + static const esp_matter::console::command_t ota_cmd = { + .name = "ota", + .description = "Start HTTP OTA. Usage: matter esp ota ", + .handler = http_ota_dispatch, + }; + esp_matter::console::add_commands(&ota_cmd, 1); + + esp_matter::console::init(); +#endif + + while (true) { + MEMORY_PROFILER_DUMP_HEAP_STAT("Idle"); + vTaskDelay(10000 / portTICK_PERIOD_MS); + } +} diff --git a/01_Source/matter-light-c6-wifi/main/app_priv.h b/01_Source/matter-light-c6-wifi/main/app_priv.h new file mode 100644 index 0000000..0f864be --- /dev/null +++ b/01_Source/matter-light-c6-wifi/main/app_priv.h @@ -0,0 +1,114 @@ +/* + This example code is in the Public Domain (or CC0 licensed, at your option.) + + Unless required by applicable law or agreed to in writing, this + software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. +*/ + +#pragma once + +#include +#include + +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +#include "esp_openthread_types.h" +#endif + +/** Standard max values (used for remapping attributes) */ +#define STANDARD_BRIGHTNESS 100 +#define STANDARD_HUE 360 +#define STANDARD_SATURATION 100 +#define STANDARD_TEMPERATURE_FACTOR 1000000 + +/** Matter max values (used for remapping attributes) */ +#define MATTER_BRIGHTNESS 254 +#define MATTER_HUE 254 +#define MATTER_SATURATION 254 +#define MATTER_TEMPERATURE_FACTOR 1000000 + +/** Default attribute values used during initialization */ +#define DEFAULT_POWER true +#define DEFAULT_BRIGHTNESS 64 +#define DEFAULT_HUE 128 +#define DEFAULT_SATURATION 254 + +typedef void *app_driver_handle_t; + +/** Initialize the light driver + * + * This initializes the light driver associated with the selected board. + * + * @return Handle on success. + * @return NULL in case of failure. + */ +app_driver_handle_t app_driver_light_init(); + +app_driver_handle_t app_driver_rgb_light_init(); + +app_driver_handle_t app_driver_cct_light_init(); + +/** Initialize the button driver + * + * This initializes the button driver associated with the selected board. + * + * @return Handle on success. + * @return NULL in case of failure. + */ +app_driver_handle_t app_driver_button_init(); + +/** Enter ESP-NOW pairing mode + * + * Called from button long press callback to enter ESP-NOW pairing mode. + */ +#ifdef __cplusplus +extern "C" { +#endif +void app_enter_espnow_pairing_mode(); +#ifdef __cplusplus +} +#endif + +/** Driver Update + * + * This API should be called to update the driver for the attribute being updated. + * This is usually called from the common `app_attribute_update_cb()`. + * + * @param[in] endpoint_id Endpoint ID of the attribute. + * @param[in] cluster_id Cluster ID of the attribute. + * @param[in] attribute_id Attribute ID of the attribute. + * @param[in] val Pointer to `esp_matter_attr_val_t`. Use appropriate elements as per the value type. + * + * @return ESP_OK on success. + * @return error in case of failure. + */ +esp_err_t app_driver_attribute_update(app_driver_handle_t driver_handle, uint16_t endpoint_id, uint32_t cluster_id, + uint32_t attribute_id, esp_matter_attr_val_t *val); + +/** Set defaults for light driver + * + * Set the attribute drivers to their default values from the created data model. + * + * @param[in] endpoint_id Endpoint ID of the driver. + * + * @return ESP_OK on success. + * @return error in case of failure. + */ +esp_err_t app_driver_light_set_defaults(uint16_t endpoint_id); + +#if CHIP_DEVICE_CONFIG_ENABLE_THREAD +#define ESP_OPENTHREAD_DEFAULT_RADIO_CONFIG() \ + { \ + .radio_mode = RADIO_MODE_NATIVE, \ + } + +#define ESP_OPENTHREAD_DEFAULT_HOST_CONFIG() \ + { \ + .host_connection_mode = HOST_CONNECTION_MODE_NONE, \ + } + +#define ESP_OPENTHREAD_DEFAULT_PORT_CONFIG() \ + { \ + .storage_partition_name = "nvs", .netif_queue_size = 10, .task_queue_size = 10, \ + } +#endif diff --git a/01_Source/matter-light-c6-wifi/main/certification_declaration/certification_declaration.der b/01_Source/matter-light-c6-wifi/main/certification_declaration/certification_declaration.der new file mode 100644 index 0000000..13497da Binary files /dev/null and b/01_Source/matter-light-c6-wifi/main/certification_declaration/certification_declaration.der differ diff --git a/01_Source/matter-light-c6-wifi/main/idf_component.yml b/01_Source/matter-light-c6-wifi/main/idf_component.yml new file mode 100644 index 0000000..cc568c6 --- /dev/null +++ b/01_Source/matter-light-c6-wifi/main/idf_component.yml @@ -0,0 +1,6 @@ +dependencies: + espressif/cmake_utilities: + version: "^1" + rules: # will add "optional_component" only when all if clauses are True + - if: "idf_version >=5.0" + - if: "target in [esp32c2]" diff --git a/01_Source/matter-light-c6-wifi/partitions.csv b/01_Source/matter-light-c6-wifi/partitions.csv new file mode 100644 index 0000000..d011d6f --- /dev/null +++ b/01_Source/matter-light-c6-wifi/partitions.csv @@ -0,0 +1,10 @@ +# Name, Type, SubType, Offset, Size, Flags +# Note: Firmware partition offset needs to be 64K aligned, initial 36K (9 sectors) are reserved for bootloader and partition table +# Thread + Matter + ESP-NOW firmware requires ~2MB, using single factory partition for development +esp_secure_cert, 0x3F, ,0xd000, 0x2000, encrypted +nvs, data, nvs, 0x10000, 0xC000, +otadata, data, ota, 0x1C000, 0x2000, +nvs_keys, data, nvs_keys,0x1E000, 0x1000, encrypted +phy_init, data, phy, 0x1F000, 0x1000, +ota_0, app, ota_0, 0x20000, 0x600000, +ota_1, app, ota_1, 0x620000, 0x600000 diff --git a/01_Source/matter-light-c6-wifi/sdkconfig b/01_Source/matter-light-c6-wifi/sdkconfig new file mode 100644 index 0000000..d4c817d --- /dev/null +++ b/01_Source/matter-light-c6-wifi/sdkconfig @@ -0,0 +1,3292 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) 5.5.1 Project Configuration +# +CONFIG_SOC_ADC_SUPPORTED=y +CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y +CONFIG_SOC_UART_SUPPORTED=y +CONFIG_SOC_UHCI_SUPPORTED=y +CONFIG_SOC_GDMA_SUPPORTED=y +CONFIG_SOC_AHB_GDMA_SUPPORTED=y +CONFIG_SOC_GPTIMER_SUPPORTED=y +CONFIG_SOC_PCNT_SUPPORTED=y +CONFIG_SOC_MCPWM_SUPPORTED=y +CONFIG_SOC_TWAI_SUPPORTED=y +CONFIG_SOC_ETM_SUPPORTED=y +CONFIG_SOC_PARLIO_SUPPORTED=y +CONFIG_SOC_BT_SUPPORTED=y +CONFIG_SOC_IEEE802154_SUPPORTED=y +CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y +CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y +CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y +CONFIG_SOC_PHY_SUPPORTED=y +CONFIG_SOC_WIFI_SUPPORTED=y +CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y +CONFIG_SOC_ULP_SUPPORTED=y +CONFIG_SOC_LP_CORE_SUPPORTED=y +CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y +CONFIG_SOC_EFUSE_SUPPORTED=y +CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y +CONFIG_SOC_RTC_MEM_SUPPORTED=y +CONFIG_SOC_I2S_SUPPORTED=y +CONFIG_SOC_RMT_SUPPORTED=y +CONFIG_SOC_SDM_SUPPORTED=y +CONFIG_SOC_GPSPI_SUPPORTED=y +CONFIG_SOC_LEDC_SUPPORTED=y +CONFIG_SOC_I2C_SUPPORTED=y +CONFIG_SOC_SYSTIMER_SUPPORTED=y +CONFIG_SOC_SUPPORT_COEXISTENCE=y +CONFIG_SOC_AES_SUPPORTED=y +CONFIG_SOC_MPI_SUPPORTED=y +CONFIG_SOC_SHA_SUPPORTED=y +CONFIG_SOC_HMAC_SUPPORTED=y +CONFIG_SOC_DIG_SIGN_SUPPORTED=y +CONFIG_SOC_ECC_SUPPORTED=y +CONFIG_SOC_FLASH_ENC_SUPPORTED=y +CONFIG_SOC_SECURE_BOOT_SUPPORTED=y +CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y +CONFIG_SOC_BOD_SUPPORTED=y +CONFIG_SOC_APM_SUPPORTED=y +CONFIG_SOC_PMU_SUPPORTED=y +CONFIG_SOC_PAU_SUPPORTED=y +CONFIG_SOC_LP_TIMER_SUPPORTED=y +CONFIG_SOC_LP_AON_SUPPORTED=y +CONFIG_SOC_LP_PERIPHERALS_SUPPORTED=y +CONFIG_SOC_LP_I2C_SUPPORTED=y +CONFIG_SOC_ULP_LP_UART_SUPPORTED=y +CONFIG_SOC_CLK_TREE_SUPPORTED=y +CONFIG_SOC_ASSIST_DEBUG_SUPPORTED=y +CONFIG_SOC_WDT_SUPPORTED=y +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +CONFIG_SOC_RNG_SUPPORTED=y +CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y +CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y +CONFIG_SOC_MODEM_CLOCK_SUPPORTED=y +CONFIG_SOC_PM_SUPPORTED=y +CONFIG_SOC_XTAL_SUPPORT_40M=y +CONFIG_SOC_XTAL_CLOCK_PATH_DEPENDS_ON_TOP_DOMAIN=y +CONFIG_SOC_AES_SUPPORT_DMA=y +CONFIG_SOC_AES_GDMA=y +CONFIG_SOC_AES_SUPPORT_AES_128=y +CONFIG_SOC_AES_SUPPORT_AES_256=y +CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y +CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y +CONFIG_SOC_ADC_MONITOR_SUPPORTED=y +CONFIG_SOC_ADC_DMA_SUPPORTED=y +CONFIG_SOC_ADC_PERIPH_NUM=1 +CONFIG_SOC_ADC_MAX_CHANNEL_NUM=7 +CONFIG_SOC_ADC_ATTEN_NUM=4 +CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1 +CONFIG_SOC_ADC_PATT_LEN_MAX=8 +CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 +CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 +CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 +CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 +CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 +CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y +CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y +CONFIG_SOC_ADC_CALIB_CHAN_COMPENS_SUPPORTED=y +CONFIG_SOC_ADC_TEMPERATURE_SHARE_INTR=y +CONFIG_SOC_ADC_SHARED_POWER=y +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y +CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y +CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y +CONFIG_SOC_CPU_CORES_NUM=1 +CONFIG_SOC_CPU_INTR_NUM=32 +CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y +CONFIG_SOC_INT_PLIC_SUPPORTED=y +CONFIG_SOC_CPU_HAS_CSR_PC=y +CONFIG_SOC_CPU_BREAKPOINTS_NUM=4 +CONFIG_SOC_CPU_WATCHPOINTS_NUM=4 +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x80000000 +CONFIG_SOC_CPU_HAS_PMA=y +CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y +CONFIG_SOC_CPU_PMP_REGION_GRANULARITY=4 +CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072 +CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 +CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 +CONFIG_SOC_AHB_GDMA_VERSION=1 +CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 +CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=3 +CONFIG_SOC_GDMA_SUPPORT_ETM=y +CONFIG_SOC_GDMA_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_ETM_GROUPS=1 +CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50 +CONFIG_SOC_ETM_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_GPIO_PORT=1 +CONFIG_SOC_GPIO_PIN_COUNT=31 +CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y +CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8 +CONFIG_SOC_GPIO_SUPPORT_ETM=y +CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y +CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y +CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y +CONFIG_SOC_GPIO_IN_RANGE_MAX=30 +CONFIG_SOC_GPIO_OUT_RANGE_MAX=30 +CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0 +CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT=8 +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00 +CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y +CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y +CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y +CONFIG_SOC_GPIO_CLOCKOUT_BY_GPIO_MATRIX=y +CONFIG_SOC_CLOCKOUT_HAS_SOURCE_GATE=y +CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +CONFIG_SOC_RTCIO_PIN_COUNT=8 +CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y +CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y +CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y +CONFIG_SOC_RTCIO_EDGE_WAKE_SUPPORTED=y +CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 +CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 +CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y +CONFIG_SOC_I2C_NUM=2 +CONFIG_SOC_HP_I2C_NUM=1 +CONFIG_SOC_I2C_FIFO_LEN=32 +CONFIG_SOC_I2C_CMD_REG_NUM=8 +CONFIG_SOC_I2C_SUPPORT_SLAVE=y +CONFIG_SOC_I2C_SUPPORT_HW_FSM_RST=y +CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y +CONFIG_SOC_I2C_SUPPORT_XTAL=y +CONFIG_SOC_I2C_SUPPORT_RTC=y +CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y +CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y +CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y +CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y +CONFIG_SOC_I2C_SLAVE_SUPPORT_SLAVE_UNMATCH=y +CONFIG_SOC_I2C_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_LP_I2C_NUM=1 +CONFIG_SOC_LP_I2C_FIFO_LEN=16 +CONFIG_SOC_I2S_NUM=1 +CONFIG_SOC_I2S_HW_VERSION_2=y +CONFIG_SOC_I2S_SUPPORTS_ETM=y +CONFIG_SOC_I2S_SUPPORTS_XTAL=y +CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y +CONFIG_SOC_I2S_SUPPORTS_PCM=y +CONFIG_SOC_I2S_SUPPORTS_PDM=y +CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y +CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 +CONFIG_SOC_I2S_SUPPORTS_TDM=y +CONFIG_SOC_I2S_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y +CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y +CONFIG_SOC_LEDC_TIMER_NUM=4 +CONFIG_SOC_LEDC_CHANNEL_NUM=6 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y +CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y +CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16 +CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10 +CONFIG_SOC_LEDC_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MMU_PAGE_SIZE_CONFIGURABLE=y +CONFIG_SOC_MMU_PAGE_SIZE_8KB_SUPPORTED=y +CONFIG_SOC_MMU_PERIPH_NUM=1 +CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 +CONFIG_SOC_MMU_DI_VADDR_SHARED=y +CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 +CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 +CONFIG_SOC_PCNT_GROUPS=1 +CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 +CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 +CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 +CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y +CONFIG_SOC_PCNT_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_RMT_GROUPS=1 +CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2 +CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2 +CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4 +CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 +CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y +CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y +CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y +CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y +CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y +CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y +CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y +CONFIG_SOC_RMT_SUPPORT_XTAL=y +CONFIG_SOC_RMT_SUPPORT_RC_FAST=y +CONFIG_SOC_RMT_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MCPWM_GROUPS=1 +CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 +CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 +CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y +CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 +CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y +CONFIG_SOC_MCPWM_SUPPORT_ETM=y +CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y +CONFIG_SOC_MCPWM_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_PARLIO_GROUPS=1 +CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1 +CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1 +CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=16 +CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=16 +CONFIG_SOC_PARLIO_TX_RX_SHARE_INTERRUPT=y +CONFIG_SOC_PARLIO_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +CONFIG_SOC_MPI_OPERATIONS_NUM=3 +CONFIG_SOC_RSA_MAX_BIT_LEN=3072 +CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 +CONFIG_SOC_SHA_SUPPORT_DMA=y +CONFIG_SOC_SHA_SUPPORT_RESUME=y +CONFIG_SOC_SHA_GDMA=y +CONFIG_SOC_SHA_SUPPORT_SHA1=y +CONFIG_SOC_SHA_SUPPORT_SHA224=y +CONFIG_SOC_SHA_SUPPORT_SHA256=y +CONFIG_SOC_SDM_GROUPS=1 +CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4 +CONFIG_SOC_SDM_CLK_SUPPORT_PLL_F80M=y +CONFIG_SOC_SDM_CLK_SUPPORT_XTAL=y +CONFIG_SOC_SPI_PERIPH_NUM=2 +CONFIG_SOC_SPI_MAX_CS_NUM=6 +CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 +CONFIG_SOC_SPI_SUPPORT_DDRCLK=y +CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y +CONFIG_SOC_SPI_SUPPORT_CD_SIG=y +CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y +CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y +CONFIG_SOC_SPI_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y +CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y +CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y +CONFIG_SOC_SPI_SCT_SUPPORTED=y +CONFIG_SOC_SPI_SCT_REG_NUM=14 +CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y +CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA +CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y +CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 +CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y +CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y +CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y +CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y +CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y +CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y +CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y +CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y +CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 +CONFIG_SOC_SYSTIMER_ALARM_NUM=3 +CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 +CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 +CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y +CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y +CONFIG_SOC_SYSTIMER_INT_LEVEL=y +CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y +CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y +CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 +CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 +CONFIG_SOC_TIMER_GROUPS=2 +CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1 +CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 +CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y +CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y +CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2 +CONFIG_SOC_TIMER_SUPPORT_ETM=y +CONFIG_SOC_TIMER_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_MWDT_SUPPORT_XTAL=y +CONFIG_SOC_MWDT_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_TWAI_CONTROLLER_NUM=2 +CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 +CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y +CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_BRP_MAX=32768 +CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y +CONFIG_SOC_TWAI_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y +CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y +CONFIG_SOC_EFUSE_DIS_USB_JTAG=y +CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y +CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y +CONFIG_SOC_EFUSE_DIS_ICACHE=y +CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y +CONFIG_SOC_SECURE_BOOT_V2_RSA=y +CONFIG_SOC_SECURE_BOOT_V2_ECC=y +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 +CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y +CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y +CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 +CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y +CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y +CONFIG_SOC_APM_CTRL_FILTER_SUPPORTED=y +CONFIG_SOC_APM_LP_APM0_SUPPORTED=y +CONFIG_SOC_APM_SUPPORT_LP_TEE_CTRL=y +CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y +CONFIG_SOC_UART_NUM=3 +CONFIG_SOC_UART_HP_NUM=2 +CONFIG_SOC_UART_LP_NUM=1 +CONFIG_SOC_UART_FIFO_LEN=128 +CONFIG_SOC_LP_UART_FIFO_LEN=16 +CONFIG_SOC_UART_BITRATE_MAX=5000000 +CONFIG_SOC_UART_SUPPORT_PLL_F80M_CLK=y +CONFIG_SOC_UART_SUPPORT_RTC_CLK=y +CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y +CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y +CONFIG_SOC_UART_HAS_LP_UART=y +CONFIG_SOC_UART_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y +CONFIG_SOC_UART_WAKEUP_CHARS_SEQ_MAX_LEN=5 +CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_FIFO_THRESH_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_START_BIT_MODE=y +CONFIG_SOC_UART_WAKEUP_SUPPORT_CHAR_SEQ_MODE=y +CONFIG_SOC_UHCI_NUM=1 +CONFIG_SOC_COEX_HW_PTI=y +CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y +CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 +CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 +CONFIG_SOC_RTC_MEM_SUPPORT_SPEED_MODE_SWITCH=y +CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_BEACON_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP_MODE_PER_PIN=y +CONFIG_SOC_PM_SUPPORT_CPU_PD=y +CONFIG_SOC_PM_SUPPORT_MODEM_PD=y +CONFIG_SOC_PM_SUPPORT_XTAL32K_PD=y +CONFIG_SOC_PM_SUPPORT_RC32K_PD=y +CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y +CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y +CONFIG_SOC_PM_SUPPORT_TOP_PD=y +CONFIG_SOC_PM_SUPPORT_HP_AON_PD=y +CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y +CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y +CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y +CONFIG_SOC_PM_SUPPORT_PMU_CLK_ICG=y +CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y +CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y +CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y +CONFIG_SOC_PM_RETENTION_HAS_CLOCK_BUG=y +CONFIG_SOC_EXT_MEM_CACHE_TAG_IN_CPU_DOMAIN=y +CONFIG_SOC_PM_PAU_LINK_NUM=4 +CONFIG_SOC_PM_PAU_REGDMA_LINK_MULTI_ADDR=y +CONFIG_SOC_PM_PAU_REGDMA_LINK_WIFIMAC=y +CONFIG_SOC_PM_PAU_REGDMA_UPDATE_CACHE_BEFORE_WAIT_COMPARE=y +CONFIG_SOC_PM_PMU_MIN_SLP_SLOW_CLK_CYCLE_FIXED=y +CONFIG_SOC_PM_RETENTION_MODULE_NUM=32 +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y +CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y +CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y +CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y +CONFIG_SOC_CLK_RC32K_SUPPORTED=y +CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y +CONFIG_SOC_RCC_IS_INDEPENDENT=y +CONFIG_SOC_CLK_ANA_I2C_MST_HAS_ROOT_GATE=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y +CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_ETM=y +CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_SLEEP_RETENTION=y +CONFIG_SOC_TEMPERATURE_SENSOR_UNDER_PD_TOP_DOMAIN=y +CONFIG_SOC_RNG_CLOCK_IS_INDEPENDENT=y +CONFIG_SOC_WIFI_HW_TSF=y +CONFIG_SOC_WIFI_FTM_SUPPORT=y +CONFIG_SOC_WIFI_GCMP_SUPPORT=y +CONFIG_SOC_WIFI_WAPI_SUPPORT=y +CONFIG_SOC_WIFI_CSI_SUPPORT=y +CONFIG_SOC_WIFI_MESH_SUPPORT=y +CONFIG_SOC_WIFI_HE_SUPPORT=y +CONFIG_SOC_WIFI_MAC_VERSION_NUM=2 +CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y +CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y +CONFIG_SOC_BLE_50_SUPPORTED=y +CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y +CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y +CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y +CONFIG_SOC_BLUFI_SUPPORTED=y +CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y +CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y +CONFIG_SOC_PHY_COMBO_MODULE=y +CONFIG_SOC_CAPS_NO_RESET_BY_ANA_BOD=y +CONFIG_SOC_LP_CORE_SINGLE_INTERRUPT_VECTOR=y +CONFIG_SOC_LP_CORE_SUPPORT_ETM=y +CONFIG_SOC_DEBUG_HAVE_OCD_STUB_BINS=y +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TOOLCHAIN_GCC=y +CONFIG_IDF_TARGET_ARCH_RISCV=y +CONFIG_IDF_TARGET_ARCH="riscv" +CONFIG_IDF_TARGET="esp32c6" +CONFIG_IDF_INIT_VERSION="5.5.1" +CONFIG_IDF_TARGET_ESP32C6=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D + +# +# Build type +# +CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y +# CONFIG_APP_BUILD_TYPE_RAM is not set +CONFIG_APP_BUILD_GENERATE_BINARIES=y +CONFIG_APP_BUILD_BOOTLOADER=y +CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y +# CONFIG_APP_REPRODUCIBLE_BUILD is not set +# CONFIG_APP_NO_BLOBS is not set +# end of Build type + +# +# Bootloader config +# + +# +# Bootloader manager +# +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + +# +# Application Rollback +# +CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y +# CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK is not set +# end of Application Rollback + +# +# Recovery Bootloader and Rollback +# +# end of Recovery Bootloader and Rollback + +CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 +CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set + +# +# Log +# +CONFIG_BOOTLOADER_LOG_VERSION_1=y +CONFIG_BOOTLOADER_LOG_VERSION=1 +# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set +CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y +# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set +CONFIG_BOOTLOADER_LOG_LEVEL=3 + +# +# Format +# +# CONFIG_BOOTLOADER_LOG_COLORS is not set +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format + +# +# Settings +# +CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y +CONFIG_BOOTLOADER_LOG_MODE_TEXT=y +# end of Settings +# end of Log + +# +# Serial Flash Configurations +# +# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set +CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y +# end of Serial Flash Configurations + +# CONFIG_BOOTLOADER_FACTORY_RESET is not set +# CONFIG_BOOTLOADER_APP_TEST is not set +CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y +CONFIG_BOOTLOADER_WDT_ENABLE=y +# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set +CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set +CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 +# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set +# end of Bootloader config + +# +# Security features +# +CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y +CONFIG_SECURE_BOOT_V2_ECC_SUPPORTED=y +CONFIG_SECURE_BOOT_V2_PREFERRED=y +# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set +# CONFIG_SECURE_BOOT is not set +# CONFIG_SECURE_FLASH_ENC_ENABLED is not set +CONFIG_SECURE_ROM_DL_MODE_ENABLED=y +# end of Security features + +# +# Application manager +# +CONFIG_APP_COMPILE_TIME_DATE=y +# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set +# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 +# end of Application manager + +CONFIG_ESP_ROM_HAS_CRC_LE=y +CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_JPEG_DECODE=y +CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3 +CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y +CONFIG_ESP_ROM_GET_CLK_FREQ=y +CONFIG_ESP_ROM_HAS_RVFPLIB=y +CONFIG_ESP_ROM_HAS_HAL_WDT=y +CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y +CONFIG_ESP_ROM_SYSTIMER_INIT_PATCH=y +CONFIG_ESP_ROM_HAS_HEAP_TLSF=y +CONFIG_ESP_ROM_TLSF_CHECK_PATCH=y +CONFIG_ESP_ROM_MULTI_HEAP_WALK_PATCH=y +CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y +CONFIG_ESP_ROM_HAS_SPI_FLASH=y +CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y +CONFIG_ESP_ROM_HAS_REGI2C_BUG=y +CONFIG_ESP_ROM_HAS_NEWLIB=y +CONFIG_ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT=y +CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE=y +CONFIG_ESP_ROM_WDT_INIT_PATCH=y +CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y +CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +CONFIG_ESP_ROM_USB_OTG_NUM=-1 +CONFIG_ESP_ROM_HAS_VERSION=y +CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y +CONFIG_ESP_ROM_NO_USB_SERIAL_OUTPUT_API=y +CONFIG_ESP_ROM_HAS_SUBOPTIMAL_NEWLIB_ON_MISALIGNED_MEMORY=y + +# +# Boot ROM Behavior +# +CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y +# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set +# CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set +# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set +# end of Boot ROM Behavior + +# +# ESP-TEE (Trusted Execution Environment) +# +# CONFIG_SECURE_ENABLE_TEE is not set +CONFIG_SECURE_TEE_LOG_LEVEL=0 +# end of ESP-TEE (Trusted Execution Environment) + +# +# Serial flasher config +# +# CONFIG_ESPTOOLPY_NO_STUB is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set +CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y +CONFIG_ESPTOOLPY_FLASHMODE="dio" +CONFIG_ESPTOOLPY_FLASHFREQ_80M=y +# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set +# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set +CONFIG_ESPTOOLPY_FLASHFREQ="80m" +# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE="16MB" +# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set +CONFIG_ESPTOOLPY_BEFORE_RESET=y +# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set +CONFIG_ESPTOOLPY_BEFORE="default_reset" +CONFIG_ESPTOOLPY_AFTER_RESET=y +# CONFIG_ESPTOOLPY_AFTER_NORESET is not set +CONFIG_ESPTOOLPY_AFTER="hard_reset" +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 +# end of Serial flasher config + +# +# Partition Table +# +# CONFIG_PARTITION_TABLE_SINGLE_APP is not set +# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set +# CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table + +# +# Example Configuration +# +# CONFIG_ENABLE_MEMORY_PROFILING is not set +# end of Example Configuration + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_DEBUG=y +# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +# CONFIG_COMPILER_OPTIMIZATION_PERF is not set +# CONFIG_COMPILER_OPTIMIZATION_NONE is not set +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y +# CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB is not set +CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +# CONFIG_COMPILER_CXX_EXCEPTIONS is not set +# CONFIG_COMPILER_CXX_RTTI is not set +CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y +# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set +# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +# CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set +CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y +# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set +# CONFIG_COMPILER_DUMP_RTL_FILES is not set +CONFIG_COMPILER_RT_LIB_GCCLIB=y +CONFIG_COMPILER_RT_LIB_NAME="gcc" +CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y +# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set +# CONFIG_COMPILER_STATIC_ANALYZER is not set +# end of Compiler options + +# +# Component config +# + +# +# Application Level Tracing +# +# CONFIG_APPTRACE_DEST_JTAG is not set +CONFIG_APPTRACE_DEST_NONE=y +# CONFIG_APPTRACE_DEST_UART1 is not set +# CONFIG_APPTRACE_DEST_UART2 is not set +CONFIG_APPTRACE_DEST_UART_NONE=y +CONFIG_APPTRACE_UART_TASK_PRIO=1 +CONFIG_APPTRACE_LOCK_ENABLE=y +# end of Application Level Tracing + +# +# Bluetooth +# +CONFIG_BT_ENABLED=y +# CONFIG_BT_BLUEDROID_ENABLED is not set +CONFIG_BT_NIMBLE_ENABLED=y +# CONFIG_BT_CONTROLLER_ONLY is not set +CONFIG_BT_CONTROLLER_ENABLED=y +# CONFIG_BT_CONTROLLER_DISABLED is not set + +# +# NimBLE Options +# +CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_INTERNAL=y +# CONFIG_BT_NIMBLE_MEM_ALLOC_MODE_DEFAULT is not set +# CONFIG_BT_NIMBLE_LOG_LEVEL_NONE is not set +# CONFIG_BT_NIMBLE_LOG_LEVEL_ERROR is not set +# CONFIG_BT_NIMBLE_LOG_LEVEL_WARNING is not set +CONFIG_BT_NIMBLE_LOG_LEVEL_INFO=y +# CONFIG_BT_NIMBLE_LOG_LEVEL_DEBUG is not set +CONFIG_BT_NIMBLE_LOG_LEVEL=1 +CONFIG_BT_NIMBLE_MAX_CONNECTIONS=3 +CONFIG_BT_NIMBLE_MAX_BONDS=3 +CONFIG_BT_NIMBLE_MAX_CCCDS=8 +CONFIG_BT_NIMBLE_L2CAP_COC_MAX_NUM=0 +CONFIG_BT_NIMBLE_PINNED_TO_CORE=0 +CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=4096 +CONFIG_BT_NIMBLE_ROLE_CENTRAL=y +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y +CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y +CONFIG_BT_NIMBLE_ROLE_OBSERVER=y +CONFIG_BT_NIMBLE_GATT_CLIENT=y +CONFIG_BT_NIMBLE_GATT_SERVER=y +# CONFIG_BT_NIMBLE_NVS_PERSIST is not set +# CONFIG_BT_NIMBLE_SMP_ID_RESET is not set +CONFIG_BT_NIMBLE_SECURITY_ENABLE=y +CONFIG_BT_NIMBLE_SM_LEGACY=y +CONFIG_BT_NIMBLE_SM_SC=y +# CONFIG_BT_NIMBLE_SM_SC_DEBUG_KEYS is not set +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_ENCRYPTION=y +CONFIG_BT_NIMBLE_SM_LVL=0 +CONFIG_BT_NIMBLE_SM_SC_ONLY=0 +CONFIG_BT_NIMBLE_PRINT_ERR_NAME=y +# CONFIG_BT_NIMBLE_DEBUG is not set +# CONFIG_BT_NIMBLE_DYNAMIC_SERVICE is not set +CONFIG_BT_NIMBLE_SVC_GAP_DEVICE_NAME="nimble" +CONFIG_BT_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=31 +CONFIG_BT_NIMBLE_ATT_PREFERRED_MTU=256 +CONFIG_BT_NIMBLE_ATT_MAX_PREP_ENTRIES=64 +CONFIG_BT_NIMBLE_SVC_GAP_APPEARANCE=0 + +# +# Memory Settings +# +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_COUNT=24 +CONFIG_BT_NIMBLE_MSYS_1_BLOCK_SIZE=128 +CONFIG_BT_NIMBLE_MSYS_2_BLOCK_COUNT=24 +CONFIG_BT_NIMBLE_MSYS_2_BLOCK_SIZE=320 +CONFIG_BT_NIMBLE_MSYS_BUF_FROM_HEAP=y +CONFIG_BT_NIMBLE_TRANSPORT_ACL_FROM_LL_COUNT=24 +CONFIG_BT_NIMBLE_TRANSPORT_ACL_SIZE=255 +CONFIG_BT_NIMBLE_TRANSPORT_EVT_SIZE=70 +CONFIG_BT_NIMBLE_TRANSPORT_EVT_COUNT=30 +CONFIG_BT_NIMBLE_TRANSPORT_EVT_DISCARD_COUNT=8 +CONFIG_BT_NIMBLE_L2CAP_COC_SDU_BUFF_COUNT=1 +# end of Memory Settings + +CONFIG_BT_NIMBLE_GATT_MAX_PROCS=4 +CONFIG_BT_NIMBLE_RPA_TIMEOUT=900 +# CONFIG_BT_NIMBLE_MESH is not set +CONFIG_BT_NIMBLE_CRYPTO_STACK_MBEDTLS=y +CONFIG_BT_NIMBLE_HS_STOP_TIMEOUT_MS=2000 +CONFIG_BT_NIMBLE_ENABLE_CONN_REATTEMPT=y +CONFIG_BT_NIMBLE_MAX_CONN_REATTEMPT=3 +# CONFIG_BT_NIMBLE_HANDLE_REPEAT_PAIRING_DELETION is not set +CONFIG_BT_NIMBLE_50_FEATURE_SUPPORT=y +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_2M_PHY=y +CONFIG_BT_NIMBLE_LL_CFG_FEAT_LE_CODED_PHY=y +# CONFIG_BT_NIMBLE_EXT_ADV is not set +CONFIG_BT_NIMBLE_EXT_SCAN=y +CONFIG_BT_NIMBLE_ENABLE_PERIODIC_SYNC=y +CONFIG_BT_NIMBLE_MAX_PERIODIC_SYNCS=0 +CONFIG_BT_NIMBLE_MAX_PERIODIC_ADVERTISER_LIST=5 +# CONFIG_BT_NIMBLE_BLE_POWER_CONTROL is not set +# CONFIG_BT_NIMBLE_GATT_CACHING is not set +# CONFIG_BT_NIMBLE_INCL_SVC_DISCOVERY is not set +CONFIG_BT_NIMBLE_WHITELIST_SIZE=12 +# CONFIG_BT_NIMBLE_TEST_THROUGHPUT_TEST is not set +# CONFIG_BT_NIMBLE_BLUFI_ENABLE is not set +CONFIG_BT_NIMBLE_USE_ESP_TIMER=y +# CONFIG_BT_NIMBLE_BLE_GATT_BLOB_TRANSFER is not set + +# +# BLE Services +# +CONFIG_BT_NIMBLE_PROX_SERVICE=y +CONFIG_BT_NIMBLE_ANS_SERVICE=y +CONFIG_BT_NIMBLE_CTS_SERVICE=y +CONFIG_BT_NIMBLE_HTP_SERVICE=y +CONFIG_BT_NIMBLE_IPSS_SERVICE=y +CONFIG_BT_NIMBLE_TPS_SERVICE=y +CONFIG_BT_NIMBLE_IAS_SERVICE=y +CONFIG_BT_NIMBLE_LLS_SERVICE=y +CONFIG_BT_NIMBLE_SPS_SERVICE=y +CONFIG_BT_NIMBLE_HR_SERVICE=y +# CONFIG_BT_NIMBLE_HID_SERVICE is not set +CONFIG_BT_NIMBLE_BAS_SERVICE=y +# CONFIG_BT_NIMBLE_SVC_BAS_BATTERY_LEVEL_NOTIFY is not set +CONFIG_BT_NIMBLE_DIS_SERVICE=y +# CONFIG_BT_NIMBLE_SVC_DIS_MANUFACTURER_NAME is not set +# CONFIG_BT_NIMBLE_SVC_DIS_SERIAL_NUMBER is not set +# CONFIG_BT_NIMBLE_SVC_DIS_HARDWARE_REVISION is not set +# CONFIG_BT_NIMBLE_SVC_DIS_FIRMWARE_REVISION is not set +# CONFIG_BT_NIMBLE_SVC_DIS_SOFTWARE_REVISION is not set +# CONFIG_BT_NIMBLE_SVC_DIS_SYSTEM_ID is not set +# CONFIG_BT_NIMBLE_SVC_DIS_PNP_ID is not set +# CONFIG_BT_NIMBLE_SVC_DIS_INCLUDED is not set +CONFIG_BT_NIMBLE_GAP_SERVICE=y + +# +# GAP Appearance write permissions +# +# CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE is not set +CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM=0 +CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ENC=0 +CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHN=0 +CONFIG_BT_NIMBLE_SVC_GAP_APPEAR_WRITE_PERM_ATHR=0 +# end of GAP Appearance write permissions + +CONFIG_BT_NIMBLE_SVC_GAP_CAR_CHAR_NOT_SUPP=y +# CONFIG_BT_NIMBLE_SVC_GAP_CAR_NOT_SUPP is not set +# CONFIG_BT_NIMBLE_SVC_GAP_CAR_SUPP is not set +CONFIG_BT_NIMBLE_SVC_GAP_CENT_ADDR_RESOLUTION=-1 + +# +# GAP device name write permissions +# +# CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE is not set +# end of GAP device name write permissions + +# +# Peripheral Preferred Connection Parameters (PPCP) settings +# +CONFIG_BT_NIMBLE_SVC_GAP_PPCP_MAX_CONN_INTERVAL=0 +CONFIG_BT_NIMBLE_SVC_GAP_PPCP_MIN_CONN_INTERVAL=0 +CONFIG_BT_NIMBLE_SVC_GAP_PPCP_SLAVE_LATENCY=0 +CONFIG_BT_NIMBLE_SVC_GAP_PPCP_SUPERVISION_TMO=0 +# end of Peripheral Preferred Connection Parameters (PPCP) settings + +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM=0 +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_ENC=0 +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHEN=0 +CONFIG_BT_NIMBLE_SVC_GAP_NAME_WRITE_PERM_AUTHOR=0 +# CONFIG_BT_NIMBLE_SVC_GAP_GATT_SECURITY_LEVEL is not set +# CONFIG_BT_NIMBLE_SVC_GAP_RPA_ONLY is not set +# end of BLE Services + +# CONFIG_BT_NIMBLE_VS_SUPPORT is not set +# CONFIG_BT_NIMBLE_OPTIMIZE_MULTI_CONN is not set +# CONFIG_BT_NIMBLE_ENC_ADV_DATA is not set +# CONFIG_BT_NIMBLE_HIGH_DUTY_ADV_ITVL is not set +# CONFIG_BT_NIMBLE_HOST_ALLOW_CONNECT_WITH_SCAN is not set +# CONFIG_BT_NIMBLE_HOST_QUEUE_CONG_CHECK is not set +# CONFIG_BT_NIMBLE_GATTC_PROC_PREEMPTION_PROTECT is not set +# CONFIG_BT_NIMBLE_GATTC_AUTO_PAIR is not set + +# +# Host-controller Transport +# +CONFIG_UART_HW_FLOWCTRL_DISABLE=y +# CONFIG_UART_HW_FLOWCTRL_CTS_RTS is not set +CONFIG_BT_NIMBLE_HCI_UART_FLOW_CTRL=0 +CONFIG_BT_NIMBLE_HCI_UART_RTS_PIN=19 +CONFIG_BT_NIMBLE_HCI_UART_CTS_PIN=23 +# end of Host-controller Transport + +CONFIG_BT_NIMBLE_EATT_CHAN_NUM=0 +# CONFIG_BT_NIMBLE_SUBRATE is not set +# end of NimBLE Options + +# +# Controller Options +# + +# +# HCI Config +# +CONFIG_BT_LE_HCI_INTERFACE_USE_RAM=y +# CONFIG_BT_LE_HCI_INTERFACE_USE_UART is not set +# end of HCI Config + +CONFIG_BT_LE_CONTROLLER_NPL_OS_PORTING_SUPPORT=y +CONFIG_BT_LE_CONTROLLER_TASK_STACK_SIZE=4096 + +# +# Controller debug features +# +# CONFIG_BT_LE_CONTROLLER_LOG_ENABLED is not set +# CONFIG_BT_LE_ERROR_SIM_ENABLED is not set +# CONFIG_BT_LE_ASSERT_WHEN_ABNORMAL_DISCONN_ENABLED is not set +# CONFIG_BT_LE_DEBUG_REMAIN_SCENE_ENABLED is not set +# CONFIG_BT_LE_PTR_CHECK_ENABLED is not set +# CONFIG_BT_LE_MEM_CHECK_ENABLED is not set +# end of Controller debug features + +CONFIG_BT_LE_LL_RESOLV_LIST_SIZE=4 +CONFIG_BT_LE_LL_DUP_SCAN_LIST_COUNT=20 +CONFIG_BT_LE_LL_SCA=60 +# CONFIG_BT_LE_LL_PEER_SCA_SET_ENABLE is not set +# CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set +CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +CONFIG_BT_LE_COEX_PHY_CODED_TX_RX_TLIM_EFF=0 +# CONFIG_BT_LE_SLEEP_ENABLE is not set +CONFIG_BT_LE_LP_CLK_SRC_MAIN_XTAL=y +# CONFIG_BT_LE_LP_CLK_SRC_DEFAULT is not set +CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_SUPP=y +CONFIG_BT_CTRL_BLE_ADV_REPORT_FLOW_CTRL_NUM=100 +CONFIG_BT_CTRL_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 +CONFIG_BT_LE_SCAN_DUPL=y +CONFIG_BT_LE_SCAN_DUPL_TYPE_DEVICE=y +# CONFIG_BT_LE_SCAN_DUPL_TYPE_DATA is not set +# CONFIG_BT_LE_SCAN_DUPL_TYPE_DATA_DEVICE is not set +CONFIG_BT_LE_SCAN_DUPL_TYPE=0 +CONFIG_BT_LE_SCAN_DUPL_CACHE_REFRESH_PERIOD=0 +CONFIG_BT_LE_MSYS_INIT_IN_CONTROLLER=y +# CONFIG_BT_LE_TX_CCA_ENABLED is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_N15 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_N12 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_N9 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_N6 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_N3 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_N0 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P3 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P6 is not set +CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P9=y +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P12 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P15 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P18 is not set +# CONFIG_BT_LE_DFT_TX_POWER_LEVEL_P20 is not set +CONFIG_BT_LE_DFT_TX_POWER_LEVEL_DBM_EFF=9 +# CONFIG_BT_LE_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS is not set +# CONFIG_BT_CTRL_RUN_IN_FLASH_ONLY is not set + +# +# BLE disconnects when Instant Passed (0x28) occurs +# +# CONFIG_BT_LE_CTRL_LLCP_CONN_UPDATE is not set +# CONFIG_BT_LE_CTRL_LLCP_CHAN_MAP_UPDATE is not set +# CONFIG_BT_LE_CTRL_LLCP_PHY_UPDATE is not set +# end of BLE disconnects when Instant Passed (0x28) occurs + +CONFIG_BT_CTRL_SCAN_BACKOFF_UPPERLIMITMAX=32 +# CONFIG_BT_LE_CTRL_CHAN_ASS_EN is not set +CONFIG_BT_LE_CTRL_ADV_DATA_LENGTH_ZERO_AUX=y +CONFIG_BT_LE_RXBUF_OPT_ENABLED=y +CONFIG_BT_LE_CTRL_FAST_CONN_DATA_TX_EN=y + +# +# Reserved Memory Config +# +CONFIG_BT_LE_EXT_ADV_RESERVED_MEMORY_COUNT=2 +CONFIG_BT_LE_CONN_RESERVED_MEMORY_COUNT=2 +# end of Reserved Memory Config + +# CONFIG_BT_LE_DTM_ENABLED is not set +# end of Controller Options + +# +# Common Options +# +CONFIG_BT_ALARM_MAX_NUM=50 +# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set +# CONFIG_BT_BLE_LOG_UHCI_OUT_ENABLED is not set +# end of Common Options + +# CONFIG_BT_HCI_LOG_DEBUG_EN is not set +# end of Bluetooth + +# CONFIG_BLE_MESH is not set + +# +# Console Library +# +# CONFIG_CONSOLE_SORTED_HELP is not set +# end of Console Library + +# +# Driver Configurations +# + +# +# Legacy TWAI Driver Configurations +# +# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy TWAI Driver Configurations + +# +# Legacy ADC Driver Configuration +# +# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set + +# +# Legacy ADC Calibration Configuration +# +# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set +# end of Legacy ADC Calibration Configuration +# end of Legacy ADC Driver Configuration + +# +# Legacy MCPWM Driver Configurations +# +# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy MCPWM Driver Configurations + +# +# Legacy Timer Group Driver Configurations +# +# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Timer Group Driver Configurations + +# +# Legacy RMT Driver Configurations +# +# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy RMT Driver Configurations + +# +# Legacy I2S Driver Configurations +# +# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2S Driver Configurations + +# +# Legacy I2C Driver Configurations +# +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations + +# +# Legacy PCNT Driver Configurations +# +# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy PCNT Driver Configurations + +# +# Legacy SDM Driver Configurations +# +# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy SDM Driver Configurations + +# +# Legacy Temperature Sensor Driver Configurations +# +# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Temperature Sensor Driver Configurations +# end of Driver Configurations + +# +# eFuse Bit Manager +# +# CONFIG_EFUSE_CUSTOM_TABLE is not set +# CONFIG_EFUSE_VIRTUAL is not set +CONFIG_EFUSE_MAX_BLK_LEN=256 +# end of eFuse Bit Manager + +# +# ESP-TLS +# +CONFIG_ESP_TLS_USING_MBEDTLS=y +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set +CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y +# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set +# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set +# CONFIG_ESP_TLS_PSK_VERIFICATION is not set +# CONFIG_ESP_TLS_INSECURE is not set +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y +# end of ESP-TLS + +# +# ADC and ADC Calibration +# +# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set +# CONFIG_ADC_ENABLE_DEBUG_LOG is not set +# end of ADC and ADC Calibration + +# +# Wireless Coexistence +# +CONFIG_ESP_COEX_ENABLED=y +CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y +# CONFIG_ESP_COEX_POWER_MANAGEMENT is not set +# CONFIG_ESP_COEX_GPIO_DEBUG is not set +# end of Wireless Coexistence + +# +# Common ESP-related +# +CONFIG_ESP_ERR_TO_NAME_LOOKUP=y +# end of Common ESP-related + +# +# ESP-Driver:GPIO Configurations +# +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:GPIO Configurations + +# +# ESP-Driver:GPTimer Configurations +# +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:GPTimer Configurations + +# +# ESP-Driver:I2C Configurations +# +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set +CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y +# end of ESP-Driver:I2C Configurations + +# +# ESP-Driver:I2S Configurations +# +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:I2S Configurations + +# +# ESP-Driver:LEDC Configurations +# +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:LEDC Configurations + +# +# ESP-Driver:MCPWM Configurations +# +CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y +# CONFIG_MCPWM_ISR_CACHE_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +CONFIG_MCPWM_OBJ_CACHE_SAFE=y +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:MCPWM Configurations + +# +# ESP-Driver:Parallel IO Configurations +# +CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=y +# CONFIG_PARLIO_TX_ISR_CACHE_SAFE is not set +# CONFIG_PARLIO_RX_ISR_CACHE_SAFE is not set +CONFIG_PARLIO_OBJ_CACHE_SAFE=y +# CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set +# CONFIG_PARLIO_ISR_IRAM_SAFE is not set +# end of ESP-Driver:Parallel IO Configurations + +# +# ESP-Driver:PCNT Configurations +# +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:PCNT Configurations + +# +# ESP-Driver:RMT Configurations +# +CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_TX_ISR_CACHE_SAFE is not set +# CONFIG_RMT_RX_ISR_CACHE_SAFE is not set +CONFIG_RMT_OBJ_CACHE_SAFE=y +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# end of ESP-Driver:RMT Configurations + +# +# ESP-Driver:Sigma Delta Modulator Configurations +# +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Sigma Delta Modulator Configurations + +# +# ESP-Driver:SPI Configurations +# +# CONFIG_SPI_MASTER_IN_IRAM is not set +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# CONFIG_SPI_SLAVE_IN_IRAM is not set +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of ESP-Driver:SPI Configurations + +# +# ESP-Driver:Temperature Sensor Configurations +# +# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set +# CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set +# end of ESP-Driver:Temperature Sensor Configurations + +# +# ESP-Driver:TWAI Configurations +# +# CONFIG_TWAI_ISR_IN_IRAM is not set +# CONFIG_TWAI_ISR_CACHE_SAFE is not set +# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:TWAI Configurations + +# +# ESP-Driver:UART Configurations +# +# CONFIG_UART_ISR_IN_IRAM is not set +# end of ESP-Driver:UART Configurations + +# +# ESP-Driver:UHCI Configurations +# +# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set +# CONFIG_UHCI_ISR_CACHE_SAFE is not set +# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:UHCI Configurations + +# +# ESP-Driver:USB Serial/JTAG Configuration +# +CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y +# end of ESP-Driver:USB Serial/JTAG Configuration + +# +# Ethernet +# +CONFIG_ETH_ENABLED=y +CONFIG_ETH_USE_SPI_ETHERNET=y +# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set +# CONFIG_ETH_SPI_ETHERNET_W5500 is not set +# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set +# CONFIG_ETH_USE_OPENETH is not set +# CONFIG_ETH_TRANSMIT_MUTEX is not set +# end of Ethernet + +# +# Event Loop Library +# +# CONFIG_ESP_EVENT_LOOP_PROFILING is not set +CONFIG_ESP_EVENT_POST_FROM_ISR=y +CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y +# end of Event Loop Library + +# +# GDB Stub +# +CONFIG_ESP_GDBSTUB_ENABLED=y +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 +# end of GDB Stub + +# +# ESP HID +# +CONFIG_ESPHID_TASK_SIZE_BT=2048 +CONFIG_ESPHID_TASK_SIZE_BLE=4096 +# end of ESP HID + +# +# ESP HTTP client +# +CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y +# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 +# end of ESP HTTP client + +# +# HTTP Server +# +CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 +CONFIG_HTTPD_MAX_URI_LEN=512 +CONFIG_HTTPD_ERR_RESP_NO_DELAY=y +CONFIG_HTTPD_PURGE_BUF_LEN=32 +# CONFIG_HTTPD_LOG_PURGE_DATA is not set +# CONFIG_HTTPD_WS_SUPPORT is not set +# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 +# end of HTTP Server + +# +# ESP HTTPS OTA +# +# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set +# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 +# end of ESP HTTPS OTA + +# +# ESP HTTPS server +# +# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 +# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set +# end of ESP HTTPS server + +# +# Hardware Settings +# + +# +# Chip revision +# +CONFIG_ESP32C6_REV_MIN_0=y +# CONFIG_ESP32C6_REV_MIN_1 is not set +# CONFIG_ESP32C6_REV_MIN_2 is not set +CONFIG_ESP32C6_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32-C6 Revision (Rev v0.99) +# +CONFIG_ESP32C6_REV_MAX_FULL=99 +CONFIG_ESP_REV_MAX_FULL=99 +CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 +CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=99 + +# +# Maximum Supported ESP32-C6 eFuse Block Revision (eFuse Block Rev v0.99) +# +# end of Chip revision + +# +# MAC Config +# +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 +# CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_TWO is not set +CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES=4 +# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set +# end of MAC Config + +# +# Sleep Config +# +# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set +CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y +# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set +CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y +CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=0 +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set +# CONFIG_ESP_SLEEP_DEBUG is not set +CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y +# end of Sleep Config + +# +# RTC Clock Config +# +CONFIG_RTC_CLK_SRC_INT_RC=y +# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_RTC_CLK_SRC_USE_DANGEROUS_RC32K_ALLOWED is not set +CONFIG_RTC_CLK_CAL_CYCLES=1024 +# end of RTC Clock Config + +# +# Peripheral Control +# +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y +# end of Peripheral Control + +# +# ETM Configuration +# +# CONFIG_ETM_ENABLE_DEBUG_LOG is not set +# end of ETM Configuration + +# +# GDMA Configurations +# +CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y +CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y +CONFIG_GDMA_OBJ_DRAM_SAFE=y +# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set +# CONFIG_GDMA_ISR_IRAM_SAFE is not set +# end of GDMA Configurations + +# +# Main XTAL Config +# +CONFIG_XTAL_FREQ_40=y +CONFIG_XTAL_FREQ=40 +# end of Main XTAL Config + +# +# Power Supplier +# + +# +# Brownout Detector +# +CONFIG_ESP_BROWNOUT_DET=y +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +CONFIG_ESP_BROWNOUT_DET_LVL=7 +CONFIG_ESP_BROWNOUT_USE_INTR=y +# end of Brownout Detector +# end of Power Supplier + +CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +CONFIG_ESP_INTR_IN_IRAM=y +# end of Hardware Settings + +# +# ESP-Driver:LCD Controller Configurations +# +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:LCD Controller Configurations + +# +# ESP-MM: Memory Management Configurations +# +# end of ESP-MM: Memory Management Configurations + +# +# ESP NETIF Adapter +# +CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set +CONFIG_ESP_NETIF_TCPIP_LWIP=y +# CONFIG_ESP_NETIF_LOOPBACK is not set +CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y +# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set +# CONFIG_ESP_NETIF_L2_TAP is not set +# CONFIG_ESP_NETIF_BRIDGE_EN is not set +# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set +# end of ESP NETIF Adapter + +# +# Partition API Configuration +# +# end of Partition API Configuration + +# +# PHY +# +CONFIG_ESP_PHY_ENABLED=y +CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP_PHY_MAX_TX_POWER=20 +# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set +# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set +CONFIG_ESP_PHY_RF_CAL_PARTIAL=y +# CONFIG_ESP_PHY_RF_CAL_NONE is not set +# CONFIG_ESP_PHY_RF_CAL_FULL is not set +CONFIG_ESP_PHY_CALIBRATION_MODE=0 +CONFIG_ESP_PHY_PLL_TRACK_PERIOD_MS=1000 +# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set +CONFIG_ESP_PHY_IRAM_OPT=y +# CONFIG_ESP_PHY_DEBUG is not set +# end of PHY + +# +# Power Management +# +CONFIG_PM_SLEEP_FUNC_IN_IRAM=y +# CONFIG_PM_ENABLE is not set +CONFIG_PM_SLP_IRAM_OPT=y +CONFIG_PM_SLP_DEFAULT_PARAMS_OPT=y +CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y +# CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set +# end of Power Management + +# +# ESP PSRAM +# + +# +# ESP Ringbuf +# +# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set +# end of ESP Ringbuf + +# +# ESP-ROM +# +CONFIG_ESP_ROM_PRINT_IN_IRAM=y +# end of ESP-ROM + +# +# ESP Security Specific +# + +# +# Crypto DPA Protection +# +CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y +CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y +# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set +# CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set +CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1 +# end of Crypto DPA Protection +# end of ESP Security Specific + +# +# ESP System Settings +# +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_120 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 +CONFIG_ESP_SYSTEM_IN_IRAM=y +# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set +CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set +CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 +CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y +CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y +CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y +CONFIG_ESP_SYSTEM_NO_BACKTRACE=y +# CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set +# CONFIG_ESP_SYSTEM_USE_FRAME_POINTER is not set + +# +# Memory protection +# +CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y +# CONFIG_ESP_SYSTEM_PMP_LP_CORE_RESERVE_MEM_EXECUTABLE is not set +# end of Memory protection + +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 +CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y +# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 +CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set +# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set +# CONFIG_ESP_CONSOLE_NONE is not set +# CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set +CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y +CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y +CONFIG_ESP_CONSOLE_UART=y +CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 +CONFIG_ESP_INT_WDT=y +CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 +CONFIG_ESP_TASK_WDT_EN=y +CONFIG_ESP_TASK_WDT_INIT=y +# CONFIG_ESP_TASK_WDT_PANIC is not set +CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# CONFIG_ESP_PANIC_HANDLER_IRAM is not set +# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set +# CONFIG_ESP_DEBUG_INCLUDE_OCD_STUB_BINS is not set +CONFIG_ESP_DEBUG_OCDAWARE=y +CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y +CONFIG_ESP_SYSTEM_HW_STACK_GUARD=y +CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y +CONFIG_ESP_SYSTEM_HW_PC_RECORD=y +# end of ESP System Settings + +# +# IPC (Inter-Processor Call) +# +CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 +# end of IPC (Inter-Processor Call) + +# +# ESP Timer (High Resolution Timer) +# +CONFIG_ESP_TIMER_IN_IRAM=y +# CONFIG_ESP_TIMER_PROFILING is not set +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y +CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 +# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set +CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 +CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y +CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y +# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set +CONFIG_ESP_TIMER_IMPL_SYSTIMER=y +# end of ESP Timer (High Resolution Timer) + +# +# Wi-Fi +# +CONFIG_ESP_WIFI_ENABLED=y +CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y +# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 +CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 +# CONFIG_ESP_WIFI_CSI_ENABLED is not set +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP_WIFI_TX_BA_WIN=6 +CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP_WIFI_RX_BA_WIN=6 +CONFIG_ESP_WIFI_NVS_ENABLED=y +CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP_WIFI_IRAM_OPT=y +CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=y +CONFIG_ESP_WIFI_RX_IRAM_OPT=y +CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y +CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y +CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_ESP_WIFI_SLP_IRAM_OPT=y +CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 +CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT=y +CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 +CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 +# CONFIG_ESP_WIFI_FTM_ENABLE is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y +# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set +CONFIG_ESP_WIFI_GMAC_SUPPORT=y +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y +# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 +CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y +CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y +# CONFIG_ESP_WIFI_WAPI_PSK is not set +# CONFIG_ESP_WIFI_SUITE_B_192 is not set +# CONFIG_ESP_WIFI_11KV_SUPPORT is not set +# CONFIG_ESP_WIFI_MBO_SUPPORT is not set +# CONFIG_ESP_WIFI_DPP_SUPPORT is not set +# CONFIG_ESP_WIFI_11R_SUPPORT is not set +# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set +# CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS is not set +# CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS is not set +CONFIG_ESP_WIFI_TX_HETB_QUEUE_NUM=3 + +# +# WPS Configuration Options +# +# CONFIG_ESP_WIFI_WPS_STRICT is not set +# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set +# end of WPS Configuration Options + +# CONFIG_ESP_WIFI_DEBUG_PRINT is not set +# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set +CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y +# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set +# end of Wi-Fi + +# +# Core dump +# +# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# end of Core dump + +# +# FAT Filesystem support +# +CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set +# CONFIG_FATFS_SECTOR_512 is not set +CONFIG_FATFS_SECTOR_4096=y +# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set +CONFIG_FATFS_CODEPAGE_437=y +# CONFIG_FATFS_CODEPAGE_720 is not set +# CONFIG_FATFS_CODEPAGE_737 is not set +# CONFIG_FATFS_CODEPAGE_771 is not set +# CONFIG_FATFS_CODEPAGE_775 is not set +# CONFIG_FATFS_CODEPAGE_850 is not set +# CONFIG_FATFS_CODEPAGE_852 is not set +# CONFIG_FATFS_CODEPAGE_855 is not set +# CONFIG_FATFS_CODEPAGE_857 is not set +# CONFIG_FATFS_CODEPAGE_860 is not set +# CONFIG_FATFS_CODEPAGE_861 is not set +# CONFIG_FATFS_CODEPAGE_862 is not set +# CONFIG_FATFS_CODEPAGE_863 is not set +# CONFIG_FATFS_CODEPAGE_864 is not set +# CONFIG_FATFS_CODEPAGE_865 is not set +# CONFIG_FATFS_CODEPAGE_866 is not set +# CONFIG_FATFS_CODEPAGE_869 is not set +# CONFIG_FATFS_CODEPAGE_932 is not set +# CONFIG_FATFS_CODEPAGE_936 is not set +# CONFIG_FATFS_CODEPAGE_949 is not set +# CONFIG_FATFS_CODEPAGE_950 is not set +CONFIG_FATFS_CODEPAGE=437 +CONFIG_FATFS_FS_LOCK=0 +CONFIG_FATFS_TIMEOUT_MS=10000 +CONFIG_FATFS_PER_FILE_CACHE=y +# CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_USE_STRFUNC_NONE=y +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set +CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# CONFIG_FATFS_USE_LABEL is not set +CONFIG_FATFS_LINK_LOCK=y +# CONFIG_FATFS_USE_DYN_BUFFERS is not set + +# +# File system free space calculation behavior +# +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior +# end of FAT Filesystem support + +# +# FreeRTOS +# + +# +# Kernel +# +# CONFIG_FREERTOS_SMP is not set +CONFIG_FREERTOS_UNICORE=y +CONFIG_FREERTOS_HZ=100 +CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set +CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y +CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 +# CONFIG_FREERTOS_USE_IDLE_HOOK is not set +# CONFIG_FREERTOS_USE_TICK_HOOK is not set +CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 +# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_USE_TIMERS=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set +CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 +CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 +# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set +# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set +# end of Kernel + +# +# Port +# +CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y +# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set +# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y +CONFIG_FREERTOS_ISR_STACKSIZE=1536 +CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y +CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y +# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set +CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y +# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set +# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set +# end of Port + +# +# Extra +# +# end of Extra + +CONFIG_FREERTOS_PORT=y +CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF +CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y +CONFIG_FREERTOS_DEBUG_OCDAWARE=y +CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y +CONFIG_FREERTOS_NUMBER_OF_CORES=1 +CONFIG_FREERTOS_IN_IRAM=y +# end of FreeRTOS + +# +# Hardware Abstraction Layer (HAL) and Low Level (LL) +# +CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y +# CONFIG_HAL_ASSERTION_DISABLE is not set +# CONFIG_HAL_ASSERTION_SILENT is not set +# CONFIG_HAL_ASSERTION_ENABLE is not set +CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 +CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y +CONFIG_HAL_WDT_USE_ROM_IMPL=y +# end of Hardware Abstraction Layer (HAL) and Low Level (LL) + +# +# Heap memory debugging +# +CONFIG_HEAP_POISONING_DISABLED=y +# CONFIG_HEAP_POISONING_LIGHT is not set +# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set +CONFIG_HEAP_TRACING_OFF=y +# CONFIG_HEAP_TRACING_STANDALONE is not set +# CONFIG_HEAP_TRACING_TOHOST is not set +# CONFIG_HEAP_USE_HOOKS is not set +# CONFIG_HEAP_TASK_TRACKING is not set +# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set +CONFIG_HEAP_TLSF_USE_ROM_IMPL=y +# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set +# end of Heap memory debugging + +# +# IEEE 802.15.4 +# +CONFIG_IEEE802154_ENABLED=y +CONFIG_IEEE802154_RX_BUFFER_SIZE=20 +# CONFIG_IEEE802154_CCA_CARRIER is not set +CONFIG_IEEE802154_CCA_ED=y +# CONFIG_IEEE802154_CCA_CARRIER_OR_ED is not set +# CONFIG_IEEE802154_CCA_CARRIER_AND_ED is not set +CONFIG_IEEE802154_CCA_MODE=1 +CONFIG_IEEE802154_CCA_THRESHOLD=-60 +CONFIG_IEEE802154_PENDING_TABLE_SIZE=20 +# CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set +CONFIG_IEEE802154_TIMING_OPTIMIZATION=y +# CONFIG_IEEE802154_DEBUG is not set +# CONFIG_IEEE802154_DEBUG_ASSERT_MONITOR is not set +# end of IEEE 802.15.4 + +# +# Log +# +CONFIG_LOG_VERSION_1=y +# CONFIG_LOG_VERSION_2 is not set +CONFIG_LOG_VERSION=1 + +# +# Log Level +# +# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set +# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set +# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set +CONFIG_LOG_DEFAULT_LEVEL_INFO=y +# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set +# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set +CONFIG_LOG_DEFAULT_LEVEL=3 +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set +CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# +# CONFIG_LOG_MASTER_LEVEL is not set +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# +# CONFIG_LOG_COLORS is not set +CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y +# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Format + +# +# Settings +# +CONFIG_LOG_MODE_TEXT_EN=y +CONFIG_LOG_MODE_TEXT=y +# end of Settings + +CONFIG_LOG_IN_IRAM=y +# end of Log + +# +# LWIP +# +CONFIG_LWIP_ENABLE=y +CONFIG_LWIP_LOCAL_HOSTNAME="espressif" +CONFIG_LWIP_TCPIP_TASK_PRIO=18 +CONFIG_LWIP_TCPIP_CORE_LOCKING=y +# CONFIG_LWIP_TCPIP_CORE_LOCKING_INPUT is not set +CONFIG_LWIP_CHECK_THREAD_SAFETY=y +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y +# CONFIG_LWIP_L2_TO_L3_COPY is not set +# CONFIG_LWIP_IRAM_OPTIMIZATION is not set +# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set +CONFIG_LWIP_TIMERS_ONDEMAND=y +CONFIG_LWIP_ND6=y +# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set +CONFIG_LWIP_MAX_SOCKETS=10 +# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set +CONFIG_LWIP_SO_REUSE=y +CONFIG_LWIP_SO_REUSE_RXTOALL=y +# CONFIG_LWIP_SO_RCVBUF is not set +# CONFIG_LWIP_NETBUF_RECVINFO is not set +CONFIG_LWIP_IP_DEFAULT_TTL=64 +CONFIG_LWIP_IP4_FRAG=y +CONFIG_LWIP_IP6_FRAG=y +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# CONFIG_LWIP_IP6_REASSEMBLY is not set +CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 +# CONFIG_LWIP_IP_FORWARD is not set +# CONFIG_LWIP_STATS is not set +CONFIG_LWIP_ESP_GRATUITOUS_ARP=y +CONFIG_LWIP_GARP_TMR_INTERVAL=60 +CONFIG_LWIP_ESP_MLDV6_REPORT=y +CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 +CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set +# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set +CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y +# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set +CONFIG_LWIP_DHCP_OPTIONS_LEN=69 +CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 +CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 + +# +# DHCP server +# +CONFIG_LWIP_DHCPS=y +CONFIG_LWIP_DHCPS_LEASE_UNIT=60 +CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +CONFIG_LWIP_DHCPS_ADD_DNS=y +# end of DHCP server + +# CONFIG_LWIP_AUTOIP is not set +CONFIG_LWIP_IPV4=y +CONFIG_LWIP_IPV6=y +# CONFIG_LWIP_IPV6_AUTOCONFIG is not set +CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 +# CONFIG_LWIP_IPV6_FORWARD is not set +# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set +CONFIG_LWIP_NETIF_LOOPBACK=y +CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 + +# +# TCP +# +CONFIG_LWIP_MAX_ACTIVE_TCP=16 +CONFIG_LWIP_MAX_LISTENING_TCP=16 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y +CONFIG_LWIP_TCP_MAXRTX=12 +CONFIG_LWIP_TCP_SYNMAXRTX=12 +CONFIG_LWIP_TCP_MSS=1440 +CONFIG_LWIP_TCP_TMR_INTERVAL=250 +CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 +CONFIG_LWIP_TCP_WND_DEFAULT=5760 +CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 +CONFIG_LWIP_TCP_QUEUE_OOSEQ=y +CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 +CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 +# CONFIG_LWIP_TCP_SACK_OUT is not set +CONFIG_LWIP_TCP_OVERSIZE_MSS=y +# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set +CONFIG_LWIP_TCP_RTO_TIME=1500 +# end of TCP + +# +# UDP +# +CONFIG_LWIP_MAX_UDP_PCBS=16 +CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 +# end of UDP + +# +# Checksums +# +# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set +# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set +CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y +# end of Checksums + +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set +CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 +CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 +CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 +# CONFIG_LWIP_PPP_SUPPORT is not set +# CONFIG_LWIP_SLIP_SUPPORT is not set + +# +# ICMP +# +CONFIG_LWIP_ICMP=y +# CONFIG_LWIP_MULTICAST_PING is not set +# CONFIG_LWIP_BROADCAST_PING is not set +# end of ICMP + +# +# LWIP RAW API +# +CONFIG_LWIP_MAX_RAW_PCBS=16 +# end of LWIP RAW API + +# +# SNTP +# +CONFIG_LWIP_SNTP_MAX_SERVERS=1 +# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set +CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +CONFIG_LWIP_SNTP_STARTUP_DELAY=y +CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 +# end of SNTP + +# +# DNS +# +CONFIG_LWIP_DNS_MAX_HOST_IP=1 +CONFIG_LWIP_DNS_MAX_SERVERS=3 +# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set +# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set +# end of DNS + +CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 +CONFIG_LWIP_ESP_LWIP_ASSERT=y + +# +# Hooks +# +# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set +CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y +# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y +# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set +CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y +# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set +# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set +# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set +CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set +CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set +# CONFIG_LWIP_HOOK_IP6_INPUT_NONE is not set +CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT=y +# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set +# end of Hooks + +# CONFIG_LWIP_DEBUG is not set +# end of LWIP + +# +# mbedTLS +# +CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set +# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set +CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y +CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 +CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 +# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set +# CONFIG_MBEDTLS_DEBUG is not set + +# +# mbedTLS v3.x related +# +# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set +# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set +# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set +# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set +CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y +# CONFIG_MBEDTLS_SSL_KEYING_MATERIAL_EXPORT is not set +CONFIG_MBEDTLS_PKCS7_C=y +# end of mbedTLS v3.x related + +# +# Certificate Bundle +# +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set +# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 +# end of Certificate Bundle + +# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set +CONFIG_MBEDTLS_CMAC_C=y +CONFIG_MBEDTLS_HARDWARE_AES=y +CONFIG_MBEDTLS_AES_USE_INTERRUPT=y +CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 +CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y +CONFIG_MBEDTLS_HARDWARE_MPI=y +CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y +CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y +CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 +CONFIG_MBEDTLS_HARDWARE_SHA=y +CONFIG_MBEDTLS_HARDWARE_ECC=y +CONFIG_MBEDTLS_ECC_OTHER_CURVES_SOFT_FALLBACK=y +CONFIG_MBEDTLS_ROM_MD5=y +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set +CONFIG_MBEDTLS_HAVE_TIME=y +# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set +# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set +CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA1_C=y +CONFIG_MBEDTLS_SHA512_C=y +# CONFIG_MBEDTLS_SHA3_C is not set +CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y +# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set +# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set +# CONFIG_MBEDTLS_TLS_DISABLED is not set +CONFIG_MBEDTLS_TLS_SERVER=y +CONFIG_MBEDTLS_TLS_CLIENT=y +CONFIG_MBEDTLS_TLS_ENABLED=y + +# +# TLS Key Exchange Methods +# +# CONFIG_MBEDTLS_PSK_MODES is not set +CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y +# end of TLS Key Exchange Methods + +CONFIG_MBEDTLS_SSL_RENEGOTIATION=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set +# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set +CONFIG_MBEDTLS_SSL_ALPN=y +CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y +CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y + +# +# Symmetric Ciphers +# +CONFIG_MBEDTLS_AES_C=y +# CONFIG_MBEDTLS_CAMELLIA_C is not set +# CONFIG_MBEDTLS_DES_C is not set +# CONFIG_MBEDTLS_BLOWFISH_C is not set +# CONFIG_MBEDTLS_XTEA_C is not set +CONFIG_MBEDTLS_CCM_C=y +CONFIG_MBEDTLS_GCM_C=y +# CONFIG_MBEDTLS_NIST_KW_C is not set +# end of Symmetric Ciphers + +# CONFIG_MBEDTLS_RIPEMD160_C is not set + +# +# Certificates +# +CONFIG_MBEDTLS_PEM_PARSE_C=y +CONFIG_MBEDTLS_PEM_WRITE_C=y +CONFIG_MBEDTLS_X509_CRL_PARSE_C=y +CONFIG_MBEDTLS_X509_CSR_PARSE_C=y +# end of Certificates + +CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y +# CONFIG_MBEDTLS_DHM_C is not set +CONFIG_MBEDTLS_ECDH_C=y +CONFIG_MBEDTLS_ECDSA_C=y +# CONFIG_MBEDTLS_ECJPAKE_C is not set +CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y +CONFIG_MBEDTLS_ECP_NIST_OPTIM=y +# CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set +# CONFIG_MBEDTLS_POLY1305_C is not set +# CONFIG_MBEDTLS_CHACHA20_C is not set +CONFIG_MBEDTLS_HKDF_C=y +# CONFIG_MBEDTLS_THREADING_C is not set +CONFIG_MBEDTLS_ERROR_STRINGS=y +CONFIG_MBEDTLS_FS_IO=y +# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set +# end of mbedTLS + +# +# ESP-MQTT Configurations +# +CONFIG_MQTT_PROTOCOL_311=y +# CONFIG_MQTT_PROTOCOL_5 is not set +CONFIG_MQTT_TRANSPORT_SSL=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y +# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set +# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set +# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set +# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set +# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set +# CONFIG_MQTT_CUSTOM_OUTBOX is not set +# end of ESP-MQTT Configurations + +# +# LibC +# +CONFIG_LIBC_NEWLIB=y +CONFIG_LIBC_MISC_IN_IRAM=y +CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y +CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set +# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set +# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set +CONFIG_LIBC_STDIN_LINE_ENDING_CR=y +# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set +CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y +# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set +# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set +# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set +# CONFIG_LIBC_OPTIMIZED_MISALIGNED_ACCESS is not set +# end of LibC + +# +# NVS +# +# CONFIG_NVS_ENCRYPTION is not set +# CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set +# end of NVS + +# +# OpenThread +# +# CONFIG_OPENTHREAD_ENABLED is not set + +# +# OpenThread Spinel +# +# CONFIG_OPENTHREAD_SPINEL_ONLY is not set +# end of OpenThread Spinel +# end of OpenThread + +# +# Protocomm +# +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y +# end of Protocomm + +# +# PThreads +# +CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_PTHREAD_STACK_MIN=768 +CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" +# end of PThreads + +# +# MMU Config +# +CONFIG_MMU_PAGE_SIZE_64KB=y +CONFIG_MMU_PAGE_MODE="64KB" +CONFIG_MMU_PAGE_SIZE=0x10000 +# end of MMU Config + +# +# Main Flash configuration +# + +# +# SPI Flash behavior when brownout +# +CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y +CONFIG_SPI_FLASH_BROWNOUT_RESET=y +# end of SPI Flash behavior when brownout + +# +# Optional and Experimental Features (READ DOCS FIRST) +# + +# +# Features here require specific hardware (READ DOCS FIRST!) +# +# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set +CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 +# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set +CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y +# end of Optional and Experimental Features (READ DOCS FIRST) +# end of Main Flash configuration + +# +# SPI Flash driver +# +# CONFIG_SPI_FLASH_VERIFY_WRITE is not set +# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set +CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y +# CONFIG_SPI_FLASH_ROM_IMPL is not set +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 +CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 +# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set +# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set +# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set + +# +# Auto-detect flash chips +# +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED=y +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED=y +# CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +# CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set +# end of Auto-detect flash chips + +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y +# end of SPI Flash driver + +# +# SPIFFS Configuration +# +CONFIG_SPIFFS_MAX_PARTITIONS=3 + +# +# SPIFFS Cache Configuration +# +CONFIG_SPIFFS_CACHE=y +CONFIG_SPIFFS_CACHE_WR=y +# CONFIG_SPIFFS_CACHE_STATS is not set +# end of SPIFFS Cache Configuration + +CONFIG_SPIFFS_PAGE_CHECK=y +CONFIG_SPIFFS_GC_MAX_RUNS=10 +# CONFIG_SPIFFS_GC_STATS is not set +CONFIG_SPIFFS_PAGE_SIZE=256 +CONFIG_SPIFFS_OBJ_NAME_LEN=32 +# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set +CONFIG_SPIFFS_USE_MAGIC=y +CONFIG_SPIFFS_USE_MAGIC_LENGTH=y +CONFIG_SPIFFS_META_LENGTH=4 +CONFIG_SPIFFS_USE_MTIME=y + +# +# Debug Configuration +# +# CONFIG_SPIFFS_DBG is not set +# CONFIG_SPIFFS_API_DBG is not set +# CONFIG_SPIFFS_GC_DBG is not set +# CONFIG_SPIFFS_CACHE_DBG is not set +# CONFIG_SPIFFS_CHECK_DBG is not set +# CONFIG_SPIFFS_TEST_VISUALISATION is not set +# end of Debug Configuration +# end of SPIFFS Configuration + +# +# TCP Transport +# + +# +# Websocket +# +CONFIG_WS_TRANSPORT=y +CONFIG_WS_BUFFER_SIZE=1024 +# CONFIG_WS_DYNAMIC_BUFFER is not set +# end of Websocket +# end of TCP Transport + +# +# Ultra Low Power (ULP) Co-processor +# +# CONFIG_ULP_COPROC_ENABLED is not set + +# +# ULP Debugging Options +# +# end of ULP Debugging Options +# end of Ultra Low Power (ULP) Co-processor + +# +# Unity unit testing library +# +CONFIG_UNITY_ENABLE_FLOAT=y +CONFIG_UNITY_ENABLE_DOUBLE=y +# CONFIG_UNITY_ENABLE_64BIT is not set +# CONFIG_UNITY_ENABLE_COLOR is not set +CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y +# CONFIG_UNITY_ENABLE_FIXTURE is not set +# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set +# end of Unity unit testing library + +# +# Virtual file system +# +CONFIG_VFS_SUPPORT_IO=y +CONFIG_VFS_SUPPORT_DIR=y +CONFIG_VFS_SUPPORT_SELECT=y +CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# CONFIG_VFS_SELECT_IN_RAM is not set +CONFIG_VFS_SUPPORT_TERMIOS=y +CONFIG_VFS_MAX_COUNT=8 + +# +# Host File System I/O (Semihosting) +# +CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# end of Host File System I/O (Semihosting) + +CONFIG_VFS_INITIALIZE_DEV_NULL=y +# end of Virtual file system + +# +# Wear Levelling +# +# CONFIG_WL_SECTOR_SIZE_512 is not set +CONFIG_WL_SECTOR_SIZE_4096=y +CONFIG_WL_SECTOR_SIZE=4096 +# end of Wear Levelling + +# +# Wi-Fi Provisioning Manager +# +CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 +CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 +# CONFIG_WIFI_PROV_BLE_BONDING is not set +CONFIG_WIFI_PROV_BLE_SEC_CONN=y +# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set +# CONFIG_WIFI_PROV_BLE_NOTIFY is not set +# CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV is not set +CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y +# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set +# end of Wi-Fi Provisioning Manager + +# +# CHIP Core +# + +# +# General Options +# +CONFIG_MAX_EXCHANGE_CONTEXTS=8 +CONFIG_MAX_FABRICS=5 +CONFIG_MAX_UNSOLICITED_MESSAGE_HANDLERS=8 +# CONFIG_ENABLE_PW_RPC is not set +CONFIG_USE_MINIMAL_MDNS=y +CONFIG_ENABLE_CHIP_SHELL=y +CONFIG_CHIP_SHELL_CMD_LINE_BUF_MAX_LENGTH=256 +CONFIG_CHIP_SHELL_CMD_LINE_ARG_MAX_COUNT=32 +# CONFIG_ENABLE_CHIP_CONTROLLER_BUILD is not set +# CONFIG_DISABLE_IPV4 is not set +# CONFIG_DISABLE_READ_CLIENT is not set +CONFIG_ENABLE_PERSIST_SUBSCRIPTIONS=y +# CONFIG_BUILD_CHIP_TESTS is not set +CONFIG_DISPATCH_EVENT_LONG_DISPATCH_TIME_WARNING_THRESHOLD_MS=700 +# CONFIG_CHIP_LOG_FILTERING is not set +# CONFIG_CHIP_SYSTEM_CONFIG_POOL_USE_HEAP is not set +CONFIG_MAX_GROUP_ENDPOINTS_PER_FABRIC=1 +CONFIG_MAX_GROUPS_PER_FABRIC_PER_ENDPOINT=4 +CONFIG_MAX_GROUP_KEYS_PER_FABRIC=3 +# CONFIG_CHIP_DEVICE_ENABLE_DYNAMIC_SERVER is not set +# CONFIG_CHIP_MEM_ALLOC_MODE_INTERNAL is not set +CONFIG_CHIP_MEM_ALLOC_MODE_DEFAULT=y +# end of General Options + +# +# Networking Options +# +CONFIG_NUM_TCP_ENDPOINTS=8 +CONFIG_NUM_UDP_ENDPOINTS=8 +CONFIG_ENABLE_ENDPOINT_QUEUE_FILTER=y +CONFIG_USE_TCPIP_CORE_LOCK_FOR_THREAD_SAFETY=y +# end of Networking Options + +# +# System Options +# +CONFIG_NUM_TIMERS=32 +CONFIG_ENABLE_OTA_REQUESTOR=y +# CONFIG_ENABLE_ENCRYPTED_OTA is not set +# CONFIG_ENABLE_DELTA_OTA is not set +CONFIG_OTA_AUTO_REBOOT_ON_APPLY=y +CONFIG_OTA_AUTO_REBOOT_DELAY_MS=5000 +CONFIG_CHIP_ENABLE_PAIRING_AUTOSTART=y +# CONFIG_ENABLE_SNTP_TIME_SYNC is not set +# end of System Options + +# +# Security Options +# + +# +# Debugging +# +# CONFIG_SECURITY_TEST_MODE is not set +# end of Debugging +# end of Security Options +# end of CHIP Core + +# +# CHIP Device Layer +# + +# +# General Options +# +CONFIG_CHIP_PROJECT_CONFIG="" +CONFIG_CHIP_TASK_STACK_SIZE=8192 +CONFIG_CHIP_TASK_PRIORITY=1 +CONFIG_MAX_EVENT_QUEUE_SIZE=40 +# CONFIG_ENABLE_EXTENDED_DISCOVERY is not set +# CONFIG_ENABLE_COMMISSIONABLE_DEVICE_TYPE is not set +# CONFIG_ENABLE_BG_EVENT_PROCESSING is not set +# end of General Options + +# +# Device Identification Options +# +CONFIG_DEVICE_VENDOR_ID=0xFFF1 +CONFIG_DEVICE_PRODUCT_ID=0x8000 +CONFIG_DEFAULT_DEVICE_HARDWARE_VERSION=0 +CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=2 +CONFIG_DEVICE_TYPE=0 +# end of Device Identification Options + +# +# WiFi Station Options +# +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_DEFAULT_WIFI_SSID="" +CONFIG_DEFAULT_WIFI_PASSWORD="" +CONFIG_WIFI_STATION_RECONNECT_INTERVAL=100 +CONFIG_MAX_SCAN_NETWORKS_RESULTS=10 +CONFIG_WIFI_SCAN_COMPLETION_TIMEOUT=10000 +CONFIG_WIFI_CONNECTIVITY_TIMEOUT=30000 +# end of WiFi Station Options + +# +# BLE Options +# +CONFIG_ENABLE_CHIPOBLE=y +CONFIG_BLE_DEVICE_NAME_PREFIX="MATTER-" +CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MIN=40 +CONFIG_BLE_FAST_ADVERTISING_INTERVAL_MAX=40 +CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MIN=800 +CONFIG_BLE_SLOW_ADVERTISING_INTERVAL_MAX=800 +CONFIG_CHIPOBLE_SINGLE_CONNECTION=y +CONFIG_CHIPOBLE_ENABLE_ADVERTISING_AUTOSTART=0 +CONFIG_USE_BLE_ONLY_FOR_COMMISSIONING=y +# end of BLE Options + +# +# Commissioning options +# +# CONFIG_ENABLE_ROTATING_DEVICE_ID is not set +# CONFIG_ENABLE_ESP32_FACTORY_DATA_PROVIDER is not set +# CONFIG_SEC_CERT_DAC_PROVIDER is not set +# end of Commissioning options + +# +# Diagnostics Options +# +# CONFIG_ENABLE_ESP_DIAGNOSTICS is not set +# end of Diagnostics Options + +# +# Testing Options +# +CONFIG_USE_TEST_SERIAL_NUMBER="TEST_SN" +CONFIG_ENABLE_TEST_SETUP_PARAMS=y +CONFIG_TEST_EVENT_TRIGGER_ENABLED=y +CONFIG_TEST_EVENT_TRIGGER_ENABLE_KEY="00112233445566778899aabbccddeeff" +# end of Testing Options + +# +# Network Telemetry Options +# +CONFIG_ENABLE_WIFI_TELEMETRY=y +# CONFIG_ENABLE_THREAD_TELEMETRY is not set +# CONFIG_ENABLE_THREAD_TELEMETRY_FULL is not set +# CONFIG_ENABLE_TUNNEL_TELEMETRY is not set +# CONFIG_ENABLE_ETHERNET_TELEMETRY is not set +# end of Network Telemetry Options + +# +# Event Logging Options +# +CONFIG_EVENT_LOGGING_CRIT_BUFFER_SIZE=4096 +CONFIG_EVENT_LOGGING_INFO_BUFFER_SIZE=1024 +CONFIG_EVENT_LOGGING_DEBUG_BUFFER_SIZE=1024 +CONFIG_CHIP_CONFIG_IM_PRETTY_PRINT=y +CONFIG_CHIP_LOG_DEFAULT_LEVEL_EQUALS_LOG_DEFAULT_LEVEL=y +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_NONE is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_ERROR is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_PROGRESS is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_DETAIL is not set +# CONFIG_CHIP_LOG_DEFAULT_LEVEL_AUTOMATION is not set +CONFIG_CHIP_LOG_DEFAULT_LEVEL=3 +# end of Event Logging Options + +# CONFIG_CHIP_ENABLE_BDX_LOG_TRANSFER is not set + +# +# Matter OTA Image +# +CONFIG_CHIP_OTA_IMAGE_BUILD=y +CONFIG_CHIP_OTA_IMAGE_EXTRA_ARGS="" +# end of Matter OTA Image + +# +# External Platform +# +# CONFIG_CHIP_ENABLE_EXTERNAL_PLATFORM is not set +# end of External Platform + +# +# Matter Manufacturing Options +# +CONFIG_CHIP_FACTORY_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_CONFIG_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_COUNTERS_NAMESPACE_PARTITION_LABEL="nvs" +CONFIG_CHIP_KVS_NAMESPACE_PARTITION_LABEL="nvs" +# end of Matter Manufacturing Options + +# +# Commissioning Window Options +# +CONFIG_CHIP_DISCOVERY_TIMEOUT_SECS=900 +# end of Commissioning Window Options + +# +# Enable ESP32 as a BLE Commissioner +# +# CONFIG_ENABLE_ESP32_BLE_CONTROLLER is not set +# end of Enable ESP32 as a BLE Commissioner + +# +# Enable BLE Extended Announcement +# +# CONFIG_ENABLE_BLE_EXT_ANNOUNCEMENT is not set +# end of Enable BLE Extended Announcement + +# +# Message Reliable Protocol Options +# +CONFIG_MRP_LOCAL_ACTIVE_RETRY_INTERVAL_FOR_WIFI_ETHERNET=300 +CONFIG_MRP_LOCAL_IDLE_RETRY_INTERVAL_FOR_WIFI_ETHERNET=500 +CONFIG_MRP_RETRY_INTERVAL_SENDER_BOOST_FOR_WIFI_ETHERNET=0 +CONFIG_MRP_MAX_RETRANS=4 +# end of Message Reliable Protocol Options + +# +# Network Commissioning Driver Endpoint Id +# +CONFIG_WIFI_NETWORK_COMMISSIONING_DRIVER=y +CONFIG_WIFI_NETWORK_ENDPOINT_ID=0 +# end of Network Commissioning Driver Endpoint Id + +# +# Cluster Configuration Options +# +# CONFIG_ENABLE_ACCESS_RESTRICTIONS is not set +# end of Cluster Configuration Options +# end of CHIP Device Layer + +# +# ESP Matter +# +CONFIG_ESP_MATTER_MAX_DEVICE_TYPE_COUNT=16 +CONFIG_ESP_MATTER_ATTRIBUTE_BUFFER_LARGEST=259 +CONFIG_ESP_MATTER_NVS_PART_NAME="nvs" +CONFIG_ESP_MATTER_DEFERRED_ATTR_PERSISTENCE_TIME_MS=3000 +CONFIG_EXAMPLE_DAC_PROVIDER=y +# CONFIG_CUSTOM_DAC_PROVIDER is not set +CONFIG_EXAMPLE_COMMISSIONABLE_DATA_PROVIDER=y +# CONFIG_SEC_CERT_COMMISSIONABLE_DATA_PROVIDER is not set +# CONFIG_CUSTOM_COMMISSIONABLE_DATA_PROVIDER is not set +CONFIG_EXAMPLE_DEVICE_INSTANCE_INFO_PROVIDER=y +# CONFIG_SEC_CERT_DEVICE_INSTANCE_INFO_PROVIDER is not set +# CONFIG_CUSTOM_DEVICE_INSTANCE_INFO_PROVIDER is not set +CONFIG_NONE_DEVICE_INFO_PROVIDER=y +# CONFIG_CUSTOM_DEVICE_INFO_PROVIDER is not set +CONFIG_ESP_MATTER_MAX_DYNAMIC_ENDPOINT_COUNT=16 +CONFIG_ESP_MATTER_MODE_SELECT_CLUSTER_ENDPOINT_COUNT=0 +CONFIG_ESP_MATTER_TEMPERATURE_CONTROL_CLUSTER_ENDPOINT_COUNT=0 +CONFIG_ESP_MATTER_SCENES_TABLE_SIZE=16 +CONFIG_ESP_MATTER_BINDING_TABLE_SIZE=10 +CONFIG_ESP_MATTER_MEM_ALLOC_MODE_INTERNAL=y +# CONFIG_ESP_MATTER_MEM_ALLOC_MODE_DEFAULT is not set +CONFIG_ESP_MATTER_ENABLE_DATA_MODEL=y +CONFIG_ESP_MATTER_ENABLE_MATTER_SERVER=y +CONFIG_ESP_MATTER_ENABLE_OPENTHREAD=y + +# +# Select Supported Matter Clusters +# +CONFIG_SUPPORT_ACCESS_CONTROL_CLUSTER=y +CONFIG_SUPPORT_ACCOUNT_LOGIN_CLUSTER=y +CONFIG_SUPPORT_ACTIONS_CLUSTER=y +CONFIG_SUPPORT_ACTIVATED_CARBON_FILTER_MONITORING_CLUSTER=y +CONFIG_SUPPORT_ADMINISTRATOR_COMMISSIONING_CLUSTER=y +CONFIG_SUPPORT_AIR_QUALITY_CLUSTER=y +CONFIG_SUPPORT_APPLICATION_BASIC_CLUSTER=y +CONFIG_SUPPORT_APPLICATION_LAUNCHER_CLUSTER=y +CONFIG_SUPPORT_AUDIO_OUTPUT_CLUSTER=y +CONFIG_SUPPORT_BASIC_INFORMATION_CLUSTER=y +CONFIG_SUPPORT_BINDING_CLUSTER=y +CONFIG_SUPPORT_BOOLEAN_STATE_CLUSTER=y +CONFIG_SUPPORT_BOOLEAN_STATE_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_BRIDGED_DEVICE_BASIC_INFORMATION_CLUSTER=y +CONFIG_SUPPORT_CAMERA_AV_SETTINGS_USER_LEVEL_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_CAMERA_AV_STREAM_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_CARBON_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_CARBON_MONOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_CHANNEL_CLUSTER=y +CONFIG_SUPPORT_CHIME_CLUSTER=y +CONFIG_SUPPORT_CLOSURE_CONTROL_CLUSTER=y +CONFIG_SUPPORT_CLOSURE_DIMENSION_CLUSTER=y +CONFIG_SUPPORT_COLOR_CONTROL_CLUSTER=y +CONFIG_SUPPORT_COMMISSIONER_CONTROL_CLUSTER=y +CONFIG_SUPPORT_COMMODITY_METERING_CLUSTER=y +CONFIG_SUPPORT_COMMODITY_PRICE_CLUSTER=y +CONFIG_SUPPORT_COMMODITY_TARIFF_CLUSTER=y +CONFIG_SUPPORT_CONTENT_LAUNCHER_CLUSTER=y +CONFIG_SUPPORT_CONTENT_CONTROL_CLUSTER=y +CONFIG_SUPPORT_CONTENT_APP_OBSERVER_CLUSTER=y +CONFIG_SUPPORT_DESCRIPTOR_CLUSTER=y +CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_DEVICE_ENERGY_MANAGEMENT_MODE_CLUSTER=y +CONFIG_SUPPORT_DIAGNOSTIC_LOGS_CLUSTER=y +CONFIG_SUPPORT_DISHWASHER_ALARM_CLUSTER=y +CONFIG_SUPPORT_DISHWASHER_MODE_CLUSTER=y +CONFIG_SUPPORT_ELECTRICAL_GRID_CONDITIONS_CLUSTER=y +CONFIG_SUPPORT_GROUPCAST_CLUSTER=y +CONFIG_SUPPORT_METER_IDENTIFICATION_CLUSTER=y +CONFIG_SUPPORT_MICROWAVE_OVEN_MODE_CLUSTER=y +CONFIG_SUPPORT_DOOR_LOCK_CLUSTER=y +CONFIG_SUPPORT_ECOSYSTEM_INFORMATION_CLUSTER=y +CONFIG_SUPPORT_ELECTRICAL_ENERGY_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_ELECTRICAL_POWER_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_ENERGY_EVSE_CLUSTER=y +CONFIG_SUPPORT_ENERGY_EVSE_MODE_CLUSTER=y +CONFIG_SUPPORT_ETHERNET_NETWORK_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_ENERGY_PREFERENCE_CLUSTER=y +CONFIG_SUPPORT_FAN_CONTROL_CLUSTER=y +CONFIG_SUPPORT_FAULT_INJECTION_CLUSTER=y +CONFIG_SUPPORT_FIXED_LABEL_CLUSTER=y +CONFIG_SUPPORT_FORMALDEHYDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_GENERAL_COMMISSIONING_CLUSTER=y +CONFIG_SUPPORT_GENERAL_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_GROUPS_CLUSTER=y +CONFIG_SUPPORT_HEPA_FILTER_MONITORING_CLUSTER=y +CONFIG_SUPPORT_GROUP_KEY_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_ICD_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_IDENTIFY_CLUSTER=y +CONFIG_SUPPORT_JOINT_FABRIC_DATASTORE_CLUSTER=y +CONFIG_SUPPORT_JOINT_FABRIC_ADMINISTRATOR_CLUSTER=y +CONFIG_SUPPORT_KEYPAD_INPUT_CLUSTER=y +CONFIG_SUPPORT_LAUNDRY_WASHER_MODE_CLUSTER=y +CONFIG_SUPPORT_LEVEL_CONTROL_CLUSTER=y +CONFIG_SUPPORT_LOCALIZATION_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_LOW_POWER_CLUSTER=y +CONFIG_SUPPORT_MEDIA_INPUT_CLUSTER=y +CONFIG_SUPPORT_MEDIA_PLAYBACK_CLUSTER=y +CONFIG_SUPPORT_MICROWAVE_OVEN_CONTROL_CLUSTER=y +CONFIG_SUPPORT_MESSAGES_CLUSTER=y +CONFIG_SUPPORT_MODE_SELECT_CLUSTER=y +CONFIG_SUPPORT_NETWORK_COMMISSIONING_CLUSTER=y +CONFIG_SUPPORT_NITROGEN_DIOXIDE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PUSH_AV_STREAM_TRANSPORT_CLUSTER=y +CONFIG_SUPPORT_SAMPLE_MEI_CLUSTER=y +CONFIG_SUPPORT_OCCUPANCY_SENSING_CLUSTER=y +CONFIG_SUPPORT_ON_OFF_CLUSTER=y +CONFIG_SUPPORT_POWER_TOPOLOGY_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_CREDENTIALS_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_STATE_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_STATE_OVEN_CLUSTER=y +CONFIG_SUPPORT_OPERATIONAL_STATE_RVC_CLUSTER=y +CONFIG_SUPPORT_OTA_SOFTWARE_UPDATE_PROVIDER_CLUSTER=y +CONFIG_SUPPORT_OTA_SOFTWARE_UPDATE_REQUESTOR_CLUSTER=y +CONFIG_SUPPORT_OVEN_MODE_CLUSTER=y +CONFIG_SUPPORT_OZONE_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PM10_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PM1_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_PM2_5_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_POWER_SOURCE_CLUSTER=y +CONFIG_SUPPORT_POWER_SOURCE_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_PUMP_CONFIGURATION_AND_CONTROL_CLUSTER=y +CONFIG_SUPPORT_RADON_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_REFRIGERATOR_ALARM_CLUSTER=y +CONFIG_SUPPORT_REFRIGERATOR_AND_TEMPERATURE_CONTROLLED_CABINET_MODE_CLUSTER=y +CONFIG_SUPPORT_RVC_CLEAN_MODE_CLUSTER=y +CONFIG_SUPPORT_RVC_RUN_MODE_CLUSTER=y +CONFIG_SUPPORT_SCENES_CLUSTER=y +CONFIG_SUPPORT_SERVICE_AREA_CLUSTER=y +CONFIG_SUPPORT_SMOKE_CO_ALARM_CLUSTER=y +CONFIG_SUPPORT_SOFTWARE_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_SOIL_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_SWITCH_CLUSTER=y +CONFIG_SUPPORT_TARGET_NAVIGATOR_CLUSTER=y +CONFIG_SUPPORT_TEMPERATURE_CONTROL_CLUSTER=y +CONFIG_SUPPORT_THERMOSTAT_CLUSTER=y +CONFIG_SUPPORT_THERMOSTAT_USER_INTERFACE_CONFIGURATION_CLUSTER=y +CONFIG_SUPPORT_THREAD_BORDER_ROUTER_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_THREAD_NETWORK_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_THREAD_NETWORK_DIRECTORY_CLUSTER=y +CONFIG_SUPPORT_TIME_FORMAT_LOCALIZATION_CLUSTER=y +CONFIG_SUPPORT_TIME_SYNCHRONIZATION_CLUSTER=y +CONFIG_SUPPORT_TIMER_CLUSTER=y +CONFIG_SUPPORT_TLS_CERTIFICATE_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_TLS_CLIENT_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_TVOC_CONCENTRATION_MEASUREMENT_CLUSTER=y +CONFIG_SUPPORT_UNIT_LOCALIZATION_CLUSTER=y +CONFIG_SUPPORT_UNIT_TESTING_CLUSTER=y +CONFIG_SUPPORT_USER_LABEL_CLUSTER=y +CONFIG_SUPPORT_VALVE_CONFIGURATION_AND_CONTROL_CLUSTER=y +CONFIG_SUPPORT_WAKE_ON_LAN_CLUSTER=y +CONFIG_SUPPORT_LAUNDRY_WASHER_CONTROLS_CLUSTER=y +CONFIG_SUPPORT_LAUNDRY_DRYER_CONTROLS_CLUSTER=y +CONFIG_SUPPORT_WEB_RTC_TRANSPORT_PROVIDER_CLUSTER=y +CONFIG_SUPPORT_WEB_RTC_TRANSPORT_REQUESTOR_CLUSTER=y +CONFIG_SUPPORT_WIFI_NETWORK_DIAGNOSTICS_CLUSTER=y +CONFIG_SUPPORT_WIFI_NETWORK_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_WINDOW_COVERING_CLUSTER=y +CONFIG_SUPPORT_WATER_HEATER_MANAGEMENT_CLUSTER=y +CONFIG_SUPPORT_WATER_HEATER_MODE_CLUSTER=y +CONFIG_SUPPORT_ZONE_MANAGEMENT_CLUSTER=y +# end of Select Supported Matter Clusters +# end of ESP Matter + +# +# ESP Matter Bridge +# +CONFIG_ESP_MATTER_AGGREGATOR_ENDPOINT_COUNT=1 +CONFIG_ESP_MATTER_BRIDGE_INFO_PART_NAME="nvs" +# end of ESP Matter Bridge + +# +# ESP Matter Console +# +CONFIG_ESP_MATTER_CONSOLE_TASK_STACK=2048 +CONFIG_ESP_MATTER_CONSOLE_MAX_COMMANDS=10 +# end of ESP Matter Console + +# +# ESP Matter Controller +# +# CONFIG_ESP_MATTER_CONTROLLER_ENABLE is not set +# end of ESP Matter Controller + +# +# ESP Matter OTA Provider +# +# CONFIG_ESP_MATTER_OTA_PROVIDER_ENABLED is not set +# end of ESP Matter OTA Provider + +# +# IoT Button +# +CONFIG_BUTTON_PERIOD_TIME_MS=5 +CONFIG_BUTTON_DEBOUNCE_TICKS=2 +CONFIG_BUTTON_SHORT_PRESS_TIME_MS=180 +CONFIG_BUTTON_LONG_PRESS_TIME_MS=1500 +CONFIG_BUTTON_LONG_PRESS_HOLD_SERIAL_TIME_MS=20 +CONFIG_ADC_BUTTON_MAX_CHANNEL=3 +CONFIG_ADC_BUTTON_MAX_BUTTON_PER_CHANNEL=8 +CONFIG_ADC_BUTTON_SAMPLE_TIMES=1 +# end of IoT Button + +# +# CMake Utilities +# +# CONFIG_CU_RELINKER_ENABLE is not set +# CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set +CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y +# CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set +# CONFIG_CU_GCC_LTO_ENABLE is not set +# CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set +# end of CMake Utilities + +# +# ESP serial flasher +# +CONFIG_SERIAL_FLASHER_MD5_ENABLED=y +CONFIG_SERIAL_FLASHER_RESET_HOLD_TIME_MS=100 +CONFIG_SERIAL_FLASHER_BOOT_HOLD_TIME_MS=50 +# end of ESP serial flasher + +# +# Diagnostics data store +# +CONFIG_DIAG_DATA_STORE_RTC=y +# CONFIG_DIAG_DATA_STORE_FLASH is not set +# CONFIG_DIAG_DATA_STORE_DBG_PRINTS is not set +CONFIG_DIAG_DATA_STORE_REPORTING_WATERMARK_PERCENT=80 + +# +# RTC Store +# +CONFIG_RTC_STORE_DATA_SIZE=6144 +CONFIG_RTC_STORE_CRITICAL_DATA_SIZE=4096 +# end of RTC Store +# end of Diagnostics data store + +# +# Diagnostics +# +CONFIG_DIAG_LOG_MSG_ARG_FORMAT_TLV=y +# CONFIG_DIAG_LOG_MSG_ARG_FORMAT_STRING is not set +CONFIG_DIAG_LOG_MSG_ARG_MAX_SIZE=64 +CONFIG_DIAG_LOG_DROP_WIFI_LOGS=y +# CONFIG_DIAG_ENABLE_WRAP_LOG_FUNCTIONS is not set +CONFIG_DIAG_ENABLE_METRICS=y +CONFIG_DIAG_METRICS_MAX_COUNT=20 +CONFIG_DIAG_ENABLE_HEAP_METRICS=y +CONFIG_DIAG_HEAP_POLLING_INTERVAL=30 +CONFIG_DIAG_ENABLE_WIFI_METRICS=y +CONFIG_DIAG_WIFI_POLLING_INTERVAL=30 +CONFIG_DIAG_ENABLE_VARIABLES=y +CONFIG_DIAG_VARIABLES_MAX_COUNT=20 +CONFIG_DIAG_ENABLE_NETWORK_VARIABLES=y +# CONFIG_DIAG_MORE_NETWORK_VARS is not set +# CONFIG_DIAG_USE_EXTERNAL_LOG_WRAP is not set +# end of Diagnostics + +# +# ESP Insights +# +# CONFIG_ESP_INSIGHTS_ENABLED is not set +# CONFIG_ESP_INSIGHTS_TRANSPORT_MQTT is not set +CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS=y +CONFIG_ESP_INSIGHTS_TRANSPORT_HTTPS_HOST="https://client.insights.espressif.com" +CONFIG_ESP_INSIGHTS_CLOUD_POST_MIN_INTERVAL_SEC=60 +CONFIG_ESP_INSIGHTS_CLOUD_POST_MAX_INTERVAL_SEC=240 +CONFIG_ESP_INSIGHTS_META_VERSION_10=y +# end of ESP Insights + +# +# OpenThread RCP Update +# +# CONFIG_AUTO_UPDATE_RCP is not set +# CONFIG_CREATE_OTA_IMAGE_WITH_RCP_FW is not set +# end of OpenThread RCP Update + +# +# ESP Secure Cert Manager +# +CONFIG_ESP_SECURE_CERT_DS_PERIPHERAL=y +# CONFIG_ESP_SECURE_CERT_SUPPORT_LEGACY_FORMATS is not set +# end of ESP Secure Cert Manager + +# +# jsmn +# +# CONFIG_JSMN_PARENT_LINKS is not set +# CONFIG_JSMN_STRICT is not set +# CONFIG_JSMN_STATIC is not set +# end of jsmn + +# +# mDNS +# +CONFIG_MDNS_MAX_INTERFACES=3 +CONFIG_MDNS_MAX_SERVICES=10 +CONFIG_MDNS_TASK_PRIORITY=1 +CONFIG_MDNS_ACTION_QUEUE_LEN=16 +CONFIG_MDNS_TASK_STACK_SIZE=4096 +# CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_MDNS_TASK_AFFINITY_CPU0=y +CONFIG_MDNS_TASK_AFFINITY=0x0 + +# +# MDNS Memory Configuration +# +CONFIG_MDNS_TASK_CREATE_FROM_INTERNAL=y +CONFIG_MDNS_MEMORY_ALLOC_INTERNAL=y +# CONFIG_MDNS_MEMORY_CUSTOM_IMPL is not set +# end of MDNS Memory Configuration + +CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 +CONFIG_MDNS_TIMER_PERIOD_MS=100 +# CONFIG_MDNS_NETWORKING_SOCKET is not set +# CONFIG_MDNS_SKIP_SUPPRESSING_OWN_QUERIES is not set +# CONFIG_MDNS_ENABLE_DEBUG_PRINTS is not set +CONFIG_MDNS_ENABLE_CONSOLE_CLI=y +# CONFIG_MDNS_RESPOND_REVERSE_QUERIES is not set +CONFIG_MDNS_MULTIPLE_INSTANCE=y + +# +# MDNS Predefined interfaces +# +CONFIG_MDNS_PREDEF_NETIF_STA=y +CONFIG_MDNS_PREDEF_NETIF_AP=y +CONFIG_MDNS_PREDEF_NETIF_ETH=y +# end of MDNS Predefined interfaces +# end of mDNS + +# +# ESP RainMaker Common +# +CONFIG_ESP_RMAKER_LIB_ESP_MQTT=y +# CONFIG_ESP_RMAKER_LIB_AWS_IOT is not set +CONFIG_ESP_RMAKER_MQTT_GLUE_LIB=1 +CONFIG_ESP_RMAKER_MQTT_PORT_443=y +# CONFIG_ESP_RMAKER_MQTT_PORT_8883 is not set +CONFIG_ESP_RMAKER_MQTT_PORT=1 +# CONFIG_ESP_RMAKER_MQTT_PERSISTENT_SESSION is not set +CONFIG_ESP_RMAKER_MQTT_SEND_USERNAME=y +CONFIG_ESP_RMAKER_MQTT_PRODUCT_NAME="RMDev" +CONFIG_ESP_RMAKER_MQTT_PRODUCT_VERSION="1x0" +CONFIG_ESP_RMAKER_MQTT_PRODUCT_SKU="EX00" +CONFIG_ESP_RMAKER_MQTT_USE_CERT_BUNDLE=y +CONFIG_ESP_RMAKER_MAX_MQTT_SUBSCRIPTIONS=10 +CONFIG_ESP_RMAKER_MQTT_KEEP_ALIVE_INTERVAL=120 +CONFIG_ESP_RMAKER_NETWORK_OVER_WIFI=y +CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_STACK=5120 +CONFIG_ESP_RMAKER_WORK_QUEUE_TASK_PRIORITY=5 +CONFIG_ESP_RMAKER_FACTORY_PARTITION_NAME="fctry" +CONFIG_ESP_RMAKER_FACTORY_NAMESPACE="rmaker_creds" +CONFIG_ESP_RMAKER_DEF_TIMEZONE="Asia/Shanghai" +CONFIG_ESP_RMAKER_SNTP_SERVER_NAME="pool.ntp.org" +CONFIG_ESP_RMAKER_MAX_COMMANDS=10 +CONFIG_ESP_RMAKER_CONSOLE_ENABLED=y +CONFIG_ESP_RMAKER_CONSOLE_TASK_STACK=4096 +CONFIG_ESP_RMAKER_CONSOLE_TASK_PRIORITY=5 +# end of ESP RainMaker Common +# end of Component config + +# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set + +# Deprecated options for backward compatibility +# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set +# CONFIG_NO_BLOBS is not set +CONFIG_APP_ROLLBACK_ENABLE=y +# CONFIG_APP_ANTI_ROLLBACK is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set +CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y +# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set +CONFIG_LOG_BOOTLOADER_LEVEL=3 +# CONFIG_FLASH_ENCRYPTION_ENABLED is not set +# CONFIG_FLASHMODE_QIO is not set +# CONFIG_FLASHMODE_QOUT is not set +CONFIG_FLASHMODE_DIO=y +# CONFIG_FLASHMODE_DOUT is not set +CONFIG_MONITOR_BAUD=115200 +CONFIG_OPTIMIZATION_LEVEL_DEBUG=y +CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y +CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set +CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y +# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set +CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_CXX_EXCEPTIONS is not set +CONFIG_STACK_CHECK_NONE=y +# CONFIG_STACK_CHECK_NORM is not set +# CONFIG_STACK_CHECK_STRONG is not set +# CONFIG_STACK_CHECK_ALL is not set +# CONFIG_WARN_WRITE_STRINGS is not set +# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set +CONFIG_ESP32_APPTRACE_DEST_NONE=y +CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y +# CONFIG_BLUEDROID_ENABLED is not set +CONFIG_NIMBLE_ENABLED=y +CONFIG_NIMBLE_MEM_ALLOC_MODE_INTERNAL=y +# CONFIG_NIMBLE_MEM_ALLOC_MODE_DEFAULT is not set +CONFIG_NIMBLE_MAX_CONNECTIONS=3 +CONFIG_NIMBLE_MAX_BONDS=3 +CONFIG_NIMBLE_MAX_CCCDS=8 +CONFIG_NIMBLE_L2CAP_COC_MAX_NUM=0 +CONFIG_NIMBLE_PINNED_TO_CORE=0 +CONFIG_NIMBLE_TASK_STACK_SIZE=4096 +CONFIG_BT_NIMBLE_TASK_STACK_SIZE=4096 +CONFIG_NIMBLE_ROLE_CENTRAL=y +CONFIG_NIMBLE_ROLE_PERIPHERAL=y +CONFIG_NIMBLE_ROLE_BROADCASTER=y +CONFIG_NIMBLE_ROLE_OBSERVER=y +# CONFIG_NIMBLE_NVS_PERSIST is not set +CONFIG_NIMBLE_SM_LEGACY=y +CONFIG_NIMBLE_SM_SC=y +# CONFIG_NIMBLE_SM_SC_DEBUG_KEYS is not set +CONFIG_BT_NIMBLE_SM_SC_LVL=0 +# CONFIG_NIMBLE_DEBUG is not set +CONFIG_NIMBLE_SVC_GAP_DEVICE_NAME="nimble" +CONFIG_NIMBLE_GAP_DEVICE_NAME_MAX_LEN=31 +CONFIG_NIMBLE_ATT_PREFERRED_MTU=256 +CONFIG_NIMBLE_SVC_GAP_APPEARANCE=0 +CONFIG_BT_NIMBLE_MSYS1_BLOCK_COUNT=24 +CONFIG_BT_NIMBLE_ACL_BUF_COUNT=24 +CONFIG_BT_NIMBLE_ACL_BUF_SIZE=255 +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_BT_NIMBLE_HCI_EVT_HI_BUF_COUNT=30 +CONFIG_BT_NIMBLE_HCI_EVT_LO_BUF_COUNT=8 +CONFIG_NIMBLE_RPA_TIMEOUT=900 +# CONFIG_NIMBLE_MESH is not set +CONFIG_NIMBLE_CRYPTO_STACK_MBEDTLS=y +# CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_EN is not set +CONFIG_BT_NIMBLE_COEX_PHY_CODED_TX_RX_TLIM_DIS=y +CONFIG_SW_COEXIST_ENABLE=y +CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y +CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y +# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_EVENT_LOOP_PROFILING is not set +CONFIG_POST_EVENTS_FROM_ISR=y +CONFIG_POST_EVENTS_FROM_IRAM_ISR=y +CONFIG_GDBSTUB_SUPPORT_TASKS=y +CONFIG_GDBSTUB_MAX_TASKS=32 +# CONFIG_OTA_ALLOW_HTTP is not set +# CONFIG_ESP_SYSTEM_PD_FLASH is not set +CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +CONFIG_BROWNOUT_DET=y +CONFIG_BROWNOUT_DET_LVL_SEL_7=y +# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set +CONFIG_BROWNOUT_DET_LVL=7 +CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y +CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP32_PHY_MAX_TX_POWER=20 +# CONFIG_REDUCE_PHY_TX_POWER is not set +# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set +CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y +CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_MAIN_TASK_STACK_SIZE=3584 +CONFIG_CONSOLE_UART_DEFAULT=y +# CONFIG_CONSOLE_UART_CUSTOM is not set +# CONFIG_CONSOLE_UART_NONE is not set +# CONFIG_ESP_CONSOLE_UART_NONE is not set +CONFIG_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_BAUDRATE=115200 +CONFIG_INT_WDT=y +CONFIG_INT_WDT_TIMEOUT_MS=300 +CONFIG_TASK_WDT=y +CONFIG_ESP_TASK_WDT=y +# CONFIG_TASK_WDT_PANIC is not set +CONFIG_TASK_WDT_TIMEOUT_S=5 +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set +CONFIG_IPC_TASK_STACK_SIZE=1024 +CONFIG_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP32_WIFI_ENABLED=y +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_CSI_ENABLED is not set +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP32_WIFI_TX_BA_WIN=6 +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP32_WIFI_IRAM_OPT=y +CONFIG_ESP32_WIFI_RX_IRAM_OPT=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_WPA_MBEDTLS_CRYPTO=y +CONFIG_WPA_MBEDTLS_TLS_CLIENT=y +# CONFIG_WPA_WAPI_PSK is not set +# CONFIG_WPA_SUITE_B_192 is not set +# CONFIG_WPA_11KV_SUPPORT is not set +# CONFIG_WPA_MBO_SUPPORT is not set +# CONFIG_WPA_DPP_SUPPORT is not set +# CONFIG_WPA_11R_SUPPORT is not set +# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set +# CONFIG_WPA_WPS_STRICT is not set +# CONFIG_WPA_DEBUG_PRINT is not set +# CONFIG_WPA_TESTING_OPTIONS is not set +# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set +# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set +CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y +CONFIG_TIMER_TASK_PRIORITY=1 +CONFIG_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_TIMER_QUEUE_LENGTH=10 +# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set +# CONFIG_HAL_ASSERTION_SILIENT is not set +# CONFIG_L2_TO_L3_COPY is not set +CONFIG_ESP_GRATUITOUS_ARP=y +CONFIG_GARP_TMR_INTERVAL=60 +CONFIG_TCPIP_RECVMBOX_SIZE=32 +CONFIG_TCP_MAXRTX=12 +CONFIG_TCP_SYNMAXRTX=12 +CONFIG_TCP_MSS=1440 +CONFIG_TCP_MSL=60000 +CONFIG_TCP_SND_BUF_DEFAULT=5760 +CONFIG_TCP_WND_DEFAULT=5760 +CONFIG_TCP_RECVMBOX_SIZE=6 +CONFIG_TCP_QUEUE_OOSEQ=y +CONFIG_TCP_OVERSIZE_MSS=y +# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_TCP_OVERSIZE_DISABLE is not set +CONFIG_UDP_RECVMBOX_SIZE=6 +CONFIG_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set +CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_PPP_SUPPORT is not set +CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set +CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y +# CONFIG_NEWLIB_NANO_FORMAT is not set +CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y +# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set +CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_ESP32_PTHREAD_STACK_MIN=768 +CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" +CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y +# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set +# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set +CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y +CONFIG_SUPPORT_TERMIOS=y +CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# End of deprecated options diff --git a/01_Source/matter-light-c6-wifi/sdkconfig.defaults b/01_Source/matter-light-c6-wifi/sdkconfig.defaults new file mode 100644 index 0000000..3b4231a --- /dev/null +++ b/01_Source/matter-light-c6-wifi/sdkconfig.defaults @@ -0,0 +1,16 @@ +CONFIG_IDF_TARGET="esp32c6" + +# Enable Wi-Fi STA for Matter over Wi-Fi (REQUIRED for App control) +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_ENABLE_WIFI_AP=n + +# Disable Thread for now (enable later for mesh) +CONFIG_OPENTHREAD_ENABLED=n + +# BLE for commissioning +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y + +# Custom partition +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" diff --git a/01_Source/matter-light-c6-wifi/sdkconfig.defaults.esp32c6 b/01_Source/matter-light-c6-wifi/sdkconfig.defaults.esp32c6 new file mode 100644 index 0000000..050267c --- /dev/null +++ b/01_Source/matter-light-c6-wifi/sdkconfig.defaults.esp32c6 @@ -0,0 +1,33 @@ +CONFIG_IDF_TARGET="esp32c6" + +CONFIG_MBEDTLS_HKDF_C=y + +# Custom partition table +CONFIG_PARTITION_TABLE_CUSTOM=y +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y + +CONFIG_DEVICE_SOFTWARE_VERSION_NUMBER=2 + +# BLE for Matter commissioning +CONFIG_BT_ENABLED=y +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_EXT_ADV=n +CONFIG_BT_NIMBLE_HCI_EVT_BUF_SIZE=70 +CONFIG_ENABLE_CHIPOBLE=y + +# Disable OpenThread - use Wi-Fi for Matter +CONFIG_OPENTHREAD_ENABLED=n +CONFIG_CHIP_ENABLE_OPENTHREAD=n +CONFIG_ENABLE_THREAD=n + +CONFIG_ENABLE_CHIP_SHELL=y + +# Enable Wi-Fi for Matter AND ESP-NOW +CONFIG_ESP_WIFI_ENABLED=y +CONFIG_ENABLE_WIFI_STATION=y +CONFIG_ENABLE_WIFI_AP=n + +CONFIG_ENABLE_OTA_REQUESTOR=y +CONFIG_CHIP_OTA_IMAGE_BUILD=y +CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y diff --git a/02_Firmware_Binaries/cct/factory/bootloader.bin b/02_Firmware_Binaries/cct/factory/bootloader.bin new file mode 100644 index 0000000..836adfe Binary files /dev/null and b/02_Firmware_Binaries/cct/factory/bootloader.bin differ diff --git a/02_Firmware_Binaries/cct/factory/light.bin b/02_Firmware_Binaries/cct/factory/light.bin new file mode 100644 index 0000000..1b15293 Binary files /dev/null and b/02_Firmware_Binaries/cct/factory/light.bin differ diff --git a/02_Firmware_Binaries/cct/factory/ota_data_initial.bin b/02_Firmware_Binaries/cct/factory/ota_data_initial.bin new file mode 100644 index 0000000..b4033a7 --- /dev/null +++ b/02_Firmware_Binaries/cct/factory/ota_data_initial.bin @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/02_Firmware_Binaries/cct/factory/partition-table.bin b/02_Firmware_Binaries/cct/factory/partition-table.bin new file mode 100644 index 0000000..419883b Binary files /dev/null and b/02_Firmware_Binaries/cct/factory/partition-table.bin differ diff --git a/02_Firmware_Binaries/cct/ota/light.bin b/02_Firmware_Binaries/cct/ota/light.bin new file mode 100644 index 0000000..476f7d6 Binary files /dev/null and b/02_Firmware_Binaries/cct/ota/light.bin differ diff --git a/03_Flash_and_Tools/Base38.py b/03_Flash_and_Tools/Base38.py new file mode 100644 index 0000000..834ae9e --- /dev/null +++ b/03_Flash_and_Tools/Base38.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2022 Project CHIP Authors +# 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. + +# TODO: Implement the decode method + +CODES = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', + 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '.'] +RADIX = len(CODES) +BASE38_CHARS_NEEDED_IN_CHUNK = [2, 4, 5] +MAX_BYTES_IN_CHUNK = 3 +MAX_ENCODED_BYTES_IN_CHUNK = 5 + + +def encode(bytes): + total_bytes = len(bytes) + qrcode = '' + + for i in range(0, total_bytes, MAX_BYTES_IN_CHUNK): + if (i + MAX_BYTES_IN_CHUNK) > total_bytes: + bytes_in_chunk = total_bytes - i + else: + bytes_in_chunk = MAX_BYTES_IN_CHUNK + + value = 0 + for j in range(i, i + bytes_in_chunk): + value = value + (bytes[j] << (8 * (j - i))) + + base38_chars_needed = BASE38_CHARS_NEEDED_IN_CHUNK[bytes_in_chunk - 1] + while base38_chars_needed > 0: + qrcode += CODES[int(value % RADIX)] + value = int(value / RADIX) + base38_chars_needed -= 1 + + return qrcode + + +def decode(qrcode): + total_chars = len(qrcode) + decoded_bytes = bytearray() + + for i in range(0, total_chars, MAX_ENCODED_BYTES_IN_CHUNK): + if (i + MAX_ENCODED_BYTES_IN_CHUNK) > total_chars: + chars_in_chunk = total_chars - i + else: + chars_in_chunk = MAX_ENCODED_BYTES_IN_CHUNK + + value = 0 + for j in range(i + chars_in_chunk - 1, i - 1, -1): + value = value * RADIX + CODES.index(qrcode[j]) + + bytes_in_chunk = BASE38_CHARS_NEEDED_IN_CHUNK.index(chars_in_chunk) + 1 + for k in range(0, bytes_in_chunk): + decoded_bytes.append(value & 0xFF) + value = value >> 8 + + return decoded_bytes diff --git a/03_Flash_and_Tools/Flash_Guide_CN.md b/03_Flash_and_Tools/Flash_Guide_CN.md new file mode 100644 index 0000000..d123ebf --- /dev/null +++ b/03_Flash_and_Tools/Flash_Guide_CN.md @@ -0,0 +1,119 @@ +# 烧录与编译说明(Windows,ESP32-C6) + +本说明适用于交付目录中的工程与固件: +- 源码:`Deliverable/01_Source/matter-light-c6-wifi` +- 预编译固件:`Deliverable/02_Firmware_Binaries/cct/*` + +> 备注:本项目基于 ESP-IDF v5.2+;你当前环境若已安装 Espressif IDF(例如 v5.5.1)也可直接使用。 + +--- + +## 1. 环境准备 + +### 1.1 安装/启用 ESP-IDF(PowerShell) + +以你机器上的默认安装路径为例(如不同请替换): + +```powershell +# 进入你的 ESP-IDF 目录后执行(不要在命令里写 cd 的话,也可以直接在该目录打开 PowerShell) +# 示例:C:\Espressif\frameworks\esp-idf-v5.5.1 +. "C:\Espressif\frameworks\esp-idf-v5.5.1\export.ps1" + +idf.py --version +``` + +### 1.2 串口与硬件 + +- 连接 ESP32-C6 开发板(建议 16MB Flash 版本)。 +- 在设备管理器确认串口号(如 `COM4`)。 + +--- + +## 2. 从源码编译并烧录(推荐,最稳) + +在工程目录执行: + +```powershell +cd D:\ESP-LED\Deliverable\01_Source\matter-light-c6-wifi + +# 清理并编译 +idf.py fullclean +idf.py build + +# 烧录并监视(将 COM4 替换成你的串口) +idf.py -p COM4 flash monitor +``` + +停止串口监视:按 `Ctrl+]`。 + +--- + +## 3. 直接烧录预编译 Factory 固件(无需重新编译) + +预编译 Factory 固件路径: + +- `Deliverable/02_Firmware_Binaries/cct/factory/bootloader.bin` +- `Deliverable/02_Firmware_Binaries/cct/factory/partition-table.bin` +- `Deliverable/02_Firmware_Binaries/cct/factory/ota_data_initial.bin` +- `Deliverable/02_Firmware_Binaries/cct/factory/light.bin` + +烧录地址(来自工程构建输出 `flasher_args.json/flash_args`): + +- `0x0000` bootloader +- `0x8000` partition-table +- `0x1C000` ota_data_initial +- `0x20000` app (`light.bin`) + +### 3.1 使用 `esptool.py` 一次性写入 + +确保已执行过 `export.ps1`,然后运行: + +```powershell +$PORT="COM4" # 替换为你的串口 +$BAUD="921600" # 可改成 460800/115200 以提升稳定性 + +$BASE="D:\ESP-LED\Deliverable\02_Firmware_Binaries\cct\factory" + +python -m esptool --chip esp32c6 -p $PORT -b $BAUD ` + --before default_reset --after hard_reset ` + write_flash --flash_mode dio --flash_freq 80m --flash_size 16MB ` + 0x0 "$BASE\bootloader.bin" ` + 0x8000 "$BASE\partition-table.bin" ` + 0x1c000 "$BASE\ota_data_initial.bin" ` + 0x20000 "$BASE\light.bin" +``` + +> 如果你的板子实际是 4MB Flash,可把 `--flash_size 16MB` 改为 `4MB`。 + +### 3.2 监视串口日志 + +```powershell +idf.py -p COM4 monitor +``` + +--- + +## 4. OTA 固件文件说明(给服务器/升级用) + +OTA 文件路径: +- `Deliverable/02_Firmware_Binaries/cct/ota/light.bin` + +说明: +- `light.bin` 用于 OTA 升级包(用于远程 HTTP OTA 场景的下载与升级)。 + +--- + +## 5. 常见问题 + +### 5.1 找不到 `python` / `idf.py` + +确保已执行 `export.ps1`,且使用的是同一个 PowerShell 窗口。 + +### 5.2 串口被占用 + +关闭其它串口工具(如 Arduino 串口监视器、串口调试助手)。 + +### 5.3 Flash size 警告 + +如果日志提示“Detected size larger than size in binary image header”,请确认: +- 工程配置选择了正确的 Flash size(建议 16MB),并重新 `idf.py fullclean build`。 diff --git a/03_Flash_and_Tools/QR_Guide_CN.md b/03_Flash_and_Tools/QR_Guide_CN.md new file mode 100644 index 0000000..a4c79e4 --- /dev/null +++ b/03_Flash_and_Tools/QR_Guide_CN.md @@ -0,0 +1,85 @@ +# QR 码/配网码生成说明(Matter Onboarding Codes) + +本目录已包含一个可直接使用的脚本,用于生成/解析 Matter 的: +- **QR Code 字符串**(以 `MT:` 开头) +- **Manual Pairing Code**(11位或21位数字) + +对应文件: +- `SetupPayload.py` +- `Base38.py` +- 依赖列表:`requirements.setuppayload.txt` + +--- + +## 1. 安装 Python 依赖 + +在 PowerShell 中进入本目录: + +```powershell +cd D:\ESP-LED\Deliverable\03_Flash_and_Tools +python -m pip install -r .\requirements.setuppayload.txt +``` + +--- + +## 2. 生成配网码(推荐用法) + +### 2.1 生成(仅标准 flow) + +```powershell +python .\SetupPayload.py generate -d 3840 -p 20202021 +``` + +输出示例: +- `Manualcode : 34970112332` +- `QRCode : MT:...` + +### 2.2 生成(带 VID/PID) + +当 commissioning flow 非 0 时,会把 VID/PID 编进 manual code: + +```powershell +python .\SetupPayload.py generate -d 3840 -p 20202021 -cf 2 -vid 65521 -pid 32768 -dm 2 +``` + +参数说明: +- `-d` / `--discriminator`:0..4095 +- `-p` / `--passcode`:1..0x5F5E0FE +- `-vid` / `--vendor-id`:0..65535 +- `-pid` / `--product-id`:0..65535 +- `-dm` / `--discovery-cap-bitmask`: + - 0: SoftAP + - 1: BLE + - 2: OnNetwork + - 默认 4(脚本里描述为 OnNetwork;不同实现可能有组合值) +- `-cf` / `--commissioning-flow`: + - 0: Standard + - 1: User-Intent + - 2: Custom + +--- + +## 3. 解析配网码 + +解析 QR 字符串: + +```powershell +python .\SetupPayload.py parse "MT:00000CQM00KA0648G00" +``` + +解析 Manual pairing code: + +```powershell +python .\SetupPayload.py parse 34970112332 +``` + +--- + +## 4. 交付说明(测试数据 vs 量产数据) + +当前工程处于开发/演示阶段,通常使用测试用的 VID/PID/证书/配网参数: +- 可以用于演示配网与控制。 +- 若后续甲方申请 CSA 认证并进入量产: + - 需要使用正式 VID/PID + - 每台设备需要唯一的出厂数据(如 DAC/证书链、唯一 passcode/discriminator 或出厂注入策略) + - 通常需要重新生成 QR 并恢复出厂重新配网(属正常流程) diff --git a/03_Flash_and_Tools/SetupPayload.py b/03_Flash_and_Tools/SetupPayload.py new file mode 100644 index 0000000..767ea0c --- /dev/null +++ b/03_Flash_and_Tools/SetupPayload.py @@ -0,0 +1,220 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2024 Project CHIP Authors +# 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. + +import enum + +import Base38 +import click +from bitarray import bitarray +from bitarray.util import int2ba, zeros +from construct import BitsInteger, BitStruct, Enum +from stdnum.verhoeff import calc_check_digit + +# Format for constructing manualcode +manualcode_format = BitStruct( + 'version' / BitsInteger(1), + 'vid_pid_present' / BitsInteger(1), + 'discriminator' / BitsInteger(4), + 'pincode_lsb' / BitsInteger(14), + 'pincode_msb' / BitsInteger(13), + 'vid' / BitsInteger(16), + 'pid' / BitsInteger(16), + 'padding' / BitsInteger(7), # this is intentional as BitStruct only takes 8-bit aligned data +) + +# Format for constructing qrcode +# qrcode bytes are packed as lsb....msb, hence the order is reversed +qrcode_format = BitStruct( + 'padding' / BitsInteger(4), + 'pincode' / BitsInteger(27), + 'discriminator' / BitsInteger(12), + 'discovery' / BitsInteger(8), + 'flow' / Enum(BitsInteger(2), + Standard=0, UserIntent=1, Custom=2), + 'pid' / BitsInteger(16), + 'vid' / BitsInteger(16), + 'version' / BitsInteger(3), +) + + +class CommissioningFlow(enum.IntEnum): + Standard = 0 + UserIntent = 1 + Custom = 2 + + +class SetupPayload: + def __init__(self, discriminator, pincode, rendezvous=4, flow=CommissioningFlow.Standard, vid=0, pid=0): + self.long_discriminator = discriminator + self.short_discriminator = discriminator >> 8 + self.pincode = pincode + self.discovery = rendezvous + self.flow = flow + self.vid = vid + self.pid = pid + + def p_print(self): + print('{:<{}} :{}'.format('Flow', 24, self.flow)) + print('{:<{}} :{}'.format('Pincode', 24, self.pincode)) + print('{:<{}} :{}'.format('Short Discriminator', 24, self.short_discriminator)) + if self.long_discriminator: + print('{:<{}} :{}'.format('Long Discriminator', 24, self.long_discriminator)) + if self.discovery: + print('{:<{}} :{}'.format('Discovery Capabilities', 24, self.discovery)) + if self.vid is not None and self.pid is not None: + print('{:<{}} :{:<{}} (0x{:04x})'.format('Vendor Id', 24, self.vid, 6, self.vid)) + print('{:<{}} :{:<{}} (0x{:04x})'.format('Product Id', 24, self.pid, 6, self.pid)) + + def qrcode_dict(self): + return { + 'version': 0, + 'vid': self.vid, + 'pid': self.pid, + 'flow': int(self.flow), + 'discovery': self.discovery, + 'discriminator': self.long_discriminator, + 'pincode': self.pincode, + 'padding': 0, + } + + def manualcode_dict(self): + return { + 'version': 0, + 'vid_pid_present': 0 if self.flow == CommissioningFlow.Standard else 1, + 'discriminator': self.short_discriminator, + 'pincode_lsb': self.pincode & 0x3FFF, # 14 ls-bits + 'pincode_msb': self.pincode >> 14, # 13 ms-bits + 'vid': 0 if self.flow == CommissioningFlow.Standard else self.vid, + 'pid': 0 if self.flow == CommissioningFlow.Standard else self.pid, + 'padding': 0, + } + + def generate_qrcode(self): + data = qrcode_format.build(self.qrcode_dict()) + b38_encoded = Base38.encode(data[::-1]) # reversing + return 'MT:{}'.format(b38_encoded) + + def generate_manualcode(self): + CHUNK1_START = 0 + CHUNK1_LEN = 4 + CHUNK2_START = CHUNK1_START + CHUNK1_LEN + CHUNK2_LEN = 16 + CHUNK3_START = CHUNK2_START + CHUNK2_LEN + CHUNK3_LEN = 13 + + bytes = manualcode_format.build(self.manualcode_dict()) + bits = bitarray() + bits.frombytes(bytes) + + chunk1 = str(int(bits[CHUNK1_START:CHUNK1_START + CHUNK1_LEN].to01(), 2)).zfill(1) + chunk2 = str(int(bits[CHUNK2_START:CHUNK2_START + CHUNK2_LEN].to01(), 2)).zfill(5) + chunk3 = str(int(bits[CHUNK3_START:CHUNK3_START + CHUNK3_LEN].to01(), 2)).zfill(4) + chunk4 = str(self.vid).zfill(5) if self.flow != CommissioningFlow.Standard else '' + chunk5 = str(self.pid).zfill(5) if self.flow != CommissioningFlow.Standard else '' + payload = '{}{}{}{}{}'.format(chunk1, chunk2, chunk3, chunk4, chunk5) + return '{}{}'.format(payload, calc_check_digit(payload)) + + @staticmethod + def from_container(container, is_qrcode): + payload = None + if is_qrcode: + payload = SetupPayload(container['discriminator'], container['pincode'], + container['discovery'], CommissioningFlow(container['flow'].__int__()), + container['vid'], container['pid']) + else: + payload = SetupPayload(discriminator=container['discriminator'], + pincode=(container['pincode_msb'] << 14) | container['pincode_lsb'], + vid=container['vid'] if container['vid_pid_present'] else None, + pid=container['pid'] if container['vid_pid_present'] else None) + payload.short_discriminator = container['discriminator'] + payload.long_discriminator = None + payload.discovery = None + payload.flow = 2 if container['vid_pid_present'] else 0 + + return payload + + @staticmethod + def parse_qrcode(payload): + payload = payload[3:] # remove 'MT:' + b38_decoded = Base38.decode(payload)[::-1] + container = qrcode_format.parse(b38_decoded) + return SetupPayload.from_container(container, is_qrcode=True) + + @staticmethod + def parse_manualcode(payload): + payload_len = len(payload) + if payload_len != 11 and payload_len != 21: + print('Invalid length') + return None + + # if first digit is greater than 7 the its not v1 + if int(str(payload)[0]) > 7: + print('incorrect first digit') + return None + + if calc_check_digit(payload[:-1]) != str(payload)[-1]: + print('check digit mismatch') + return None + + # vid_pid_present bit position + is_long = int(str(payload)[0]) & (1 << 2) + + bits = int2ba(int(payload[0]), length=4) + bits += int2ba(int(payload[1:6]), length=16) + bits += int2ba(int(payload[6:10]), length=13) + bits += int2ba(int(payload[10:15]), length=16) if is_long else zeros(16) + bits += int2ba(int(payload[15:20]), length=16) if is_long else zeros(16) + bits += zeros(7) # padding + + container = manualcode_format.parse(bits.tobytes()) + return SetupPayload.from_container(container, is_qrcode=False) + + @staticmethod + def parse(payload): + if payload.startswith('MT:'): + return SetupPayload.parse_qrcode(payload) + else: + return SetupPayload.parse_manualcode(payload) + + +@click.group() +def cli(): + pass + + +@cli.command() +@click.argument('payload') +def parse(payload): + click.echo(f'Parsing payload: {payload}') + SetupPayload.parse(payload).p_print() + + +@cli.command() +@click.option('--discriminator', '-d', required=True, type=click.IntRange(0, 0xFFF), help='Discriminator') +@click.option('--passcode', '-p', required=True, type=click.IntRange(1, 0x5F5E0FE), help='setup pincode') +@click.option('--vendor-id', '-vid', type=click.IntRange(0, 0xFFFF), default=0, help='Vendor ID') +@click.option('--product-id', '-pid', type=click.IntRange(0, 0xFFFF), default=0, help='Product ID') +@click.option('--discovery-cap-bitmask', '-dm', type=click.IntRange(0, 7), default=4, help='Commissionable device discovery capability bitmask. 0:SoftAP, 1:BLE, 2:OnNetwork. Default: OnNetwork') +@click.option('--commissioning-flow', '-cf', type=click.IntRange(0, 2), default=0, help='Commissioning flow, 0:Standard, 1:User-Intent, 2:Custom') +def generate(passcode, discriminator, vendor_id, product_id, discovery_cap_bitmask, commissioning_flow): + payload = SetupPayload(discriminator, passcode, discovery_cap_bitmask, commissioning_flow, vendor_id, product_id) + print("Manualcode : {}".format(payload.generate_manualcode())) + print("QRCode : {}".format(payload.generate_qrcode())) + + +if __name__ == '__main__': + cli() diff --git a/03_Flash_and_Tools/SetupPayload_README.md b/03_Flash_and_Tools/SetupPayload_README.md new file mode 100644 index 0000000..b19553b --- /dev/null +++ b/03_Flash_and_Tools/SetupPayload_README.md @@ -0,0 +1,22 @@ +## Python tool to generate and parse Matter onboarding codes + +Generates and parses Manual Pairing Code and QR Code + +#### example usage: + +- Parse + +``` +./SetupPayload.py parse MT:U9VJ0OMV172PX813210 +./SetupPayload.py parse 34970112332 +``` + +- Generate + +``` +./SetupPayload.py generate --help +./SetupPayload.py generate -d 3840 -p 20202021 +./SetupPayload.py generate -d 3840 -p 20202021 --vendor-id 65521 --product-id 32768 -cf 0 -dm 2 +``` + +For more details please refer Matter Specification diff --git a/03_Flash_and_Tools/requirements.setuppayload.txt b/03_Flash_and_Tools/requirements.setuppayload.txt new file mode 100644 index 0000000..1026fa9 --- /dev/null +++ b/03_Flash_and_Tools/requirements.setuppayload.txt @@ -0,0 +1,4 @@ +bitarray>=2.8.1 +click>=8.1.3 +construct>=2.10.68 +python_stdnum==1.18 diff --git a/04_Test_Report/AppleHome/AppleHome输入码配网+PowerCycleReset3次断电重启触发factory reset.mp4 b/04_Test_Report/AppleHome/AppleHome输入码配网+PowerCycleReset3次断电重启触发factory reset.mp4 new file mode 100644 index 0000000..943a04f Binary files /dev/null and b/04_Test_Report/AppleHome/AppleHome输入码配网+PowerCycleReset3次断电重启触发factory reset.mp4 differ diff --git a/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154226_211.png b/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154226_211.png new file mode 100644 index 0000000..c2e703b Binary files /dev/null and b/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154226_211.png differ diff --git a/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154253_705.png b/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154253_705.png new file mode 100644 index 0000000..62a9a19 Binary files /dev/null and b/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154253_705.png differ diff --git a/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154313_486.png b/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154313_486.png new file mode 100644 index 0000000..b45c033 Binary files /dev/null and b/04_Test_Report/OTA_HTTP/微信图片_2026-01-26_154313_486.png differ diff --git a/04_Test_Report/Power_Cycle_Reset/AppleHome输入码配网+PowerCycleReset3次断电重启触发factory reset.mp4 b/04_Test_Report/Power_Cycle_Reset/AppleHome输入码配网+PowerCycleReset3次断电重启触发factory reset.mp4 new file mode 100644 index 0000000..943a04f Binary files /dev/null and b/04_Test_Report/Power_Cycle_Reset/AppleHome输入码配网+PowerCycleReset3次断电重启触发factory reset.mp4 differ diff --git a/04_Test_Report/README.md b/04_Test_Report/README.md new file mode 100644 index 0000000..c22ac36 --- /dev/null +++ b/04_Test_Report/README.md @@ -0,0 +1,48 @@ +# 测试报告说明(截图/视频提交) + +本目录用于存放项目验收所需的截图/视频证据。 + +建议提交内容: + +## 1. AppleHome +- 配网演示(扫码/输入码) +- 设备上线后:开关、亮度、(双色温)色温控制 + +## 2. GoogleHome +- 配网演示 +- 基本控制演示 + +## 3. Alexa +- 配网演示 +- 基本控制演示 + +## 4. RainMaker +- 配网演示 +- 基本控制演示 + +## 5. Remote_Control_and_Group_Control +- 遥控器单控演示(单台设备) +- 遥控器组控/广播命令演示(多台设备同步) +- App 与遥控器同时控制(状态同步) + +## 6. OTA_HTTP +- 服务器上放置 `light.bin` 的目录/URL 截图 +- 设备端执行 `matter esp ota ` 的视频/截图 +- 升级前后 `App version` 对比(串口日志/截图) + +## 7. Power_Cycle_Reset +- 3 次断电/重启触发 factory reset 的视频/截图 +- reset 后进入可重新配网状态的截图 + +--- + +## 文件命名建议 + +建议格式: + +- `YYYYMMDD_<场景>_<简述>.mp4` +- `YYYYMMDD_<场景>_<简述>.png` + +例如: +- `20260119_AppleHome_Commissioning.mp4` +- `20260119_OTA_HTTP_Upgrade_2.0_to_2.1.mp4` diff --git a/04_Test_Report/Remote_Control_and_Group_Control/ESPNOW+MatterWI-FI共存(无崩溃、无明显延迟).mp4 b/04_Test_Report/Remote_Control_and_Group_Control/ESPNOW+MatterWI-FI共存(无崩溃、无明显延迟).mp4 new file mode 100644 index 0000000..2a18dfd Binary files /dev/null and b/04_Test_Report/Remote_Control_and_Group_Control/ESPNOW+MatterWI-FI共存(无崩溃、无明显延迟).mp4 differ diff --git a/04_Test_Report/Remote_Control_and_Group_Control/ESPNOW功能100%保持.mp4 b/04_Test_Report/Remote_Control_and_Group_Control/ESPNOW功能100%保持.mp4 new file mode 100644 index 0000000..9454d73 Binary files /dev/null and b/04_Test_Report/Remote_Control_and_Group_Control/ESPNOW功能100%保持.mp4 differ diff --git a/04_Test_Report/Remote_Control_and_Group_Control/Matter clusters(OnOffLevelGroupsScenes + CCT ColorControl).mp4 b/04_Test_Report/Remote_Control_and_Group_Control/Matter clusters(OnOffLevelGroupsScenes + CCT ColorControl).mp4 new file mode 100644 index 0000000..6e468d1 Binary files /dev/null and b/04_Test_Report/Remote_Control_and_Group_Control/Matter clusters(OnOffLevelGroupsScenes + CCT ColorControl).mp4 differ diff --git a/04_Test_Report/Remote_Control_and_Group_Control/双版本(单色,双色温).mp4 b/04_Test_Report/Remote_Control_and_Group_Control/双版本(单色,双色温).mp4 new file mode 100644 index 0000000..a2a26ab Binary files /dev/null and b/04_Test_Report/Remote_Control_and_Group_Control/双版本(单色,双色温).mp4 differ diff --git a/05_Docs/Architecture.md b/05_Docs/Architecture.md new file mode 100644 index 0000000..6d49d14 --- /dev/null +++ b/05_Docs/Architecture.md @@ -0,0 +1,56 @@ +# 技术方案与架构说明(ESP32-C6 Matter + ESP-NOW) + +## 1. 总体目标 + +在 ESP32-C6 单芯片上实现: +- 遥控器侧 ESP-NOW 控制(固定信道 `channel=1`) +- Matter 侧生态接入(Apple Home 已验证) +- 远程 HTTP OTA 升级 + +## 2. 网络/射频架构(核心) + +为满足“遥控器固件不变 + ESP-NOW 固定信道=1”的约束,采用 ESP32-C6 双射频分工: + +- **Wi-Fi 2.4GHz 射频**:专用于 ESP-NOW(固定 channel=1) +- **802.15.4 射频(Thread)**:用于 Matter 网络承载 +- **BLE**:用于 Matter commissioning(配网阶段) + +该架构可避免 Wi-Fi STA 信道由路由器决定导致与 ESP-NOW 冲突的问题。 + +## 3. Matter 设备模型 + +- **Endpoint 1(单色灯)**:OnOff + LevelControl +- **Endpoint 2(双色温灯)**:OnOff + LevelControl + ColorControl(ColorTemperature) +- 已验证:Groups / Scenes 可创建与应用 + +## 4. 驱动与硬件接口 + +- 单色灯:LEDC PWM(RGB 三路混白) +- 双色温:SK6812 RGBW,RMT 单线驱动,使用 ColorTemperature 映射实现色温效果 + +## 5. ESP-NOW 与 Matter 状态同步 + +- 设备接收遥控器 ESP-NOW 命令(0x01..0x05/0xA5),映射为灯控动作 +- 同步更新 Matter 属性,保证 App 侧状态一致 +- 支持多设备联调:遥控器 Zone1/Zone2 + App 同时控制两台灯具 + +## 6. OTA 方案(交付采用) + +交付采用 **HTTP OTA(远程服务器下载固件)**: +- 设备从 HTTP 服务器下载 `light.bin` 并写入 OTA 分区 +- 通过 Matter shell 命令触发:`matter esp ota ` +- 分区表为双 OTA:`ota_0/ota_1/otadata` + +详细部署说明见:`OTA_HTTP_Deploy_Guide.md`。 + +## 7. 配网与二维码 + +- 设备启动可输出 onboarding codes(QR 字符串 `MT:...` 与 manual pairing code) +- 交付提供 `SetupPayload.py` 工具用于生成/解析配网码 + +## 8. 工程与交付 + +- 源码快照:`Deliverable/01_Source/matter-light-c6-wifi` +- 固件 bin:`Deliverable/02_Firmware_Binaries/*` +- 烧录说明:`Deliverable/03_Flash_and_Tools/Flash_Guide_CN.md` +- 测试素材目录:`Deliverable/04_Test_Report/` diff --git a/05_Docs/DEV_PROGRESS.md b/05_Docs/DEV_PROGRESS.md new file mode 100644 index 0000000..7ac23a5 --- /dev/null +++ b/05_Docs/DEV_PROGRESS.md @@ -0,0 +1,414 @@ +# ESP32-C6 Matter + ESP-NOW 混合固件开发进度(单色灯 + 双色温灯) + +## 1. 项目目标(来自《项目制作需求》) + +- 基于 ESP32(候选:C3/C6),开发 Matter + ESP-NOW 混合固件。 +- 支持两类灯: + - 单色灯:开关 + 调光(白光)。 + - 双色温灯:开关 + 调光 + 调色温(暖/冷)。 +- 开发阶段:Wi-Fi commissioning(通过 Wi-Fi 完成配网)。 +- 最终目标:Wi-Fi 完成配网、Thread 实现本地 mesh 控制(混合网络模式)。 +- 需要 OTA、QR 码生成、VID/PID/DAC 相关出厂数据与认证准备支持。 +- 交付:双版本(或可配置)源码仓库 + Factory/OTA 固件 + 烧录/QR 脚本 + 测试报告 + 技术文档。 + +## 1.1 关键硬性约束与解决方案 + +- 量产遥控器固件不变,且 ESP-NOW 固定信道为 `channel=1`。 +- **问题**:若使用 Matter-over-Wi-Fi,Wi-Fi STA 信道会被路由器决定,与 ESP-NOW 固定 ch1 冲突。 +- **解决方案**:利用 ESP32-C6 的**双射频**能力: + - **Wi-Fi 2.4GHz 射频**:专用于 ESP-NOW(固定 channel 1,不连接路由器做 STA) + - **802.15.4 射频**:专用于 Matter over Thread(与 Wi-Fi 射频完全独立) + - **BLE**:用于 Matter commissioning(配网阶段) +- 结论:单芯片 ESP32-C6 可实现 ESP-NOW + Matter 共存,无需依赖路由器信道。 + +## 1.2 需求对齐清单(当前工程状态) + +| 需求项 | 状态 | 备注 | +| --- | --- | --- | +| ESP-NOW 代码功能 100% 保持 | 部分 | 已按遥控器协议实现 RX/配对/命令映射,但信道冲突仍未解决为“量产可用”方案 | +| Matter clusters: OnOff / LevelControl | 已完成 | 双 endpoint 已跑通 | +| Matter clusters: Groups / Scenes | 已完成(已验证) | 已在 App 上验证可创建/应用场景 | +| ColorControl(双色温) | 已完成(开发态) | 当前实现为 ColorTemperature;已确认硬件为 SK6812 RGBW 模块,调色温方向正常 | +| ESP-NOW 组播/广播组命令→所有控制器同步→Matter 状态更新 | 已完成(已稳定) | 控制器能处理 cmd 并更新 Matter 属性;组控一致性/延迟表现正常,无需再测试 | +| QR 码配网(Apple/Google/Alexa/RainMaker) | 部分 | iOS Home 已验证;Google/Alexa/RainMaker 未做系统性验证 | +| OTA(HTTP 远程服务器) | 已完成 | 已实现 HTTP OTA(从远程服务器下载固件),可通过 Matter shell 命令触发,已验证升级后 App version 变更 | +| Matter 标准 OTA | 暂停 | 采用 HTTP OTA(远程服务器)方案,不再推进标准 Matter OTA | +| 断电重置(如 3 次开关机) | 已完成(已稳定) | 已实现并验证:3 次重启触发 Matter 工厂重置(含 5 秒确认窗);已测试稳定,无需再测 | +| 交付:源码/编译说明/bin/脚本/测试报告 | 进行中 | 文档与脚本需要补齐并固化 | + +## 1.4 当前进度总览(已完成 vs 未完成) + +### 1.4.1 已完成 + +- HTTP OTA(远程服务器下载固件,shell 命令触发),并验证升级成功后 `App version` 变更(2.0 → 2.1) +- Matter clusters: Groups / Scenes 已在 App 上验证可创建/应用场景 +- 分区表调整为双 OTA(`ota_0`/`ota_1`/`otadata`),固件大小可容纳 OTA 升级 +- OTA 触发命令已接入 Matter shell(`matter esp ota `) +- 已可在 Windows 上稳定完成 build/flash/monitor(含 GN/Pigweed 环境) +- 断电重置(工厂重置):已实现并验证 3 次重启触发 factory reset(含 5 秒确认窗),重置后进入可重新配网状态 +- 修复断电计数不生效问题:将 NVS key 缩短到 15 字符以内并加入兼容读取逻辑 +- ESP-NOW 配对与多设备联调:已支持“单遥控器(Zone1/Zone2)+ APP”控制两台 ESP32-C6 灯具;并修复“电源重启触发配对时未及时广播配对 beacon”的问题,提升遥控器绑定成功率 + +### 1.4.2 未完成(待办) + +- 多生态验证:Google Home / Alexa / RainMaker 的 commissioning + 控制验证 +- 交付物固化:一键环境初始化/构建脚本、烧录脚本、测试报告与完整技术文档 + +## 3. 已完成的关键里程碑 + +### 3.1 构建与烧录链路打通(Windows) + +- 已实现:`idf.py build` 成功、可 `flash` 到 COM4、可 `monitor` 观察启动日志。 +- 已解决的关键构建问题(历史记录): + - `gn command not found`:定位 `gn.exe` 并加入 PATH。 + - Pigweed 环境变量缺失:补齐 `_PW_ACTUAL_ENVIRONMENT_ROOT`。 + - 链接错误 `undefined reference to mbedtls_hkdf`:启用 `CONFIG_MBEDTLS_HKDF_C=y`。 + - app 分区过小:切换到自定义分区表 `partitions.csv`(双 OTA),并设置 flash size=16MB(与硬件一致),最小 app 分区 `0x1E0000`。 + - Windows 反斜杠路径导致 CMake `Invalid character escape`:CMakeLists 里将 env path 转为 CMake path。 + +补充:构建该工程的关键环境变量(PowerShell 会话级别): + +- `ESP_MATTER_PATH=D:\ESP-LED\esp-matter-gh` +- `ESP_MATTER_DEVICE_PATH=D:\ESP-LED\esp-matter-gh\device_hal\device\esp32c6_devkit_c` +- `_PW_ACTUAL_ENVIRONMENT_ROOT=D:\ESP-LED\esp-matter-gh\connectedhomeip\connectedhomeip\third_party\pigweed\repo\environment` +- GN 工具路径(将目录加入 PATH): + - `...\third_party\pigweed\repo\environment\cipd\packages\pigweed`(包含 `gn.exe`) + +### 3.2 Matter 双 endpoint 架构(已运行验证) + +- 当前固件创建两个 endpoint: + - Endpoint 1:单色灯(OnOff + LevelControl)。 + - Endpoint 2:双色温灯(OnOff + LevelControl + ColorControl(ColorTemperature))。 +- 串口日志已确认: + - `RGB light created with endpoint_id 1` + - `CCT light created with endpoint_id 2` + +### 3.3 驱动层对接(已跑通) + +- Endpoint 1(单色灯):LEDC PWM 驱动(GPIO4/5/6)。 +- Endpoint 2(双色温灯):RMT 驱动 SK6812(GPIO2)。 + +### 3.4 日志报错修复 + +- 修复启动时 `E data_model: Cluster cannot be NULL.`: + - 原因:对不含 ColorControl 的 endpoint 调用 `attribute::get(endpoint, ColorControl...)`。 + - 处理:先检查 `cluster::get(endpoint, ColorControl::Id)` 是否存在,再读取 ColorMode / Hue / Temp 等属性。 + +### 3.5 iOS Home / Matter Commissioning + 控制验证(已完成) + +- 现状:手机端已完成配网,Home App 可同时控制两个灯的开关/亮度/(CCT 灯)色温。 +- 关键修复:为满足 iOS Home 的发现/配网流程,已启用 BLE commissioning: + - `CONFIG_BT_ENABLED=y` + - `CONFIG_BT_NIMBLE_ENABLED=y` + - `CONFIG_ENABLE_CHIPOBLE=y` +- 串口日志关键特征(表示 BLE commissioning 正常): + - `Configuring CHIPoBLE advertising ...` + - `CHIPoBLE advertising started` + - `Commissioning window opened` +- 设备启动时可打印 Onboarding Codes(用于手动输入/生成二维码): + - MT 串(SetupQRCode):`MT:Y.K9042C00KA0648G00` + - 11 位码(Manual pairing code):`34970112332` +- 注意:上述二维码/手动码为开发阶段示例/测试参数(默认 VID/PID 等),量产需替换正式 VID/PID、DAC/CD/工厂数据与每台唯一的 onboarding 信息。 + +### 3.6 单芯片双射频方案验证成功(2026-01-07) + +- **架构**:ESP32-C6 单芯片同时运行: + - **Thread (802.15.4)**:Matter 网络层 + - **Wi-Fi (channel 1)**:ESP-NOW 接收(不连接路由器) + - **BLE**:Matter commissioning +- **关键配置**: + - `CONFIG_ENABLE_WIFI_STATION=n`:禁用 Matter Wi-Fi STA + - `CONFIG_ENABLE_THREAD=y`:启用 Matter over Thread + - 独立初始化 Wi-Fi 用于 ESP-NOW,固定 channel 1 +- **验证通过的日志特征**: + - `OpenThread started: OK` + - `Wi-Fi channel fixed to 1 for ESP-NOW` + - `ESP-NOW RX initialized` + - `CHIPoBLE advertising started` + - `Server Listening...` +- **固件大小**:~2MB(含 Thread + Wi-Fi + BLE + ESP-NOW) +- **状态**:设备稳定启动,无崩溃 + +### 3.7 HTTP OTA(远程服务器)验证成功(2026-01-15) + +- **目标**:支持“远程服务器方式”OTA(HTTP),不依赖 HTTPS/TLS,固件体积可控。 +- **实现概览**: + - 使用 `esp_http_client` + `esp_ota_*` 实现分段下载与写入 OTA 分区。 + - 提供 Matter shell 命令触发:`matter esp ota `。 + - 仅支持 `http://`,拒绝 `https://` 以减小固件体积。 +- **验证结果(串口日志特征)**: + - `HTTP OTA progress: ... 100%` + - `HTTP OTA upgrade successful! Rebooting in 3 seconds...` + - 重启后:`Loaded app from partition at offset 0x210000`(切换到 ota_1) + - 重启后:`App version: 2.1`(已确认版本号随固件更新) + +### 3.8 多设备控制联调进展(APP + ESP-NOW 遥控器)(2026-01-15) + +- **目标**:一台遥控器 + 手机 App 同时控制两台 ESP32-C6 灯具(两块开发板)。 +- **实现状态**: + - App 侧(iOS Home)已可同时添加两台设备并分别控制。 + - 遥控器侧支持 Zone1/Zone2 独立绑定不同灯具(通过 ESP-NOW 配对流程完成)。 +- **配对机制(开发态)**: + - 3 次重启:触发 Matter factory reset(5 秒确认窗)。 + - 5 次重启:进入 ESP-NOW pairing mode(5 秒确认窗)。 + - 遥控器在目标 Zone 下长按配对键,设备收到 `0xA5` 后退出配对模式。 +- **关键修复**: + - 修复“电源重启触发配对模式后,因 Wi-Fi 连接状态导致配对 beacon 未及时广播”的问题:进入配对后将主动启动配对 beacon 广播,确保遥控器可发现并完成绑定。 + +## 4. 当前仍在进行中的问题/待验证点 + +### 4.1 单色灯输出"白光"的定义与实现(已确定:RGB 三路混白) + +- 当前单色灯硬件接法为 RGB 三路 PWM(GPIO4/5/6)。 +- 已做的软件调整:将 RGB 三路占空比设置为 1:1:1(同亮度混色)以尽量呈现白光。 +- 已确认:单色灯即 RGB 三路混白方案(不做单通道白灯条改造)。 +- 注意:RGB 分立灯珠近距离仍可能看到“三色点”,属于物理结构;可通过扩散罩/导光改善。 + +### 4.2 双色温灯的“暖/冷”实现(已确认:SK6812 RGBW) + +- 已确认:双色温灯硬件为 SK6812 RGBW 模块,采用 RMT 单线驱动。 +- 当前实现:Matter ColorTemperature(mireds)→ 颜色映射 → SK6812 输出;调色温方向已验证正确。 +- 注意:SK6812 RGBW 的“色温”属于近似实现(需要 RGB 参与补色),效果取决于映射/校准策略。 +- 状态:当前效果表现正常,无需再做专项“色温校准/一致性测试”。 + +### 4.3 Flash 容量提示告警(已解决) + +- 现象:启动时提示检测到 16MB,但固件镜像头标记为 4MB: + - `Detected size(16384k) larger than the size in the binary image header(4096k)` +- 影响:通常可运行,但不利于后续分区与 OTA 风险控制。 +- 已处理并确认:将工程 Flash size 配置调整为 16MB(`CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y`),已复测确认告警消失。 + +## 5. 控制器/遥控器(ESP-NOW)现状梳理(已读源码) + +- 控制器原码路径:`D:\ESP-LED\控制器原码\Ecolight\...` +- 协议:ESP-NOW(channel=1) +- Pairing beacon magic:`0xABCDEF01`(4字节) +- 命令(1字节): + - `0x01` Toggle + - `0x02` On + - `0x03` Brightness Up + - `0x04` Brightness Down + - `0x05` Off + - `0xA5` Pairing Confirm + +结论:控制器原码与甲方提供的遥控器一致,且该 ESP-NOW 遥控协议可接入当前 Matter 灯固件(C6 端作为 ESPNOW 接收端),收到命令后同步更新 Matter 属性。 + +## 6. VID/PID/DAC/QR 码阶段性策略 + +- 开发阶段可以使用示例/测试用的 VID/PID/证书链推进开发。 +- 后续拿到正式 VID/PID/DAC 后: + - 替换证书与出厂数据。 + - 重新生成 QR。 + - 通常需要恢复出厂并重新配网(属正常流程)。 + +## 7. 下一步开发路线图(按阶段) + +### 阶段 A:功能验证与参数固化(短期) + +- 单色灯:明确硬件定义(RGB 混白 vs 单路白灯条),固化白光方案。 +- 双色温:已确认 SK6812 RGBW,固化色温映射与效果参数(端点/曲线/gamma/限幅),并确认通道顺序与供电/信号稳定性。 +- 建立功能测试用例并记录: + - endpoint 1:开/关、亮度 + - endpoint 2:开/关、亮度、色温 + +### 阶段 B:ESP-NOW + Matter 共存(核心) + +- 在 C6 Matter 固件中加入 ESPNOW RX: + - 接收 1-byte 命令并映射到 endpoint 1/2 的 Matter 属性更新。 + - 目标:遥控器控制灯,Matter 侧状态同步。 +- 解决 Wi-Fi channel 与 ESPNOW channel=1 的冲突(以“遥控器固件不变”为前提): + - 方案 1(最小改动,但依赖环境):路由器/热点 2.4G 固定 `channel=1`。 + - 方案 2(推荐量产架构):双芯片/双射频解耦(ESP-NOW 固定 ch1 与 Matter Wi-Fi 任意信道互不影响)。 + - 方案 3(与 Addendum 对齐):Wi-Fi 用于 commissioning,日常控制走 Thread(需要 Thread Border Router 环境),从而避免 Wi-Fi 信道对 ESP-NOW 的牵制。 +- 性能目标:端到端延迟 < 20ms(需要定义测量方法和基准)。 + +### 7.2 芯片选型建议(C3 vs C6) + +- 若坚持单芯片承载 Matter(含 Groups/Scenes/OTA/多生态)+ 应用逻辑 + ESPNOW:更推荐 ESP32-C6。 + - 原因:内存与资源更充足,Matter 生态适配与稳定性更优,且可扩展 Thread(满足 Addendum)。 +- 若控制器仍使用 ESP32-C3:需要评估以下风险项: + - Matter + BLE commissioning + OTA + Groups/Scenes 的 RAM/Flash 压力。 + - 与 ESPNOW 同时运行的峰值内存/任务栈/队列占用。 +- 当路由器信道不可控且遥控器固件不变时: + - 单芯片方案存在先天信道冲突。 + - 需要硬件/架构调整(例如额外加一颗 C3 专做 ESPNOW 固定 ch1,C6 专做 Matter/Wi-Fi/Thread,通过 UART/SPI 同步状态)。 + +### 7.3 方案 A(双芯片解耦)系统架构(量产推荐) + +#### 7.3.1 总体思路 + +- MCU1(ESP-NOW 控制器,建议 ESP32-C3): + - 只负责:ESP-NOW(固定 ch1)、遥控器配对/命令接收、组控广播一致性、驱动输出(PWM/RMT/恒流等)。 + - 不连接路由器(或不承担 Matter Wi-Fi)。 +- MCU2(Matter 控制器,建议 ESP32-C6): + - 只负责:Matter over Wi-Fi(commissioning/长久在线/多生态)、(可选)Thread、Matter OTA、Groups/Scenes/状态机。 + - 通过 UART/SPI 与 MCU1 交换“控制命令/状态变化/诊断”。 + +补充确认:本项目采用 UART 作为 MCU1↔MCU2 通信方式。 + +#### 7.3.2 数据流与一致性目标 + +- 遥控器 → MCU1(ESP-NOW RX)→ + - MCU1 先本地执行灯控(保证延迟与体验不变) + - MCU1 同步上报事件给 MCU2(用于 Matter 属性更新与组/场景一致性) +- App/Matter → MCU2(属性更新/命令)→ MCU2 下发到 MCU1 → MCU1 执行驱动输出 → MCU1 回报最终状态给 MCU2(闭环) + +#### 7.3.3 量产可测的关键指标 + +- 遥控器端到端延迟(按键到灯输出):目标 < 20 ms(以 MCU1 本地执行为准) +- Matter 状态同步延迟(灯输出到 Matter 属性更新可见):给出目标与测量方法(建议 < 200 ms) +- 长期稳定性:Wi-Fi/Matter 长久在线,不影响 MCU1 的 ESP-NOW 实时性 + +#### 7.3.4 PCB/硬件接口建议(小改动范围) + +- UART: + - MCU1_TX -> MCU2_RX(GPIO 待定:MCU1=____ / MCU2=____) + - MCU1_RX <- MCU2_TX(GPIO 待定:MCU1=____ / MCU2=____) +- 可选硬件流控(建议预留焊盘,量产可按稳定性决定是否启用): + - MCU2->MCU1 `RESET_REQ`(请求 MCU1 执行:清码/恢复出厂/重新配对/进入测试) + - MCU1->MCU2 `IRQ_EVT`(有新事件/状态上报,降低轮询开销) +- 电平:两者均为 3.3V TTL(无需电平转换) +- 调试:建议预留测试点(TX/RX/GND)便于产线与现场抓包 + +## 8. 测试计划(面向交付物) + +### 8.1 遥控器 + ESP-NOW(不改固件) + +- 工厂重置:三次断电/复位触发工厂重置(含 5 秒确认窗) +- 配对:五次断电/复位进入配对模式;遥控器 slot 长按配对 +- 单控:0x01..0x05 全命令覆盖,重复按键/长按/连发 +- 组控:遥控器广播组命令,多个控制器同步输出一致 +- 延迟:示波器/逻辑分析仪测量(按键触发到 GPIO/PWM 变化),记录 P50/P95 + +### 8.2 Matter 多生态(MCU2) + +- Apple Home / Google Home / Alexa(至少两项)commissioning 演示 +- Clusters:OnOff/LevelControl/Groups/Scenes(双色温含 ColorControl) +- OTA:升级演示 + 回滚验证 + +### 8.3 共存与稳定性 + +- Wi-Fi 长久在线(24h/72h)期间,遥控器控制无明显延迟/无丢包异常 +- 异常恢复: + - MCU1 重启不影响 MCU2(Matter 仍在线;状态恢复后同步) + - MCU2 重启不影响 MCU1(遥控器控制不中断;MCU2 恢复后重新拉取状态) + +## 9. Matter 功能测试用例(建议用 chip-tool 记录) + +### Endpoint 1(单色灯:开关/调光) + +```bash +chip-tool onoff on 1 1 +chip-tool onoff off 1 1 +chip-tool levelcontrol movetolevelwithonoff 1 1 10 0 0 +chip-tool levelcontrol movetolevelwithonoff 1 1 200 0 0 +``` + +### Endpoint 2(双色温灯:开关/调光/色温) + +```bash +chip-tool onoff on 1 2 +chip-tool onoff off 1 2 +chip-tool levelcontrol movetolevelwithonoff 1 2 20 0 0 +chip-tool levelcontrol movetolevelwithonoff 1 2 220 0 0 +chip-tool colorcontrol movetocolortemperature 1 2 153 0 0 +chip-tool colorcontrol movetocolortemperature 1 2 450 0 0 +``` + +## 10. 风险与注意事项 + +- ESPNOW channel 固定为 1:当路由器信道不可固定到 1 且遥控器固件不可改时,单芯片方案存在先天冲突,需要改架构。 +- 单色灯“白光”体验可能受硬件(RGB 三色灯珠)限制,软件无法消除近距离三色颗粒。 +- 双色温(SK6812 RGBW)“色温”为近似实现:不同亮度下可能存在色偏;需要通过端点/曲线/gamma 与 RGB/W 分配进行校准。 +- Thread + Wi-Fi 混合网络模式需要明确最终产品拓扑与测试方法。 + +## 11. MCU 间通信协议草案(方案 A) + +### 11.1 物理层与链路建议 + +- UART:建议 921600 或 1Mbps,8N1 +- 帧格式:固定 header + version + flags + type + seq + len + payload + CRC32 +- 可靠性建议: + - 带 `seq` 与 `ACK`(至少对“状态设置/模式切换/工厂重置”等关键命令) + - 对“按键事件上报”可不必 ACK,但需要丢包容忍(MCU2 以 MCU1 的最终状态为准) + +### 11.1.1 帧格式(建议稿,可直接实现) + +- `SOF`:2 bytes,固定 `0x55 0xAA` +- `VER`:1 byte,协议版本(初版 `0x01`) +- `FLAGS`:1 byte + - bit0:是否需要 ACK + - bit1:是否为 ACK 包 + - bit2:错误包 + - bit3..7:预留 +- `TYPE`:1 byte,消息类型 +- `SEQ`:2 bytes,递增序号(小端) +- `LEN`:2 bytes,payload 长度(小端,0..1024 建议上限) +- `PAYLOAD`:LEN bytes +- `CRC32`:4 bytes(对从 `VER` 到 `PAYLOAD` 的 CRC32,小端) + +### 11.1.2 ACK/重试/超时(建议稿) + +- 对 `FLAGS.need_ack=1` 的包: + - 接收方在成功处理后回 `ACK` 包(`FLAGS.is_ack=1`,`SEQ` 原样回显,`TYPE`=原 TYPE 或 `TYPE=ACK(0x7F)` 二选一) + - 发送方超时 `T_ACK=50ms` 未收到 ACK:重发,最多 `N_RETRY=3` + - 连续失败后进入降级策略:记录错误计数并上报 `EVT_DIAG`(或触发重新握手) +- 对 `EVT_KEY_CMD`:可 `need_ack=0`(允许丢);但要求 MCU1 后续用 `EVT_LOCAL_STATE` 做闭环状态同步 + +### 11.1.3 上电/复位握手(建议稿) + +- MCU2 启动后发送 `HELLO`(包含 MCU2 fw_ver/proto_ver/boot_reason) +- MCU1 回 `HELLO_RSP`(包含 MCU1 fw_ver/proto_ver、灯型/能力、当前输出状态摘要) +- MCU2 收到后发送 `GET_STATE`(拉取完整状态),并以此刷新 Matter 属性(避免 MCU2 重启后状态漂移) + +### 11.2 消息类型(最小集) + +- `EVT_KEY_CMD`(MCU1→MCU2):遥控器命令事件 + - 字段:cmd(0x01..0x05/扩展)、src_mac、timestamp、group_mode/slot +- `EVT_LOCAL_STATE`(MCU1→MCU2):MCU1 本地执行后的最终状态 + - 字段:endpoint/light_id、onoff、level、cct(如有)、transition_time +- `SET_STATE`(MCU2→MCU1):来自 Matter 的控制请求 + - 字段:目标灯/组、onoff/level/cct、期望渐变时间 +- `SET_MODE`(MCU2→MCU1):模式切换(配对、清码、恢复出厂、进入测试模式) +- `HEARTBEAT`(双向):存活与版本信息(fw_ver、proto_ver、uptime、heap) + +建议补充类型: + +- `GET_STATE`(MCU2→MCU1):请求 MCU1 上报完整状态 +- `EVT_DIAG`(双向):错误码/计数器(CRC 错、丢包、重试次数、WDT、重启原因) + +### 11.2.1 字段定义建议(便于落地与调试) + +- `light_id`:1 byte + - `0x01` 单色灯 + - `0x02` 双色温灯 +- `onoff`:1 byte(0/1) +- `level`:1 byte(0..254,按 Matter 约定) +- `cct_mireds`:2 bytes(小端,按 Matter ColorTemperatureMireds) +- `transition_ms`:2 bytes(小端) +- `timestamp_ms`:4 bytes(小端,MCU1 uptime 毫秒) + +### 11.3 一致性原则(避免双写打架) + +- MCU1 为“灯输出唯一权威”(source of truth for physical output)。 +- MCU2 为“ Matter 属性权威”(source of truth for ecosystem state)。 +- MCU2 更新 Matter 属性应以 `EVT_LOCAL_STATE` 为准,而不是以 `EVT_KEY_CMD` 直接推导(防止执行失败/限幅/场景叠加导致不一致)。 + +## 11.4 PCB 连线清单(方案 A,UART) + +- UART: + - MCU1_TX -> MCU2_RX(GPIO 待定:MCU1=____ / MCU2=____) + - MCU1_RX <- MCU2_TX(GPIO 待定:MCU1=____ / MCU2=____) +- 可选硬件流控(建议预留焊盘,量产可按稳定性决定是否启用): + - MCU1_RTS / MCU1_CTS + - MCU2_RTS / MCU2_CTS +- 额外控制/中断线(建议预留): + - MCU2->MCU1 `RESET_REQ`(请求 MCU1 执行:清码/恢复出厂/重新配对/进入测试) + - MCU1->MCU2 `IRQ_EVT`(有新事件/状态上报,降低轮询开销) +- 电平:两者均为 3.3V TTL(无需电平转换) +- 调试:建议预留测试点(TX/RX/GND)便于产线与现场抓包 + +## 13. 可对外汇报摘要(可直接发甲方) + +本阶段已完成 ESP32-C6 Matter + ESP-NOW 混合固件的核心功能联调:固件已实现双 endpoint(单色灯 + 双色温灯)并通过 iOS Home 完成 Matter commissioning 与控制验证;同时接入甲方量产遥控器的 ESP-NOW 协议(channel=1、命令 0x01..0x05/0xA5),可通过“5 次重启进入配对模式 + 遥控器 Zone 配对”实现一台遥控器(Zone1/Zone2)分别绑定两台 ESP32-C6 灯具。当前 APP(iOS Home)与遥控器均可对两台设备进行控制;设备支持 HTTP OTA(远程服务器下载升级,支持双 OTA 分区切换),已验证升级后版本号变化。下一步将推进 Google Home/Alexa/RainMaker 等生态兼容性测试,并固化交付脚本、测试报告与完整技术文档。 + diff --git a/05_Docs/OTA_HTTP_Deploy_Guide.md b/05_Docs/OTA_HTTP_Deploy_Guide.md new file mode 100644 index 0000000..e36da9e --- /dev/null +++ b/05_Docs/OTA_HTTP_Deploy_Guide.md @@ -0,0 +1,123 @@ +# 远程 HTTP OTA 部署说明(ESP32-C6,HTTP OTA) + +本项目采用“远程服务器 HTTP OTA”方案(设备从 HTTP 服务器下载 `light.bin` 并写入 OTA 分区),不依赖 Matter 标准 OTA Provider。 + +交付目录相关文件: +- OTA 文件:`Deliverable/02_Firmware_Binaries/cct/ota/light.bin` +- 设备端触发命令:Matter shell 命令 `matter esp ota ` + +--- + +## 1. OTA 文件与命名建议 + +建议按“产品/型号/版本号”组织目录,避免覆盖与混淆。 + +示例: + +``` +/ota/ + cct/ + 2.1/ + light.bin + sha256.txt +``` + +- `light.bin`:本次升级包 +- `sha256.txt`(建议):文件校验值(用于发布侧校验/人工核对) + +> 备注:当前设备端实现为 HTTP OTA(非 HTTPS),因此建议仅在内网或受控网络环境使用;若后续要上公网,建议评估签名校验或改为 HTTPS。 + +--- + +## 2. 部署方式(最简单:静态 HTTP) + +任何能提供静态文件下载的 HTTP 服务都可以,例如: +- Nginx +- Apache +- Python 简易 HTTP 服务(仅用于开发/演示) + +### 2.1 示例:Python 简易 HTTP(演示用) + +在放置 `light.bin` 的目录启动: + +```powershell +# Windows PowerShell +python -m http.server 8000 +``` + +访问 URL 示例: +- `http://:8000/light.bin` + +--- + +## 3. 设备端触发 OTA + +### 3.1 触发命令 + +设备串口进入 Matter shell 后,执行: + +```text +matter esp ota http://:/path/to/light.bin +``` + +示例: + +```text +matter esp ota http://192.168.1.10:8000/light.bin +``` + +### 3.2 预期日志特征 + +升级过程中一般可看到: +- 下载进度(0% → 100%) +- 写入 OTA 分区成功 +- 提示升级成功并延时重启 +- 重启后从另一 OTA 分区启动(例如 `Loaded app from partition ...`) +- 启动日志中的 `App version` 更新 + +--- + +## 4. 版本管理建议 + +### 4.1 版本号两件事需要一致 + +- **固件内部版本号**(启动日志里的 `App version`) +- **OTA 镜像头版本字段**(用于升级判断与记录) + +建议每次发布新固件时同步更新版本号(例如 2.0 → 2.1)。 + +### 4.2 服务器侧发布策略 + +- 不覆盖旧版本文件,按版本目录存放 +- 用“latest”软链接/重定向(可选) +- 记录每次发布的:版本号、发布时间、文件 SHA256 + +--- + +## 5. 常见问题排查 + +### 5.1 设备提示 404/无法连接 + +- 检查 URL 是否可在 PC 浏览器直接下载 +- 检查服务器与设备是否在同一网段、是否被防火墙拦截 +- 确认端口未被占用 + +### 5.2 下载中断/升级失败 + +- 检查 Wi-Fi/Thread 网络稳定性(尤其是演示环境) +- 检查固件文件大小是否超出分区容量 +- 确认分区表为双 OTA(`ota_0/ota_1/otadata`) + +### 5.3 升级后版本号未变化 + +- 确认你上传的是新版本 `light.bin` +- 确认构建时已修改工程版本号(例如 `PROJECT_VER` / `PROJECT_VER_NUMBER`) + +--- + +## 6. 交付说明(建议写在测试报告里) + +建议在测试报告中附: +- 服务器目录与 URL 示例 +- 设备执行 `matter esp ota` 的截图/视频 +- 升级前后 `App version` 对比截图/视频