├── _chk_partitions
├── partitions.cmd
├── partitions_arduino.csv
└── partitions.php
├── img
├── Espressif_01.png
├── Espressif_02.png
├── z2m_01_all.png
├── esp32c6_zigbee.jpg
├── esp32c6_zigbee.png
├── ssd1306_zigbee.jpg
├── ssd1306_esp32c6.jpg
├── Espressif_ESP32C6_01.png
├── Espressif_ESP32C6_02.png
├── Espressif_ESP32C6_03.png
├── Espressif_ESP32C6_04.png
├── Espressif_ESP32C6_05.png
├── Espressif_ESP32C6_06.png
├── Espressif_ESP32C6_07.png
├── Espressif_ESP32C6_08.png
├── z2m_06_MIKE.ESP32-C6_01.png
├── z2m_07_MIKE.ESP32-C6_02.png
├── z2m_08_MIKE.ESP32-C6_03.png
└── z2m_09_MIKE.ESP32-C6_04.png
├── main
├── CMakeLists.txt
├── ds18b20_main.h
├── idf_component.yml
├── zigbee_image.h
├── zigbee_connected.h
├── zigbee_disconnected.h
├── bh1750.h
├── ds18b20_main.c
├── esp32c6_zigbee.h
├── zigbee_logo.h
├── bh1750.c
└── esp32c6_zigbee.c
├── components
└── bmx280
│ ├── CMakeLists.txt
│ ├── LICENSE
│ ├── README.md
│ ├── include
│ ├── bmx280.h
│ └── bmx280_bits.h
│ ├── Kconfig
│ └── bmx280.c
├── .vscode
├── settings.json
└── c_cpp_properties.json
├── CMakeLists.txt
├── .gitignore
├── partitions.csv
├── .cproject
├── README.md
└── sdkconfig
/_chk_partitions/partitions.cmd:
--------------------------------------------------------------------------------
1 | @echo off
2 | php -f partitions.php %1 > partitions.log
3 |
--------------------------------------------------------------------------------
/img/Espressif_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_01.png
--------------------------------------------------------------------------------
/img/Espressif_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_02.png
--------------------------------------------------------------------------------
/img/z2m_01_all.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/z2m_01_all.png
--------------------------------------------------------------------------------
/img/esp32c6_zigbee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/esp32c6_zigbee.jpg
--------------------------------------------------------------------------------
/img/esp32c6_zigbee.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/esp32c6_zigbee.png
--------------------------------------------------------------------------------
/img/ssd1306_zigbee.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/ssd1306_zigbee.jpg
--------------------------------------------------------------------------------
/img/ssd1306_esp32c6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/ssd1306_esp32c6.jpg
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_01.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_02.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_03.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_04.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_05.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_06.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_07.png
--------------------------------------------------------------------------------
/img/Espressif_ESP32C6_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/Espressif_ESP32C6_08.png
--------------------------------------------------------------------------------
/img/z2m_06_MIKE.ESP32-C6_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/z2m_06_MIKE.ESP32-C6_01.png
--------------------------------------------------------------------------------
/img/z2m_07_MIKE.ESP32-C6_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/z2m_07_MIKE.ESP32-C6_02.png
--------------------------------------------------------------------------------
/img/z2m_08_MIKE.ESP32-C6_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/z2m_08_MIKE.ESP32-C6_03.png
--------------------------------------------------------------------------------
/img/z2m_09_MIKE.ESP32-C6_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mozolin/ESP32C6_Zigbee/HEAD/img/z2m_09_MIKE.ESP32-C6_04.png
--------------------------------------------------------------------------------
/main/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | FILE(GLOB_RECURSE app_sources ${CMAKE_SOURCE_DIR}/main/*.*)
2 |
3 | idf_component_register(SRCS ${app_sources})
--------------------------------------------------------------------------------
/components/bmx280/CMakeLists.txt:
--------------------------------------------------------------------------------
1 |
2 | idf_component_register(
3 | SRCS bmx280.c
4 | INCLUDE_DIRS "include"
5 | REQUIRES driver
6 | )
7 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "idf.adapterTargetName": "esp32c6",
3 | "idf.portWin": "COM5",
4 | "idf.flashType": "UART",
5 | "files.associations": {
6 | "esp_zigbee_zcl_common.h": "c"
7 | }
8 | }
--------------------------------------------------------------------------------
/main/ds18b20_main.h:
--------------------------------------------------------------------------------
1 |
2 | #include "onewire_bus.h"
3 | #include "ds18b20.h"
4 |
5 | #define ONEWIRE_BUS_GPIO 4
6 | #define ONEWIRE_MAX_DS18B20 3
7 | #define TAG_DS18B20 "DS18B20"
8 |
9 | void ds18b20_init_task();
10 | void ds18b20_show();
11 |
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # The following lines of boilerplate have to be in your project's CMakeLists
2 | # in this exact order for cmake to work correctly
3 | cmake_minimum_required(VERSION 3.16)
4 | include($ENV{IDF_PATH}/tools/cmake/project.cmake)
5 | project(esp32c6_zigbee)
6 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .cache
2 | compile_commands.json
3 | *.swp
4 |
5 | # ESP-IDF default build directory name
6 | build
7 | build/
8 | build_*/
9 | sdkconfig.old
10 | sdkconfig.defaults
11 | dependencies.lock
12 | managed_components
13 | __pycache__/
14 | out/
15 | _build/
16 |
17 | pytest_embedded_log/
18 | # VS Code Settings
19 | #.vscode/
20 |
21 | # clangd set
22 | .clangd
23 | compile_commands.json
24 | .clang-format
25 |
26 | # pre-commit
27 | .pre-commit-config.yaml
28 | .metadata
29 |
--------------------------------------------------------------------------------
/_chk_partitions/partitions_arduino.csv:
--------------------------------------------------------------------------------
1 | # Name, Type, SubType, Offset, Size, Flags
2 | nvs, data, nvs, 0x9000, 0x5000,
3 | otadata, data, ota, 0xe000, 0x2000,
4 | app0, app, ota_0, 0x10000, 0x280000,
5 | spiffs, data, spiffs, 0x290000, 0x15A000,
6 | zb_storage, data, fat, 0x3EA000, 0x4000,
7 | zb_fct, data, fat, 0x3EE000, 0x1000,
8 | rcp_fw, data, spiffs, 0x3EF000, 0x1000,
9 | coredump, data, coredump, 0x3F0000, 0x10000,
10 |
--------------------------------------------------------------------------------
/main/idf_component.yml:
--------------------------------------------------------------------------------
1 | ## IDF Component Manager Manifest File
2 | dependencies:
3 | #espressif/bh1750: "^1.0.3"
4 | espressif/button: "^3.2.0"
5 | espressif/ds18b20: "^0.1.1"
6 | espressif/esp-zboss-lib: "~0.6.2"
7 | espressif/esp-zigbee-lib: "~0.9.5"
8 | espressif/led_strip: "^2.5.3"
9 | espressif/onewire_bus: "^1.0.1"
10 | espressif/ssd1306: "1.0.5"
11 | #espressif/esp-zboss-lib: "~0.6.0"
12 | #espressif/esp-zigbee-lib: "~0.9.3"
13 | ## Required IDF version
14 | idf:
15 | version: "~5.1.2"
16 |
--------------------------------------------------------------------------------
/main/zigbee_image.h:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | // File generated by LCD Assistant
3 | // http://en.radzio.dxp.pl/bitmap_converter/
4 | //------------------------------------------------------------------------------
5 |
6 | const unsigned char zigbee_image [] = {
7 | 0x07, 0xE0, 0x1F, 0xF8, 0x00, 0x0C, 0x3F, 0xC6, 0x7F, 0x82, 0xFF, 0x07, 0xFE, 0x0F, 0xFC, 0x1F,
8 | 0xF8, 0x3F, 0xF0, 0x7F, 0xE0, 0xFF, 0x41, 0xFE, 0x63, 0xF8, 0x38, 0x08, 0x1F, 0xF8, 0x07, 0xE0
9 | };
10 |
--------------------------------------------------------------------------------
/main/zigbee_connected.h:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | // File generated by LCD Assistant
3 | // http://en.radzio.dxp.pl/bitmap_converter/
4 | //------------------------------------------------------------------------------
5 |
6 | const unsigned char zigbee_connected [] = {
7 | 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x1F, 0xF8, 0x7C, 0x3E, 0xF0, 0x0F, 0xC7, 0xE3, 0x0F, 0xF0,
8 | 0x1C, 0x38, 0x11, 0x88, 0x07, 0xE0, 0x06, 0x60, 0x04, 0x20, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00
9 | };
10 |
--------------------------------------------------------------------------------
/main/zigbee_disconnected.h:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | // File generated by LCD Assistant
3 | // http://en.radzio.dxp.pl/bitmap_converter/
4 | //------------------------------------------------------------------------------
5 |
6 | const unsigned char zigbee_disconnected [] = {
7 | 0x00, 0x00, 0x01, 0x80, 0x07, 0xE0, 0x1F, 0xF8, 0x7D, 0xBE, 0xF1, 0x8F, 0xC7, 0xE3, 0x0F, 0xF0,
8 | 0x1D, 0xB8, 0x11, 0x88, 0x07, 0xE0, 0x07, 0xE0, 0x04, 0x20, 0x01, 0x80, 0x01, 0x80, 0x00, 0x00
9 | };
10 |
--------------------------------------------------------------------------------
/partitions.csv:
--------------------------------------------------------------------------------
1 | # Name, Type, SubType, Offset, Size, Flags
2 | # Note: if you have increased the bootloader size, make sure to update the offsets to avoid overlap
3 | # CONFIG_PARTITION_TABLE_OFFSET=0x8000 (32K) + 0x1000 = 36K
4 | # 36K + 24K + 4K + 16K + 1K = 81K
5 | # 2000K - 81K = 1919K (/2 = 959.5K - for "factory" and "ota" apps)
6 | # => actually each of apps = !!! 900K !!!
7 | nvs, data, nvs, , 24K,
8 | phy_init, data, phy, , 4K,
9 | factory, app, factory, , 900K,
10 | zb_storage, data, fat, , 16K,
11 | zb_fct, data, fat, , 1K,
12 | ota_0, app, ota_0, , 900K,
13 | ota_1, app, ota_1, , 900K,
14 |
--------------------------------------------------------------------------------
/.vscode/c_cpp_properties.json:
--------------------------------------------------------------------------------
1 | {
2 | "configurations": [
3 | {
4 | "name": "Windows",
5 | "cStandard": "c11",
6 | "cppStandard": "c++17",
7 | "includePath": [
8 | "${config:idf.espIdfPath}/components/**",
9 | "${workspaceFolder}/**"
10 | ],
11 | "browse": {
12 | "path": [
13 | "${config:idf.espIdfPath}/components"
14 | ],
15 | "limitSymbolsToIncludedHeaders": false
16 | },
17 | "compileCommands": "${workspaceFolder}/build/compile_commands.json"
18 | }
19 | ],
20 | "version": 4
21 | }
--------------------------------------------------------------------------------
/_chk_partitions/partitions.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | $fn = "partitions.csv";
4 | if(!empty($argv[1])) {
5 | $fn = $argv[1];
6 | }
7 | if(!file_exists($fn)) {
8 | echo "\nFile is not found!\n";
9 | exit;
10 | }
11 |
12 | $lens = [12,6,10,8,7,1];
13 |
14 | $contents = file($fn);
15 | foreach($contents as $line) {
16 | $line = trim($line);
17 | //if(substr($line, 0, 1) === "#") {
18 | // continue;
19 | //}
20 | $arr = explode(",", $line);
21 | $num = count($arr);
22 | if($num !== 6) {
23 | continue;
24 | }
25 | $newLine = "";
26 | $idx = 0;
27 | foreach($arr as $item) {
28 | $item = trim($item);
29 | if(preg_match("{0x\d*}si", $item)) {
30 | $s = (hexdec($item) / 1024)."K";
31 | } else {
32 | $s = $item;
33 | }
34 | if($idx < $num - 1) {
35 | $s .= ",";
36 | }
37 | $newLine .= str_pad($s, $lens[$idx], " ", STR_PAD_RIGHT);
38 | $idx++;
39 | }
40 | $newLine .= "\n";
41 | echo $newLine;
42 | }
43 |
--------------------------------------------------------------------------------
/.cproject:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/components/bmx280/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Halit Utku Maden
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/main/bh1750.h:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2017 pcbreflux. All Rights Reserved.
2 | *
3 | * This program is free software: you can redistribute it and/or modify
4 | * it under the terms of the GNU General Public License as published by
5 | * the Free Software Foundation, version 3.
6 | *
7 | * This program is distributed in the hope that it will be useful, but
8 | * WITHOUT ANY WARRANTY; without even the implied warranty of
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 | * General Public License for more details.
11 | *
12 | * You should have received a copy of the GNU General Public License
13 | * along with this program. If not, see . *
14 | */
15 | #ifndef BH1750_H_
16 | #define BH1750_H_
17 |
18 | #include "bh1750.h"
19 | #define BH1750_ADDRESS1 0x23
20 | #define BH1750_ADDRESS2 0x5C
21 | #define BH1750_POWER_DOWN 0x00
22 | #define BH1750_POWER_ON 0x01
23 | #define BH1750_RESET 0x07
24 | #define BH1750_CONTINUOUS_HIGH_RES_MODE 0x10
25 | #define BH1750_CONTINUOUS_HIGH_RES_MODE_2 0x11
26 | #define BH1750_CONTINUOUS_LOW_RES_MODE 0x13
27 | #define BH1750_ONE_TIME_HIGH_RES_MODE 0x20
28 | #define BH1750_ONE_TIME_HIGH_RES_MODE_2 0x21
29 | #define BH1750_ONE_TIME_LOW_RES_MODE 0x23
30 |
31 | void bh1750_init(void);
32 | float bh1750_read(float *lVal, uint16_t *lRaw);
33 | void bh1750_deinit(void);
34 |
35 | #endif /* BH1750_H_ */
36 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | URL: https://github.com/mozolin/esp32c6_zigbee
2 |
3 | # Example: BMX280 & DS18B20 & BH1750 sensors with ESP32-C6 (Espressif IDE)
4 |
5 | Zigbe2MQTT Settings:
6 | [Example: Zigbee2MQTT CC2538 settings for ESP32-C3, ESP32-C6 and CC2530](https://github.com/mozolin/Zigbee2MQTT_CC2538)
7 |
8 | # Make firmware for ESP32-C6 in Espressif IDE
9 |
10 | 1) The circuit might look like this
11 | 
12 |
13 | 2) Install Espressif IDE (https://dl.espressif.com/dl/esp-idf/)
14 |
15 | 3) Open «Import» - «Existing IDF Project»
16 | 
17 |
18 | 4) Choose the project folder
19 | 
20 |
21 | 5) Set the correct COM-port to upload firmware
22 | 
23 |
24 | 6) Run the project (it will be built and uploaded into flash)
25 | 
26 |
27 | 7) The build and upload process can be viewed in the Console
28 | 
29 | 
30 |
31 | 8) Open the Terminal to view the software’s progress
32 | 
33 |
34 | 9) Set the correct COM-port for the Terminal
35 | 
36 | 
37 |
38 | 10) The Terminal connection can be disconnected at any time
39 | 
40 |
41 | 
42 | 
43 | 
44 |
--------------------------------------------------------------------------------
/components/bmx280/README.md:
--------------------------------------------------------------------------------
1 | BMX280 for ESP-IDF
2 | ==================
3 | BMX280 is a basic I2C based driver for ESP32 devices licensed mostly under MIT.
4 | (See caption "License" for details.)
5 |
6 | Usage
7 | -----
8 | Clone this repository or add it as a submodule into your components directory.
9 | Add the module as a requirement to your main module, or other modules.
10 |
11 | Example Code
12 | ------------
13 | ```c
14 | #include "esp_log.h"
15 | #include "bmx280.h"
16 |
17 | void app_main(void)
18 | {
19 | // Entry Point
20 | //ESP_ERROR_CHECK(nvs_flash_init());
21 | i2c_config_t i2c_cfg = {
22 | .mode = I2C_MODE_MASTER,
23 | .sda_io_num = GPIO_NUM_17,
24 | .scl_io_num = GPIO_NUM_16,
25 | .sda_pullup_en = false,
26 | .scl_pullup_en = false,
27 |
28 | .master = {
29 | .clk_speed = 100000
30 | }
31 | };
32 |
33 | ESP_ERROR_CHECK(i2c_param_config(I2C_NUM_0, &i2c_cfg));
34 | ESP_ERROR_CHECK(i2c_driver_install(I2C_NUM_0, I2C_MODE_MASTER, 0, 0, 0));
35 |
36 | bmx280_t* bmx280 = bmx280_create(I2C_NUM_0);
37 |
38 | if (!bmx280) {
39 | ESP_LOGE("test", "Could not create bmx280 driver.");
40 | return;
41 | }
42 |
43 | ESP_ERROR_CHECK(bmx280_init(bmx280));
44 |
45 | bmx280_config_t bmx_cfg = BMX280_DEFAULT_CONFIG;
46 | ESP_ERROR_CHECK(bmx280_configure(bmx280, &bmx_cfg));
47 |
48 | while (1)
49 | {
50 | ESP_ERROR_CHECK(bmx280_setMode(bmx280, BMX280_MODE_FORCE));
51 | do {
52 | vTaskDelay(pdMS_TO_TICKS(1));
53 | } while(bmx280_isSampling(bmx280));
54 |
55 | float temp = 0, pres = 0, hum = 0;
56 | ESP_ERROR_CHECK(bmx280_readoutFloat(bmx280, &temp, &pres, &hum));
57 |
58 | ESP_LOGI("test", "Read Values: temp = %f, pres = %f, hum = %f", temp, pres, hum);
59 | }
60 | }
61 | ```
62 |
63 | License
64 | -------
65 | This repository contains a lot of code I have written which is licensed under
66 | MIT, however there are sections modified from the BME280 datasheet which is
67 | unclearly licensed.
68 |
69 | The unclearly licensed section is clearly marked with two comments. Any code
70 | between `// HERE BE DRAGONS` and `// END OF DRAGONS` contains modified versions
71 | of the Bosch Sensortec code.
72 |
73 | Please take note of this in production.
--------------------------------------------------------------------------------
/main/ds18b20_main.c:
--------------------------------------------------------------------------------
1 | #include "onewire_bus.h"
2 | #include "ds18b20.h"
3 |
4 | #include "esp_log.h"
5 | #include "freertos/FreeRTOS.h"
6 | #include "freertos/task.h"
7 | #include "ds18b20_main.h"
8 |
9 | //extern float temp_ds18b20;
10 | float temp_ds18b20 = 0;
11 | float ds18b20_temperature_list[ONEWIRE_MAX_DS18B20];
12 | int ds18b20_device_num = 0;
13 | ds18b20_device_handle_t ds18b20s[ONEWIRE_MAX_DS18B20];
14 |
15 |
16 | void ds18b20_init_task()
17 | {
18 | //ESP_LOGI(TAG_DS18B20, "It starts...");
19 | //-- install 1-wire bus
20 | onewire_bus_handle_t bus = NULL;
21 | onewire_bus_config_t bus_config = {
22 | .bus_gpio_num = ONEWIRE_BUS_GPIO,
23 | };
24 | onewire_bus_rmt_config_t rmt_config = {
25 | //-- 1byte ROM command + 8byte ROM number + 1byte device command
26 | .max_rx_bytes = 10,
27 | };
28 | ESP_ERROR_CHECK(onewire_new_bus_rmt(&bus_config, &rmt_config, &bus));
29 |
30 | onewire_device_iter_handle_t iter = NULL;
31 | onewire_device_t next_onewire_device;
32 | esp_err_t search_result = ESP_OK;
33 |
34 | //-- create 1-wire device iterator, which is used for device search
35 | ESP_ERROR_CHECK(onewire_new_device_iter(bus, &iter));
36 | //ESP_LOGI(TAG_DS18B20, "Device iterator created, start searching...");
37 | do {
38 | search_result = onewire_device_iter_get_next(iter, &next_onewire_device);
39 | //-- found a new device, let's check if we can upgrade it to a DS18B20
40 | if(search_result == ESP_OK) {
41 | ds18b20_config_t ds_cfg = {};
42 | //-- check if the device is a DS18B20, if so, return the ds18b20 handle
43 | if(ds18b20_new_device(&next_onewire_device, &ds_cfg, &ds18b20s[ds18b20_device_num]) == ESP_OK) {
44 | ESP_LOGI(TAG_DS18B20, "Found a DS18B20[%d], address: %016llX", ds18b20_device_num, next_onewire_device.address);
45 | ds18b20_device_num++;
46 | } else {
47 | ESP_LOGW(TAG_DS18B20, "Found an unknown device, address: %016llX", next_onewire_device.address);
48 | }
49 | }
50 | } while (search_result != ESP_ERR_NOT_FOUND);
51 | ESP_ERROR_CHECK(onewire_del_device_iter(iter));
52 | ESP_LOGI(TAG_DS18B20, "Searching done, %d DS18B20 device(s) found", ds18b20_device_num);
53 |
54 | //vTaskDelay(5000 / portTICK_PERIOD_MS);
55 | vTaskDelete(NULL);
56 | }
57 |
58 | void ds18b20_show()
59 | {
60 | //ESP_LOGW(TAG_DS18B20, "Showing: %d DS18B20 device(s)", ds18b20_device_num);
61 | for(int i = 0; i < ds18b20_device_num; i ++) {
62 | //ESP_LOGW(TAG_DS18B20, "...1[%d]", i);
63 | //-- DS18B20_RESOLUTION_9B ... DS18B20_RESOLUTION_12B
64 | ESP_ERROR_CHECK(ds18b20_set_resolution(ds18b20s[i], DS18B20_RESOLUTION_9B));
65 |
66 | ESP_ERROR_CHECK(ds18b20_trigger_temperature_conversion(ds18b20s[i]));
67 | //ESP_LOGW(TAG_DS18B20, "...2[%d]", i);
68 | ESP_ERROR_CHECK(ds18b20_get_temperature(ds18b20s[i], &temp_ds18b20));
69 | //ESP_LOGW(TAG_DS18B20, "...3, Temperature read from DS18B20[%d]: %.2fC", i, temp_ds18b20);
70 |
71 | //-- make a list of DS18B20 temperature
72 | ds18b20_temperature_list[i] = temp_ds18b20;
73 | }
74 | //vTaskDelay(5000 / portTICK_PERIOD_MS);
75 | }
76 |
--------------------------------------------------------------------------------
/main/esp32c6_zigbee.h:
--------------------------------------------------------------------------------
1 | #include "esp_zigbee_core.h"
2 |
3 | #define MANUFACTURER_NAME "Espressif Systems"
4 | #define MODEL_NAME "MIKE.ESP32-C6"
5 | #define FIRMWARE_VERSION "1.2.3"
6 |
7 | //-- the max amount of connected devices
8 | #define MAX_CHILDREN 10
9 | //-- enable the install code policy for security
10 | #define INSTALLCODE_POLICY_ENABLE false
11 | //-- main sensor endpoint
12 | #define BMX280_SENSOR_ENDPOINT 1
13 | //-- whether or not to use the BH1750 sensor at all
14 | #define USE_BH1750_SENSOR true
15 | //-- BH1750 sensor endpoint
16 | #define BH1750_SENSOR_ENDPOINT 5
17 | //-- whether or not to use a custom endpoint for the BH1750 sensor
18 | #define USE_BH1750_CUSTOM_ENDPOINT false
19 | //-- LED GPIO
20 | #define CONFIG_BLINK_GPIO 5
21 | #define BLINK_GPIO CONFIG_BLINK_GPIO
22 | /***********************************************************
23 |
24 | Update attribute (refresh sensor?) interval in seconds
25 |
26 | DEPENDS ON "ONEWIRE_MAX_DS18B20" (ds18b20_main.h):
27 | If too many DS18B20 sensors are expected (are set), it
28 | may cause the zigbee task to fail!
29 |
30 | *************************************************************/
31 | #define UPDATE_ATTR_INTERVAL 20
32 | //-- Zigbee primary channel mask use in the example
33 | #define ESP_ZB_PRIMARY_CHANNEL_MASK ESP_ZB_TRANSCEIVER_ALL_CHANNELS_MASK
34 | //-- The attribute indicates the file version of the downloaded image on the device
35 | #define OTA_UPGRADE_MANUFACTURER 0x1001
36 | //-- The attribute indicates the value for the manufacturer of the device
37 | #define OTA_UPGRADE_IMAGE_TYPE 0x1011
38 | //-- The attribute indicates the file version of the running firmware image on the device
39 | #define OTA_UPGRADE_FILE_VERSION 0x01010101
40 | //-- The parameter indicates the version of hardware
41 | #define OTA_UPGRADE_HW_VERSION 0x0101
42 | //-- The parameter indicates the maximum data size of query block image
43 | #define OTA_UPGRADE_MAX_DATA_SIZE 64
44 |
45 |
46 | #if !defined CONFIG_ZB_ZCZR
47 | #error Define ZB_ZCZR in idf.py menuconfig to compile light (Router) source code.
48 | #endif
49 |
50 |
51 | #define ESP_ZB_ZR_CONFIG() \
52 | { \
53 | .esp_zb_role = ESP_ZB_DEVICE_TYPE_ROUTER, \
54 | .install_code_policy = INSTALLCODE_POLICY_ENABLE, \
55 | .nwk_cfg.zczr_cfg = { \
56 | .max_children = MAX_CHILDREN, \
57 | }, \
58 | }
59 |
60 | #define ESP_ZB_DEFAULT_RADIO_CONFIG() \
61 | { \
62 | .radio_mode = RADIO_MODE_NATIVE, \
63 | }
64 |
65 | #define ESP_ZB_DEFAULT_HOST_CONFIG() \
66 | { \
67 | .host_connection_mode = HOST_CONNECTION_MODE_NONE, \
68 | }
69 |
--------------------------------------------------------------------------------
/main/zigbee_logo.h:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | // File generated by LCD Assistant
3 | // http://en.radzio.dxp.pl/bitmap_converter/
4 | //------------------------------------------------------------------------------
5 |
6 | const unsigned char zigbee [] = {
7 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
8 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
9 | 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
10 | 0x00, 0x7F, 0xFE, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
11 | 0x01, 0xFC, 0x7F, 0x00, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
12 | 0x00, 0x00, 0x01, 0x80, 0x00, 0x00, 0x07, 0xC0, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
13 | 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x07, 0x80, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
14 | 0x07, 0xFF, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
15 | 0x0F, 0xFF, 0xC0, 0x30, 0x01, 0xFF, 0xC7, 0x80, 0xF1, 0xC7, 0x8F, 0x00, 0x1F, 0x00, 0x0F, 0x00,
16 | 0x0F, 0xFF, 0x80, 0x70, 0x01, 0xFF, 0xE7, 0x83, 0xF9, 0xE7, 0xBF, 0x80, 0x7F, 0xC0, 0x3F, 0xE0,
17 | 0x1F, 0xFF, 0x00, 0xF8, 0x01, 0xFF, 0xE7, 0x87, 0xFF, 0xE7, 0xFF, 0xE0, 0xFF, 0xE0, 0xFF, 0xF0,
18 | 0x1F, 0xFE, 0x01, 0xF8, 0x01, 0xFF, 0xE7, 0x8F, 0xFF, 0xE7, 0xFF, 0xE1, 0xFF, 0xF0, 0xFF, 0xF8,
19 | 0x1F, 0xFC, 0x03, 0xF8, 0x00, 0x07, 0xC7, 0x8F, 0x87, 0xE7, 0xC1, 0xF3, 0xE0, 0xF1, 0xF0, 0x78,
20 | 0x1F, 0xF8, 0x07, 0xF8, 0x00, 0x0F, 0x87, 0x9F, 0x03, 0xE7, 0x80, 0xF3, 0xC0, 0x79, 0xE0, 0x78,
21 | 0x1F, 0xF0, 0x0F, 0xF8, 0x00, 0x1F, 0x07, 0x9E, 0x03, 0xE7, 0x80, 0xF3, 0xC3, 0xF9, 0xC3, 0xFC,
22 | 0x1F, 0xE0, 0x1F, 0xF8, 0x00, 0x3E, 0x07, 0x9E, 0x01, 0xE7, 0x80, 0xF3, 0xDF, 0xFB, 0xDF, 0xF8,
23 | 0x1F, 0xC0, 0x3F, 0xF8, 0x00, 0x7C, 0x07, 0x9E, 0x01, 0xE7, 0x80, 0xF3, 0xFF, 0x83, 0xFF, 0xC0,
24 | 0x1F, 0x80, 0x7F, 0xF8, 0x00, 0xFC, 0x07, 0x9F, 0x03, 0xE7, 0x80, 0xF3, 0xFC, 0x01, 0xFE, 0x00,
25 | 0x1F, 0x00, 0xFF, 0xF8, 0x01, 0xF8, 0x07, 0x9F, 0x03, 0xE7, 0xC1, 0xF3, 0xE0, 0x41, 0xF0, 0x00,
26 | 0x1E, 0x01, 0xFF, 0xF0, 0x03, 0xF0, 0x07, 0x8F, 0x87, 0xE7, 0xE3, 0xE1, 0xF0, 0xE1, 0xF0, 0xE0,
27 | 0x0C, 0x03, 0xFF, 0xF0, 0x03, 0xFF, 0xE7, 0x8F, 0xFF, 0xE7, 0xFF, 0xE1, 0xFF, 0xF0, 0xFF, 0xF0,
28 | 0x0C, 0x07, 0xFF, 0xF0, 0x03, 0xFF, 0xE7, 0x87, 0xFD, 0xE7, 0xFF, 0xC0, 0xFF, 0xE0, 0x7F, 0xF0,
29 | 0x06, 0x0F, 0xFE, 0x00, 0x03, 0xFF, 0xE7, 0x83, 0xF9, 0xE7, 0x9F, 0x80, 0x3F, 0x80, 0x1F, 0xC0,
30 | 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
31 | 0x01, 0xF0, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
32 | 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x06, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
33 | 0x00, 0x7F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
34 | 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
35 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
36 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
37 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
38 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
39 | };
40 |
--------------------------------------------------------------------------------
/components/bmx280/include/bmx280.h:
--------------------------------------------------------------------------------
1 | /**
2 | * BMX280 - BME280 & BMP280 Driver for Esspressif ESP-32.
3 | *
4 | * MIT License
5 | *
6 | * Copyright (C) 2020 Halit Utku Maden
7 | * Please contact at
8 | */
9 |
10 | #ifndef _BMX280_H_
11 | #define _BMX280_H_
12 |
13 | #ifdef __cplusplus
14 | extern "C" {
15 | #endif
16 |
17 | #include
18 | #include
19 | #include "driver/i2c.h"
20 | #include "sdkconfig.h"
21 |
22 | #define BMXAPI extern
23 | extern SemaphoreHandle_t i2c_semaphore;
24 |
25 | /**
26 | * Anonymous structure to driver settings.
27 | */
28 | typedef struct bmx280_t bmx280_t;
29 |
30 | #include "bmx280_bits.h"
31 |
32 | /**
33 | * Create an instance of the BMX280 driver.
34 | * @param port The I2C port to use.
35 | * @return A non-null pointer to the driver structure on success.
36 | */
37 | BMXAPI bmx280_t* bmx280_create(i2c_port_t port);
38 | /**
39 | * Destroy your the instance.
40 | * @param bmx280 The instance to destroy.
41 | */
42 | BMXAPI void bmx280_close(bmx280_t* bmx280);
43 |
44 | /**
45 | * Probe for the sensor and read calibration data.
46 | * @param bmx280 Driver structure.
47 | */
48 | BMXAPI esp_err_t bmx280_init(bmx280_t* bmx280);
49 | /**
50 | * Configure the sensor with the given parameters.
51 | * @param bmx280 Driver structure.
52 | * @param configuration The configuration to use.
53 | */
54 | BMXAPI esp_err_t bmx280_configure(bmx280_t* bmx280, bmx280_config_t *cfg);
55 |
56 | /**
57 | * Set the sensor mode of operation.
58 | * @param bmx280 Driver structure.
59 | * @param mode The mode to set the sensor to.
60 | */
61 | BMXAPI esp_err_t bmx280_setMode(bmx280_t* bmx280, bmx280_mode_t mode);
62 | /**
63 | * Get the sensor current mode of operation.
64 | * @param bmx280 Driver structure.
65 | * @param mode Pointer to write current mode to.
66 | */
67 | BMXAPI esp_err_t bmx280_getMode(bmx280_t* bmx280, bmx280_mode_t* mode);
68 |
69 | /**
70 | * Returns true if sensor is currently sampling environment conditions.
71 | * @param bmx280 Driver structure.
72 | */
73 | BMXAPI bool bmx280_isSampling(bmx280_t* bmx280);
74 |
75 | /**
76 | * Read sensor values as fixed point numbers.
77 | * @param bmx280 Driver structure.
78 | * @param temperature The temperature in C (0.01 degree C increments)
79 | * @param pressure The pressure in Pa (1/256 Pa increments)
80 | * @param humidity The humidity in %RH (1/1024 %RH increments) (UINT32_MAX when invlaid.)
81 | */
82 | BMXAPI esp_err_t bmx280_readout(bmx280_t *bmx280, int32_t *temperature, uint32_t *pressure, uint32_t *humidity);
83 |
84 | /**
85 | * Convert sensor readout to floating point values.
86 | * @param tin Input temperature.
87 | * @param pin Input pressure.
88 | * @param hin Input humidity.
89 | * @param tout Output temperature. (C)
90 | * @param pout Output pressure. (Pa)
91 | * @param hout Output humidity. (%Rh)
92 | */
93 | static inline void bmx280_readout2float(int32_t* tin, uint32_t *pin, uint32_t *hin, float *tout, float *pout, float *hout)
94 | {
95 | if (tin && tout)
96 | *tout = (float)*tin * 0.01f;
97 | if (pin && pout)
98 | *pout = (float)*pin * (1.0f/256.0f);
99 | if (hin && hout)
100 | *hout = (*hin == UINT32_MAX) ? -1.0f : (float)*hin * (1.0f/1024.0f);
101 | }
102 |
103 | /**
104 | * Read sensor values as floating point numbers.
105 | * @param bmx280 Driver structure.
106 | * @param temperature The temperature in C.
107 | * @param pressure The pressure in Pa.
108 | * @param humidity The humidity in %RH.
109 | */
110 | static inline esp_err_t bmx280_readoutFloat(bmx280_t *bmx280, float* temperature, float* pressure, float* humidity)
111 | {
112 | int32_t t; uint32_t p, h;
113 | esp_err_t err = bmx280_readout(bmx280, &t, &p, &h);
114 |
115 | if (err == ESP_OK)
116 | {
117 | bmx280_readout2float(&t, &p, &h, temperature, pressure, humidity);
118 | }
119 |
120 | return err;
121 | }
122 |
123 | #ifdef __cplusplus
124 | };
125 | #endif
126 |
127 | #endif
128 |
--------------------------------------------------------------------------------
/components/bmx280/Kconfig:
--------------------------------------------------------------------------------
1 | menu "BMX280 Options"
2 | choice BMX280_EXPECT_DEVICE
3 | prompt "Installed Sensor Model"
4 | help
5 | Set to the model of the sensor you are using (if you know it).
6 | default BMX280_EXPECT_DETECT
7 | config BMX280_EXPECT_DETECT
8 | bool "Auto"
9 | config BMX280_EXPECT_BME280
10 | bool "BME280"
11 | config BMX280_EXPECT_BMP280
12 | bool "BMP280"
13 | endchoice
14 |
15 | choice BMX280_ADDRESS
16 | prompt "I2C Slave Address"
17 | help
18 | Set the slave address of the sensor if you know it. The driver can
19 | automatically detect it if you don't know.
20 | default BMX280_ADDRESS_DETECT
21 | config BMX280_ADDRESS_DETECT
22 | bool "Auto"
23 | config BMX280_ADDERSS_LO
24 | bool "0x76 (SDO LOW)"
25 | config BMX280_ADDERSS_HI
26 | bool "0x77 (SDO HIGH)"
27 | endchoice
28 |
29 | config BMX280_TIMEOUT
30 | int "Read/Write Timeout"
31 | default 5
32 | help
33 | Number of ticks to wait for I2C read/write operations.
34 |
35 | menu "Default Configuration"
36 | choice BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING
37 | prompt "Temperature Oversampling"
38 | default BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X2
39 | help
40 | Refer to BMP280/BME280 Datasheet for more information.
41 | config BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_NONE
42 | bool "None"
43 | config BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X1
44 | bool "x1"
45 | config BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X2
46 | bool "x2"
47 | config BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X4
48 | bool "x4"
49 | config BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X8
50 | bool "x8"
51 | config BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X16
52 | bool "x16"
53 | endchoice
54 |
55 | choice BMX280_DEFAULT_PRESSURE_OVERSAMPLING
56 | prompt "Pressure Oversampling"
57 | default BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X16
58 | help
59 | Refer to BMP280/BME280 Datasheet for more information.
60 | config BMX280_DEFAULT_PRESSURE_OVERSAMPLING_NONE
61 | bool "None"
62 | config BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X1
63 | bool "x1"
64 | config BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X2
65 | bool "x2"
66 | config BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X4
67 | bool "x4"
68 | config BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X8
69 | bool "x8"
70 | config BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X16
71 | bool "x16"
72 | endchoice
73 |
74 | choice BMX280_DEFAULT_STANDBY
75 | prompt "Cyclic Measurement Standby Time"
76 | default BMX280_DEFAULT_STANDBY_0M5
77 | help
78 | Refer to BMP280/BME280 Datasheet for more information.
79 | config BMX280_DEFAULT_STANDBY_0M5
80 | bool "0.5ms"
81 | config BMX280_DEFAULT_STANDBY_62M5
82 | bool "62.5ms"
83 | config BMX280_DEFAULT_STANDBY_125M
84 | bool "125ms"
85 | config BMX280_DEFAULT_STANDBY_250M
86 | bool "250ms"
87 | config BMX280_DEFAULT_STANDBY_500M
88 | bool "500ms"
89 | config BMX280_DEFAULT_STANDBY_1000M
90 | bool "1000ms"
91 | config BMX280_DEFAULT_STANDBY_10M
92 | bool "BMP280: 2000ms // BME280: 10ms"
93 | config BMX280_DEFAULT_STANDBY_20M
94 | bool "BMP280: 4000ms // BME280: 20ms"
95 | endchoice
96 |
97 | choice BMX280_DEFAULT_IIR
98 | prompt "IIR Filter Sensitivity"
99 | default BMX280_DEFAULT_IIR_X16
100 | help
101 | Refer to BMP280/BME280 Datasheet for more information.
102 | config BMX280_DEFAULT_IIR_NONE
103 | bool "Filter Off"
104 | config BMX280_DEFAULT_IIR_X2
105 | bool "x2"
106 | config BMX280_DEFAULT_IIR_X4
107 | bool "x4"
108 | config BMX280_DEFAULT_IIR_X8
109 | bool "x8"
110 | config BMX280_DEFAULT_IIR_X16
111 | bool "x16"
112 | endchoice
113 |
114 | menu "BME280 Specific Options"
115 | depends on !(BMX280_EXPECT_BMP280)
116 |
117 | choice BMX280_DEFAULT_HUMIDITY_OVERSAMPLING
118 | prompt "Humidity Oversampling"
119 | default BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X1
120 | help
121 | Refer to BME280 Datasheet for more information.
122 | config BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_NONE
123 | bool "None"
124 | config BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X1
125 | bool "x1"
126 | config BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X2
127 | bool "x2"
128 | config BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X4
129 | bool "x4"
130 | config BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X8
131 | bool "x8"
132 | config BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X16
133 | bool "x16"
134 | endchoice
135 | endmenu
136 | endmenu
137 | endmenu
--------------------------------------------------------------------------------
/components/bmx280/include/bmx280_bits.h:
--------------------------------------------------------------------------------
1 | /**
2 | * BMX280 - BME280 & BMP280 Driver for Esspressif ESP-32.
3 | *
4 | * MIT License
5 | *
6 | * Copyright (C) 2020 Halit Utku Maden
7 | * Please contact at
8 | */
9 |
10 | #ifndef _BMX280_DEFAULT_H_
11 | #define _BMX280_DEFAULT_H_
12 | #ifndef _BMX280_H_
13 | #error Never include "bmx280_bits.h" by itself. Remove this reference and use "bmx280.h" instead.
14 | #endif
15 |
16 | typedef enum bmx280_tsmpl_t {
17 | BMX280_TEMPERATURE_OVERSAMPLING_NONE = 0x0,
18 | BMX280_TEMPERATURE_OVERSAMPLING_X1,
19 | BMX280_TEMPERATURE_OVERSAMPLING_X2,
20 | BMX280_TEMPERATURE_OVERSAMPLING_X4,
21 | BMX280_TEMPERATURE_OVERSAMPLING_X8,
22 | BMX280_TEMPERATURE_OVERSAMPLING_X16,
23 | } bmx280_tsmpl_t;
24 |
25 | typedef enum bmx280_psmpl_t {
26 | BMX280_PRESSURE_OVERSAMPLING_NONE = 0x0,
27 | BMX280_PRESSURE_OVERSAMPLING_X1,
28 | BMX280_PRESSURE_OVERSAMPLING_X2,
29 | BMX280_PRESSURE_OVERSAMPLING_X4,
30 | BMX280_PRESSURE_OVERSAMPLING_X8,
31 | BMX280_PRESSURE_OVERSAMPLING_X16,
32 | } bmx280_psmpl_t;
33 |
34 | #if !(CONFIG_BMX280_EXPECT_BMP280)
35 | typedef enum bme280_hsmpl_t {
36 | BMX280_HUMIDITY_OVERSAMPLING_NONE = 0x0,
37 | BMX280_HUMIDITY_OVERSAMPLING_X1,
38 | BMX280_HUMIDITY_OVERSAMPLING_X2,
39 | BMX280_HUMIDITY_OVERSAMPLING_X4,
40 | BMX280_HUMIDITY_OVERSAMPLING_X8,
41 | BMX280_HUMIDITY_OVERSAMPLING_X16,
42 | } bme280_hsmpl_t;
43 | #endif
44 |
45 | typedef enum bmx280_tstby_t {
46 | BMX280_STANDBY_0M5 = 0x0,
47 | BMX280_STANDBY_62M5,
48 | BMX280_STANDBY_125M,
49 | BMX280_STANDBY_250M,
50 | BMX280_STANDBY_500M,
51 | BMX280_STANDBY_1000M,
52 | BME280_STANDBY_10M,
53 | BME280_STANDBY_20M,
54 | BMP280_STANDBY_2000M = BME280_STANDBY_10M,
55 | BMP280_STANDBY_4000M = BME280_STANDBY_20M,
56 | } bmx280_tstby_t;
57 |
58 | typedef enum bmx280_iirf_t {
59 | BMX280_IIR_NONE = 0x0,
60 | BMX280_IIR_X1,
61 | BMX280_IIR_X2,
62 | BMX280_IIR_X4,
63 | BMX280_IIR_X8,
64 | BMX280_IIR_X16,
65 | } bmx280_iirf_t;
66 |
67 | typedef enum bmx280_mode_t {
68 | /** Sensor does no measurements. */
69 | BMX280_MODE_SLEEP = 0,
70 | /** Sensor is in a forced measurement cycle. Sleeps after finishing. */
71 | BMX280_MODE_FORCE = 1,
72 | /** Sensor does measurements. Never sleeps. */
73 | BMX280_MODE_CYCLE = 3,
74 | } bmx280_mode_t;
75 |
76 | typedef struct bmx280_config_t {
77 | bmx280_tsmpl_t t_sampling;
78 | bmx280_psmpl_t p_sampling;
79 | bmx280_tstby_t t_standby;
80 | bmx280_iirf_t iir_filter;
81 | #if !(CONFIG_BMX280_EXPECT_BMP280)
82 | bme280_hsmpl_t h_sampling;
83 | #endif
84 | } bmx280_config_t;
85 |
86 | #if (CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_NONE)
87 | #define BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING BMX280_TEMPERATURE_OVERSAMPLING_NONE
88 | #elif (CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X1)
89 | #define BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING BMX280_TEMPERATURE_OVERSAMPLING_X1
90 | #elif (CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X2)
91 | #define BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING BMX280_TEMPERATURE_OVERSAMPLING_X2
92 | #elif (CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X4)
93 | #define BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING BMX280_TEMPERATURE_OVERSAMPLING_X4
94 | #elif (CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X8)
95 | #define BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING BMX280_TEMPERATURE_OVERSAMPLING_X8
96 | #else
97 | #define BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING BMX280_TEMPERATURE_OVERSAMPLING_X16
98 | #endif
99 |
100 | #if CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_NONE
101 | #define BMX280_DEFAULT_PRESSURE_OVERSAMPLING BMX280_PRESSURE_OVERSAMPLING_NONE
102 | #elif CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X1
103 | #define BMX280_DEFAULT_PRESSURE_OVERSAMPLING BMX280_PRESSURE_OVERSAMPLING_X1
104 | #elif CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X2
105 | #define BMX280_DEFAULT_PRESSURE_OVERSAMPLING BMX280_PRESSURE_OVERSAMPLING_X2
106 | #elif CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X4
107 | #define BMX280_DEFAULT_PRESSURE_OVERSAMPLING BMX280_PRESSURE_OVERSAMPLING_X4
108 | #elif CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X8
109 | #define BMX280_DEFAULT_PRESSURE_OVERSAMPLING BMX280_PRESSURE_OVERSAMPLING_X8
110 | #else
111 | #define BMX280_DEFAULT_PRESSURE_OVERSAMPLING BMX280_PRESSURE_OVERSAMPLING_X16
112 | #endif
113 |
114 | #if (CONFIG_BMX280_DEFAULT_STANDBY_0M5)
115 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_0M5
116 | #elif (CONFIG_BMX280_DEFAULT_STANDBY_62M5)
117 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_62M5
118 | #elif (CONFIG_BMX280_DEFAULT_STANDBY_125M)
119 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_125M
120 | #elif (CONFIG_BMX280_DEFAULT_STANDBY_250M)
121 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_250M
122 | #elif (CONFIG_BMX280_DEFAULT_STANDBY_500M)
123 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_500M
124 | #elif (CONFIG_BMX280_DEFAULT_STANDBY_1000M)
125 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_1000M
126 | #elif (CONFIG_BMX280_DEFAULT_STANDBY_10M)
127 | #define BMX280_DEFAULT_STANDBY BME280_STANDBY_10M
128 | #else
129 | #define BMX280_DEFAULT_STANDBY BMX280_STANDBY_20M
130 | #endif
131 |
132 | #if (CONFIG_BMX280_DEFAULT_IIR_NONE)
133 | #define BMX280_DEFAULT_IIR BMX280_IIR_NONE
134 | #elif (CONFIG_BMX280_DEFAULT_IIR_X2)
135 | #define BMX280_DEFAULT_IIR BMX280_IIR_X2
136 | #elif (CONFIG_BMX280_DEFAULT_IIR_X4)
137 | #define BMX280_DEFAULT_IIR BMX280_IIR_X4
138 | #elif (CONFIG_BMX280_DEFAULT_IIR_X8)
139 | #define BMX280_DEFAULT_IIR BMX280_IIR_X8
140 | #else
141 | #define BMX280_DEFAULT_IIR BMX280_IIR_X16
142 | #endif
143 |
144 | #ifndef CONFIG_BMX280_EXPECT_BMP280
145 | #if (CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_NONE)
146 | #define BMX280_DEFAULT_HUMIDITY_OVERSAMPLING BMX280_HUMIDITY_OVERSAMPLING_NONE
147 | #elif (CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X1)
148 | #define BMX280_DEFAULT_HUMIDITY_OVERSAMPLING BMX280_HUMIDITY_OVERSAMPLING_X1
149 | #elif (CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X2)
150 | #define BMX280_DEFAULT_HUMIDITY_OVERSAMPLING BMX280_HUMIDITY_OVERSAMPLING_X2
151 | #elif (CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X4)
152 | #define BMX280_DEFAULT_HUMIDITY_OVERSAMPLING BMX280_HUMIDITY_OVERSAMPLING_X4
153 | #elif (CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X8)
154 | #define BMX280_DEFAULT_HUMIDITY_OVERSAMPLING BMX280_HUMIDITY_OVERSAMPLING_X8
155 | #else
156 | #define BMX280_DEFAULT_HUMIDITY_OVERSAMPLING BMX280_HUMIDITY_OVERSAMPLING_X16
157 | #endif
158 | #endif
159 |
160 | #if !(CONFIG_BMX280_EXPECT_BMP280)
161 | #define BMX280_DEFAULT_CONFIG ((bmx280_config_t) { BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING, BMX280_DEFAULT_PRESSURE_OVERSAMPLING, BMX280_DEFAULT_STANDBY, BMX280_DEFAULT_IIR, BMX280_DEFAULT_HUMIDITY_OVERSAMPLING })
162 | #else
163 | #define BMX280_DEFAULT_CONFIG ((bmx280_config_t) { BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING, BMX280_DEFAULT_PRESSURE_OVERSAMPLING, BMX280_DEFAULT_STANDBY, BMX280_DEFAULT_IIR})
164 | #endif
165 |
166 | #endif
167 |
--------------------------------------------------------------------------------
/main/bh1750.c:
--------------------------------------------------------------------------------
1 | /* Copyright (c) 2017 pcbreflux. All Rights Reserved.
2 | *
3 | * This program is free software: you can redistribute it and/or modify
4 | * it under the terms of the GNU General Public License as published by
5 | * the Free Software Foundation, version 3.
6 | *
7 | * This program is distributed in the hope that it will be useful, but
8 | * WITHOUT ANY WARRANTY; without even the implied warranty of
9 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 | * General Public License for more details.
11 | *
12 | * You should have received a copy of the GNU General Public License
13 | * along with this program. If not, see . *
14 | */
15 | #include
16 | #include
17 |
18 | #include "sdkconfig.h"
19 | #include "esp_log.h"
20 | #include "driver/i2c.h"
21 |
22 | #include "freertos/FreeRTOS.h"
23 | #include "freertos/task.h"
24 |
25 | #include "bh1750.h"
26 |
27 | static const char *TAG_BH1750 = "BH1750";
28 |
29 | #define I2C_ADDR BH1750_ADDRESS1
30 | #define BH1750_MODE BH1750_CONTINUOUS_HIGH_RES_MODE
31 |
32 | //#define PIN_SDA 21
33 | //#define PIN_SCL 22
34 | //#define I2C_MASTER_NUM I2C_NUM_1 /*!< I2C port number for master dev */
35 | #define PIN_SDA 6
36 | #define PIN_SCL 7
37 | #define I2C_MASTER_NUM 0 /*!< I2C port number for master dev */
38 | #define I2C_MASTER_TX_BUF_DISABLE 0 /*!< I2C master do not need buffer */
39 | #define I2C_MASTER_RX_BUF_DISABLE 0 /*!< I2C master do not need buffer */
40 | #define I2C_MASTER_FREQ_HZ 10000 /*!< I2C master clock frequency */
41 | #define ACK_CHECK_EN 0x1 /*!< I2C master will check ack from slave*/
42 | #define ACK_CHECK_DIS 0x0 /*!< I2C master will not check ack from slave */
43 | #define ACK_VAL 0x0 /*!< I2C ack value */
44 | #define NACK_VAL 0x1 /*!< I2C nack value */
45 |
46 | int bh1750_I2C_write(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t cnt);
47 | int bh1750_I2C_read(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t cnt);
48 |
49 | void bh1750_reset(void)
50 | {
51 | ESP_LOGE(TAG_BH1750, "reset");
52 | bh1750_I2C_write(I2C_ADDR, BH1750_POWER_ON, NULL, 0);
53 | bh1750_I2C_write(I2C_ADDR, BH1750_RESET, NULL, 0);
54 | //-- sleep 10ms
55 | vTaskDelay(10 / portTICK_PERIOD_MS);
56 | }
57 |
58 | //float bh1750_read(void)
59 | float bh1750_read(float *arrLuxVal, uint16_t *arrLuxRaw)
60 | {
61 | uint8_t buf[32];
62 | uint8_t mode = BH1750_MODE;
63 | uint8_t sleepms = 1;
64 | uint8_t resdiv = 1;
65 | float luxVal = 0;
66 | int ret = -1;
67 |
68 | switch (mode) {
69 | case BH1750_CONTINUOUS_HIGH_RES_MODE:
70 | break;
71 | case BH1750_ONE_TIME_HIGH_RES_MODE:
72 | sleepms = 180;
73 | break;
74 | case BH1750_CONTINUOUS_HIGH_RES_MODE_2:
75 | break;
76 | case BH1750_ONE_TIME_HIGH_RES_MODE_2:
77 | sleepms = 180;
78 | resdiv = 2;
79 | break;
80 | case BH1750_CONTINUOUS_LOW_RES_MODE:
81 | sleepms = 24;
82 | break;
83 | case BH1750_ONE_TIME_LOW_RES_MODE:
84 | sleepms = 50;
85 | break;
86 | }
87 |
88 | ret = bh1750_I2C_write(I2C_ADDR, mode, NULL, 0);
89 | if(ret != ESP_OK) {
90 | ESP_LOGW(TAG_BH1750, "BH1750 Reset-1");
91 | bh1750_reset();
92 | return -1;
93 | }
94 |
95 | vTaskDelay(sleepms / portTICK_PERIOD_MS); // sleep ms
96 | ret = bh1750_I2C_read(I2C_ADDR, 0xFF, buf, 2);
97 | if(ret != ESP_OK) {
98 | ESP_LOGW(TAG_BH1750, "BH1750 Reset-2");
99 | bh1750_reset();
100 | return 0;
101 | }
102 | uint16_t luxRaw = (uint16_t)(((uint16_t)(buf[0]<<8))|((uint16_t)buf[1]));
103 | luxVal = (float)luxRaw/1.2/resdiv;
104 | //ESP_LOGI(TAG_BH1750, "sensraw=%u | lux=%f | resdiv=%d", luxRaw, luxVal, resdiv);
105 |
106 | //-- variables to be returned
107 | arrLuxVal[0] = luxVal;
108 | arrLuxRaw[0] = luxRaw;
109 |
110 | return luxVal;
111 | }
112 |
113 | void bh1750_init(void)
114 | {
115 | i2c_config_t conf;
116 | conf.mode = I2C_MODE_MASTER;
117 | ESP_LOGI(TAG_BH1750, "sda_io_num %d", PIN_SDA);
118 | conf.sda_io_num = PIN_SDA;
119 | conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
120 | ESP_LOGI(TAG_BH1750, "scl_io_num %d", PIN_SCL);
121 | conf.scl_io_num = PIN_SCL;
122 | conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
123 | ESP_LOGI(TAG_BH1750, "clk_speed %d", I2C_MASTER_FREQ_HZ);
124 | conf.master.clk_speed = I2C_MASTER_FREQ_HZ;
125 | ESP_LOGI(TAG_BH1750, "i2c_param_config %d", conf.mode);
126 | ESP_ERROR_CHECK(i2c_param_config(I2C_MASTER_NUM, &conf));
127 | ESP_LOGI(TAG_BH1750, "i2c_driver_install %d", I2C_MASTER_NUM);
128 | ESP_ERROR_CHECK(i2c_driver_install(I2C_MASTER_NUM, conf.mode, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0));
129 | }
130 |
131 | void bh1750_deinit(void)
132 | {
133 | ESP_LOGI(TAG_BH1750, "i2c_driver_delete");
134 | ESP_ERROR_CHECK(i2c_driver_delete(I2C_MASTER_NUM));
135 | }
136 |
137 | /* \Brief: The function is used as I2C bus read
138 | * \Return : Status of the I2C read
139 | * \param dev_addr : The device address of the sensor
140 | * \param reg_addr : Address of the first register, will data is going to be read
141 | * \param reg_data : This data read from the sensor, which is hold in an array
142 | * \param cnt : The no of data byte of to be read
143 | */
144 | int bh1750_I2C_write(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t cnt)
145 | {
146 | int ret = 0;
147 |
148 | ESP_LOGD(TAG_BH1750, "bh1750_I2C_write I2CAddress 0x%02X len %d reg 0x%02X", dev_addr,cnt,reg_addr);
149 | if(cnt>0 && reg_data != NULL && LOG_LOCAL_LEVEL >= ESP_LOG_DEBUG) {
150 | for(int pos = 0; pos < cnt; pos++) {
151 | printf("0x%02X ",*(reg_data + pos));
152 | }
153 | printf("\n");
154 | }
155 | i2c_cmd_handle_t cmd = i2c_cmd_link_create();
156 | i2c_master_start(cmd);
157 | i2c_master_write_byte(cmd, dev_addr<<1| I2C_MASTER_WRITE, ACK_CHECK_EN);
158 | i2c_master_write_byte(cmd, reg_addr, ACK_CHECK_EN);
159 | if(cnt>0 && reg_data != NULL) {
160 | i2c_master_write(cmd, reg_data, cnt, ACK_CHECK_EN);
161 | }
162 | i2c_master_stop(cmd);
163 | ret = i2c_master_cmd_begin(I2C_MASTER_NUM, cmd, 1000 / portTICK_PERIOD_MS);
164 | i2c_cmd_link_delete(cmd);
165 | if(ret != ESP_OK) {
166 | ESP_LOGE(TAG_BH1750, "bh1750_I2C_write write data fail I2CAddress 0x%02X len %d reg 0x%02X", dev_addr,cnt,reg_addr);
167 | }
168 |
169 | return ret;
170 | }
171 |
172 | /* \Brief: The function is used as I2C bus read
173 | * \Return : Status of the I2C read
174 | * \param dev_addr : The device address of the sensor
175 | * \param reg_addr : Address of the first register, will data is going to be read
176 | * \param reg_data : This data read from the sensor, which is hold in an array
177 | * \param cnt : The no of data byte of to be read
178 | */
179 | int bh1750_I2C_read(uint8_t dev_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t cnt)
180 | {
181 | int ret = 0;
182 | int pos;
183 | i2c_cmd_handle_t cmd;
184 |
185 | ESP_LOGD(TAG_BH1750, "bh1750_I2C_read I2CAddress 0x%02X len %d reg 0x%02X", dev_addr,cnt,reg_addr);
186 |
187 | if(reg_addr!=0xFF) {
188 | cmd = i2c_cmd_link_create();
189 | i2c_master_start(cmd);
190 | i2c_master_write_byte(cmd, dev_addr<<1| I2C_MASTER_WRITE, ACK_CHECK_EN);
191 | i2c_master_write_byte(cmd, reg_addr, ACK_CHECK_EN);
192 | i2c_master_stop(cmd);
193 | ret = i2c_master_cmd_begin(I2C_MASTER_NUM, cmd, 1000 / portTICK_PERIOD_MS);
194 | i2c_cmd_link_delete(cmd);
195 | if(ret != ESP_OK) {
196 | ESP_LOGE(TAG_BH1750, "bh1750_I2C_read write reg fail %d",ret);
197 | return ret;
198 | }
199 | }
200 |
201 | cmd = i2c_cmd_link_create();
202 | i2c_master_start(cmd);
203 | i2c_master_write_byte(cmd, dev_addr<<1| I2C_MASTER_READ, ACK_CHECK_EN);
204 | for(pos = 0; pos < (cnt-1); pos++) {
205 | i2c_master_read_byte(cmd, reg_data + pos, ACK_VAL);
206 | }
207 | i2c_master_read_byte(cmd, reg_data + cnt -1, NACK_VAL);
208 | i2c_master_stop(cmd);
209 | ret = i2c_master_cmd_begin(I2C_MASTER_NUM, cmd, 1000 / portTICK_PERIOD_MS);
210 | i2c_cmd_link_delete(cmd);
211 | if(ret != ESP_OK) {
212 | ESP_LOGE(TAG_BH1750, "bh1750_I2C_read read data fail %d",ret);
213 | return ret;
214 | }
215 | if(LOG_LOCAL_LEVEL >= ESP_LOG_DEBUG) {
216 | for(pos = 0; pos < cnt; pos++) {
217 | printf("0x%02X ",*(reg_data + pos));
218 | }
219 | printf("\n");
220 | }
221 |
222 | return ret;
223 | }
224 |
--------------------------------------------------------------------------------
/components/bmx280/bmx280.c:
--------------------------------------------------------------------------------
1 | /**
2 | * BMX280 - BME280 & BMP280 Driver for Esspressif ESP-32.
3 | *
4 | * MIT License
5 | *
6 | * Copyright (C) 2020 Halit Utku Maden
7 | * Please contact at
8 | */
9 |
10 | // LEGAL NOTE:
11 | // Any code between below the caption "// HERE BE DRAGONS" and above the caption
12 | // "// END OF DRAGONS" contains modified versions of code owned by Bosch
13 | // Sensortec GmbH and it is not clearly licensed, therefore this code is not
14 | // covered by the MIT of this repository. Use at your own risk.
15 |
16 | #include "bmx280.h"
17 | #include "esp_log.h"
18 |
19 | #include
20 | #include
21 | #include
22 |
23 | // [BME280] Register address of humidity least significant byte.
24 | #define BMX280_REG_HUMI_LSB 0xFE
25 | // [BME280] Register address of humidity most significant byte.
26 | #define BMX280_REG_HUMI_MSB 0xFD
27 |
28 | // Register address of temperature fraction significant byte.
29 | #define BMX280_REG_TEMP_XSB 0xFC
30 | // Register address of temperature least significant byte.
31 | #define BMX280_REG_TEMP_LSB 0xFB
32 | // Register address of temperature most significant byte.
33 | #define BMX280_REG_TEMP_MSB 0xFA
34 |
35 | // Register address of pressure fraction significant byte.
36 | #define BMX280_REG_PRES_XSB 0xF9
37 | // Register address of pressure least significant byte.
38 | #define BMX280_REG_PRES_LSB 0xF8
39 | // Register address of pressure most significant byte.
40 | #define BMX280_REG_PRES_MSB 0xF7
41 |
42 | // Register address of sensor configuration.
43 | #define BMX280_REG_CONFIG 0xF5
44 | // Register address of sensor measurement control.
45 | #define BMX280_REG_MESCTL 0xF4
46 | // Register address of sensor status.
47 | #define BMX280_REG_STATUS 0xF3
48 | // [BME280] Register address of humidity control.
49 | #define BMX280_REG_HUMCTL 0xF2
50 |
51 | // [BME280] Register address of calibration constants. (high bank)
52 | #define BMX280_REG_CAL_HI 0xE1
53 | // Register address of calibration constants. (low bank)
54 | #define BMX280_REG_CAL_LO 0x88
55 |
56 | // Register address for sensor reset.
57 | #define BMX280_REG_RESET 0xE0
58 | // Chip reset vector.
59 | #define BMX280_RESET_VEC 0xB6
60 |
61 | // Register address for chip identification number.
62 | #define BMX280_REG_CHPID 0xD0
63 | // Value of REG_CHPID for BME280
64 | #define BME280_ID 0x60
65 | // Value of REG_CHPID for BMP280 (Engineering Sample 1)
66 | #define BMP280_ID0 0x56
67 | // Value of REG_CHPID for BMP280 (Engineering Sample 2)
68 | #define BMP280_ID1 0x57
69 | // Value of REG_CHPID for BMP280 (Production)
70 | #define BMP280_ID2 0x58
71 |
72 | struct bmx280_t{
73 | // I2C port.
74 | i2c_port_t i2c_port;
75 | // Slave Address of sensor.
76 | uint8_t slave;
77 | // Chip ID of sensor
78 | uint8_t chip_id;
79 | // Compensation data
80 | struct {
81 | uint16_t T1;
82 | int16_t T2;
83 | int16_t T3;
84 | uint16_t P1;
85 | int16_t P2;
86 | int16_t P3;
87 | int16_t P4;
88 | int16_t P5;
89 | int16_t P6;
90 | int16_t P7;
91 | int16_t P8;
92 | int16_t P9;
93 | #if !(CONFIG_BMX280_EXPECT_BMP280)
94 | uint8_t H1;
95 | int16_t H2;
96 | uint8_t H3;
97 | int16_t H4;
98 | int16_t H5;
99 | int8_t H6;
100 | #endif
101 | } cmps;
102 | // Storage for a variable proportional to temperature.
103 | int32_t t_fine;
104 | };
105 |
106 | /**
107 | * Macro that identifies a chip id as BME280 or BMP280
108 | * @note Only use when the chip is verified to be either a BME280 or BMP280.
109 | * @see bmx280_verify
110 | * @param chip_id The chip id.
111 | */
112 | #define bmx280_isBME(chip_id) ((chip_id) == BME280_ID)
113 | /**
114 | * Macro to verify a the chip id matches with the expected values.
115 | * @note Use when the chip needs to be verified as a BME280 or BME280.
116 | * @see bmx280_isBME
117 | * @param chip_id The chip id.
118 | */
119 | #define bmx280_verify(chip_id) (((chip_id) == BME280_ID) || ((chip_id) == BMP280_ID2) || ((chip_id) == BMP280_ID1) || ((chip_id) == BMP280_ID0))
120 |
121 | /**
122 | * Returns false if the sensor was not found.
123 | * @param bmx280 The driver structure.
124 | */
125 | #define bmx280_validate(bmx280) (!(bmx280->slave == 0xDE && bmx280->chip_id == 0xAD))
126 |
127 | /**
128 | * Read from sensor.
129 | * @param bmx280 Driver Sturcture.
130 | * @param addr Register address.
131 | * @param dout Data to read.
132 | * @param size The number of bytes to read.
133 | * @returns Error codes.
134 | */
135 | static esp_err_t bmx280_read(bmx280_t *bmx280, uint8_t addr, uint8_t *dout, size_t size)
136 | {
137 | esp_err_t err;
138 | i2c_cmd_handle_t cmd = i2c_cmd_link_create();
139 | if (cmd)
140 | {
141 | // Write register address
142 | i2c_master_start(cmd);
143 | i2c_master_write_byte(cmd, bmx280->slave | I2C_MASTER_WRITE, true);
144 | i2c_master_write_byte(cmd, addr, true);
145 |
146 | // Read Registers
147 | i2c_master_start(cmd);
148 | i2c_master_write_byte(cmd, bmx280->slave | I2C_MASTER_READ, true);
149 | i2c_master_read(cmd, dout, size, I2C_MASTER_LAST_NACK);
150 | i2c_master_stop(cmd);
151 |
152 | xSemaphoreTake(i2c_semaphore, portMAX_DELAY);
153 | err = i2c_master_cmd_begin(bmx280->i2c_port, cmd, CONFIG_BMX280_TIMEOUT);
154 | xSemaphoreGive(i2c_semaphore);
155 | i2c_cmd_link_delete(cmd);
156 | return err;
157 | }
158 | else
159 | {
160 | return ESP_ERR_NO_MEM;
161 | }
162 | }
163 |
164 | static esp_err_t bmx280_write(bmx280_t* bmx280, uint8_t addr, const uint8_t *din, size_t size)
165 | {
166 | esp_err_t err;
167 | i2c_cmd_handle_t cmd = i2c_cmd_link_create();
168 | if (cmd)
169 | {
170 | for (int i = 0; i < size; i++)
171 | {
172 | i2c_master_start(cmd);
173 | i2c_master_write_byte(cmd, bmx280->slave | I2C_MASTER_WRITE, true);
174 | // Register
175 | i2c_master_write_byte(cmd, addr + i, true);
176 | //Data
177 | i2c_master_write_byte(cmd, din[i], true);
178 | }
179 | i2c_master_stop(cmd);
180 |
181 | xSemaphoreTake(i2c_semaphore, portMAX_DELAY);
182 | err = i2c_master_cmd_begin(bmx280->i2c_port, cmd, CONFIG_BMX280_TIMEOUT);
183 | xSemaphoreGive(i2c_semaphore);
184 | i2c_cmd_link_delete(cmd);
185 | return err;
186 | }
187 | else
188 | {
189 | return ESP_ERR_NO_MEM;
190 | }
191 | }
192 |
193 | static esp_err_t bmx280_probe_address(bmx280_t *bmx280)
194 | {
195 | esp_err_t err = bmx280_read(bmx280, BMX280_REG_CHPID, &bmx280->chip_id, sizeof bmx280->chip_id);
196 |
197 | if (err == ESP_OK)
198 | {
199 | if (
200 | #if CONFIG_BMX280_EXPECT_BME280
201 | bmx280->chip_id == BME280_ID
202 | #elif CONFIG_BMX280_EXPECT_BMP280
203 | bmx280->chip_id == BMP280_ID2 || bmx280->chip_id == BMP280_ID1 || bmx280->chip_id == BMP280_ID0
204 | #else
205 | bmx280_verify(bmx280->chip_id)
206 | #endif
207 | )
208 | {
209 | ESP_LOGI("bmx280", "Probe success: address=%hhx, id=%hhx", bmx280->slave, bmx280->chip_id);
210 | return ESP_OK;
211 | }
212 | else
213 | {
214 | err = ESP_ERR_NOT_FOUND;
215 | }
216 | }
217 |
218 | ESP_LOGW("bmx280", "Probe failure: address=%hhx, id=%hhx, reason=%s", bmx280->slave, bmx280->chip_id, esp_err_to_name(err));
219 | return err;
220 | }
221 |
222 | static esp_err_t bmx280_probe(bmx280_t *bmx280)
223 | {
224 | ESP_LOGI("bmx280", "Probing for BMP280/BME280 sensors on I2C %d", bmx280->i2c_port);
225 |
226 | #if CONFIG_BMX280_ADDRESS_HI
227 | bmx280->slave = 0xEE;
228 | return bmx280_probe_address(bmx280);
229 | #elif CONFIG_BMX280_ADDRESS_LO
230 | bmx280->slave = 0xEC;
231 | return bmx280_probe_address(bmx280);
232 | #else
233 | esp_err_t err;
234 | bmx280->slave = 0xEC;
235 | if ((err = bmx280_probe_address(bmx280)) != ESP_OK)
236 | {
237 | bmx280->slave = 0xEE;
238 | if ((err = bmx280_probe_address(bmx280)) != ESP_OK)
239 | {
240 | ESP_LOGE("bmx280", "Sensor not found.");
241 | bmx280->slave = 0xDE;
242 | bmx280->chip_id = 0xAD;
243 | }
244 | }
245 | return err;
246 | #endif
247 | }
248 |
249 | static esp_err_t bmx280_reset(bmx280_t *bmx280)
250 | {
251 | const static uint8_t din[] = { BMX280_RESET_VEC };
252 | return bmx280_write(bmx280, BMX280_REG_RESET, din, sizeof din);
253 | }
254 |
255 | static esp_err_t bmx280_calibrate(bmx280_t *bmx280)
256 | {
257 | // Honestly, the best course of action is to read the high and low banks
258 | // into a buffer, then put them in the calibration values. Makes code
259 | // endian agnostic, and overcomes struct packing issues.
260 | // Also the BME280 high bank is weird.
261 | //
262 | // Write and pray to optimizations is my new motto.
263 |
264 | ESP_LOGI("bmx280", "Reading out calibration values...");
265 |
266 | esp_err_t err;
267 | uint8_t buf[26];
268 |
269 | // Low Bank
270 | err = bmx280_read(bmx280, BMX280_REG_CAL_LO, buf, sizeof buf);
271 |
272 | if (err != ESP_OK) return err;
273 |
274 | ESP_LOGI("bmx280", "Read Low Bank.");
275 |
276 | bmx280->cmps.T1 = buf[0] | (buf[1] << 8);
277 | bmx280->cmps.T2 = buf[2] | (buf[3] << 8);
278 | bmx280->cmps.T3 = buf[4] | (buf[5] << 8);
279 | bmx280->cmps.P1 = buf[6] | (buf[7] << 8);
280 | bmx280->cmps.P2 = buf[8] | (buf[9] << 8);
281 | bmx280->cmps.P3 = buf[10] | (buf[11] << 8);
282 | bmx280->cmps.P4 = buf[12] | (buf[13] << 8);
283 | bmx280->cmps.P5 = buf[14] | (buf[15] << 8);
284 | bmx280->cmps.P6 = buf[16] | (buf[17] << 8);
285 | bmx280->cmps.P7 = buf[18] | (buf[19] << 8);
286 | bmx280->cmps.P8 = buf[20] | (buf[21] << 8);
287 | bmx280->cmps.P9 = buf[22] | (buf[23] << 8);
288 |
289 | #if !(CONFIG_BMX280_EXPECT_BMP280)
290 |
291 | #if CONFIG_BMX280_EXPECT_DETECT
292 | if (bmx280_isBME(bmx280->chip_id)) // Only conditional for detect scenario.
293 | #endif
294 | {
295 | // First get H1 out of the way.
296 | bmx280->cmps.H1 = buf[23];
297 |
298 | err = bmx280_read(bmx280, BMX280_REG_CAL_HI, buf, 7);
299 |
300 | if (err != ESP_OK) return err;
301 |
302 | ESP_LOGI("bmx280", "Read High Bank.");
303 |
304 | bmx280->cmps.H2 = buf[0] | (buf[1] << 8);
305 | bmx280->cmps.H3 = buf[2];
306 | bmx280->cmps.H4 = (buf[3] << 4) | (buf[4] & 0x0F);
307 | bmx280->cmps.H5 = (buf[4] >> 4) | (buf[5] << 4);
308 | bmx280->cmps.H6 = buf[6];
309 | }
310 |
311 | #endif
312 |
313 | return ESP_OK;
314 | }
315 |
316 | bmx280_t* bmx280_create(i2c_port_t port)
317 | {
318 | bmx280_t* bmx280 = malloc(sizeof(bmx280_t));
319 | if (bmx280)
320 | {
321 | memset(bmx280, 0, sizeof(bmx280_t));
322 |
323 | bmx280->i2c_port = port;
324 | bmx280->slave = 0xDE;
325 | bmx280->chip_id = 0xAD;
326 | }
327 | return bmx280;
328 | }
329 |
330 | void bmx280_close(bmx280_t *bmx280)
331 | {
332 | free(bmx280);
333 | }
334 |
335 | esp_err_t bmx280_init(bmx280_t* bmx280)
336 | {
337 | if (bmx280 == NULL) return ESP_ERR_INVALID_ARG;
338 |
339 | esp_err_t error = bmx280_probe(bmx280) || bmx280_reset(bmx280);
340 |
341 | if (error == ESP_OK)
342 | {
343 | // Give the sensor 10 ms delay to reset.
344 | vTaskDelay(pdMS_TO_TICKS(10));
345 |
346 | // Read calibration data.
347 | bmx280_calibrate(bmx280);
348 |
349 | ESP_LOGI("bmx280", "Dumping calibration...");
350 | ESP_LOG_BUFFER_HEX("bmx280", &bmx280->cmps, sizeof(bmx280->cmps));
351 | }
352 |
353 | return error;
354 | }
355 |
356 | esp_err_t bmx280_configure(bmx280_t* bmx280, bmx280_config_t *cfg)
357 | {
358 | if (bmx280 == NULL || cfg == NULL) return ESP_ERR_INVALID_ARG;
359 | if (!bmx280_validate(bmx280)) return ESP_ERR_INVALID_STATE;
360 |
361 | // Always set ctrl_meas first.
362 | uint8_t num = (cfg->t_sampling << 5) | (cfg->p_sampling << 2) | BMX280_MODE_SLEEP;
363 | esp_err_t err = bmx280_write(bmx280, BMX280_REG_MESCTL, &num, sizeof num);
364 |
365 | if (err) return err;
366 |
367 | // We can set cfg now.
368 | num = (cfg->t_standby << 5) | (cfg->iir_filter << 2);
369 | err = bmx280_write(bmx280, BMX280_REG_CONFIG, &num, sizeof num);
370 |
371 | if (err) return err;
372 |
373 | #if !(CONFIG_BMX280_EXPECT_BMP280)
374 | #if CONFIG_BMX280_EXPECT_DETECT
375 | if (bmx280_isBME(bmx280->chip_id))
376 | #elif CONFIG_BMX280_EXPECT_BME280
377 | #endif
378 | {
379 | num = cfg->h_sampling;
380 | err = bmx280_write(bmx280, BMX280_REG_HUMCTL, &num, sizeof(num));
381 |
382 | if (err) return err;
383 | }
384 | #endif
385 |
386 | // f = 0;
387 | return ESP_OK;
388 | }
389 |
390 | esp_err_t bmx280_setMode(bmx280_t* bmx280, bmx280_mode_t mode)
391 | {
392 | uint8_t ctrl_mes;
393 | esp_err_t err;
394 |
395 | if ((err = bmx280_read(bmx280, BMX280_REG_MESCTL, &ctrl_mes, 1)) != ESP_OK)
396 | return err;
397 |
398 | ctrl_mes = (ctrl_mes & (~3)) | mode;
399 |
400 | return bmx280_write(bmx280, BMX280_REG_MESCTL, &ctrl_mes, 1);
401 | }
402 |
403 | esp_err_t bmx280_getMode(bmx280_t* bmx280, bmx280_mode_t* mode)
404 | {
405 | uint8_t ctrl_mes;
406 | esp_err_t err;
407 |
408 | if ((err = bmx280_read(bmx280, BMX280_REG_MESCTL, &ctrl_mes, 1)) != ESP_OK)
409 | return err;
410 |
411 | ctrl_mes &= 3;
412 |
413 | switch (ctrl_mes)
414 | {
415 | default:
416 | *mode = ctrl_mes; break;
417 | case (BMX280_MODE_FORCE + 1):
418 | *mode = BMX280_MODE_FORCE; break;
419 | }
420 |
421 | return ESP_OK;
422 | }
423 |
424 | bool bmx280_isSampling(bmx280_t* bmx280)
425 | {
426 | uint8_t status;
427 | if (bmx280_read(bmx280, BMX280_REG_STATUS, &status, 1) == ESP_OK)
428 | return (status & (1 << 3)) != 0;
429 | else
430 | return false;
431 | }
432 |
433 |
434 | // LEGAL NOTE:
435 | // Any code between below the caption "// HERE BE DRAGONS" and above the caption
436 | // "// END OF DRAGONS" contains modified versions of code owned by Bosch
437 | // Sensortec GmbH and it is not clearly licensed, therefore this code is not
438 | // covered by the MIT of this repository. Use at your own risk.
439 |
440 | // HERE BE DRAGONS
441 | // This code is revised from the Bosch code within the datasheet of the BME280.
442 | // I do not understand it enough to tell you what it does.
443 | // No touchies.
444 |
445 | // Returns temperature in DegC, resolution is 0.01 DegC. Output value of “5123” equals 51.23 DegC.
446 | // t_fine carries fine temperature as global value
447 | int32_t BME280_compensate_T_int32(bmx280_t *bmx280, int32_t adc_T)
448 | {
449 | int32_t var1, var2, T;
450 | var1 = ((((adc_T>>3) -((int32_t)bmx280->cmps.T1<<1))) * ((int32_t)bmx280->cmps.T2)) >> 11;
451 | var2 =(((((adc_T>>4) -((int32_t)bmx280->cmps.T1)) * ((adc_T>>4) -((int32_t)bmx280->cmps.T1))) >> 12) * ((int32_t)bmx280->cmps.T3)) >> 14;
452 | bmx280->t_fine = var1 + var2;
453 | T = (bmx280->t_fine * 5 + 128) >> 8;
454 | return T;
455 | }
456 |
457 | // Returns pressure in Pa as unsigned 32 bit integer in Q24.8 format (24 integer bits and 8 fractional bits).
458 | // Output value of “24674867” represents 24674867/256 = 96386.2 Pa = 963.862 hPa
459 | uint32_t BME280_compensate_P_int64(bmx280_t *bmx280, int32_t adc_P)
460 | {
461 | int64_t var1, var2, p;
462 | var1 = ((int64_t)bmx280->t_fine) -128000;
463 | var2 = var1 * var1 * (int64_t)bmx280->cmps.P6;
464 | var2 = var2 + ((var1*(int64_t)bmx280->cmps.P5)<<17);
465 | var2 = var2 + (((int64_t)bmx280->cmps.P4)<<35);
466 | var1 = ((var1 * var1 * (int64_t)bmx280->cmps.P3)>>8) + ((var1 * (int64_t)bmx280->cmps.P2)<<12);
467 | var1 = (((((int64_t)1)<<47)+var1))*((int64_t)bmx280->cmps.P1)>>33;
468 | if(var1 == 0){
469 | return 0; // avoid exception caused by division by zero
470 | }
471 | p = 1048576-adc_P;
472 | p = (((p<<31)-var2)*3125)/var1;
473 | var1 = (((int64_t)bmx280->cmps.P9) * (p>>13) * (p>>13)) >> 25;
474 | var2 =(((int64_t)bmx280->cmps.P8) * p) >> 19;
475 | p = ((p + var1 + var2) >> 8) + (((int64_t)bmx280->cmps.P7)<<4);
476 | return (uint32_t)p;
477 | }
478 |
479 | #if !CONFIG_BMX280_EXPECT_BMP280
480 |
481 | // Returns humidity in %RH as unsigned 32 bit integer in Q22.10 format (22 integer and 10 fractional bits).
482 | // Output value of “47445” represents 47445/1024 = 46.333 %RH
483 | uint32_t bme280_compensate_H_int32(bmx280_t *bmx280, int32_t adc_H)
484 | {
485 | int32_t v_x1_u32r;
486 | v_x1_u32r = (bmx280->t_fine -((int32_t)76800));
487 | v_x1_u32r = (((((adc_H << 14) -(((int32_t)bmx280->cmps.H4) << 20) -(((int32_t)bmx280->cmps.H5) * v_x1_u32r)) + ((int32_t)16384)) >> 15) * (((((((v_x1_u32r * ((int32_t)bmx280->cmps.H6)) >> 10) * (((v_x1_u32r * ((int32_t)bmx280->cmps.H3)) >> 11) + ((int32_t)32768))) >> 10) + ((int32_t)2097152)) * ((int32_t)bmx280->cmps.H2) + 8192) >> 14));
488 | v_x1_u32r = (v_x1_u32r -(((((v_x1_u32r >> 15) * (v_x1_u32r >> 15)) >> 7) * ((int32_t)bmx280->cmps.H1)) >> 4));
489 | v_x1_u32r = (v_x1_u32r < 0 ? 0 : v_x1_u32r);
490 | v_x1_u32r = (v_x1_u32r > 419430400? 419430400: v_x1_u32r);
491 | return(uint32_t)(v_x1_u32r>>12);
492 | }
493 |
494 | #endif
495 |
496 | // END OF DRAGONS
497 |
498 | esp_err_t bmx280_readout(bmx280_t *bmx280, int32_t *temperature, uint32_t *pressure, uint32_t *humidity)
499 | {
500 | if (bmx280 == NULL) return ESP_ERR_INVALID_ARG;
501 | if (!bmx280_validate(bmx280)) return ESP_ERR_INVALID_STATE;
502 |
503 | uint8_t buffer[3];
504 | esp_err_t error;
505 |
506 | if (temperature)
507 | {
508 | if ((error = bmx280_read(bmx280, BMX280_REG_TEMP_MSB, buffer, 3)) != ESP_OK)
509 | return error;
510 |
511 | *temperature = BME280_compensate_T_int32(bmx280,
512 | (buffer[0] << 12) | (buffer[1] << 4) | (buffer[0] >> 4)
513 | );
514 | }
515 |
516 | if (pressure)
517 | {
518 | if ((error = bmx280_read(bmx280, BMX280_REG_PRES_MSB, buffer, 3)) != ESP_OK)
519 | return error;
520 |
521 | *pressure = BME280_compensate_P_int64(bmx280,
522 | (buffer[0] << 12) | (buffer[1] << 4) | (buffer[0] >> 4)
523 | );
524 | }
525 |
526 | #if !(CONFIG_BMX280_EXPECT_BMP280)
527 | #if CONFIG_BMX280_EXPECT_DETECT
528 | if (bmx280_isBME(bmx280->chip_id))
529 | #elif CONFIG_BMX280_EXPECT_BME280
530 | #endif
531 | {
532 | if (humidity)
533 | {
534 | if ((error = bmx280_read(bmx280, BMX280_REG_HUMI_MSB, buffer, 2)) != ESP_OK)
535 | return error;
536 |
537 | *humidity = bme280_compensate_H_int32(bmx280,
538 | (buffer[0] << 8) | buffer[0]
539 | );
540 | }
541 | }
542 | #if CONFIG_BMX280_EXPECT_DETECT
543 | else if (humidity)
544 | *humidity = UINT32_MAX;
545 | #endif
546 | #else
547 | if (humidity)
548 | *humidity = UINT32_MAX;
549 | #endif
550 |
551 | return ESP_OK;
552 | }
553 |
--------------------------------------------------------------------------------
/main/esp32c6_zigbee.c:
--------------------------------------------------------------------------------
1 | #include "esp32c6_zigbee.h"
2 | #include "esp_check.h"
3 | #include "esp_err.h"
4 | #include "esp_log.h"
5 | #include "nvs_flash.h"
6 | #include "string.h"
7 | #include "freertos/FreeRTOS.h"
8 | #include "freertos/task.h"
9 | #include "zcl/esp_zigbee_zcl_common.h"
10 | #include "zigbee_logo.h"
11 | #include "zigbee_connected.h"
12 | #include "zigbee_disconnected.h"
13 | #include "zigbee_image.h"
14 | #include "iot_button.h"
15 | #include
16 | #include
17 |
18 | #include "driver/i2c.h"
19 | #include "ssd1306.h"
20 | #include "led_strip.h"
21 | #include "bmx280.h"
22 | #include "ds18b20_main.h"
23 | #if USE_BH1750_SENSOR
24 | #include "bh1750.h"
25 | #endif
26 |
27 | //------ Global definitions -----------
28 | static char
29 | manufacturer[16],
30 | model[16],
31 | firmware_version[16];
32 | bool
33 | time_updated = false,
34 | connected = false,
35 | ds18b20_found = false,
36 | updateAttributeStarted = false;
37 | int lcd_timeout = 30;
38 | uint8_t
39 | screen_number = 0,
40 | s_led_state = 0;
41 | uint16_t
42 | temperature = 0,
43 | humidity = 0,
44 | pressure = 0,
45 | temperature2 = 0,
46 | undefined_value = 0x8000;
47 | float
48 | t = 0,
49 | p = 0,
50 | h = 0,
51 | t2 = 0,
52 | //temp_ds18b20 = 0,
53 | l = 0;
54 | char strftime_buf[64];
55 | static ssd1306_handle_t ssd1306_dev = NULL;
56 | SemaphoreHandle_t i2c_semaphore = NULL;
57 | static const char *TAG_ESP32C6 = "ESP32C6_ZIGBEE";
58 | extern int ds18b20_device_num;
59 | extern float ds18b20_temperature_list[ONEWIRE_MAX_DS18B20];
60 | #if USE_BH1750_SENSOR
61 | uint16_t lIntBH1750 = 0;
62 | float lBH1750 = 0;
63 | uint16_t lBH1750Raw = 0;
64 |
65 | //-- arrays for val and raw from bh1750_red()
66 | float arrlBH1750[1];
67 | uint16_t arrlBH1750Raw[1];
68 | //float lBH1750Data[2];
69 | //static const char *TAG_BH1750 = "BH1750";
70 | #endif
71 | //char degree[]="\u00b0";
72 | //char degree[]=0xDF;
73 | //char degree[]="°";
74 |
75 |
76 | static void blink_led(void)
77 | {
78 | gpio_set_level(BLINK_GPIO, s_led_state);
79 | }
80 | static void configure_led(void)
81 | {
82 | gpio_reset_pin(BLINK_GPIO);
83 | gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
84 | }
85 |
86 | static void do_blink()
87 | {
88 | s_led_state = 1;
89 | blink_led();
90 |
91 | vTaskDelay(500 / portTICK_PERIOD_MS);
92 |
93 | s_led_state = 0;
94 | blink_led();
95 | //vTaskDelete(NULL);
96 | }
97 |
98 | static void button_single_click_cb(void *arg,void *usr_data)
99 | {
100 | ESP_LOGI("Button boot", "Single click, change screen to %d", screen_number);
101 | lcd_timeout = 30;
102 | screen_number = screen_number + 1;
103 | if( screen_number == 2)
104 | {
105 | screen_number = 0;
106 | }
107 | }
108 |
109 | static void button_long_press_cb(void *arg,void *usr_data)
110 | {
111 | ESP_LOGI("Button boot", "Long press, leave & reset");
112 | esp_zb_factory_reset();
113 | }
114 |
115 | void register_button()
116 | {
117 | //-- create GPIO button
118 | button_config_t gpio_btn_cfg = {
119 | .type = BUTTON_TYPE_GPIO,
120 | .long_press_time = CONFIG_BUTTON_LONG_PRESS_TIME_MS,
121 | .short_press_time = CONFIG_BUTTON_SHORT_PRESS_TIME_MS,
122 | .gpio_button_config = {
123 | .gpio_num = 9,
124 | .active_level = 0,
125 | },
126 | };
127 |
128 | button_handle_t gpio_btn = iot_button_create(&gpio_btn_cfg);
129 | if(NULL == gpio_btn) {
130 | ESP_LOGE("Button boot", "Button create failed");
131 | }
132 |
133 | iot_button_register_cb(gpio_btn, BUTTON_SINGLE_CLICK, button_single_click_cb,NULL);
134 | iot_button_register_cb(gpio_btn, BUTTON_LONG_PRESS_START, button_long_press_cb, NULL);
135 |
136 | }
137 |
138 | esp_err_t i2c_master_init()
139 | {
140 | //-- Don't initialize twice!
141 | if(i2c_semaphore != NULL) {
142 | return ESP_FAIL;
143 | }
144 |
145 | i2c_semaphore = xSemaphoreCreateMutex();
146 | if(i2c_semaphore == NULL) {
147 | return ESP_FAIL;
148 | }
149 |
150 | i2c_config_t i2c_config = {
151 | .mode = I2C_MODE_MASTER,
152 | .sda_io_num = GPIO_NUM_6,
153 | .scl_io_num = GPIO_NUM_7,
154 | .sda_pullup_en = GPIO_PULLUP_ENABLE,
155 | .scl_pullup_en = GPIO_PULLUP_ENABLE,
156 | .master.clk_speed = 1000000
157 | };
158 |
159 | esp_err_t ret;
160 |
161 | ret = i2c_param_config(I2C_NUM_0, &i2c_config);
162 | if(ret != ESP_OK)
163 | {
164 | return ret;
165 | }
166 |
167 | ret = i2c_driver_install(I2C_NUM_0, I2C_MODE_MASTER, 0, 0, 0);
168 | if(ret != ESP_OK)
169 | {
170 | return ret;
171 | }
172 |
173 | return ESP_OK;
174 | }
175 |
176 | //--------- User task section -----------------
177 | static void get_rtc_time()
178 | {
179 | time_t now;
180 | struct tm timeinfo;
181 | time(&now);
182 | localtime_r(&now, &timeinfo);
183 | strftime(strftime_buf, sizeof(strftime_buf), "%a %H:%M:%S", &timeinfo);
184 | }
185 |
186 | void lcd_screen_0()
187 | {
188 | ssd1306_refresh_gram(ssd1306_dev);
189 | ssd1306_clear_screen(ssd1306_dev, 0x00);
190 |
191 | char temp_data_str[100] = {0};
192 | int i = 0;
193 | for(i = 0; i < ds18b20_device_num; i ++) {
194 | t2 = ds18b20_temperature_list[i];
195 | sprintf(temp_data_str, "ds18b20[%d]: %.2f", i, t2);
196 | //ssd1306_draw_string(ssd1306_dev, 0, 26 + i * 12, (const uint8_t *)temp_data_str, 12, 1);
197 | ssd1306_draw_string(ssd1306_dev, 0, 15 + i * 12, (const uint8_t *)temp_data_str, 12, 1);
198 | }
199 |
200 | #if USE_BH1750_SENSOR
201 | //-- BH1750
202 | i = 3; //-- 4th row on SSD1036
203 | sprintf(temp_data_str, "bh1750: %.2f", lBH1750);
204 | ssd1306_draw_string(ssd1306_dev, 0, 15 + i * 12, (const uint8_t *)temp_data_str, 12, 1);
205 | #endif
206 |
207 | sprintf(temp_data_str, "%.2f, %.2f%%, %.0f", t, h, p/100);
208 | //ssd1306_draw_string(ssd1306_dev, 0, 14, (const uint8_t *)temp_data_str, 12, 1);
209 | ssd1306_draw_string(ssd1306_dev, 0, 5, (const uint8_t *)temp_data_str, 12, 1);
210 | //ESP_LOGI("4", "T2: %.2f, T: %.2f, H: %.2f, P: %.0f", t2, t, h, p);
211 |
212 | ssd1306_draw_bitmap(ssd1306_dev, 112, 48, zigbee_image, 16, 16);
213 | if (connected)
214 | {
215 | //ESP_LOGW("LCD", "CONNECTED!");
216 | ssd1306_draw_bitmap(ssd1306_dev, 112, 0, zigbee_connected, 16, 16);
217 | } else {
218 | //ESP_LOGE("LCD", "NOT CONNECTED!");
219 | ssd1306_draw_bitmap(ssd1306_dev, 112, 0, zigbee_disconnected, 16, 16);
220 | }
221 | ssd1306_refresh_gram(ssd1306_dev);
222 | }
223 |
224 | void lcd_screen_1()
225 | {
226 | ssd1306_refresh_gram(ssd1306_dev);
227 | ssd1306_clear_screen(ssd1306_dev, 0x00);
228 | ssd1306_draw_bitmap(ssd1306_dev, 112, 48, zigbee_image, 16, 16);
229 | if(connected)
230 | {
231 | if(time_updated)
232 | {
233 | get_rtc_time();
234 | ESP_LOGI(TAG_ESP32C6, "The current date/time is: %s", strftime_buf);
235 | ssd1306_draw_string(ssd1306_dev, 5, 48, (const uint8_t *)strftime_buf, 16, 1);
236 | }
237 |
238 | char connected_str[16] = {0};
239 | char PAN_ID[16] = {0};
240 | char Channel[16] = {0};
241 | sprintf(connected_str, " Connected");
242 | sprintf(PAN_ID, "PAN ID : 0x%04hx", esp_zb_get_pan_id());
243 | sprintf(Channel, "Channel: %d", esp_zb_get_current_channel());
244 | ssd1306_draw_string(ssd1306_dev, 5, 0, (const uint8_t *)connected_str, 16, 1);
245 | ssd1306_draw_string(ssd1306_dev, 5, 16, (const uint8_t *)PAN_ID, 16, 1);
246 | ssd1306_draw_string(ssd1306_dev, 5, 32, (const uint8_t *)Channel, 16, 1);
247 | ssd1306_draw_bitmap(ssd1306_dev, 112, 0, zigbee_connected, 16, 16);
248 | } else {
249 | char disconnected_str[16] = {0};
250 | sprintf(disconnected_str, " Disconnected");
251 | ssd1306_draw_string(ssd1306_dev, 5, 16, (const uint8_t *)disconnected_str, 16, 1);
252 | ssd1306_draw_bitmap(ssd1306_dev, 112, 0, zigbee_disconnected, 16, 16);
253 | }
254 | ssd1306_refresh_gram(ssd1306_dev);
255 | }
256 |
257 | static void lcd_task(void *pvParameters)
258 | {
259 | //-- Start lcd
260 | ssd1306_dev = ssd1306_create(I2C_NUM_0, SSD1306_I2C_ADDRESS);
261 | ssd1306_refresh_gram(ssd1306_dev);
262 | ssd1306_clear_screen(ssd1306_dev, 0x00);
263 |
264 | ssd1306_draw_bitmap(ssd1306_dev, 0, 16, zigbee, 128, 32);
265 | ssd1306_refresh_gram(ssd1306_dev);
266 | vTaskDelay(1500 / portTICK_PERIOD_MS);
267 |
268 | while(1)
269 | {
270 | switch(screen_number) {
271 | case 0:
272 | //ESP_LOGI(TAG_ESP32C6, "Screen number 0 ");
273 | lcd_screen_0();
274 | break;
275 | case 1:
276 | //ESP_LOGI(TAG_ESP32C6, "Screen number 1 ");
277 | lcd_screen_1();
278 | break;
279 | default:
280 | ESP_LOGW(TAG_ESP32C6, "Default screen --------");
281 | break;
282 | }
283 | lcd_timeout = lcd_timeout - 1;
284 | if(lcd_timeout <= 0) {
285 | screen_number = 0;
286 | } else {
287 | lcd_timeout = lcd_timeout - 1;
288 | //ESP_LOGI(TAG_ESP32C6, "lcd_timeout %d ", lcd_timeout);
289 | }
290 | vTaskDelay(1000 / portTICK_PERIOD_MS);
291 | }
292 | }
293 |
294 | #if USE_BH1750_SENSOR
295 | static void bh1750_task(void *pvParameters)
296 | {
297 | while(1) {
298 | bh1750_read(arrlBH1750, arrlBH1750Raw);
299 | lBH1750 = arrlBH1750[0];
300 | lBH1750Raw = arrlBH1750Raw[0];
301 |
302 | lIntBH1750 = (uint16_t)(lBH1750 * 10000);
303 | //ESP_LOGI(TAG_BH1750, "val:%.2f, int:%d, raw:%d", lBH1750, lIntBH1750, lBH1750Raw);
304 |
305 | vTaskDelay(5000 / portTICK_PERIOD_MS);
306 | }
307 |
308 | vTaskDelete(NULL);
309 | }
310 | #endif
311 |
312 | static void bmx280_task(void *pvParameters)
313 | {
314 | bmx280_t* bmx280 = bmx280_create(I2C_NUM_0);
315 |
316 | if(!bmx280) {
317 | ESP_LOGE("BMX280", "Could not create bmx280 driver.");
318 | return;
319 | }
320 |
321 | ESP_ERROR_CHECK(bmx280_init(bmx280));
322 | bmx280_config_t bmx_cfg = BMX280_DEFAULT_CONFIG;
323 | ESP_ERROR_CHECK(bmx280_configure(bmx280, &bmx_cfg));
324 |
325 | while(1)
326 | {
327 | ESP_ERROR_CHECK(bmx280_setMode(bmx280, BMX280_MODE_FORCE));
328 | do {
329 | vTaskDelay(5000 / portTICK_PERIOD_MS);
330 | } while(bmx280_isSampling(bmx280));
331 | //vTaskDelay(5000 / portTICK_PERIOD_MS);
332 | ESP_ERROR_CHECK(bmx280_readoutFloat(bmx280, &t, &p, &h));
333 | //ESP_LOGI("BMX280", "Read Values: t = %.2f, p = %.1f, h = %.1f", t, p/100, h);
334 | temperature = (uint16_t)(t * 100);
335 | humidity = (uint16_t)(h * 100);
336 | pressure = (uint16_t)(p/100);
337 |
338 | ds18b20_show();
339 |
340 | if(ds18b20_device_num > 0) {
341 | ds18b20_found = true;
342 | }
343 |
344 | char ds18b20_str[200] = {0};
345 | char ds18b20_int[10] = {0};
346 | //strcpy(ds18b20_str, "");
347 | //strcpy(ds18b20_int, "");
348 | for(int i = 0; i < ds18b20_device_num; i ++) {
349 | t2 = ds18b20_temperature_list[i];
350 | //ESP_LOGI(TAG_DS18B20, "Temperature read from DS18B20[%d]: %.2fC", i, t2);
351 | if(strlen(ds18b20_str) > 0) {
352 | strcat(ds18b20_str, ", ");
353 | }
354 | sprintf(ds18b20_int, "%.2f", t2);
355 | strcat(ds18b20_str, ds18b20_int);
356 | }
357 |
358 | #if USE_BH1750_SENSOR
359 | ESP_LOGI("BMX280|DS18B20|BH1750", "T=%.2fC, H=%.2f%%, P=%.0fhPa | DS18B20: %d/%d dev(s) => %s | %.2fLux", t, h, p/100, ds18b20_device_num, ONEWIRE_MAX_DS18B20, ds18b20_str, lBH1750);
360 | #else
361 | ESP_LOGI("BMX280|DS18B20", "T=%.2fC, H=%.2f%%, P=%.0fhPa | DS18B20: %d/%d dev(s) => %s", t, h, p/100, ds18b20_device_num, ONEWIRE_MAX_DS18B20, ds18b20_str);
362 | #endif
363 | }
364 | }
365 |
366 | static void ds18b20_task(void *pvParameters)
367 | {
368 | while(1)
369 | {
370 | ds18b20_show();
371 |
372 | if(ds18b20_device_num > 0) {
373 | ds18b20_found = true;
374 | }
375 |
376 | char ds18b20_str[200] = {0};
377 | char ds18b20_int[10] = {0};
378 |
379 | for(int i = 0; i < ds18b20_device_num; i ++) {
380 | t2 = ds18b20_temperature_list[i];
381 | //ESP_LOGI(TAG_DS18B20, "Temperature read from DS18B20[%d]: %.2fC", i, t2);
382 | if(strlen(ds18b20_str) > 0) {
383 | strcat(ds18b20_str, ", ");
384 | }
385 | sprintf(ds18b20_int, "%.2f", t2);
386 | strcat(ds18b20_str, ds18b20_int);
387 | }
388 |
389 | vTaskDelay(5000 / portTICK_PERIOD_MS);
390 | }
391 | }
392 |
393 |
394 | //----------------------------------------
395 |
396 | static void bdb_start_top_level_commissioning_cb(uint8_t mode_mask)
397 | {
398 | ESP_LOGW(TAG_ESP32C6, "bdb_start_top_level_commissioning_cb()");
399 | ESP_ERROR_CHECK(esp_zb_bdb_start_top_level_commissioning(mode_mask));
400 | }
401 |
402 | //-- Manual reporting attribute to coordinator
403 | static void reportAttribute(uint8_t srcEndpoint, uint8_t dstEndpoint, uint16_t clusterID, uint16_t attributeID, void *value, uint8_t value_length)
404 | {
405 | esp_zb_zcl_report_attr_cmd_t cmd = {
406 | .zcl_basic_cmd = {
407 | .dst_addr_u.addr_short = 0x0000,
408 | .src_endpoint = srcEndpoint,
409 | .dst_endpoint = dstEndpoint,
410 | },
411 | .address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT,
412 | .clusterID = clusterID,
413 | .attributeID = attributeID,
414 | .cluster_role = ESP_ZB_ZCL_CLUSTER_SERVER_ROLE,
415 | };
416 | esp_zb_zcl_attr_t *value_r = esp_zb_zcl_get_attribute(srcEndpoint, clusterID, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, attributeID);
417 | memcpy(value_r->data_p, value, value_length);
418 | esp_zb_zcl_report_attr_cmd_req(&cmd);
419 |
420 | vTaskDelay(500 / portTICK_PERIOD_MS);
421 | }
422 |
423 | //-- Task for update attribute value
424 | void update_attribute()
425 | {
426 | while(1)
427 | {
428 | if(connected)
429 | {
430 | ESP_LOGW("UPD_ATTR", "CONNECTED!");
431 | //ESP_LOGW(TAG_ESP32C6, "update_attribute(%d - %d - %d)", temperature, humidity, pressure);
432 | esp_zb_zcl_status_t state_tmp = esp_zb_zcl_set_attribute_val(BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &temperature, false);
433 | if(state_tmp != ESP_ZB_ZCL_STATUS_SUCCESS)
434 | {
435 | ESP_LOGE(TAG_ESP32C6, "Setting temperature attribute failed!");
436 | } else {
437 | reportAttribute(BMX280_SENSOR_ENDPOINT, BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &temperature, 2);
438 | }
439 | esp_zb_zcl_status_t state_hum = esp_zb_zcl_set_attribute_val(BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID, &humidity, false);
440 | if(state_hum != ESP_ZB_ZCL_STATUS_SUCCESS)
441 | {
442 | ESP_LOGE(TAG_ESP32C6, "Setting humidity attribute failed!");
443 | } else {
444 | reportAttribute(BMX280_SENSOR_ENDPOINT, BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID, &humidity, 2);
445 | }
446 | esp_zb_zcl_status_t state_press = esp_zb_zcl_set_attribute_val(BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, &pressure, false);
447 | if(state_press != ESP_ZB_ZCL_STATUS_SUCCESS)
448 | {
449 | ESP_LOGE(TAG_ESP32C6, "Setting pressure attribute failed!");
450 | } else {
451 | reportAttribute(BMX280_SENSOR_ENDPOINT, BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, &pressure, 2);
452 | }
453 | //ESP_LOGW("BMX280", "EP:%d", BMX280_SENSOR_ENDPOINT);
454 |
455 | //-- Write new temperature value for DS18B20
456 | for(int i = 0; i < ds18b20_device_num; i ++) {
457 | uint8_t DS18B20_SENSOR_ENDPOINT = BMX280_SENSOR_ENDPOINT + i + 1;
458 |
459 | //ESP_LOGE(TAG_ESP32C6, "UPDATE: DS18B20_SENSOR_ENDPOINT = %d", DS18B20_SENSOR_ENDPOINT);
460 |
461 | t2 = ds18b20_temperature_list[i];
462 | temperature2 = t2 * 100;
463 |
464 | //ESP_LOGW(TAG_ESP32C6, "UPDATE[%d] WITH %.2f (%d)", i, t2, temperature2);
465 |
466 | esp_zb_zcl_status_t ds18b20_state = esp_zb_zcl_set_attribute_val(DS18B20_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &temperature2, false);
467 | if(ds18b20_state != ESP_ZB_ZCL_STATUS_SUCCESS) {
468 | ESP_LOGE(TAG_ESP32C6, "Setting DS18B20[%d] attribute failed!", i);
469 | } else {
470 | reportAttribute(DS18B20_SENSOR_ENDPOINT, 1, ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &temperature2, 2);
471 | //reportAttribute(DS18B20_SENSOR_ENDPOINT, DS18B20_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &temperature2, 2);
472 | }
473 | //ESP_LOGW(TAG_ESP32C6, "REPORT_DS18B20[%d] WITH %.2f (%d)", i, t2, temperature2);
474 | //ESP_LOGW("DS18B20", "EP:%d", DS18B20_SENSOR_ENDPOINT);
475 | }
476 |
477 | #if USE_BH1750_SENSOR
478 | #if !USE_BH1750_CUSTOM_ENDPOINT
479 | //-- BH1750 (EP #1)
480 | //ESP_LOGE(TAG_ESP32C6, "1");
481 | esp_zb_zcl_status_t state_illum = esp_zb_zcl_set_attribute_val(BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &lBH1750Raw, false);
482 | //ESP_LOGE(TAG_ESP32C6, "2");
483 | if(state_illum != ESP_ZB_ZCL_STATUS_SUCCESS) {
484 | ESP_LOGE(TAG_ESP32C6, "Setting lIntBH1750 (EP:%d) attribute failed!", BMX280_SENSOR_ENDPOINT);
485 | } else {
486 | reportAttribute(BMX280_SENSOR_ENDPOINT, BMX280_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &lBH1750Raw, 2);
487 | //reportAttribute(1, 1, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &lBH1750Raw, 2);
488 | }
489 | //ESP_LOGW("BH1750", "EP:%d", BMX280_SENSOR_ENDPOINT);
490 | //ESP_LOGE(TAG_ESP32C6, "3");
491 | #else
492 | //-- BH1750 (BH1750_SENSOR_ENDPOINT)
493 | //ESP_LOGE(TAG_ESP32C6, "1");
494 | esp_zb_zcl_status_t state_illum = esp_zb_zcl_set_attribute_val(BH1750_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &lBH1750Raw, false);
495 | //ESP_LOGE(TAG_ESP32C6, "2");
496 | if(state_illum != ESP_ZB_ZCL_STATUS_SUCCESS) {
497 | ESP_LOGE(TAG_ESP32C6, "Setting lIntBH1750 (EP:%d) attribute failed!", BH1750_SENSOR_ENDPOINT);
498 | } else {
499 | reportAttribute(BH1750_SENSOR_ENDPOINT, 1, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &lBH1750Raw, 2);
500 | //reportAttribute(BH1750_SENSOR_ENDPOINT, BH1750_SENSOR_ENDPOINT, ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &lBH1750Raw, 2);
501 | }
502 | //ESP_LOGE(TAG_ESP32C6, "3");
503 | //ESP_LOGW("BH1750", "EP:%d", BH1750_SENSOR_ENDPOINT);
504 | #endif
505 | //ESP_LOGE(TAG_ESP32C6, "4");
506 | #endif
507 |
508 | do_blink();
509 |
510 | } else {
511 | ESP_LOGE("UPD_ATTR", "NOT CONNECTED!");
512 | }
513 |
514 | vTaskDelay(UPDATE_ATTR_INTERVAL * 1000 / portTICK_PERIOD_MS);
515 | /*
516 | if(updateAttributeStarted) {
517 | vTaskDelay(UPDATE_ATTR_INTERVAL * 1000 / portTICK_PERIOD_MS);
518 | } else {
519 | vTaskDelay(5000 / portTICK_PERIOD_MS);
520 |
521 | }
522 | */
523 | //-- first use of this function
524 | updateAttributeStarted = true;
525 | }
526 | }
527 |
528 | static esp_err_t zb_attribute_handler(const esp_zb_zcl_set_attr_value_message_t *message)
529 | {
530 | esp_err_t ret = ESP_OK;
531 | ESP_RETURN_ON_FALSE(message, ESP_FAIL, TAG_ESP32C6, "Empty message");
532 | ESP_RETURN_ON_FALSE(message->info.status == ESP_ZB_ZCL_STATUS_SUCCESS, ESP_ERR_INVALID_ARG, TAG_ESP32C6, "Received message: error status(%d)",
533 | message->info.status);
534 | ESP_LOGI(TAG_ESP32C6, "Received message: endpoint(%d), cluster(0x%x), attribute(0x%x), data size(%d)", message->info.dst_endpoint, message->info.cluster,
535 | message->attribute.id, message->attribute.data.size);
536 | if(message->info.dst_endpoint == BMX280_SENSOR_ENDPOINT) {
537 | switch (message->info.cluster) {
538 | case ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY:
539 | ESP_LOGI(TAG_ESP32C6, "Identify pressed");
540 | break;
541 | default:
542 | ESP_LOGI(TAG_ESP32C6, "Message data: cluster(0x%x), attribute(0x%x) ", message->info.cluster, message->attribute.id);
543 | }
544 | }
545 | return ret;
546 | }
547 |
548 | static esp_err_t zb_read_attr_resp_handler(const esp_zb_zcl_cmd_read_attr_resp_message_t *message)
549 | {
550 | ESP_RETURN_ON_FALSE(message, ESP_FAIL, TAG_ESP32C6, "Empty message");
551 | ESP_RETURN_ON_FALSE(message->info.status == ESP_ZB_ZCL_STATUS_SUCCESS, ESP_ERR_INVALID_ARG, TAG_ESP32C6, "Received message: error status(%d)",
552 | message->info.status);
553 | ESP_LOGI(TAG_ESP32C6, "Read attribute response: status(%d), cluster(0x%x), attribute(0x%x), type(0x%x), value(%d)", message->info.status,
554 | message->info.cluster, message->attribute.id, message->attribute.data.type,
555 | message->attribute.data.value ? *(uint8_t *)message->attribute.data.value : 0);
556 | if(message->info.dst_endpoint == BMX280_SENSOR_ENDPOINT) {
557 | switch (message->info.cluster) {
558 | case ESP_ZB_ZCL_CLUSTER_ID_TIME:
559 | ESP_LOGI(TAG_ESP32C6, "Server time recieved %lu", *(uint32_t*) message->attribute.data.value);
560 | struct timeval tv;
561 | //-- after adding OTA cluster time shifted to 1080 sec... strange issue ...
562 | tv.tv_sec = *(uint32_t*) message->attribute.data.value + 946684800 - 1080;
563 | //tv.tv_sec = *(uint32_t*) message->attribute.data.value + 946684800;
564 | settimeofday(&tv, NULL);
565 | time_updated = true;
566 | break;
567 | default:
568 | ESP_LOGI(TAG_ESP32C6, "Message data: cluster(0x%x), attribute(0x%x) ", message->info.cluster, message->attribute.id);
569 | }
570 | }
571 | return ESP_OK;
572 | }
573 |
574 | static esp_err_t zb_action_handler(esp_zb_core_action_callback_id_t callback_id, const void *message)
575 | {
576 | esp_err_t ret = ESP_OK;
577 | switch (callback_id) {
578 | case ESP_ZB_CORE_SET_ATTR_VALUE_CB_ID:
579 | ret = zb_attribute_handler((esp_zb_zcl_set_attr_value_message_t *)message);
580 | break;
581 | case ESP_ZB_CORE_CMD_READ_ATTR_RESP_CB_ID:
582 | ret = zb_read_attr_resp_handler((esp_zb_zcl_cmd_read_attr_resp_message_t *)message);
583 | break;
584 | default:
585 | ESP_LOGW(TAG_ESP32C6, "Receive Zigbee action(0x%x) callback", callback_id);
586 | break;
587 | }
588 | return ret;
589 | }
590 |
591 | void read_server_time()
592 | {
593 | esp_zb_zcl_read_attr_cmd_t read_req;
594 | read_req.address_mode = ESP_ZB_APS_ADDR_MODE_16_ENDP_PRESENT;
595 | read_req.attributeID = ESP_ZB_ZCL_ATTR_TIME_LOCAL_TIME_ID;
596 | read_req.clusterID = ESP_ZB_ZCL_CLUSTER_ID_TIME;
597 | read_req.zcl_basic_cmd.dst_endpoint = 1;
598 | read_req.zcl_basic_cmd.src_endpoint = 1;
599 | read_req.zcl_basic_cmd.dst_addr_u.addr_short = 0x0000;
600 | esp_zb_zcl_read_attr_cmd_req(&read_req);
601 | }
602 |
603 | void esp_zb_app_signal_handler(esp_zb_app_signal_t *signal_struct)
604 | {
605 | uint32_t *p_sg_p = signal_struct->p_app_signal;
606 | esp_err_t err_status = signal_struct->esp_err_status;
607 | esp_zb_app_signal_type_t sig_type = *p_sg_p;
608 | esp_zb_zdo_signal_leave_params_t *leave_params = NULL;
609 | switch (sig_type) {
610 | case ESP_ZB_BDB_SIGNAL_DEVICE_FIRST_START:
611 | case ESP_ZB_BDB_SIGNAL_DEVICE_REBOOT:
612 | case ESP_ZB_BDB_SIGNAL_STEERING:
613 | if(err_status != ESP_OK) {
614 | connected = false;
615 | ESP_LOGW(TAG_ESP32C6, "Stack %s failure with %s status, steering",esp_zb_zdo_signal_to_string(sig_type), esp_err_to_name(err_status));
616 | esp_zb_scheduler_alarm((esp_zb_callback_t)bdb_start_top_level_commissioning_cb, ESP_ZB_BDB_MODE_NETWORK_STEERING, 1000);
617 | } else {
618 | //-- device auto start successfully and on a formed network
619 | connected = true;
620 | esp_zb_ieee_addr_t extended_pan_id;
621 | esp_zb_get_extended_pan_id(extended_pan_id);
622 | ESP_LOGI(TAG_ESP32C6, "Joined network successfully (Extended PAN ID: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x, PAN ID: 0x%04hx, Channel:%d)",
623 | extended_pan_id[7], extended_pan_id[6], extended_pan_id[5], extended_pan_id[4],
624 | extended_pan_id[3], extended_pan_id[2], extended_pan_id[1], extended_pan_id[0],
625 | esp_zb_get_pan_id(), esp_zb_get_current_channel());
626 | read_server_time();
627 | }
628 | break;
629 | case ESP_ZB_ZDO_SIGNAL_LEAVE:
630 | leave_params = (esp_zb_zdo_signal_leave_params_t *)esp_zb_app_signal_get_params(p_sg_p);
631 | if(leave_params->leave_type == ESP_ZB_NWK_LEAVE_TYPE_RESET) {
632 | ESP_LOGI(TAG_ESP32C6, "Reset device");
633 | esp_zb_factory_reset();
634 | }
635 | break;
636 | default:
637 | ESP_LOGI(TAG_ESP32C6, "ZDO signal: %s (0x%x), status: %s", esp_zb_zdo_signal_to_string(sig_type), sig_type,
638 | esp_err_to_name(err_status));
639 | break;
640 | }
641 | }
642 |
643 | static void set_zcl_string(char *buffer, char *value)
644 | {
645 | buffer[0] = (char) strlen(value);
646 | memcpy(buffer + 1, value, buffer[0]);
647 | }
648 |
649 | void add_bx280_clusters(esp_zb_cluster_list_t *esp_zb_cluster_list)
650 | {
651 | //-- Temperature cluster
652 | esp_zb_attribute_list_t *esp_zb_temperature_meas_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT);
653 | esp_zb_temperature_meas_cluster_add_attr(esp_zb_temperature_meas_cluster, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &undefined_value);
654 | esp_zb_temperature_meas_cluster_add_attr(esp_zb_temperature_meas_cluster, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MIN_VALUE_ID, &undefined_value);
655 | esp_zb_temperature_meas_cluster_add_attr(esp_zb_temperature_meas_cluster, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MAX_VALUE_ID, &undefined_value);
656 |
657 | //-- Humidity cluster
658 | esp_zb_attribute_list_t *esp_zb_humidity_meas_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_REL_HUMIDITY_MEASUREMENT);
659 | esp_zb_humidity_meas_cluster_add_attr(esp_zb_humidity_meas_cluster, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_VALUE_ID, &undefined_value);
660 | esp_zb_humidity_meas_cluster_add_attr(esp_zb_humidity_meas_cluster, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MIN_VALUE_ID, &undefined_value);
661 | esp_zb_humidity_meas_cluster_add_attr(esp_zb_humidity_meas_cluster, ESP_ZB_ZCL_ATTR_REL_HUMIDITY_MEASUREMENT_MAX_VALUE_ID, &undefined_value);
662 |
663 | //-- Pressure cluster
664 | esp_zb_attribute_list_t *esp_zb_press_meas_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_PRESSURE_MEASUREMENT);
665 | esp_zb_pressure_meas_cluster_add_attr(esp_zb_press_meas_cluster, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_VALUE_ID, &undefined_value);
666 | esp_zb_pressure_meas_cluster_add_attr(esp_zb_press_meas_cluster, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MIN_VALUE_ID, &undefined_value);
667 | esp_zb_pressure_meas_cluster_add_attr(esp_zb_press_meas_cluster, ESP_ZB_ZCL_ATTR_PRESSURE_MEASUREMENT_MAX_VALUE_ID, &undefined_value);
668 |
669 | #if USE_BH1750_SENSOR && !USE_BH1750_CUSTOM_ENDPOINT
670 | //-- BH1750 (BMX280_SENSOR_ENDPOINT): Create attributes list for BH1750
671 | esp_zb_attribute_list_t *bh1750_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT);
672 | esp_zb_illuminance_meas_cluster_add_attr(bh1750_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &undefined_value);
673 | esp_zb_illuminance_meas_cluster_add_attr(bh1750_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID, &undefined_value);
674 | esp_zb_illuminance_meas_cluster_add_attr(bh1750_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID, &undefined_value);
675 | #endif
676 |
677 | esp_zb_cluster_list_add_temperature_meas_cluster(esp_zb_cluster_list, esp_zb_temperature_meas_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
678 | esp_zb_cluster_list_add_humidity_meas_cluster(esp_zb_cluster_list, esp_zb_humidity_meas_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
679 | esp_zb_cluster_list_add_pressure_meas_cluster(esp_zb_cluster_list, esp_zb_press_meas_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
680 | #if USE_BH1750_SENSOR && !USE_BH1750_CUSTOM_ENDPOINT
681 | //-- BH1750 (BMX280_SENSOR_ENDPOINT): Add cluster list for BH1750
682 | esp_zb_cluster_list_add_illuminance_meas_cluster(esp_zb_cluster_list, bh1750_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
683 | #endif
684 | }
685 |
686 | void add_ds18d20_temperature_cluster(int i, esp_zb_ep_list_t *esp_zb_ep_list)
687 | {
688 | //-- Create attributes list for DS18B20
689 | esp_zb_attribute_list_t *ds18b20_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_TEMP_MEASUREMENT);
690 | esp_zb_temperature_meas_cluster_add_attr(ds18b20_cluster, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_VALUE_ID, &undefined_value);
691 | esp_zb_temperature_meas_cluster_add_attr(ds18b20_cluster, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MIN_VALUE_ID, &undefined_value);
692 | esp_zb_temperature_meas_cluster_add_attr(ds18b20_cluster, ESP_ZB_ZCL_ATTR_TEMP_MEASUREMENT_MAX_VALUE_ID, &undefined_value);
693 | //ESP_LOGE(TAG_ESP32C6, "ds18b20_cluster[%d]", i);
694 |
695 | //-- Create cluster list for DS18B20
696 | uint8_t DS18B20_SENSOR_ENDPOINT = BMX280_SENSOR_ENDPOINT + i + 1;
697 | //ESP_LOGE(TAG_ESP32C6, "DS18B20_SENSOR_ENDPOINT[%d] = %d", i, DS18B20_SENSOR_ENDPOINT);
698 | esp_zb_cluster_list_t *ds18b20_cluster_list = esp_zb_zcl_cluster_list_create();
699 | esp_zb_cluster_list_add_temperature_meas_cluster(ds18b20_cluster_list, ds18b20_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
700 | esp_zb_ep_list_add_ep(esp_zb_ep_list, ds18b20_cluster_list, DS18B20_SENSOR_ENDPOINT, ESP_ZB_AF_HA_PROFILE_ID, ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID);
701 | }
702 |
703 | //-- add custom BH1750_SENSOR_ENDPOINT
704 | #if USE_BH1750_SENSOR && USE_BH1750_CUSTOM_ENDPOINT
705 | void add_bh1750_illuminance_cluster(esp_zb_ep_list_t *esp_zb_ep_list)
706 | {
707 | //-- Create attributes list for BH1750
708 | esp_zb_attribute_list_t *bh1750_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_ILLUMINANCE_MEASUREMENT);
709 | esp_zb_illuminance_meas_cluster_add_attr(bh1750_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MEASURED_VALUE_ID, &undefined_value);
710 | esp_zb_illuminance_meas_cluster_add_attr(bh1750_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MIN_MEASURED_VALUE_ID, &undefined_value);
711 | esp_zb_illuminance_meas_cluster_add_attr(bh1750_cluster, ESP_ZB_ZCL_ATTR_ILLUMINANCE_MEASUREMENT_MAX_MEASURED_VALUE_ID, &undefined_value);
712 | //ESP_LOGE(TAG_ESP32C6, "bh1750_cluster[%d]", BH1750_SENSOR_ENDPOINT);
713 |
714 | //-- Create cluster list for BH1750
715 | esp_zb_cluster_list_t *bh1750_cluster_list = esp_zb_zcl_cluster_list_create();
716 | esp_zb_cluster_list_add_illuminance_meas_cluster(bh1750_cluster_list, bh1750_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
717 | esp_zb_ep_list_add_ep(esp_zb_ep_list, bh1750_cluster_list, BH1750_SENSOR_ENDPOINT, ESP_ZB_AF_HA_PROFILE_ID, ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID);
718 | }
719 | #endif
720 |
721 | static void esp_zb_task(void *pvParameters)
722 | {
723 | //-- initialize Zigbee stack
724 | esp_zb_cfg_t zb_nwk_cfg = ESP_ZB_ZR_CONFIG();
725 | esp_zb_init(&zb_nwk_cfg);
726 |
727 | //-- basic cluster create with fully customized
728 | set_zcl_string(manufacturer, MANUFACTURER_NAME);
729 | set_zcl_string(model, MODEL_NAME);
730 | set_zcl_string(firmware_version, FIRMWARE_VERSION);
731 |
732 | esp_zb_attribute_list_t *esp_zb_basic_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_BASIC);
733 | esp_zb_basic_cluster_add_attr(esp_zb_basic_cluster, ESP_ZB_ZCL_ATTR_BASIC_MANUFACTURER_NAME_ID, manufacturer);
734 | esp_zb_basic_cluster_add_attr(esp_zb_basic_cluster, ESP_ZB_ZCL_ATTR_BASIC_MODEL_IDENTIFIER_ID, model);
735 | esp_zb_basic_cluster_add_attr(esp_zb_basic_cluster, ESP_ZB_ZCL_ATTR_BASIC_SW_BUILD_ID, firmware_version);
736 |
737 | //-- identify cluster create with fully customized
738 | uint8_t identyfi_id;
739 | identyfi_id = 0;
740 | esp_zb_attribute_list_t *esp_zb_identify_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_IDENTIFY);
741 | esp_zb_identify_cluster_add_attr(esp_zb_identify_cluster, ESP_ZB_ZCL_CMD_IDENTIFY_IDENTIFY_ID, &identyfi_id);
742 |
743 | //-- Time cluster
744 | esp_zb_attribute_list_t *esp_zb_server_time_cluster = esp_zb_zcl_attr_list_create(ESP_ZB_ZCL_CLUSTER_ID_TIME);
745 |
746 | /** Create ota client cluster with attributes.
747 | * Manufacturer code, image type and file version should match with configured values for server.
748 | * If the client values do not match with configured values then it shall discard the command and
749 | * no further processing shall continue.
750 | */
751 | esp_zb_ota_cluster_cfg_t ota_cluster_cfg = {
752 | .ota_upgrade_downloaded_file_ver = OTA_UPGRADE_FILE_VERSION,
753 | .ota_upgrade_manufacturer = OTA_UPGRADE_MANUFACTURER,
754 | .ota_upgrade_image_type = OTA_UPGRADE_IMAGE_TYPE,
755 | };
756 | esp_zb_attribute_list_t *esp_zb_ota_client_cluster = esp_zb_ota_cluster_create(&ota_cluster_cfg);
757 | //-- add client parameters to ota client cluster
758 | esp_zb_ota_upgrade_client_parameter_t ota_client_parameter_config = {
759 | //-- time interval for query next image request command
760 | .query_timer = ESP_ZB_ZCL_OTA_UPGRADE_QUERY_TIMER_COUNT_DEF,
761 | //-- version of hardware
762 | .hardware_version = OTA_UPGRADE_HW_VERSION,
763 | //-- maximum data size of query block image
764 | .max_data_size = OTA_UPGRADE_MAX_DATA_SIZE,
765 | };
766 | void *ota_client_parameters = esp_zb_ota_client_parameter(&ota_client_parameter_config);
767 | esp_zb_ota_cluster_add_attr(esp_zb_ota_client_cluster, ESP_ZB_ZCL_ATTR_OTA_UPGRADE_CLIENT_PARAMETER_ID, ota_client_parameters);
768 |
769 | //-- Create full cluster list enabled on device
770 | esp_zb_cluster_list_t *esp_zb_cluster_list = esp_zb_zcl_cluster_list_create();
771 | esp_zb_cluster_list_add_basic_cluster(esp_zb_cluster_list, esp_zb_basic_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
772 | esp_zb_cluster_list_add_identify_cluster(esp_zb_cluster_list, esp_zb_identify_cluster, ESP_ZB_ZCL_CLUSTER_SERVER_ROLE);
773 | add_bx280_clusters(esp_zb_cluster_list);
774 | esp_zb_cluster_list_add_time_cluster(esp_zb_cluster_list, esp_zb_server_time_cluster, ESP_ZB_ZCL_CLUSTER_CLIENT_ROLE);
775 | esp_zb_cluster_list_add_ota_cluster(esp_zb_cluster_list, esp_zb_ota_client_cluster, ESP_ZB_ZCL_CLUSTER_CLIENT_ROLE);
776 |
777 | esp_zb_ep_list_t *esp_zb_ep_list = esp_zb_ep_list_create();
778 | esp_zb_ep_list_add_ep(esp_zb_ep_list, esp_zb_cluster_list, BMX280_SENSOR_ENDPOINT, ESP_ZB_AF_HA_PROFILE_ID, ESP_ZB_HA_SIMPLE_SENSOR_DEVICE_ID);
779 |
780 | //-- Temperature DS18B20 cluster
781 | for(int i = 0; i < ONEWIRE_MAX_DS18B20; i ++) {
782 | add_ds18d20_temperature_cluster(i, esp_zb_ep_list);
783 | }
784 |
785 | #if USE_BH1750_SENSOR && USE_BH1750_CUSTOM_ENDPOINT
786 | //-- BH1750: create custom BH1750_SENSOR_ENDPOINT & add iluminance cluster
787 | add_bh1750_illuminance_cluster(esp_zb_ep_list);
788 | #endif
789 |
790 | //-- END
791 | esp_zb_device_register(esp_zb_ep_list);
792 | esp_zb_core_action_handler_register(zb_action_handler);
793 | esp_zb_set_primary_network_channel_set(ESP_ZB_PRIMARY_CHANNEL_MASK);
794 | ESP_ERROR_CHECK(esp_zb_start(true));
795 |
796 | esp_zb_main_loop_iteration();
797 |
798 |
799 | //vTaskDelay(10000 / portTICK_PERIOD_MS);
800 | }
801 |
802 | void app_main(void)
803 | {
804 | register_button();
805 | ESP_ERROR_CHECK(i2c_master_init());
806 |
807 | configure_led();
808 |
809 | esp_zb_platform_config_t config = {
810 | .radio_config = ESP_ZB_DEFAULT_RADIO_CONFIG(),
811 | .host_config = ESP_ZB_DEFAULT_HOST_CONFIG(),
812 | };
813 | ESP_ERROR_CHECK(nvs_flash_init());
814 | ESP_ERROR_CHECK(esp_zb_platform_config(&config));
815 |
816 | xTaskCreate(lcd_task, "lcd_task", 4096, NULL, 1, NULL);
817 | xTaskCreate(bmx280_task, "bmx280_task", 4096, NULL, 2, NULL);
818 | xTaskCreate(ds18b20_init_task, "ds18b20_init_task", 4096, NULL, 3, NULL);
819 | xTaskCreate(ds18b20_task, "ds18b20_task", 4096, NULL, 4, NULL);
820 | #if USE_BH1750_SENSOR
821 | xTaskCreate(bh1750_task, "bh1750_task", 4096, NULL, 5, NULL);
822 | #endif
823 |
824 | xTaskCreate(esp_zb_task, "Zigbee_main", 4096, NULL, 6, NULL);
825 | xTaskCreate(update_attribute, "Update_attribute_value", 4096, NULL, 7, NULL);
826 | }
827 |
--------------------------------------------------------------------------------
/sdkconfig:
--------------------------------------------------------------------------------
1 | #
2 | # Automatically generated file. DO NOT EDIT.
3 | # Espressif IoT Development Framework (ESP-IDF) 5.1.2 Project Configuration
4 | #
5 | CONFIG_SOC_ADC_SUPPORTED=y
6 | CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y
7 | CONFIG_SOC_UART_SUPPORTED=y
8 | CONFIG_SOC_GDMA_SUPPORTED=y
9 | CONFIG_SOC_GPTIMER_SUPPORTED=y
10 | CONFIG_SOC_PCNT_SUPPORTED=y
11 | CONFIG_SOC_MCPWM_SUPPORTED=y
12 | CONFIG_SOC_TWAI_SUPPORTED=y
13 | CONFIG_SOC_ETM_SUPPORTED=y
14 | CONFIG_SOC_PARLIO_SUPPORTED=y
15 | CONFIG_SOC_BT_SUPPORTED=y
16 | CONFIG_SOC_IEEE802154_SUPPORTED=y
17 | CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y
18 | CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y
19 | CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y
20 | CONFIG_SOC_WIFI_SUPPORTED=y
21 | CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y
22 | CONFIG_SOC_ULP_SUPPORTED=y
23 | CONFIG_SOC_LP_CORE_SUPPORTED=y
24 | CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y
25 | CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y
26 | CONFIG_SOC_RTC_MEM_SUPPORTED=y
27 | CONFIG_SOC_I2S_SUPPORTED=y
28 | CONFIG_SOC_RMT_SUPPORTED=y
29 | CONFIG_SOC_SDM_SUPPORTED=y
30 | CONFIG_SOC_GPSPI_SUPPORTED=y
31 | CONFIG_SOC_LEDC_SUPPORTED=y
32 | CONFIG_SOC_I2C_SUPPORTED=y
33 | CONFIG_SOC_SYSTIMER_SUPPORTED=y
34 | CONFIG_SOC_SUPPORT_COEXISTENCE=y
35 | CONFIG_SOC_AES_SUPPORTED=y
36 | CONFIG_SOC_MPI_SUPPORTED=y
37 | CONFIG_SOC_SHA_SUPPORTED=y
38 | CONFIG_SOC_HMAC_SUPPORTED=y
39 | CONFIG_SOC_DIG_SIGN_SUPPORTED=y
40 | CONFIG_SOC_ECC_SUPPORTED=y
41 | CONFIG_SOC_FLASH_ENC_SUPPORTED=y
42 | CONFIG_SOC_SECURE_BOOT_SUPPORTED=y
43 | CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y
44 | CONFIG_SOC_BOD_SUPPORTED=y
45 | CONFIG_SOC_APM_SUPPORTED=y
46 | CONFIG_SOC_PMU_SUPPORTED=y
47 | CONFIG_SOC_PAU_SUPPORTED=y
48 | CONFIG_SOC_LP_TIMER_SUPPORTED=y
49 | CONFIG_SOC_LP_AON_SUPPORTED=y
50 | CONFIG_SOC_LP_I2C_SUPPORTED=y
51 | CONFIG_SOC_XTAL_SUPPORT_40M=y
52 | CONFIG_SOC_AES_SUPPORT_DMA=y
53 | CONFIG_SOC_AES_GDMA=y
54 | CONFIG_SOC_AES_SUPPORT_AES_128=y
55 | CONFIG_SOC_AES_SUPPORT_AES_256=y
56 | CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y
57 | CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y
58 | CONFIG_SOC_ADC_MONITOR_SUPPORTED=y
59 | CONFIG_SOC_ADC_DMA_SUPPORTED=y
60 | CONFIG_SOC_ADC_PERIPH_NUM=1
61 | CONFIG_SOC_ADC_MAX_CHANNEL_NUM=7
62 | CONFIG_SOC_ADC_ATTEN_NUM=4
63 | CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=1
64 | CONFIG_SOC_ADC_PATT_LEN_MAX=8
65 | CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12
66 | CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12
67 | CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2
68 | CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2
69 | CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4
70 | CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4
71 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333
72 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611
73 | CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12
74 | CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12
75 | CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y
76 | CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y
77 | CONFIG_SOC_ADC_CALIB_CHAN_COMPENS_SUPPORTED=y
78 | CONFIG_SOC_ADC_TEMPERATURE_SHARE_INTR=y
79 | CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y
80 | CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y
81 | CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y
82 | CONFIG_SOC_CPU_CORES_NUM=1
83 | CONFIG_SOC_CPU_INTR_NUM=32
84 | CONFIG_SOC_CPU_HAS_FLEXIBLE_INTC=y
85 | CONFIG_SOC_INT_PLIC_SUPPORTED=y
86 | CONFIG_SOC_CPU_BREAKPOINTS_NUM=4
87 | CONFIG_SOC_CPU_WATCHPOINTS_NUM=4
88 | CONFIG_SOC_CPU_WATCHPOINT_SIZE=0x80000000
89 | CONFIG_SOC_CPU_HAS_PMA=y
90 | CONFIG_SOC_CPU_IDRAM_SPLIT_USING_PMP=y
91 | CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=3072
92 | CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16
93 | CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100
94 | CONFIG_SOC_GDMA_GROUPS=1
95 | CONFIG_SOC_GDMA_PAIRS_PER_GROUP=3
96 | CONFIG_SOC_GDMA_SUPPORT_ETM=y
97 | CONFIG_SOC_ETM_GROUPS=1
98 | CONFIG_SOC_ETM_CHANNELS_PER_GROUP=50
99 | CONFIG_SOC_GPIO_PORT=1
100 | CONFIG_SOC_GPIO_PIN_COUNT=31
101 | CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y
102 | CONFIG_SOC_GPIO_FLEX_GLITCH_FILTER_NUM=8
103 | CONFIG_SOC_GPIO_SUPPORT_ETM=y
104 | CONFIG_SOC_GPIO_ETM_EVENTS_PER_GROUP=8
105 | CONFIG_SOC_GPIO_ETM_TASKS_PER_GROUP=8
106 | CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y
107 | CONFIG_SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP=y
108 | CONFIG_SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK=0
109 | CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x000000007FFFFF00
110 | CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y
111 | CONFIG_SOC_GPIO_SUPPORT_HOLD_SINGLE_IO_IN_DSLP=y
112 | CONFIG_SOC_RTCIO_PIN_COUNT=8
113 | CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y
114 | CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y
115 | CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y
116 | CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8
117 | CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8
118 | CONFIG_SOC_DEDIC_PERIPH_ALWAYS_ENABLE=y
119 | CONFIG_SOC_I2C_NUM=1
120 | CONFIG_SOC_I2C_FIFO_LEN=32
121 | CONFIG_SOC_I2C_CMD_REG_NUM=8
122 | CONFIG_SOC_I2C_SUPPORT_SLAVE=y
123 | CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y
124 | CONFIG_SOC_I2C_SUPPORT_XTAL=y
125 | CONFIG_SOC_I2C_SUPPORT_RTC=y
126 | CONFIG_SOC_LP_I2C_NUM=1
127 | CONFIG_SOC_LP_I2C_FIFO_LEN=16
128 | CONFIG_SOC_I2S_NUM=1
129 | CONFIG_SOC_I2S_HW_VERSION_2=y
130 | CONFIG_SOC_I2S_SUPPORTS_XTAL=y
131 | CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y
132 | CONFIG_SOC_I2S_SUPPORTS_PCM=y
133 | CONFIG_SOC_I2S_SUPPORTS_PDM=y
134 | CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y
135 | CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2
136 | CONFIG_SOC_I2S_SUPPORTS_TDM=y
137 | CONFIG_SOC_LEDC_SUPPORT_PLL_DIV_CLOCK=y
138 | CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y
139 | CONFIG_SOC_LEDC_CHANNEL_NUM=6
140 | CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20
141 | CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y
142 | CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_SUPPORTED=y
143 | CONFIG_SOC_LEDC_GAMMA_CURVE_FADE_RANGE_MAX=16
144 | CONFIG_SOC_LEDC_FADE_PARAMS_BIT_WIDTH=10
145 | CONFIG_SOC_MMU_PAGE_SIZE_CONFIGURABLE=y
146 | CONFIG_SOC_MMU_PERIPH_NUM=1
147 | CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1
148 | CONFIG_SOC_MMU_DI_VADDR_SHARED=y
149 | CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000
150 | CONFIG_SOC_MPU_REGIONS_MAX_NUM=8
151 | CONFIG_SOC_PCNT_GROUPS=1
152 | CONFIG_SOC_PCNT_UNITS_PER_GROUP=4
153 | CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2
154 | CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2
155 | CONFIG_SOC_PCNT_SUPPORT_RUNTIME_THRES_UPDATE=y
156 | CONFIG_SOC_RMT_GROUPS=1
157 | CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=2
158 | CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=2
159 | CONFIG_SOC_RMT_CHANNELS_PER_GROUP=4
160 | CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48
161 | CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y
162 | CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y
163 | CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y
164 | CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y
165 | CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y
166 | CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y
167 | CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y
168 | CONFIG_SOC_RMT_SUPPORT_XTAL=y
169 | CONFIG_SOC_RMT_SUPPORT_RC_FAST=y
170 | CONFIG_SOC_MCPWM_GROUPS=1
171 | CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3
172 | CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3
173 | CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2
174 | CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2
175 | CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2
176 | CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3
177 | CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y
178 | CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3
179 | CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3
180 | CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y
181 | CONFIG_SOC_MCPWM_SUPPORT_ETM=y
182 | CONFIG_SOC_MCPWM_CAPTURE_CLK_FROM_GROUP=y
183 | CONFIG_SOC_PARLIO_GROUPS=1
184 | CONFIG_SOC_PARLIO_TX_UNITS_PER_GROUP=1
185 | CONFIG_SOC_PARLIO_RX_UNITS_PER_GROUP=1
186 | CONFIG_SOC_PARLIO_TX_UNIT_MAX_DATA_WIDTH=16
187 | CONFIG_SOC_PARLIO_RX_UNIT_MAX_DATA_WIDTH=16
188 | CONFIG_SOC_PARLIO_TX_RX_SHARE_INTERRUPT=y
189 | CONFIG_SOC_RSA_MAX_BIT_LEN=3072
190 | CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968
191 | CONFIG_SOC_SHA_SUPPORT_DMA=y
192 | CONFIG_SOC_SHA_SUPPORT_RESUME=y
193 | CONFIG_SOC_SHA_GDMA=y
194 | CONFIG_SOC_SHA_SUPPORT_SHA1=y
195 | CONFIG_SOC_SHA_SUPPORT_SHA224=y
196 | CONFIG_SOC_SHA_SUPPORT_SHA256=y
197 | CONFIG_SOC_SDM_GROUPS=1
198 | CONFIG_SOC_SDM_CHANNELS_PER_GROUP=4
199 | CONFIG_SOC_SDM_CLK_SUPPORT_PLL_F80M=y
200 | CONFIG_SOC_SDM_CLK_SUPPORT_XTAL=y
201 | CONFIG_SOC_SPI_PERIPH_NUM=2
202 | CONFIG_SOC_SPI_MAX_CS_NUM=6
203 | CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64
204 | CONFIG_SOC_SPI_SUPPORT_DDRCLK=y
205 | CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y
206 | CONFIG_SOC_SPI_SUPPORT_CD_SIG=y
207 | CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y
208 | CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y
209 | CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y
210 | CONFIG_SOC_SPI_SUPPORT_CLK_PLL_F80M=y
211 | CONFIG_SOC_SPI_SUPPORT_CLK_RC_FAST=y
212 | CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y
213 | CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16
214 | CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y
215 | CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y
216 | CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y
217 | CONFIG_SOC_SPI_MEM_SUPPORT_IDLE_INTR=y
218 | CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y
219 | CONFIG_SOC_SPI_MEM_SUPPORT_CHECK_SUS=y
220 | CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y
221 | CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y
222 | CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y
223 | CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y
224 | CONFIG_SOC_SYSTIMER_COUNTER_NUM=2
225 | CONFIG_SOC_SYSTIMER_ALARM_NUM=3
226 | CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32
227 | CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20
228 | CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y
229 | CONFIG_SOC_SYSTIMER_SUPPORT_RC_FAST=y
230 | CONFIG_SOC_SYSTIMER_INT_LEVEL=y
231 | CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y
232 | CONFIG_SOC_SYSTIMER_SUPPORT_ETM=y
233 | CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32
234 | CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16
235 | CONFIG_SOC_TIMER_GROUPS=2
236 | CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=1
237 | CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54
238 | CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y
239 | CONFIG_SOC_TIMER_GROUP_SUPPORT_RC_FAST=y
240 | CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=2
241 | CONFIG_SOC_TIMER_SUPPORT_ETM=y
242 | CONFIG_SOC_MWDT_SUPPORT_XTAL=y
243 | CONFIG_SOC_TWAI_CONTROLLER_NUM=2
244 | CONFIG_SOC_TWAI_CLK_SUPPORT_XTAL=y
245 | CONFIG_SOC_TWAI_BRP_MIN=2
246 | CONFIG_SOC_TWAI_BRP_MAX=32768
247 | CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y
248 | CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y
249 | CONFIG_SOC_EFUSE_DIS_PAD_JTAG=y
250 | CONFIG_SOC_EFUSE_DIS_USB_JTAG=y
251 | CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y
252 | CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y
253 | CONFIG_SOC_EFUSE_DIS_ICACHE=y
254 | CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y
255 | CONFIG_SOC_SECURE_BOOT_V2_RSA=y
256 | CONFIG_SOC_SECURE_BOOT_V2_ECC=y
257 | CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3
258 | CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y
259 | CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y
260 | CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32
261 | CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y
262 | CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y
263 | CONFIG_SOC_CRYPTO_DPA_PROTECTION_SUPPORTED=y
264 | CONFIG_SOC_UART_NUM=2
265 | CONFIG_SOC_UART_FIFO_LEN=128
266 | CONFIG_SOC_UART_BITRATE_MAX=5000000
267 | CONFIG_SOC_UART_SUPPORT_PLL_F80M_CLK=y
268 | CONFIG_SOC_UART_SUPPORT_RTC_CLK=y
269 | CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y
270 | CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y
271 | CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y
272 | CONFIG_SOC_COEX_HW_PTI=y
273 | CONFIG_SOC_EXTERNAL_COEX_ADVANCE=y
274 | CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21
275 | CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12
276 | CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y
277 | CONFIG_SOC_PM_SUPPORT_BEACON_WAKEUP=y
278 | CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y
279 | CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y
280 | CONFIG_SOC_PM_SUPPORT_CPU_PD=y
281 | CONFIG_SOC_PM_SUPPORT_MODEM_PD=y
282 | CONFIG_SOC_PM_SUPPORT_XTAL32K_PD=y
283 | CONFIG_SOC_PM_SUPPORT_RC32K_PD=y
284 | CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y
285 | CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y
286 | CONFIG_SOC_PM_SUPPORT_TOP_PD=y
287 | CONFIG_SOC_PM_SUPPORT_HP_AON_PD=y
288 | CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y
289 | CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y
290 | CONFIG_SOC_PM_SUPPORT_PMU_MODEM_STATE=y
291 | CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y
292 | CONFIG_SOC_PM_CPU_RETENTION_BY_SW=y
293 | CONFIG_SOC_PM_MODEM_RETENTION_BY_REGDMA=y
294 | CONFIG_SOC_PM_RETENTION_HAS_CLOCK_BUG=y
295 | CONFIG_SOC_PM_PAU_LINK_NUM=4
296 | CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y
297 | CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT=y
298 | CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y
299 | CONFIG_SOC_CLK_OSC_SLOW_SUPPORTED=y
300 | CONFIG_SOC_CLK_RC32K_SUPPORTED=y
301 | CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y
302 | CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_XTAL=y
303 | CONFIG_SOC_TEMPERATURE_SENSOR_INTR_SUPPORT=y
304 | CONFIG_SOC_WIFI_HW_TSF=y
305 | CONFIG_SOC_WIFI_GCMP_SUPPORT=y
306 | CONFIG_SOC_WIFI_WAPI_SUPPORT=y
307 | CONFIG_SOC_WIFI_CSI_SUPPORT=y
308 | CONFIG_SOC_WIFI_MESH_SUPPORT=y
309 | CONFIG_SOC_WIFI_HE_SUPPORT=y
310 | CONFIG_SOC_BLE_SUPPORTED=y
311 | CONFIG_SOC_BLE_MESH_SUPPORTED=y
312 | CONFIG_SOC_ESP_NIMBLE_CONTROLLER=y
313 | CONFIG_SOC_BLE_50_SUPPORTED=y
314 | CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y
315 | CONFIG_SOC_BLE_POWER_CONTROL_SUPPORTED=y
316 | CONFIG_SOC_BLE_PERIODIC_ADV_ENH_SUPPORTED=y
317 | CONFIG_SOC_BLUFI_SUPPORTED=y
318 | CONFIG_SOC_BLE_MULTI_CONN_OPTIMIZATION=y
319 | CONFIG_SOC_BLE_USE_WIFI_PWR_CLK_WORKAROUND=y
320 | CONFIG_SOC_PHY_COMBO_MODULE=y
321 | CONFIG_IDF_CMAKE=y
322 | CONFIG_IDF_TARGET_ARCH_RISCV=y
323 | CONFIG_IDF_TARGET_ARCH="riscv"
324 | CONFIG_IDF_TARGET="esp32c6"
325 | CONFIG_IDF_TARGET_ESP32C6=y
326 | CONFIG_IDF_FIRMWARE_CHIP_ID=0x000D
327 |
328 | #
329 | # Build type
330 | #
331 | CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y
332 | # CONFIG_APP_BUILD_TYPE_RAM is not set
333 | CONFIG_APP_BUILD_GENERATE_BINARIES=y
334 | CONFIG_APP_BUILD_BOOTLOADER=y
335 | CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y
336 | # CONFIG_APP_REPRODUCIBLE_BUILD is not set
337 | # CONFIG_APP_NO_BLOBS is not set
338 | # end of Build type
339 |
340 | #
341 | # Bootloader config
342 | #
343 | CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0
344 | CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y
345 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set
346 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set
347 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set
348 | # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set
349 | # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set
350 | # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set
351 | CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y
352 | # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set
353 | # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set
354 | CONFIG_BOOTLOADER_LOG_LEVEL=3
355 | # CONFIG_BOOTLOADER_FACTORY_RESET is not set
356 | # CONFIG_BOOTLOADER_APP_TEST is not set
357 | CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y
358 | CONFIG_BOOTLOADER_WDT_ENABLE=y
359 | # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set
360 | CONFIG_BOOTLOADER_WDT_TIME_MS=9000
361 | # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set
362 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set
363 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set
364 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set
365 | CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0
366 | # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set
367 | CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y
368 | # end of Bootloader config
369 |
370 | #
371 | # Security features
372 | #
373 | CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y
374 | CONFIG_SECURE_BOOT_V2_ECC_SUPPORTED=y
375 | CONFIG_SECURE_BOOT_V2_PREFERRED=y
376 | # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set
377 | # CONFIG_SECURE_BOOT is not set
378 | # CONFIG_SECURE_FLASH_ENC_ENABLED is not set
379 | CONFIG_SECURE_ROM_DL_MODE_ENABLED=y
380 | # end of Security features
381 |
382 | #
383 | # Application manager
384 | #
385 | CONFIG_APP_COMPILE_TIME_DATE=y
386 | # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set
387 | # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set
388 | # CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set
389 | CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16
390 | # end of Application manager
391 |
392 | CONFIG_ESP_ROM_HAS_CRC_LE=y
393 | CONFIG_ESP_ROM_HAS_CRC_BE=y
394 | CONFIG_ESP_ROM_HAS_JPEG_DECODE=y
395 | CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y
396 | CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=3
397 | CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y
398 | CONFIG_ESP_ROM_GET_CLK_FREQ=y
399 | CONFIG_ESP_ROM_HAS_RVFPLIB=y
400 | CONFIG_ESP_ROM_HAS_HAL_WDT=y
401 | CONFIG_ESP_ROM_HAS_HAL_SYSTIMER=y
402 | CONFIG_ESP_ROM_HAS_HEAP_TLSF=y
403 | CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y
404 | CONFIG_ESP_ROM_HAS_SPI_FLASH=y
405 | CONFIG_ESP_ROM_HAS_REGI2C_BUG=y
406 | CONFIG_ESP_ROM_HAS_NEWLIB_NORMAL_FORMAT=y
407 | CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE=y
408 | CONFIG_ESP_ROM_WDT_INIT_PATCH=y
409 | CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y
410 | CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y
411 |
412 | #
413 | # Boot ROM Behavior
414 | #
415 | CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y
416 | # CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set
417 | # CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set
418 | # CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set
419 | # end of Boot ROM Behavior
420 |
421 | #
422 | # Serial flasher config
423 | #
424 | # CONFIG_ESPTOOLPY_NO_STUB is not set
425 | # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set
426 | # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set
427 | CONFIG_ESPTOOLPY_FLASHMODE_DIO=y
428 | # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set
429 | CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y
430 | CONFIG_ESPTOOLPY_FLASHMODE="dio"
431 | CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
432 | # CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set
433 | # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set
434 | CONFIG_ESPTOOLPY_FLASHFREQ_80M_DEFAULT=y
435 | CONFIG_ESPTOOLPY_FLASHFREQ="80m"
436 | # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set
437 | # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set
438 | # CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set
439 | # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set
440 | CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
441 | # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set
442 | # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set
443 | # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set
444 | CONFIG_ESPTOOLPY_FLASHSIZE="16MB"
445 | # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set
446 | CONFIG_ESPTOOLPY_BEFORE_RESET=y
447 | # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set
448 | CONFIG_ESPTOOLPY_BEFORE="default_reset"
449 | CONFIG_ESPTOOLPY_AFTER_RESET=y
450 | # CONFIG_ESPTOOLPY_AFTER_NORESET is not set
451 | CONFIG_ESPTOOLPY_AFTER="hard_reset"
452 | CONFIG_ESPTOOLPY_MONITOR_BAUD=115200
453 | # end of Serial flasher config
454 |
455 | #
456 | # Partition Table
457 | #
458 | # CONFIG_PARTITION_TABLE_SINGLE_APP is not set
459 | # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set
460 | # CONFIG_PARTITION_TABLE_TWO_OTA is not set
461 | CONFIG_PARTITION_TABLE_CUSTOM=y
462 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
463 | CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
464 | CONFIG_PARTITION_TABLE_OFFSET=0x8000
465 | CONFIG_PARTITION_TABLE_MD5=y
466 | # end of Partition Table
467 |
468 | #
469 | # Compiler options
470 | #
471 | CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
472 | # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set
473 | # CONFIG_COMPILER_OPTIMIZATION_PERF is not set
474 | # CONFIG_COMPILER_OPTIMIZATION_NONE is not set
475 | CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y
476 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set
477 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set
478 | # CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB is not set
479 | CONFIG_COMPILER_FLOAT_LIB_FROM_RVFPLIB=y
480 | CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2
481 | # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set
482 | CONFIG_COMPILER_HIDE_PATHS_MACROS=y
483 | # CONFIG_COMPILER_CXX_EXCEPTIONS is not set
484 | # CONFIG_COMPILER_CXX_RTTI is not set
485 | CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y
486 | # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set
487 | # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set
488 | # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set
489 | # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set
490 | # CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS is not set
491 | # CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set
492 | # CONFIG_COMPILER_DUMP_RTL_FILES is not set
493 | # end of Compiler options
494 |
495 | #
496 | # Component config
497 | #
498 |
499 | #
500 | # Application Level Tracing
501 | #
502 | # CONFIG_APPTRACE_DEST_JTAG is not set
503 | CONFIG_APPTRACE_DEST_NONE=y
504 | # CONFIG_APPTRACE_DEST_UART1 is not set
505 | CONFIG_APPTRACE_DEST_UART_NONE=y
506 | CONFIG_APPTRACE_UART_TASK_PRIO=1
507 | CONFIG_APPTRACE_LOCK_ENABLE=y
508 | # end of Application Level Tracing
509 |
510 | #
511 | # Bluetooth
512 | #
513 | # CONFIG_BT_ENABLED is not set
514 | # end of Bluetooth
515 |
516 | #
517 | # Driver Configurations
518 | #
519 |
520 | #
521 | # Legacy ADC Configuration
522 | #
523 | # CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set
524 |
525 | #
526 | # Legacy ADC Calibration Configuration
527 | #
528 | # CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set
529 | # end of Legacy ADC Calibration Configuration
530 | # end of Legacy ADC Configuration
531 |
532 | #
533 | # SPI Configuration
534 | #
535 | # CONFIG_SPI_MASTER_IN_IRAM is not set
536 | CONFIG_SPI_MASTER_ISR_IN_IRAM=y
537 | # CONFIG_SPI_SLAVE_IN_IRAM is not set
538 | CONFIG_SPI_SLAVE_ISR_IN_IRAM=y
539 | # end of SPI Configuration
540 |
541 | #
542 | # TWAI Configuration
543 | #
544 | # CONFIG_TWAI_ISR_IN_IRAM is not set
545 | # end of TWAI Configuration
546 |
547 | #
548 | # Temperature sensor Configuration
549 | #
550 | # CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set
551 | # CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set
552 | # CONFIG_TEMP_SENSOR_ISR_IRAM_SAFE is not set
553 | # end of Temperature sensor Configuration
554 |
555 | #
556 | # UART Configuration
557 | #
558 | # CONFIG_UART_ISR_IN_IRAM is not set
559 | # end of UART Configuration
560 |
561 | #
562 | # GPIO Configuration
563 | #
564 | # CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set
565 | # end of GPIO Configuration
566 |
567 | #
568 | # Sigma Delta Modulator Configuration
569 | #
570 | # CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set
571 | # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set
572 | # CONFIG_SDM_ENABLE_DEBUG_LOG is not set
573 | # end of Sigma Delta Modulator Configuration
574 |
575 | #
576 | # GPTimer Configuration
577 | #
578 | CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y
579 | # CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set
580 | # CONFIG_GPTIMER_ISR_IRAM_SAFE is not set
581 | # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set
582 | # CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set
583 | # end of GPTimer Configuration
584 |
585 | #
586 | # PCNT Configuration
587 | #
588 | # CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set
589 | # CONFIG_PCNT_ISR_IRAM_SAFE is not set
590 | # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set
591 | # CONFIG_PCNT_ENABLE_DEBUG_LOG is not set
592 | # end of PCNT Configuration
593 |
594 | #
595 | # RMT Configuration
596 | #
597 | # CONFIG_RMT_ISR_IRAM_SAFE is not set
598 | # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set
599 | # CONFIG_RMT_ENABLE_DEBUG_LOG is not set
600 | # end of RMT Configuration
601 |
602 | #
603 | # MCPWM Configuration
604 | #
605 | # CONFIG_MCPWM_ISR_IRAM_SAFE is not set
606 | # CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set
607 | # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set
608 | # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set
609 | # end of MCPWM Configuration
610 |
611 | #
612 | # I2S Configuration
613 | #
614 | # CONFIG_I2S_ISR_IRAM_SAFE is not set
615 | # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set
616 | # CONFIG_I2S_ENABLE_DEBUG_LOG is not set
617 | # end of I2S Configuration
618 |
619 | #
620 | # USB Serial/JTAG Configuration
621 | #
622 | # end of USB Serial/JTAG Configuration
623 |
624 | #
625 | # Parallel IO Configuration
626 | #
627 | # CONFIG_PARLIO_ENABLE_DEBUG_LOG is not set
628 | # CONFIG_PARLIO_ISR_IRAM_SAFE is not set
629 | # end of Parallel IO Configuration
630 | # end of Driver Configurations
631 |
632 | #
633 | # eFuse Bit Manager
634 | #
635 | # CONFIG_EFUSE_CUSTOM_TABLE is not set
636 | # CONFIG_EFUSE_VIRTUAL is not set
637 | CONFIG_EFUSE_MAX_BLK_LEN=256
638 | # end of eFuse Bit Manager
639 |
640 | #
641 | # ESP-TLS
642 | #
643 | CONFIG_ESP_TLS_USING_MBEDTLS=y
644 | CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y
645 | # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set
646 | # CONFIG_ESP_TLS_SERVER is not set
647 | # CONFIG_ESP_TLS_PSK_VERIFICATION is not set
648 | # CONFIG_ESP_TLS_INSECURE is not set
649 | # end of ESP-TLS
650 |
651 | #
652 | # ADC and ADC Calibration
653 | #
654 | # CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set
655 | # CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set
656 | # end of ADC and ADC Calibration
657 |
658 | #
659 | # Wireless Coexistence
660 | #
661 | CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y
662 | # CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set
663 | # end of Wireless Coexistence
664 |
665 | #
666 | # Common ESP-related
667 | #
668 | CONFIG_ESP_ERR_TO_NAME_LOOKUP=y
669 | # end of Common ESP-related
670 |
671 | #
672 | # Ethernet
673 | #
674 | CONFIG_ETH_ENABLED=y
675 | CONFIG_ETH_USE_SPI_ETHERNET=y
676 | # CONFIG_ETH_SPI_ETHERNET_DM9051 is not set
677 | # CONFIG_ETH_SPI_ETHERNET_W5500 is not set
678 | # CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set
679 | # CONFIG_ETH_USE_OPENETH is not set
680 | # CONFIG_ETH_TRANSMIT_MUTEX is not set
681 | # end of Ethernet
682 |
683 | #
684 | # Event Loop Library
685 | #
686 | # CONFIG_ESP_EVENT_LOOP_PROFILING is not set
687 | CONFIG_ESP_EVENT_POST_FROM_ISR=y
688 | CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y
689 | # end of Event Loop Library
690 |
691 | #
692 | # GDB Stub
693 | #
694 | # end of GDB Stub
695 |
696 | #
697 | # ESP HTTP client
698 | #
699 | CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y
700 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set
701 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set
702 | # end of ESP HTTP client
703 |
704 | #
705 | # HTTP Server
706 | #
707 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=512
708 | CONFIG_HTTPD_MAX_URI_LEN=512
709 | CONFIG_HTTPD_ERR_RESP_NO_DELAY=y
710 | CONFIG_HTTPD_PURGE_BUF_LEN=32
711 | # CONFIG_HTTPD_LOG_PURGE_DATA is not set
712 | # CONFIG_HTTPD_WS_SUPPORT is not set
713 | # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set
714 | # end of HTTP Server
715 |
716 | #
717 | # ESP HTTPS OTA
718 | #
719 | # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set
720 | # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set
721 | # end of ESP HTTPS OTA
722 |
723 | #
724 | # ESP HTTPS server
725 | #
726 | # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set
727 | # end of ESP HTTPS server
728 |
729 | #
730 | # Hardware Settings
731 | #
732 |
733 | #
734 | # Chip revision
735 | #
736 | CONFIG_ESP32C6_REV_MIN_0=y
737 | # CONFIG_ESP32C6_REV_MIN_1 is not set
738 | CONFIG_ESP32C6_REV_MIN_FULL=0
739 | CONFIG_ESP_REV_MIN_FULL=0
740 |
741 | #
742 | # Maximum Supported ESP32-C6 Revision (Rev v0.99)
743 | #
744 | CONFIG_ESP32C6_REV_MAX_FULL=99
745 | CONFIG_ESP_REV_MAX_FULL=99
746 | # end of Chip revision
747 |
748 | #
749 | # MAC Config
750 | #
751 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y
752 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y
753 | CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y
754 | CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y
755 | CONFIG_ESP_MAC_ADDR_UNIVERSE_IEEE802154=y
756 | CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y
757 | # CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_TWO is not set
758 | CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES_FOUR=y
759 | CONFIG_ESP32C6_UNIVERSAL_MAC_ADDRESSES=4
760 | # end of MAC Config
761 |
762 | #
763 | # Sleep Config
764 | #
765 | # CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set
766 | CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y
767 | # CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set
768 | CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y
769 | CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y
770 | # end of Sleep Config
771 |
772 | #
773 | # RTC Clock Config
774 | #
775 | CONFIG_RTC_CLK_SRC_INT_RC=y
776 | # CONFIG_RTC_CLK_SRC_EXT_CRYS is not set
777 | # CONFIG_RTC_CLK_SRC_EXT_OSC is not set
778 | # CONFIG_RTC_CLK_SRC_INT_RC32K is not set
779 | CONFIG_RTC_CLK_CAL_CYCLES=1024
780 | # end of RTC Clock Config
781 |
782 | #
783 | # Peripheral Control
784 | #
785 | CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y
786 | # end of Peripheral Control
787 |
788 | #
789 | # ETM Configuration
790 | #
791 | # CONFIG_ETM_ENABLE_DEBUG_LOG is not set
792 | # end of ETM Configuration
793 |
794 | #
795 | # GDMA Configuration
796 | #
797 | # CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set
798 | # CONFIG_GDMA_ISR_IRAM_SAFE is not set
799 | # end of GDMA Configuration
800 |
801 | #
802 | # Main XTAL Config
803 | #
804 | CONFIG_XTAL_FREQ_40=y
805 | CONFIG_XTAL_FREQ=40
806 | # end of Main XTAL Config
807 |
808 | #
809 | # Crypto DPA Protection
810 | #
811 | CONFIG_ESP_CRYPTO_DPA_PROTECTION_AT_STARTUP=y
812 | CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_LOW=y
813 | # CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_MEDIUM is not set
814 | # CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL_HIGH is not set
815 | CONFIG_ESP_CRYPTO_DPA_PROTECTION_LEVEL=1
816 | # end of Crypto DPA Protection
817 | # end of Hardware Settings
818 |
819 | #
820 | # LCD and Touch Panel
821 | #
822 |
823 | #
824 | # LCD Touch Drivers are maintained in the IDF Component Registry
825 | #
826 |
827 | #
828 | # LCD Peripheral Configuration
829 | #
830 | CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32
831 | # CONFIG_LCD_ENABLE_DEBUG_LOG is not set
832 | # end of LCD Peripheral Configuration
833 | # end of LCD and Touch Panel
834 |
835 | #
836 | # ESP NETIF Adapter
837 | #
838 | CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120
839 | CONFIG_ESP_NETIF_TCPIP_LWIP=y
840 | # CONFIG_ESP_NETIF_LOOPBACK is not set
841 | CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y
842 | # CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set
843 | # CONFIG_ESP_NETIF_L2_TAP is not set
844 | # CONFIG_ESP_NETIF_BRIDGE_EN is not set
845 | # end of ESP NETIF Adapter
846 |
847 | #
848 | # Partition API Configuration
849 | #
850 | # end of Partition API Configuration
851 |
852 | #
853 | # PHY
854 | #
855 | CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y
856 | # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set
857 | CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20
858 | CONFIG_ESP_PHY_MAX_TX_POWER=20
859 | # CONFIG_ESP_PHY_REDUCE_TX_POWER is not set
860 | # CONFIG_ESP_PHY_ENABLE_USB is not set
861 | CONFIG_ESP_PHY_RF_CAL_PARTIAL=y
862 | # CONFIG_ESP_PHY_RF_CAL_NONE is not set
863 | # CONFIG_ESP_PHY_RF_CAL_FULL is not set
864 | CONFIG_ESP_PHY_CALIBRATION_MODE=0
865 | # end of PHY
866 |
867 | #
868 | # Power Management
869 | #
870 | # CONFIG_PM_ENABLE is not set
871 | CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y
872 | # CONFIG_PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP is not set
873 | # end of Power Management
874 |
875 | #
876 | # ESP PSRAM
877 | #
878 |
879 | #
880 | # ESP Ringbuf
881 | #
882 | # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set
883 | # end of ESP Ringbuf
884 |
885 | #
886 | # ESP System Settings
887 | #
888 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set
889 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_120 is not set
890 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y
891 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160
892 | # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set
893 | CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y
894 | # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
895 | # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
896 | # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set
897 | CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0
898 | CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y
899 | CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y
900 | CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y
901 | # CONFIG_ESP_SYSTEM_USE_EH_FRAME is not set
902 |
903 | #
904 | # Memory protection
905 | #
906 | CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT=y
907 | # end of Memory protection
908 |
909 | CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32
910 | CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304
911 | CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584
912 | CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y
913 | # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set
914 | CONFIG_ESP_MAIN_TASK_AFFINITY=0x0
915 | CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048
916 | CONFIG_ESP_CONSOLE_UART_DEFAULT=y
917 | # CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set
918 | # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set
919 | # CONFIG_ESP_CONSOLE_NONE is not set
920 | # CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set
921 | CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y
922 | CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y
923 | CONFIG_ESP_CONSOLE_UART=y
924 | CONFIG_ESP_CONSOLE_UART_NUM=0
925 | CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
926 | CONFIG_ESP_INT_WDT=y
927 | CONFIG_ESP_INT_WDT_TIMEOUT_MS=300
928 | CONFIG_ESP_TASK_WDT_EN=y
929 | CONFIG_ESP_TASK_WDT_INIT=y
930 | # CONFIG_ESP_TASK_WDT_PANIC is not set
931 | CONFIG_ESP_TASK_WDT_TIMEOUT_S=5
932 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
933 | # CONFIG_ESP_PANIC_HANDLER_IRAM is not set
934 | # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set
935 | CONFIG_ESP_DEBUG_OCDAWARE=y
936 | CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y
937 |
938 | #
939 | # Brownout Detector
940 | #
941 | CONFIG_ESP_BROWNOUT_DET=y
942 | CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y
943 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set
944 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set
945 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set
946 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set
947 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set
948 | CONFIG_ESP_BROWNOUT_DET_LVL=7
949 | # end of Brownout Detector
950 |
951 | CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y
952 | # end of ESP System Settings
953 |
954 | #
955 | # IPC (Inter-Processor Call)
956 | #
957 | CONFIG_ESP_IPC_TASK_STACK_SIZE=1024
958 | # end of IPC (Inter-Processor Call)
959 |
960 | #
961 | # High resolution timer (esp_timer)
962 | #
963 | # CONFIG_ESP_TIMER_PROFILING is not set
964 | CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y
965 | CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y
966 | CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584
967 | CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1
968 | # CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set
969 | CONFIG_ESP_TIMER_TASK_AFFINITY=0x0
970 | CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y
971 | CONFIG_ESP_TIMER_ISR_AFFINITY=0x1
972 | CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y
973 | # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set
974 | CONFIG_ESP_TIMER_IMPL_SYSTIMER=y
975 | # end of High resolution timer (esp_timer)
976 |
977 | #
978 | # Wi-Fi
979 | #
980 | CONFIG_ESP_WIFI_ENABLED=y
981 | CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10
982 | CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32
983 | # CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set
984 | CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y
985 | CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1
986 | CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32
987 | CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y
988 | # CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set
989 | CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0
990 | CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5
991 | # CONFIG_ESP_WIFI_CSI_ENABLED is not set
992 | CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y
993 | CONFIG_ESP_WIFI_TX_BA_WIN=6
994 | CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y
995 | CONFIG_ESP_WIFI_RX_BA_WIN=6
996 | CONFIG_ESP_WIFI_NVS_ENABLED=y
997 | CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752
998 | CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32
999 | CONFIG_ESP_WIFI_IRAM_OPT=y
1000 | CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=y
1001 | CONFIG_ESP_WIFI_RX_IRAM_OPT=y
1002 | CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y
1003 | CONFIG_ESP_WIFI_ENABLE_SAE_PK=y
1004 | CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y
1005 | CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y
1006 | # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set
1007 | CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y
1008 | # CONFIG_ESP_WIFI_GCMP_SUPPORT is not set
1009 | # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set
1010 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
1011 | # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set
1012 | CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7
1013 | CONFIG_ESP_WIFI_ENABLE_WIFI_TX_STATS=y
1014 | CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y
1015 | CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y
1016 | # CONFIG_ESP_WIFI_WAPI_PSK is not set
1017 | # CONFIG_ESP_WIFI_SUITE_B_192 is not set
1018 | # CONFIG_ESP_WIFI_11KV_SUPPORT is not set
1019 | # CONFIG_ESP_WIFI_MBO_SUPPORT is not set
1020 | # CONFIG_ESP_WIFI_DPP_SUPPORT is not set
1021 | # CONFIG_ESP_WIFI_11R_SUPPORT is not set
1022 | # CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set
1023 | CONFIG_ESP_WIFI_ENABLE_WIFI_RX_STATS=y
1024 | CONFIG_ESP_WIFI_ENABLE_WIFI_RX_MU_STATS=y
1025 |
1026 | #
1027 | # WPS Configuration Options
1028 | #
1029 | # CONFIG_ESP_WIFI_WPS_STRICT is not set
1030 | # CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set
1031 | # end of WPS Configuration Options
1032 |
1033 | # CONFIG_ESP_WIFI_DEBUG_PRINT is not set
1034 | # CONFIG_ESP_WIFI_TESTING_OPTIONS is not set
1035 | CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y
1036 | # end of Wi-Fi
1037 |
1038 | #
1039 | # Core dump
1040 | #
1041 | # CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set
1042 | # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set
1043 | CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y
1044 | # end of Core dump
1045 |
1046 | #
1047 | # FAT Filesystem support
1048 | #
1049 | CONFIG_FATFS_VOLUME_COUNT=2
1050 | CONFIG_FATFS_LFN_NONE=y
1051 | # CONFIG_FATFS_LFN_HEAP is not set
1052 | # CONFIG_FATFS_LFN_STACK is not set
1053 | # CONFIG_FATFS_SECTOR_512 is not set
1054 | CONFIG_FATFS_SECTOR_4096=y
1055 | # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set
1056 | CONFIG_FATFS_CODEPAGE_437=y
1057 | # CONFIG_FATFS_CODEPAGE_720 is not set
1058 | # CONFIG_FATFS_CODEPAGE_737 is not set
1059 | # CONFIG_FATFS_CODEPAGE_771 is not set
1060 | # CONFIG_FATFS_CODEPAGE_775 is not set
1061 | # CONFIG_FATFS_CODEPAGE_850 is not set
1062 | # CONFIG_FATFS_CODEPAGE_852 is not set
1063 | # CONFIG_FATFS_CODEPAGE_855 is not set
1064 | # CONFIG_FATFS_CODEPAGE_857 is not set
1065 | # CONFIG_FATFS_CODEPAGE_860 is not set
1066 | # CONFIG_FATFS_CODEPAGE_861 is not set
1067 | # CONFIG_FATFS_CODEPAGE_862 is not set
1068 | # CONFIG_FATFS_CODEPAGE_863 is not set
1069 | # CONFIG_FATFS_CODEPAGE_864 is not set
1070 | # CONFIG_FATFS_CODEPAGE_865 is not set
1071 | # CONFIG_FATFS_CODEPAGE_866 is not set
1072 | # CONFIG_FATFS_CODEPAGE_869 is not set
1073 | # CONFIG_FATFS_CODEPAGE_932 is not set
1074 | # CONFIG_FATFS_CODEPAGE_936 is not set
1075 | # CONFIG_FATFS_CODEPAGE_949 is not set
1076 | # CONFIG_FATFS_CODEPAGE_950 is not set
1077 | CONFIG_FATFS_CODEPAGE=437
1078 | CONFIG_FATFS_FS_LOCK=0
1079 | CONFIG_FATFS_TIMEOUT_MS=10000
1080 | CONFIG_FATFS_PER_FILE_CACHE=y
1081 | # CONFIG_FATFS_USE_FASTSEEK is not set
1082 | CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0
1083 | # end of FAT Filesystem support
1084 |
1085 | #
1086 | # FreeRTOS
1087 | #
1088 |
1089 | #
1090 | # Kernel
1091 | #
1092 | # CONFIG_FREERTOS_SMP is not set
1093 | CONFIG_FREERTOS_UNICORE=y
1094 | CONFIG_FREERTOS_HZ=100
1095 | CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y
1096 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set
1097 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set
1098 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y
1099 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1
1100 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536
1101 | # CONFIG_FREERTOS_USE_IDLE_HOOK is not set
1102 | # CONFIG_FREERTOS_USE_TICK_HOOK is not set
1103 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16
1104 | # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set
1105 | CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
1106 | CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
1107 | CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
1108 | CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
1109 | CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
1110 | # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set
1111 | # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set
1112 | # end of Kernel
1113 |
1114 | #
1115 | # Port
1116 | #
1117 | CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y
1118 | # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set
1119 | CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y
1120 | # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set
1121 | CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y
1122 | CONFIG_FREERTOS_ISR_STACKSIZE=1536
1123 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y
1124 | CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y
1125 | CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y
1126 | # CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set
1127 | CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y
1128 | # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set
1129 | # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set
1130 | # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set
1131 | CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y
1132 | # end of Port
1133 |
1134 | CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF
1135 | CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y
1136 | CONFIG_FREERTOS_DEBUG_OCDAWARE=y
1137 | # end of FreeRTOS
1138 |
1139 | #
1140 | # Hardware Abstraction Layer (HAL) and Low Level (LL)
1141 | #
1142 | CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y
1143 | # CONFIG_HAL_ASSERTION_DISABLE is not set
1144 | # CONFIG_HAL_ASSERTION_SILENT is not set
1145 | # CONFIG_HAL_ASSERTION_ENABLE is not set
1146 | CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2
1147 | CONFIG_HAL_SYSTIMER_USE_ROM_IMPL=y
1148 | CONFIG_HAL_WDT_USE_ROM_IMPL=y
1149 | CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y
1150 | CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y
1151 | # end of Hardware Abstraction Layer (HAL) and Low Level (LL)
1152 |
1153 | #
1154 | # Heap memory debugging
1155 | #
1156 | CONFIG_HEAP_POISONING_DISABLED=y
1157 | # CONFIG_HEAP_POISONING_LIGHT is not set
1158 | # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set
1159 | CONFIG_HEAP_TRACING_OFF=y
1160 | # CONFIG_HEAP_TRACING_STANDALONE is not set
1161 | # CONFIG_HEAP_TRACING_TOHOST is not set
1162 | # CONFIG_HEAP_USE_HOOKS is not set
1163 | # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set
1164 | CONFIG_HEAP_TLSF_USE_ROM_IMPL=y
1165 | # end of Heap memory debugging
1166 |
1167 | #
1168 | # IEEE 802.15.4
1169 | #
1170 | CONFIG_IEEE802154_ENABLED=y
1171 | CONFIG_IEEE802154_RX_BUFFER_SIZE=20
1172 | # CONFIG_IEEE802154_CCA_CARRIER is not set
1173 | CONFIG_IEEE802154_CCA_ED=y
1174 | # CONFIG_IEEE802154_CCA_CARRIER_OR_ED is not set
1175 | # CONFIG_IEEE802154_CCA_CARRIER_AND_ED is not set
1176 | CONFIG_IEEE802154_CCA_MODE=1
1177 | CONFIG_IEEE802154_CCA_THRESHOLD=-60
1178 | CONFIG_IEEE802154_PENDING_TABLE_SIZE=20
1179 | # CONFIG_IEEE802154_MULTI_PAN_ENABLE is not set
1180 | # CONFIG_IEEE802154_TIMING_OPTIMIZATION is not set
1181 | # CONFIG_IEEE802154_DEBUG is not set
1182 | # end of IEEE 802.15.4
1183 |
1184 | #
1185 | # Log output
1186 | #
1187 | # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set
1188 | # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set
1189 | # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set
1190 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y
1191 | # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set
1192 | # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set
1193 | CONFIG_LOG_DEFAULT_LEVEL=3
1194 | CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y
1195 | # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set
1196 | # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set
1197 | CONFIG_LOG_MAXIMUM_LEVEL=3
1198 | CONFIG_LOG_COLORS=y
1199 | CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y
1200 | # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set
1201 | # end of Log output
1202 |
1203 | #
1204 | # LWIP
1205 | #
1206 | CONFIG_LWIP_LOCAL_HOSTNAME="espressif"
1207 | # CONFIG_LWIP_NETIF_API is not set
1208 | CONFIG_LWIP_TCPIP_TASK_PRIO=18
1209 | # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set
1210 | # CONFIG_LWIP_CHECK_THREAD_SAFETY is not set
1211 | CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y
1212 | # CONFIG_LWIP_L2_TO_L3_COPY is not set
1213 | # CONFIG_LWIP_IRAM_OPTIMIZATION is not set
1214 | # CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set
1215 | CONFIG_LWIP_TIMERS_ONDEMAND=y
1216 | CONFIG_LWIP_ND6=y
1217 | CONFIG_LWIP_MAX_SOCKETS=10
1218 | # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set
1219 | # CONFIG_LWIP_SO_LINGER is not set
1220 | CONFIG_LWIP_SO_REUSE=y
1221 | CONFIG_LWIP_SO_REUSE_RXTOALL=y
1222 | # CONFIG_LWIP_SO_RCVBUF is not set
1223 | # CONFIG_LWIP_NETBUF_RECVINFO is not set
1224 | CONFIG_LWIP_IP4_FRAG=y
1225 | CONFIG_LWIP_IP6_FRAG=y
1226 | # CONFIG_LWIP_IP4_REASSEMBLY is not set
1227 | # CONFIG_LWIP_IP6_REASSEMBLY is not set
1228 | CONFIG_LWIP_IP_REASS_MAX_PBUFS=10
1229 | # CONFIG_LWIP_IP_FORWARD is not set
1230 | # CONFIG_LWIP_STATS is not set
1231 | CONFIG_LWIP_ESP_GRATUITOUS_ARP=y
1232 | CONFIG_LWIP_GARP_TMR_INTERVAL=60
1233 | CONFIG_LWIP_ESP_MLDV6_REPORT=y
1234 | CONFIG_LWIP_MLDV6_TMR_INTERVAL=40
1235 | CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32
1236 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
1237 | # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set
1238 | CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y
1239 | # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set
1240 | CONFIG_LWIP_DHCP_OPTIONS_LEN=68
1241 | CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0
1242 | CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1
1243 |
1244 | #
1245 | # DHCP server
1246 | #
1247 | CONFIG_LWIP_DHCPS=y
1248 | CONFIG_LWIP_DHCPS_LEASE_UNIT=60
1249 | CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
1250 | # end of DHCP server
1251 |
1252 | # CONFIG_LWIP_AUTOIP is not set
1253 | CONFIG_LWIP_IPV4=y
1254 | CONFIG_LWIP_IPV6=y
1255 | # CONFIG_LWIP_IPV6_AUTOCONFIG is not set
1256 | CONFIG_LWIP_IPV6_NUM_ADDRESSES=3
1257 | # CONFIG_LWIP_IPV6_FORWARD is not set
1258 | # CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set
1259 | CONFIG_LWIP_NETIF_LOOPBACK=y
1260 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8
1261 |
1262 | #
1263 | # TCP
1264 | #
1265 | CONFIG_LWIP_MAX_ACTIVE_TCP=16
1266 | CONFIG_LWIP_MAX_LISTENING_TCP=16
1267 | CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y
1268 | CONFIG_LWIP_TCP_MAXRTX=12
1269 | CONFIG_LWIP_TCP_SYNMAXRTX=12
1270 | CONFIG_LWIP_TCP_MSS=1440
1271 | CONFIG_LWIP_TCP_TMR_INTERVAL=250
1272 | CONFIG_LWIP_TCP_MSL=60000
1273 | CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000
1274 | CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744
1275 | CONFIG_LWIP_TCP_WND_DEFAULT=5744
1276 | CONFIG_LWIP_TCP_RECVMBOX_SIZE=6
1277 | CONFIG_LWIP_TCP_QUEUE_OOSEQ=y
1278 | # CONFIG_LWIP_TCP_SACK_OUT is not set
1279 | CONFIG_LWIP_TCP_OVERSIZE_MSS=y
1280 | # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set
1281 | # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set
1282 | CONFIG_LWIP_TCP_RTO_TIME=1500
1283 | # end of TCP
1284 |
1285 | #
1286 | # UDP
1287 | #
1288 | CONFIG_LWIP_MAX_UDP_PCBS=16
1289 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=6
1290 | # end of UDP
1291 |
1292 | #
1293 | # Checksums
1294 | #
1295 | # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set
1296 | # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set
1297 | CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y
1298 | # end of Checksums
1299 |
1300 | CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072
1301 | CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
1302 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set
1303 | CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF
1304 | # CONFIG_LWIP_PPP_SUPPORT is not set
1305 | CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3
1306 | CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5
1307 | # CONFIG_LWIP_SLIP_SUPPORT is not set
1308 |
1309 | #
1310 | # ICMP
1311 | #
1312 | CONFIG_LWIP_ICMP=y
1313 | # CONFIG_LWIP_MULTICAST_PING is not set
1314 | # CONFIG_LWIP_BROADCAST_PING is not set
1315 | # end of ICMP
1316 |
1317 | #
1318 | # LWIP RAW API
1319 | #
1320 | CONFIG_LWIP_MAX_RAW_PCBS=16
1321 | # end of LWIP RAW API
1322 |
1323 | #
1324 | # SNTP
1325 | #
1326 | CONFIG_LWIP_SNTP_MAX_SERVERS=1
1327 | # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set
1328 | CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000
1329 | # end of SNTP
1330 |
1331 | CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7
1332 | CONFIG_LWIP_ESP_LWIP_ASSERT=y
1333 |
1334 | #
1335 | # Hooks
1336 | #
1337 | # CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set
1338 | CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y
1339 | # CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set
1340 | CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y
1341 | # CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set
1342 | # CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set
1343 | CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y
1344 | # CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set
1345 | # CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set
1346 | CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y
1347 | # CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set
1348 | # CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set
1349 | CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y
1350 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set
1351 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set
1352 | CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y
1353 | # CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set
1354 | # CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set
1355 | # end of Hooks
1356 |
1357 | # CONFIG_LWIP_DEBUG is not set
1358 | # end of LWIP
1359 |
1360 | #
1361 | # mbedTLS
1362 | #
1363 | CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y
1364 | # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set
1365 | # CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set
1366 | CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y
1367 | CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384
1368 | CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096
1369 | # CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set
1370 | # CONFIG_MBEDTLS_DEBUG is not set
1371 |
1372 | #
1373 | # mbedTLS v3.x related
1374 | #
1375 | # CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set
1376 | # CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set
1377 | # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set
1378 | # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set
1379 | CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y
1380 | CONFIG_MBEDTLS_PKCS7_C=y
1381 | # end of mbedTLS v3.x related
1382 |
1383 | #
1384 | # Certificate Bundle
1385 | #
1386 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y
1387 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y
1388 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set
1389 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set
1390 | # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set
1391 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200
1392 | # end of Certificate Bundle
1393 |
1394 | # CONFIG_MBEDTLS_ECP_RESTARTABLE is not set
1395 | CONFIG_MBEDTLS_CMAC_C=y
1396 | CONFIG_MBEDTLS_HARDWARE_AES=y
1397 | CONFIG_MBEDTLS_AES_USE_INTERRUPT=y
1398 | CONFIG_MBEDTLS_HARDWARE_MPI=y
1399 | CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y
1400 | CONFIG_MBEDTLS_HARDWARE_SHA=y
1401 | CONFIG_MBEDTLS_HARDWARE_ECC=y
1402 | CONFIG_MBEDTLS_ECC_OTHER_CURVES_SOFT_FALLBACK=y
1403 | CONFIG_MBEDTLS_ROM_MD5=y
1404 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set
1405 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set
1406 | CONFIG_MBEDTLS_HAVE_TIME=y
1407 | # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set
1408 | # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set
1409 | CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y
1410 | CONFIG_MBEDTLS_SHA512_C=y
1411 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
1412 | # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set
1413 | # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set
1414 | # CONFIG_MBEDTLS_TLS_DISABLED is not set
1415 | CONFIG_MBEDTLS_TLS_SERVER=y
1416 | CONFIG_MBEDTLS_TLS_CLIENT=y
1417 | CONFIG_MBEDTLS_TLS_ENABLED=y
1418 |
1419 | #
1420 | # TLS Key Exchange Methods
1421 | #
1422 | # CONFIG_MBEDTLS_PSK_MODES is not set
1423 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
1424 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y
1425 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y
1426 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y
1427 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y
1428 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y
1429 | # end of TLS Key Exchange Methods
1430 |
1431 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y
1432 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
1433 | # CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set
1434 | # CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set
1435 | CONFIG_MBEDTLS_SSL_ALPN=y
1436 | CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y
1437 | CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y
1438 |
1439 | #
1440 | # Symmetric Ciphers
1441 | #
1442 | CONFIG_MBEDTLS_AES_C=y
1443 | # CONFIG_MBEDTLS_CAMELLIA_C is not set
1444 | # CONFIG_MBEDTLS_DES_C is not set
1445 | # CONFIG_MBEDTLS_BLOWFISH_C is not set
1446 | # CONFIG_MBEDTLS_XTEA_C is not set
1447 | CONFIG_MBEDTLS_CCM_C=y
1448 | CONFIG_MBEDTLS_GCM_C=y
1449 | # CONFIG_MBEDTLS_NIST_KW_C is not set
1450 | # end of Symmetric Ciphers
1451 |
1452 | # CONFIG_MBEDTLS_RIPEMD160_C is not set
1453 |
1454 | #
1455 | # Certificates
1456 | #
1457 | CONFIG_MBEDTLS_PEM_PARSE_C=y
1458 | CONFIG_MBEDTLS_PEM_WRITE_C=y
1459 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
1460 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
1461 | # end of Certificates
1462 |
1463 | CONFIG_MBEDTLS_ECP_C=y
1464 | # CONFIG_MBEDTLS_DHM_C is not set
1465 | CONFIG_MBEDTLS_ECDH_C=y
1466 | CONFIG_MBEDTLS_ECDSA_C=y
1467 | # CONFIG_MBEDTLS_ECJPAKE_C is not set
1468 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y
1469 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y
1470 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y
1471 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y
1472 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y
1473 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y
1474 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y
1475 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y
1476 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y
1477 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y
1478 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y
1479 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y
1480 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y
1481 | CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y
1482 | # CONFIG_MBEDTLS_POLY1305_C is not set
1483 | # CONFIG_MBEDTLS_CHACHA20_C is not set
1484 | # CONFIG_MBEDTLS_HKDF_C is not set
1485 | # CONFIG_MBEDTLS_THREADING_C is not set
1486 | CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI=y
1487 | # end of mbedTLS
1488 |
1489 | #
1490 | # ESP-MQTT Configurations
1491 | #
1492 | CONFIG_MQTT_PROTOCOL_311=y
1493 | # CONFIG_MQTT_PROTOCOL_5 is not set
1494 | CONFIG_MQTT_TRANSPORT_SSL=y
1495 | CONFIG_MQTT_TRANSPORT_WEBSOCKET=y
1496 | CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y
1497 | # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set
1498 | # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set
1499 | # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set
1500 | # CONFIG_MQTT_USE_CUSTOM_CONFIG is not set
1501 | # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set
1502 | # CONFIG_MQTT_CUSTOM_OUTBOX is not set
1503 | # end of ESP-MQTT Configurations
1504 |
1505 | #
1506 | # Newlib
1507 | #
1508 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y
1509 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set
1510 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set
1511 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set
1512 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set
1513 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y
1514 | # CONFIG_NEWLIB_NANO_FORMAT is not set
1515 | CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y
1516 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set
1517 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set
1518 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set
1519 | # end of Newlib
1520 |
1521 | #
1522 | # NVS
1523 | #
1524 | # CONFIG_NVS_ASSERT_ERROR_CHECK is not set
1525 | # end of NVS
1526 |
1527 | #
1528 | # OpenThread
1529 | #
1530 | # CONFIG_OPENTHREAD_ENABLED is not set
1531 |
1532 | #
1533 | # Thread Operational Dataset
1534 | #
1535 | CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP"
1536 | CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64"
1537 | CONFIG_OPENTHREAD_NETWORK_CHANNEL=15
1538 | CONFIG_OPENTHREAD_NETWORK_PANID=0x1234
1539 | CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe"
1540 | CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff"
1541 | CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53"
1542 | # end of Thread Operational Dataset
1543 |
1544 | CONFIG_OPENTHREAD_XTAL_ACCURACY=130
1545 | # end of OpenThread
1546 |
1547 | #
1548 | # Protocomm
1549 | #
1550 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y
1551 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y
1552 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y
1553 | # end of Protocomm
1554 |
1555 | #
1556 | # PThreads
1557 | #
1558 | CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5
1559 | CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
1560 | CONFIG_PTHREAD_STACK_MIN=768
1561 | CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1
1562 | CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread"
1563 | # end of PThreads
1564 |
1565 | #
1566 | # MMU Config
1567 | #
1568 | CONFIG_MMU_PAGE_SIZE_64KB=y
1569 | CONFIG_MMU_PAGE_MODE="64KB"
1570 | CONFIG_MMU_PAGE_SIZE=0x10000
1571 | # end of MMU Config
1572 |
1573 | #
1574 | # SPI Flash driver
1575 | #
1576 | # CONFIG_SPI_FLASH_VERIFY_WRITE is not set
1577 | # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set
1578 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y
1579 | # CONFIG_SPI_FLASH_ROM_IMPL is not set
1580 | CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y
1581 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set
1582 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set
1583 | # CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set
1584 | CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y
1585 | CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20
1586 | CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1
1587 | CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192
1588 | # CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set
1589 | # CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set
1590 | # CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set
1591 |
1592 | #
1593 | # SPI Flash behavior when brownout
1594 | #
1595 | CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y
1596 | CONFIG_SPI_FLASH_BROWNOUT_RESET=y
1597 | # end of SPI Flash behavior when brownout
1598 |
1599 | #
1600 | # Auto-detect flash chips
1601 | #
1602 | CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y
1603 | # CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP is not set
1604 | # CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP is not set
1605 | # CONFIG_SPI_FLASH_SUPPORT_GD_CHIP is not set
1606 | # CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP is not set
1607 | # CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set
1608 | # CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set
1609 | # end of Auto-detect flash chips
1610 |
1611 | CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y
1612 | # end of SPI Flash driver
1613 |
1614 | #
1615 | # SPIFFS Configuration
1616 | #
1617 | CONFIG_SPIFFS_MAX_PARTITIONS=3
1618 |
1619 | #
1620 | # SPIFFS Cache Configuration
1621 | #
1622 | CONFIG_SPIFFS_CACHE=y
1623 | CONFIG_SPIFFS_CACHE_WR=y
1624 | # CONFIG_SPIFFS_CACHE_STATS is not set
1625 | # end of SPIFFS Cache Configuration
1626 |
1627 | CONFIG_SPIFFS_PAGE_CHECK=y
1628 | CONFIG_SPIFFS_GC_MAX_RUNS=10
1629 | # CONFIG_SPIFFS_GC_STATS is not set
1630 | CONFIG_SPIFFS_PAGE_SIZE=256
1631 | CONFIG_SPIFFS_OBJ_NAME_LEN=32
1632 | # CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set
1633 | CONFIG_SPIFFS_USE_MAGIC=y
1634 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y
1635 | CONFIG_SPIFFS_META_LENGTH=4
1636 | CONFIG_SPIFFS_USE_MTIME=y
1637 |
1638 | #
1639 | # Debug Configuration
1640 | #
1641 | # CONFIG_SPIFFS_DBG is not set
1642 | # CONFIG_SPIFFS_API_DBG is not set
1643 | # CONFIG_SPIFFS_GC_DBG is not set
1644 | # CONFIG_SPIFFS_CACHE_DBG is not set
1645 | # CONFIG_SPIFFS_CHECK_DBG is not set
1646 | # CONFIG_SPIFFS_TEST_VISUALISATION is not set
1647 | # end of Debug Configuration
1648 | # end of SPIFFS Configuration
1649 |
1650 | #
1651 | # TCP Transport
1652 | #
1653 |
1654 | #
1655 | # Websocket
1656 | #
1657 | CONFIG_WS_TRANSPORT=y
1658 | CONFIG_WS_BUFFER_SIZE=1024
1659 | # CONFIG_WS_DYNAMIC_BUFFER is not set
1660 | # end of Websocket
1661 | # end of TCP Transport
1662 |
1663 | #
1664 | # Ultra Low Power (ULP) Co-processor
1665 | #
1666 | # CONFIG_ULP_COPROC_ENABLED is not set
1667 | # end of Ultra Low Power (ULP) Co-processor
1668 |
1669 | #
1670 | # Unity unit testing library
1671 | #
1672 | CONFIG_UNITY_ENABLE_FLOAT=y
1673 | CONFIG_UNITY_ENABLE_DOUBLE=y
1674 | # CONFIG_UNITY_ENABLE_64BIT is not set
1675 | # CONFIG_UNITY_ENABLE_COLOR is not set
1676 | CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y
1677 | # CONFIG_UNITY_ENABLE_FIXTURE is not set
1678 | # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set
1679 | # end of Unity unit testing library
1680 |
1681 | #
1682 | # Root Hub configuration
1683 | #
1684 | # end of Root Hub configuration
1685 |
1686 | #
1687 | # Virtual file system
1688 | #
1689 | CONFIG_VFS_SUPPORT_IO=y
1690 | CONFIG_VFS_SUPPORT_DIR=y
1691 | CONFIG_VFS_SUPPORT_SELECT=y
1692 | CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y
1693 | CONFIG_VFS_SUPPORT_TERMIOS=y
1694 | CONFIG_VFS_MAX_COUNT=8
1695 |
1696 | #
1697 | # Host File System I/O (Semihosting)
1698 | #
1699 | CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1
1700 | # end of Host File System I/O (Semihosting)
1701 | # end of Virtual file system
1702 |
1703 | #
1704 | # Wear Levelling
1705 | #
1706 | # CONFIG_WL_SECTOR_SIZE_512 is not set
1707 | CONFIG_WL_SECTOR_SIZE_4096=y
1708 | CONFIG_WL_SECTOR_SIZE=4096
1709 | # end of Wear Levelling
1710 |
1711 | #
1712 | # Wi-Fi Provisioning Manager
1713 | #
1714 | CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16
1715 | CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30
1716 | # CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set
1717 | CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y
1718 | # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set
1719 | # end of Wi-Fi Provisioning Manager
1720 |
1721 | #
1722 | # BMX280 Options
1723 | #
1724 | CONFIG_BMX280_EXPECT_DETECT=y
1725 | # CONFIG_BMX280_EXPECT_BME280 is not set
1726 | # CONFIG_BMX280_EXPECT_BMP280 is not set
1727 | CONFIG_BMX280_ADDRESS_DETECT=y
1728 | # CONFIG_BMX280_ADDERSS_LO is not set
1729 | # CONFIG_BMX280_ADDERSS_HI is not set
1730 | CONFIG_BMX280_TIMEOUT=5
1731 |
1732 | #
1733 | # Default Configuration
1734 | #
1735 | # CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_NONE is not set
1736 | # CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X1 is not set
1737 | CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X2=y
1738 | # CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X4 is not set
1739 | # CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X8 is not set
1740 | # CONFIG_BMX280_DEFAULT_TEMPERATURE_OVERSAMPLING_X16 is not set
1741 | # CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_NONE is not set
1742 | # CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X1 is not set
1743 | # CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X2 is not set
1744 | # CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X4 is not set
1745 | # CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X8 is not set
1746 | CONFIG_BMX280_DEFAULT_PRESSURE_OVERSAMPLING_X16=y
1747 | CONFIG_BMX280_DEFAULT_STANDBY_0M5=y
1748 | # CONFIG_BMX280_DEFAULT_STANDBY_62M5 is not set
1749 | # CONFIG_BMX280_DEFAULT_STANDBY_125M is not set
1750 | # CONFIG_BMX280_DEFAULT_STANDBY_250M is not set
1751 | # CONFIG_BMX280_DEFAULT_STANDBY_500M is not set
1752 | # CONFIG_BMX280_DEFAULT_STANDBY_1000M is not set
1753 | # CONFIG_BMX280_DEFAULT_STANDBY_10M is not set
1754 | # CONFIG_BMX280_DEFAULT_STANDBY_20M is not set
1755 | # CONFIG_BMX280_DEFAULT_IIR_NONE is not set
1756 | # CONFIG_BMX280_DEFAULT_IIR_X2 is not set
1757 | # CONFIG_BMX280_DEFAULT_IIR_X4 is not set
1758 | # CONFIG_BMX280_DEFAULT_IIR_X8 is not set
1759 | CONFIG_BMX280_DEFAULT_IIR_X16=y
1760 |
1761 | #
1762 | # BME280 Specific Options
1763 | #
1764 | # CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_NONE is not set
1765 | CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X1=y
1766 | # CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X2 is not set
1767 | # CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X4 is not set
1768 | # CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X8 is not set
1769 | # CONFIG_BMX280_DEFAULT_HUMIDITY_OVERSAMPLING_X16 is not set
1770 | # end of BME280 Specific Options
1771 | # end of Default Configuration
1772 | # end of BMX280 Options
1773 |
1774 | #
1775 | # IoT Button
1776 | #
1777 | CONFIG_BUTTON_PERIOD_TIME_MS=5
1778 | CONFIG_BUTTON_DEBOUNCE_TICKS=2
1779 | CONFIG_BUTTON_SHORT_PRESS_TIME_MS=180
1780 | CONFIG_BUTTON_LONG_PRESS_TIME_MS=1500
1781 | CONFIG_BUTTON_LONG_PRESS_TOLERANCE_MS=20
1782 | CONFIG_BUTTON_SERIAL_TIME_MS=20
1783 | # CONFIG_GPIO_BUTTON_SUPPORT_POWER_SAVE is not set
1784 | CONFIG_ADC_BUTTON_MAX_CHANNEL=3
1785 | CONFIG_ADC_BUTTON_MAX_BUTTON_PER_CHANNEL=8
1786 | CONFIG_ADC_BUTTON_SAMPLE_TIMES=1
1787 | # end of IoT Button
1788 |
1789 | #
1790 | # CMake Utilities
1791 | #
1792 | # CONFIG_CU_RELINKER_ENABLE is not set
1793 | # CONFIG_CU_DIAGNOSTICS_COLOR_NEVER is not set
1794 | CONFIG_CU_DIAGNOSTICS_COLOR_ALWAYS=y
1795 | # CONFIG_CU_DIAGNOSTICS_COLOR_AUTO is not set
1796 | # CONFIG_CU_GCC_LTO_ENABLE is not set
1797 | # CONFIG_CU_GCC_STRING_1BYTE_ALIGN is not set
1798 | # end of CMake Utilities
1799 |
1800 | #
1801 | # Zigbee
1802 | #
1803 | CONFIG_ZB_ENABLED=y
1804 | CONFIG_ZB_ZCZR=y
1805 | # CONFIG_ZB_ZED is not set
1806 | # CONFIG_ZB_RCP is not set
1807 | CONFIG_ZB_RADIO_NATIVE=y
1808 | # CONFIG_ZB_RADIO_MACSPLIT_UART is not set
1809 | # end of Zigbee
1810 | # end of Component config
1811 |
1812 | # CONFIG_IDF_EXPERIMENTAL_FEATURES is not set
1813 |
1814 | # Deprecated options for backward compatibility
1815 | # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set
1816 | # CONFIG_NO_BLOBS is not set
1817 | # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set
1818 | # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set
1819 | # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set
1820 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y
1821 | # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set
1822 | # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set
1823 | CONFIG_LOG_BOOTLOADER_LEVEL=3
1824 | # CONFIG_APP_ROLLBACK_ENABLE is not set
1825 | # CONFIG_FLASH_ENCRYPTION_ENABLED is not set
1826 | # CONFIG_FLASHMODE_QIO is not set
1827 | # CONFIG_FLASHMODE_QOUT is not set
1828 | CONFIG_FLASHMODE_DIO=y
1829 | # CONFIG_FLASHMODE_DOUT is not set
1830 | CONFIG_MONITOR_BAUD=115200
1831 | CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
1832 | CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y
1833 | # CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set
1834 | # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set
1835 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
1836 | # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set
1837 | # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set
1838 | CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2
1839 | # CONFIG_CXX_EXCEPTIONS is not set
1840 | CONFIG_STACK_CHECK_NONE=y
1841 | # CONFIG_STACK_CHECK_NORM is not set
1842 | # CONFIG_STACK_CHECK_STRONG is not set
1843 | # CONFIG_STACK_CHECK_ALL is not set
1844 | # CONFIG_WARN_WRITE_STRINGS is not set
1845 | # CONFIG_ESP32_APPTRACE_DEST_TRAX is not set
1846 | CONFIG_ESP32_APPTRACE_DEST_NONE=y
1847 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y
1848 | # CONFIG_MCPWM_ISR_IN_IRAM is not set
1849 | CONFIG_SW_COEXIST_ENABLE=y
1850 | CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y
1851 | CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y
1852 | # CONFIG_EXTERNAL_COEX_ENABLE is not set
1853 | # CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set
1854 | # CONFIG_EVENT_LOOP_PROFILING is not set
1855 | CONFIG_POST_EVENTS_FROM_ISR=y
1856 | CONFIG_POST_EVENTS_FROM_IRAM_ISR=y
1857 | # CONFIG_OTA_ALLOW_HTTP is not set
1858 | # CONFIG_ESP_SYSTEM_PD_FLASH is not set
1859 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y
1860 | # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set
1861 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20
1862 | CONFIG_ESP32_PHY_MAX_TX_POWER=20
1863 | # CONFIG_REDUCE_PHY_TX_POWER is not set
1864 | # CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set
1865 | CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y
1866 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32
1867 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304
1868 | CONFIG_MAIN_TASK_STACK_SIZE=3584
1869 | CONFIG_CONSOLE_UART_DEFAULT=y
1870 | # CONFIG_CONSOLE_UART_CUSTOM is not set
1871 | # CONFIG_CONSOLE_UART_NONE is not set
1872 | # CONFIG_ESP_CONSOLE_UART_NONE is not set
1873 | CONFIG_CONSOLE_UART=y
1874 | CONFIG_CONSOLE_UART_NUM=0
1875 | CONFIG_CONSOLE_UART_BAUDRATE=115200
1876 | CONFIG_INT_WDT=y
1877 | CONFIG_INT_WDT_TIMEOUT_MS=300
1878 | CONFIG_TASK_WDT=y
1879 | CONFIG_ESP_TASK_WDT=y
1880 | # CONFIG_TASK_WDT_PANIC is not set
1881 | CONFIG_TASK_WDT_TIMEOUT_S=5
1882 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y
1883 | # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set
1884 | CONFIG_BROWNOUT_DET=y
1885 | CONFIG_BROWNOUT_DET_LVL_SEL_7=y
1886 | # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set
1887 | # CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set
1888 | # CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set
1889 | # CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set
1890 | # CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set
1891 | CONFIG_BROWNOUT_DET_LVL=7
1892 | CONFIG_IPC_TASK_STACK_SIZE=1024
1893 | CONFIG_TIMER_TASK_STACK_SIZE=3584
1894 | CONFIG_ESP32_WIFI_ENABLED=y
1895 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10
1896 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32
1897 | # CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set
1898 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y
1899 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1
1900 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32
1901 | # CONFIG_ESP32_WIFI_CSI_ENABLED is not set
1902 | CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
1903 | CONFIG_ESP32_WIFI_TX_BA_WIN=6
1904 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
1905 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
1906 | CONFIG_ESP32_WIFI_RX_BA_WIN=6
1907 | CONFIG_ESP32_WIFI_RX_BA_WIN=6
1908 | CONFIG_ESP32_WIFI_NVS_ENABLED=y
1909 | CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752
1910 | CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32
1911 | CONFIG_ESP32_WIFI_IRAM_OPT=y
1912 | CONFIG_ESP32_WIFI_RX_IRAM_OPT=y
1913 | CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y
1914 | CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y
1915 | CONFIG_WPA_MBEDTLS_CRYPTO=y
1916 | CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
1917 | # CONFIG_WPA_WAPI_PSK is not set
1918 | # CONFIG_WPA_SUITE_B_192 is not set
1919 | # CONFIG_WPA_11KV_SUPPORT is not set
1920 | # CONFIG_WPA_MBO_SUPPORT is not set
1921 | # CONFIG_WPA_DPP_SUPPORT is not set
1922 | # CONFIG_WPA_11R_SUPPORT is not set
1923 | # CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set
1924 | # CONFIG_WPA_WPS_STRICT is not set
1925 | # CONFIG_WPA_DEBUG_PRINT is not set
1926 | # CONFIG_WPA_TESTING_OPTIONS is not set
1927 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set
1928 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
1929 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
1930 | CONFIG_TIMER_TASK_PRIORITY=1
1931 | CONFIG_TIMER_TASK_STACK_DEPTH=2048
1932 | CONFIG_TIMER_QUEUE_LENGTH=10
1933 | # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
1934 | # CONFIG_HAL_ASSERTION_SILIENT is not set
1935 | # CONFIG_L2_TO_L3_COPY is not set
1936 | CONFIG_ESP_GRATUITOUS_ARP=y
1937 | CONFIG_GARP_TMR_INTERVAL=60
1938 | CONFIG_TCPIP_RECVMBOX_SIZE=32
1939 | CONFIG_TCP_MAXRTX=12
1940 | CONFIG_TCP_SYNMAXRTX=12
1941 | CONFIG_TCP_MSS=1440
1942 | CONFIG_TCP_MSL=60000
1943 | CONFIG_TCP_SND_BUF_DEFAULT=5744
1944 | CONFIG_TCP_WND_DEFAULT=5744
1945 | CONFIG_TCP_RECVMBOX_SIZE=6
1946 | CONFIG_TCP_QUEUE_OOSEQ=y
1947 | CONFIG_TCP_OVERSIZE_MSS=y
1948 | # CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set
1949 | # CONFIG_TCP_OVERSIZE_DISABLE is not set
1950 | CONFIG_UDP_RECVMBOX_SIZE=6
1951 | CONFIG_TCPIP_TASK_STACK_SIZE=3072
1952 | CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y
1953 | # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set
1954 | CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF
1955 | # CONFIG_PPP_SUPPORT is not set
1956 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5
1957 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072
1958 | CONFIG_ESP32_PTHREAD_STACK_MIN=768
1959 | CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1
1960 | CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread"
1961 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y
1962 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set
1963 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set
1964 | CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y
1965 | CONFIG_SUPPORT_TERMIOS=y
1966 | CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1
1967 | # End of deprecated options
1968 |
--------------------------------------------------------------------------------