├── .github └── workflows │ ├── devbuild.yml │ └── releasebuild.yml ├── .gitignore ├── .gitmodules ├── .vscode ├── c_cpp_properties.json ├── launch.json ├── settings.json └── tasks.json ├── CMakeLists.txt ├── Makefile ├── README.md ├── case ├── garagedoorswitchblock.scad └── project_box_espgarage.scad ├── compile.sh ├── flash.sh ├── images ├── garage1.jpg ├── garage2.jpg └── garage3.jpg ├── main ├── CMakeLists.txt ├── Kconfig.projbuild ├── component.mk ├── include │ ├── app_main.h │ ├── garagedoor.h │ └── homekit_states.h └── src │ ├── app_main.c │ ├── garagedoor.c │ └── homekit_states.c ├── partitions_hap.csv ├── sdkconfig.base ├── sdkconfig.defaults └── updatemodules.sh /.github/workflows/devbuild.yml: -------------------------------------------------------------------------------- 1 | on: 2 | pull_request: 3 | branches: 4 | - master 5 | paths-ignore: 6 | - README.md 7 | - CHANGELOG.md 8 | - .grenrc.yml 9 | 10 | name: DevelopmentBuild 11 | jobs: 12 | buildmac: 13 | name: Linux 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Show Environment 17 | run: set | grep GIT 18 | - name: Setup Python environment 19 | uses: actions/setup-python@v4 20 | with: 21 | python-version: 3.9.* 22 | - name: Checkout code 23 | uses: actions/checkout@v3 24 | with: 25 | submodules: recursive 26 | - name: Create sdkconfig 27 | run: | 28 | cd $GITHUB_WORKSPACE 29 | bash compile.sh -s 30 | - name: Update version 31 | run: | 32 | cd $GITHUB_WORKSPACE 33 | bash compile.sh -U 34 | - name: Build project 35 | run: | 36 | cd $GITHUB_WORKSPACE 37 | bash compile.sh -D 38 | - name: Package project 39 | run: | 40 | cd $GITHUB_WORKSPACE 41 | bash compile.sh -c 42 | - name: Dev Release 43 | uses: svenstaro/upload-release-action@latest 44 | with: 45 | repo_token: ${{ secrets.GITHUB_TOKEN }} 46 | file: release/* 47 | tag: ${{ github.ref }} 48 | overwrite: true 49 | prerelease: true 50 | file_glob: true 51 | -------------------------------------------------------------------------------- /.github/workflows/releasebuild.yml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | tags: 4 | - "v1*" 5 | paths-ignore: 6 | - README.md 7 | - CHANGELOG.md 8 | 9 | name: ReleaseBuild 10 | jobs: 11 | buildlinux: 12 | name: Linux 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Setup Python Environment 16 | uses: actions/setup-python@v4 17 | with: 18 | python-version: 3.9.* 19 | - name: Checkout code 20 | uses: actions/checkout@v3 21 | with: 22 | submodules: recursive 23 | - name: Create sdkconfig 24 | run: | 25 | cd $GITHUB_WORKSPACE 26 | bash compile.sh -s 27 | - name: Update version 28 | run: | 29 | cd $GITHUB_WORKSPACE 30 | bash compile.sh -U 31 | - name: Build project 32 | run: | 33 | cd $GITHUB_WORKSPACE 34 | bash compile.sh -D 35 | - name: Package project 36 | run: | 37 | cd $GITHUB_WORKSPACE 38 | bash compile.sh -c 39 | - name: Production Release 40 | uses: svenstaro/upload-release-action@latest 41 | with: 42 | repo_token: ${{ secrets.GITHUB_TOKEN }} 43 | file: release/* 44 | tag: ${{ github.ref }} 45 | overwrite: true 46 | file_glob: true 47 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | sdkconfig 3 | sdkconfig.old 4 | sdkconfig.save 5 | sdkconfig.working 6 | release/ 7 | package/ 8 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "components/esp-homekit-sdk"] 2 | path = components/esp-homekit-sdk 3 | url = git@github.com:espressif/esp-homekit-sdk.git 4 | [submodule "components/esp32-button"] 5 | path = components/esp32-button 6 | url = git@github.com:craftmetrics/esp32-button.git 7 | [submodule "components/network"] 8 | path = components/network 9 | url = git@github.com:PIFAnySystemsCanada/esp32-network-component.git 10 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Mac", 5 | "includePath": [ 6 | "${workspaceFolder}/**" 7 | ], 8 | "defines": [], 9 | "macFrameworkPath": [ 10 | "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks" 11 | ], 12 | "compilerPath": "/usr/bin/clang", 13 | "cStandard": "c11", 14 | "cppStandard": "c++17", 15 | "intelliSenseMode": "clang-x64", 16 | "compileCommands": "${workspaceFolder}/build/compile_commands.json" 17 | } 18 | ], 19 | "version": 4 20 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "type": "espidf", 9 | "name": "Launch", 10 | "request": "launch", 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "idf.espIdfPath": "/Users/mark/esp-idf", 3 | "idf.toolsPath": "/Users/mark/.espressif", 4 | "idf.customExtraPaths": ".:/usr/local/bin:/Users/mark/.espressif/tools/xtensa-esp32-elf/esp-2020r2-8.2.0/xtensa-esp32-elf/bin:/Users/mark/.espressif/tools/xtensa-esp32s2-elf/esp-2020r2-8.2.0/xtensa-esp32s2-elf/bin:/Users/mark/.espressif/tools/esp32ulp-elf/2.28.51-esp-20191205/esp32ulp-elf-binutils/bin:/Users/mark/.espressif/tools/esp32s2ulp-elf/2.28.51-esp-20191205/esp32s2ulp-elf-binutils/bin:/Users/mark/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200420/openocd-esp32/bin", 5 | "idf.customExtraVars": "{\"OPENOCD_SCRIPTS\":\"/Users/mark/.espressif/tools/openocd-esp32/v0.10.0-esp32-20200420/openocd-esp32/share/openocd/scripts\"}", 6 | "cmake.configureOnOpen": false, 7 | "idf.port": "/dev/cu.usbserial-31301", 8 | "idf.adapterTargetName": "esp32", 9 | "idf.baudRate": "115200" 10 | } -------------------------------------------------------------------------------- /.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 | }, 11 | "options": { 12 | "env": { 13 | "PATH": "${config:idf.customExtraPaths}" 14 | } 15 | }, 16 | "problemMatcher": [ 17 | { 18 | "owner": "cpp", 19 | "fileLocation": ["relative", "${workspaceFolder}"], 20 | "pattern": { 21 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 22 | "file": 1, 23 | "line": 2, 24 | "column": 3, 25 | "severity": 4, 26 | "message": 5 27 | } 28 | }, 29 | { 30 | "owner": "cpp", 31 | "fileLocation": "absolute", 32 | "pattern": { 33 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 34 | "file": 1, 35 | "line": 2, 36 | "column": 3, 37 | "severity": 4, 38 | "message": 5 39 | } 40 | } 41 | ], 42 | "group": { 43 | "kind": "build", 44 | "isDefault": true 45 | } 46 | }, 47 | { 48 | "label": "Set ESP-IDF Target", 49 | "type": "shell", 50 | "command": "${command:espIdf.setTarget}", 51 | "problemMatcher": { 52 | "owner": "cpp", 53 | "fileLocation": "absolute", 54 | "pattern": { 55 | "regexp": "^(.*):(//d+):(//d+)://s+(warning|error)://s+(.*)$", 56 | "file": 1, 57 | "line": 2, 58 | "column": 3, 59 | "severity": 4, 60 | "message": 5 61 | } 62 | }, 63 | }, 64 | { 65 | "label": "Clean - Clean the project", 66 | "type": "shell", 67 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py fullclean", 68 | "windows": { 69 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py fullclean" 70 | }, 71 | "options": { 72 | "env": { 73 | "PATH": "${config:idf.customExtraPaths}" 74 | } 75 | }, 76 | "problemMatcher": [ 77 | { 78 | "owner": "cpp", 79 | "fileLocation": ["relative", "${workspaceFolder}"], 80 | "pattern": { 81 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 82 | "file": 1, 83 | "line": 2, 84 | "column": 3, 85 | "severity": 4, 86 | "message": 5 87 | } 88 | }, 89 | { 90 | "owner": "cpp", 91 | "fileLocation": "absolute", 92 | "pattern": { 93 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 94 | "file": 1, 95 | "line": 2, 96 | "column": 3, 97 | "severity": 4, 98 | "message": 5 99 | } 100 | } 101 | ], 102 | }, 103 | { 104 | "label": "Flash - Flash the device", 105 | "type": "shell", 106 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} -b ${config:idf.baudRate} flash", 107 | "windows": { 108 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py flash -p ${config:idf.portWin} -b ${config:idf.baudRate}" 109 | }, 110 | "options": { 111 | "env": { 112 | "PATH": "${config:idf.customExtraPaths}" 113 | } 114 | }, 115 | "problemMatcher": [ 116 | { 117 | "owner": "cpp", 118 | "fileLocation": ["relative", "${workspaceFolder}"], 119 | "pattern": { 120 | "regexp": "^\\.\\.(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 121 | "file": 1, 122 | "line": 2, 123 | "column": 3, 124 | "severity": 4, 125 | "message": 5 126 | } 127 | }, 128 | { 129 | "owner": "cpp", 130 | "fileLocation": "absolute", 131 | "pattern": { 132 | "regexp": "^[^\\.](.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 133 | "file": 1, 134 | "line": 2, 135 | "column": 3, 136 | "severity": 4, 137 | "message": 5 138 | } 139 | } 140 | ], 141 | }, 142 | { 143 | "label": "Monitor: Start the monitor", 144 | "type": "shell", 145 | "command": "${config:idf.pythonBinPath} ${config:idf.espIdfPath}/tools/idf.py -p ${config:idf.port} -b ${config:idf.baudRate} monitor", 146 | "windows": { 147 | "command": "${config:idf.pythonBinPathWin} ${config:idf.espIdfPathWin}\\tools\\idf.py monitor -p ${config:idf.portWin} -b ${config:idf.baudRate}" 148 | }, 149 | "options": { 150 | "env": { 151 | "PATH": "${config:idf.customExtraPaths}", 152 | } 153 | }, 154 | "dependsOn": "Flash - Flash the device", 155 | }, 156 | { 157 | "label":"OpenOCD: Start openOCD", 158 | "type":"shell", 159 | "presentation": { 160 | "echo": true, 161 | "reveal": "never", 162 | "focus": false, 163 | "panel":"new" 164 | }, 165 | "command":"openocd -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}", 166 | "windows": { 167 | "command": "openocd.exe -s ${command:espIdf.getOpenOcdScriptValue} ${command:espIdf.getOpenOcdConfigs}" 168 | }, 169 | "options": { 170 | "env": { 171 | "PATH": "${config:idf.customExtraPaths}" 172 | } 173 | }, 174 | "problemMatcher": { 175 | "owner": "cpp", 176 | "fileLocation": "absolute", 177 | "pattern": { 178 | "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", 179 | "file": 1, 180 | "line": 2, 181 | "column": 3, 182 | "severity": 4, 183 | "message": 5 184 | } 185 | }, 186 | }, 187 | { 188 | "label": "adapter", 189 | "type": "shell", 190 | "command": "${config:idf.pythonBinPath}", 191 | "isBackground": true, 192 | "options": { 193 | "env": { 194 | "PATH": "${config:idf.customExtraPaths}", 195 | "PYTHONPATH": "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter" 196 | } 197 | }, 198 | "problemMatcher": { 199 | "background": { 200 | "beginsPattern": "\bDEBUG_ADAPTER_STARTED\b", 201 | "endsPattern": "DEBUG_ADAPTER_READY2CONNECT", 202 | "activeOnStart": true 203 | }, 204 | "pattern": { 205 | "regexp": "(\\d+)-(\\d+)-(\\d+)\\s(\\d+):(\\d+):(\\d+),(\\d+)\\s-(.+)\\s(ERROR)", 206 | "file": 8, 207 | "line": 2, 208 | "column": 3, 209 | "severity": 4, 210 | "message": 9 211 | } 212 | }, 213 | "args": [ 214 | "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py", 215 | "-e", "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf", 216 | "-s", "${command:espIdf.getOpenOcdScriptValue}", 217 | "-ip", "localhost", 218 | "-dn", "${config:idf.adapterTargetName}", 219 | "-om", 220 | "connect_to_instance" 221 | ], 222 | "windows": { 223 | "args": [ 224 | "${command:espIdf.getExtensionPath}/esp_debug_adapter/debug_adapter_main.py", 225 | "-e", "${workspaceFolder}/build/${command:espIdf.getProjectName}.elf", 226 | "-s", "${command:espIdf.getOpenOcdScriptValue}", 227 | "-ip", "localhost", 228 | "-dn", "${config:idf.adapterTargetName}", 229 | "-om", 230 | "connect_to_instance" 231 | ] 232 | } 233 | } 234 | ] 235 | } 236 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | 2 | cmake_minimum_required(VERSION 3.5) 3 | 4 | if(DEFINED ENV{HOMEKIT_PATH}) 5 | set(HOMEKIT_PATH $ENV{HOMEKIT_PATH}) 6 | else() 7 | set(HOMEKIT_PATH ${CMAKE_CURRENT_LIST_DIR}/components/esp-homekit-sdk) 8 | endif(DEFINED ENV{HOMEKIT_PATH}) 9 | 10 | if (EXISTS ${HOMEKIT_PATH}) 11 | message(WARNING "HOMEKIT_PATH=" ${HOMEKIT_PATH}) 12 | else() 13 | message(ERROR "Homekit path is not valid: HOMEKIT_PATH=" ${HOMEKIT_PATH}) 14 | endif() 15 | 16 | set(EXTRA_COMPONENT_DIRS 17 | ${HOMEKIT_PATH}/components 18 | ${HOMEKIT_PATH}/components/homekit 19 | ${HOMEKIT_PATH}/examples/common/app_hap_setup_payload 20 | ${HOMEKIT_PATH}/examples/common/qrcode 21 | ) 22 | 23 | include($ENV{IDF_PATH}/tools/cmake/project.cmake) 24 | project(garagedoor) 25 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # 2 | # This is a project Makefile. It is assumed the directory this Makefile resides in is a 3 | # project subdirectory. 4 | # 5 | 6 | HOMEKIT_PATH ?= $(abspath $(shell pwd)/../..) 7 | COMMON_COMPONENT_PATH ?= $(abspath $(shell pwd)/../common) 8 | 9 | PROJECT_NAME := fan 10 | EXTRA_COMPONENT_DIRS += $(HOMEKIT_PATH)/components/ 11 | EXTRA_COMPONENT_DIRS += $(HOMEKIT_PATH)/components/homekit 12 | EXTRA_COMPONENT_DIRS += $(COMMON_COMPONENT_PATH) 13 | 14 | include $(IDF_PATH)/make/project.mk 15 | 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ESP32 GarageDoor Controller for HomeKit 2 | 3 | ## What is it 4 | 5 | ESP32 dedicated Garage Door controller. When Espressif, created their Homekit SDK for the ESP32, the time was ripe to move the garage door controller to a smaller platform. The ESP32 IDF and Homekit SDKs made incorporating homekit functionity into a sample platform easy. 6 | 7 | For complete information on the project, please see the WIKI in the github repo: [WIKI](https://github.com/mbuckaway/esp32-homekit-garagedoor/wiki) 8 | 9 | ## How this Works 10 | 11 | This device is based on the Espressif SDK and uses the open source version of the Espressif Homekit SDK. It uses my own network component. This network component uses BluFi to configure WIFI creds and control the device. You will need the Espressif EspBluFi app from the Apple Appstore. 12 | 13 | The difference with this controller and others is it uses both a switch on the lower part of the door to sensor it's actually closed and a switch on the upper side of the door to sensor it's actually open. With only a close switch, one can only assume the garage door actually makes it all the way up to be open. The two switches allow us to add a motion sensor service to sensor when the door is in motion. I use that to turn the garage light automatically on when the door moves. 14 | 15 | The code configures the following services that make up the garage door accessory: 16 | 17 | - Garage Door 18 | - Close Sensor 19 | - Open Sensor 20 | - Motion Sensor (sense when the door is in motion) 21 | - Switch to force the door to move (used for automations to override security "issues") 22 | - Switch to close the door when it is open (and only open). Homekit sometimes loses the door status and this control is required for automation to work reliably. 23 | 24 | What is missing from this unit is the obstruction detection. At some point, I may add a eye beam to detect something is in the way, but the old garage door already has that as a safety features, so having your phone notify you of the obstruction seems moot. 25 | 26 | The code uses a button library to monitor the door switches and automatically debounces the switches. Additionally, the routine the monitors the open and close switches updates Homekit with the changes in status, so the home app almost instantly. However, Homekit seems to have a bug in it where if you control the door without using the Home App, it loses track of the door status. The code updates the status correctly, but Homekit seems to ignore it. That said, it does correct itself when the door is fully closed. 27 | 28 | For my device, I included two LED's connected to the switches through resistors. There is no GPIO for these and they are completely optional. I had issues with the door switches not working. During the winter, ice built up on the bottom of the door, and the close switch needed to be repositioned. Include them if you want, but they are not required. 29 | 30 | See the WIKI for information on building the device, the circuit, etc. 31 | 32 | ## Photos 33 | 34 | Below are some of the photos from the device I created. 35 | 36 | ![Garage Door Controller in 3D Printed Case](images/garage1.jpg) 37 | ![Lower magnetic door switch](images/garage2.jpg) 38 | ![Upper roller switch](images/garage3.jpg) 39 | -------------------------------------------------------------------------------- /case/garagedoorswitchblock.scad: -------------------------------------------------------------------------------- 1 | $fn = 20; 2 | 3 | 4 | width = 50; 5 | length = 100; 6 | height = 40; 7 | top_height = 5; 8 | 9 | module rounded_box(x,y,z,r){ 10 | translate([r,r,r]) 11 | minkowski(){ 12 | cube([x-r*2,y-r*2,z-r*2]); 13 | sphere(r=r, $fs=0.1); 14 | } 15 | } 16 | 17 | difference() 18 | { 19 | rounded_box(length, width, height, 3); 20 | cube([length/4, width, height-top_height]); 21 | translate([length-70, 0, height]) rotate([0, 30, 0]) cube([length, width, height+10]); 22 | translate([length-90, 0, 0]) rotate([0, 30, 0]) cube([length/2+10, width, height-10]); 23 | translate([15, width/3, 25]) cylinder(h=20, d=5); 24 | translate([15, width/3*2, 25]) cylinder(h=20, d=5); 25 | translate([15, width/3, 46]) rotate([180, 0, 0])cylinder(10, 10); 26 | translate([15, width/3*2, 46]) rotate([180, 0, 0])cylinder(10, 10); 27 | } 28 | -------------------------------------------------------------------------------- /case/project_box_espgarage.scad: -------------------------------------------------------------------------------- 1 | $fn=50; 2 | //Procedural Project Box Screws 3 | 4 | box_enable = 1; 5 | top_enable = 1; 6 | fillets_enable = 1; 7 | fillets2_enable = 1; 8 | 9 | text_enable_box = 1; 10 | //40mm x 60 board size 11 | 12 | inside_width = 60; 13 | inside_length = 130; 14 | inside_height = 35; 15 | //Wall thickness 16 | thickness = 2.5; 17 | //Fillet radius. This should not be larger than thickness. 18 | radius = 2; 19 | //Diameter of the holes that screws thread into. 20 | screw_dia = 2.5; 21 | //Diameter of the holes on the lid (should be larger than the diameter of your screws) 22 | screw_loose_dia = 3.2; 23 | //Only use this if the lip on your lid is detached from the lid! This is a hack to work around odd union() behaviour. 24 | extra_lid_thickness = 0; //Extra lid thickness above thickness. 25 | //You may want to tweak this to account for large chamfer radius. 26 | 27 | // The lid can have a lip on it for attached to another surface 28 | // This is the size of that lip 29 | lid_screw_lip_size = 15; 30 | lid_screw_lip_screw_size = 5; 31 | // The side of the box has a hole for the wifi antenna. 32 | // Set to zero to disable. 33 | antenna_holesize=0; 34 | antenna_offset=7; 35 | 36 | led_holesize=9.8; 37 | led_offset=25; 38 | led_spacing=20; 39 | led_count = 2; 40 | 41 | top_holesize=15; 42 | top_holeoffset = 5; 43 | 44 | bottom_holesize=10; 45 | 46 | screwmount_height = 12; 47 | screwmount_length = 65; 48 | screwmount_width = 40; 49 | screwmount_offset_x = 12; 50 | screwmount_offset_y = 13; 51 | screwmount_screw_dia = 1.25; 52 | 53 | screwmount2_height = 8; 54 | screwmount2_length = 21; 55 | screwmount2_width = 29; 56 | screwmount2_offset_x = 18; 57 | screwmount2_offset_y = 95; 58 | 59 | 60 | outside_width = inside_width + thickness * 2; 61 | outside_length = inside_length + thickness * 2; 62 | od = screw_dia * 2.5; 63 | 64 | module screwmount() 65 | { 66 | difference() { 67 | cylinder(r=3.0, h=screwmount_height-2); 68 | translate([0,0,-1]) cylinder(r=screwmount_screw_dia, h=screwmount_height); 69 | } 70 | rotate_extrude(convexity = 10) 71 | translate([2.5,0,0]) { 72 | intersection() 73 | { 74 | square(5); 75 | difference() { 76 | square(5, center=true); 77 | translate([2.5,2,5]) circle(2.0); 78 | } 79 | } 80 | } 81 | } 82 | 83 | module filletposts() 84 | { 85 | postoffset_length = screwmount_length; 86 | postoffset_width = screwmount_width; 87 | post1 = [0, 0, 0]; 88 | post2 = [0, postoffset_length, 0]; 89 | post3 = [postoffset_width, 0, 0]; 90 | post4 = [postoffset_width, postoffset_length, 0]; 91 | translate(post1) screwmount(); 92 | translate(post2) screwmount(); 93 | translate(post3) screwmount(); 94 | translate(post4) screwmount(); 95 | } 96 | 97 | module filletposts2() 98 | { 99 | postoffset_length = screwmount2_length; 100 | postoffset_width = screwmount2_width; 101 | post1 = [0, 0, 0]; 102 | post2 = [0, postoffset_length, 0]; 103 | post3 = [postoffset_width, 0, 0]; 104 | post4 = [postoffset_width, postoffset_length, 0]; 105 | translate(post1) screwmount(); 106 | translate(post2) screwmount(); 107 | translate(post3) screwmount(); 108 | translate(post4) screwmount(); 109 | } 110 | 111 | module box_screw(id, od, height){ 112 | difference(){ 113 | union(){ 114 | cylinder(d=od, h=height, $fs=0.2); 115 | translate([-od/2, -od/2, 0]) 116 | cube([od/2,od,height], false); 117 | translate([-od/2, -od/2, 0]) 118 | cube([od,od/2,height], false); 119 | } 120 | cylinder(d=id, h=height, $fn=6); 121 | } 122 | } 123 | 124 | module rounded_box(x,y,z,r){ 125 | translate([r,r,r]) 126 | minkowski(){ 127 | cube([x-r*2,y-r*2,z-r*2]); 128 | sphere(r=r, $fs=0.1); 129 | } 130 | } 131 | 132 | module main_box(){ 133 | difference(){ 134 | //cube([outside_width, outside_length, inside_height + thickness * 2]); 135 | difference(){ 136 | rounded_box(outside_width, outside_length, inside_height + thickness + 2, radius); 137 | translate([0,0,inside_height + thickness]) 138 | cube([outside_width, outside_length, inside_height + thickness * 2]); 139 | } 140 | translate([thickness, thickness, thickness]) 141 | cube([inside_width, inside_length, inside_height + thickness]); 142 | if (antenna_holesize>0) 143 | { 144 | translate([thickness/2,inside_length/2,inside_height-antenna_offset]) { 145 | rotate([0,90,0]) 146 | cylinder(h = thickness*2, d = antenna_holesize, center=true, $fs=0.2); 147 | } 148 | } 149 | if (led_holesize>0) 150 | { 151 | translate([inside_width/2+thickness,led_offset,thickness/2]) 152 | cylinder(h = thickness*2, d = led_holesize+.15, center=true, $fs=0.2); 153 | translate([inside_width/2+thickness,led_offset+led_spacing,thickness/2]) 154 | cylinder(h = thickness*2, d = led_holesize, center=true, $fs=0.2); 155 | if (led_count>2) 156 | { 157 | translate([inside_width/2+thickness,led_offset+led_spacing*2,thickness/2]) 158 | cylinder(h = thickness*2, d = led_holesize, center=true, $fs=0.2); 159 | } 160 | if (led_count>3) 161 | { 162 | translate([inside_width/2+thickness,led_offset+led_spacing*3,thickness/2]) 163 | cylinder(h = thickness*2, d = led_holesize, center=true, $fs=0.2); 164 | } 165 | } 166 | if (top_holesize>0) 167 | { 168 | translate([inside_width/2+thickness,thickness/2,inside_height/2+thickness+top_holeoffset]) { 169 | rotate([90,0,0]) 170 | cylinder(h = thickness*2, d = top_holesize, center=true, $fs=0.2); 171 | } 172 | } 173 | if (bottom_holesize>0) 174 | { 175 | translate([inside_width/2+thickness,inside_length+thickness+thickness/2,inside_height/2+thickness]) { 176 | rotate([90,0,0]) 177 | cylinder(h = thickness*2, d = bottom_holesize, center=true, $fs=0.2); 178 | } 179 | } 180 | if (text_enable_box) 181 | { 182 | translate ([2,inside_length-25,thickness/3]) 183 | rotate([180,0,0]) 184 | linear_extrude(thickness/3) 185 | text("Garage Door", size=8); 186 | translate ([14,inside_length-10,thickness/3]) 187 | rotate([180,0,0]) 188 | linear_extrude(thickness/3) 189 | text("Opener", size=8); 190 | } 191 | } 192 | 193 | od = screw_dia * 2.5; 194 | 195 | translate([od/2+thickness,od/2+thickness, 0]) 196 | box_screw(screw_dia, od, inside_height); 197 | 198 | translate([thickness+inside_width-od/2, od/2+thickness, 0]) 199 | rotate([0,0,90]) 200 | box_screw(screw_dia, od, inside_height); 201 | 202 | translate([thickness+inside_width-od/2, -od/2+thickness+inside_length, 0]) 203 | rotate([0,0,180]) 204 | box_screw(screw_dia, od, inside_height); 205 | 206 | translate([od/2 + thickness, -od/2+thickness+inside_length, 0]) 207 | rotate([0,0,270]) 208 | box_screw(screw_dia, od, inside_height); 209 | } 210 | 211 | module lid(){ 212 | difference(){ 213 | union(){ 214 | //Lid. 215 | difference(){ 216 | translate([0,-lid_screw_lip_size,0]) 217 | rounded_box(outside_width, outside_length+lid_screw_lip_size*2, thickness * 4, radius); 218 | translate([0,-lid_screw_lip_size, thickness + extra_lid_thickness]) 219 | cube([outside_width, outside_length+lid_screw_lip_size*2, inside_height + thickness * 4]); 220 | } 221 | //Lip 222 | lip_tol = 0.5; 223 | lip_width = inside_width - lip_tol; 224 | lip_length = inside_length - lip_tol; 225 | translate([(outside_width - lip_width)/2,(outside_length - lip_length)/2, thickness * 0.99]) 226 | difference(){ 227 | cube([lip_width, lip_length, thickness]); 228 | translate([thickness, thickness, 0]) 229 | cube([lip_width-thickness*2, lip_length-thickness*2, thickness]); 230 | } 231 | 232 | intersection(){ 233 | union(){ 234 | translate([od/2 + thickness, od/2 + thickness, thickness]) 235 | box_screw(screw_dia, od, thickness); 236 | translate([inside_width - od/2 + thickness, od/2 + thickness, thickness]) 237 | rotate([0,0,90]) 238 | box_screw(screw_dia, od, thickness); 239 | translate([inside_width - od/2 + thickness, inside_length - od/2 + thickness, thickness]) 240 | rotate([0,0,180]) 241 | box_screw(screw_dia, od, thickness); 242 | translate([od/2 + thickness, inside_length - od/2 + thickness, thickness]) 243 | rotate([0,0,270]) 244 | box_screw(screw_dia, od, thickness); 245 | } 246 | translate([thickness + lip_tol, thickness + lip_tol, 0]) 247 | cube([lip_width-lip_tol,lip_length-lip_tol, 200]); 248 | } 249 | 250 | } 251 | 252 | union(){ 253 | translate([od/2 + thickness, od/2 + thickness, thickness]) 254 | cylinder(h = thickness * 4, d = screw_loose_dia, center=true, $fs=0.2); 255 | translate([inside_width - od/2 + thickness, od/2 + thickness, thickness]) 256 | cylinder(h = thickness * 4, d = screw_loose_dia, center=true, $fs=0.2); 257 | translate([inside_width - od/2 + thickness, inside_length - od/2 + thickness, thickness]) 258 | cylinder(h = thickness * 4, d = screw_loose_dia, center=true, $fs=0.2); 259 | translate([od/2 + thickness, inside_length - od/2 + thickness, thickness]) 260 | cylinder(h = thickness * 4, d = screw_loose_dia, center=true, $fs=0.2); 261 | } 262 | // Draw the lip screw holes 263 | if (lid_screw_lip_size>0) 264 | { 265 | union() { 266 | translate([10, lid_screw_lip_size-22, 0]) 267 | cylinder(h = thickness * 4, d = lid_screw_lip_screw_size, center=true, $fs=0.2); 268 | translate([inside_width-od/2, lid_screw_lip_size-22, 0]) 269 | cylinder(h = thickness * 4, d = lid_screw_lip_screw_size, center=true, $fs=0.2); 270 | translate([inside_width-od/2, inside_length+13, 0]) 271 | cylinder(h = thickness * 4, d = lid_screw_lip_screw_size, center=true, $fs=0.2); 272 | translate([10, inside_length+13, 0]) 273 | cylinder(h = thickness * 4, d = lid_screw_lip_screw_size, center=true, $fs=0.2); 274 | } 275 | } 276 | 277 | } 278 | } 279 | 280 | if (box_enable) main_box(); 281 | if (top_enable) translate([-outside_width-5,0,0]) lid(); 282 | if (fillets_enable) translate([screwmount_offset_x,screwmount_offset_y, thickness]) filletposts(); 283 | if (fillets2_enable) translate([screwmount2_offset_x,screwmount2_offset_y, thickness]) filletposts2(); 284 | -------------------------------------------------------------------------------- /compile.sh: -------------------------------------------------------------------------------- 1 | PROGRAM=garagedoor 2 | SDKCONFIG=sdkconfig 3 | OSNAME=$(uname -s) 4 | 5 | getVersion() { 6 | if [ ! -f "sdkconfig" ]; then 7 | echo "No sdkconfig file. Aborting..." 8 | exit 1 9 | fi 10 | . $SDKCONFIG 11 | VERSION=$CONFIG_APP_PROJECT_VER 12 | export VERSION 13 | echo "$PROGRAM Version is $VERSION" 14 | } 15 | # 16 | # Takes the tag number and updates the sdkconfig file. This will embedded the version 17 | # into the binary as well build it 18 | updateversion() { 19 | if [ -n "$GITHUB_REF" ]; then 20 | getVersion 21 | echo "GITHUB_REF=$GITHUB_REF" 22 | GIT_TYPE=$(echo $GITHUB_REF | awk -F '/' '{print $2'}) 23 | GIT_TAG=$(echo $GITHUB_REF | awk -F '/' '{print $3'}) 24 | GIT_BRANCH=$(echo $GITHUB_REF | awk -F '/' '{print $4'}) 25 | SHORTSHA=$(echo $GITHUB_SHA | cut -c 1-7) 26 | VERSION=$(echo $VERSION | awk -F - '{print $1}') 27 | if [ "$GIT_TYPE" == "heads" -a "$GIT_TAG" == "master" ]; then 28 | echo "Refusing to build an untagged master build. Release builds on a tag only!" 29 | exit 1 30 | fi 31 | if [ "$GIT_TYPE" == "heads" -a "$GIT_TAG" == "topic" ]; then 32 | if [ -z "$GIT_BRANCH" ]; then 33 | GIT_BRANCH=beta 34 | fi 35 | VERSION="$VERSION-$GIT_BRANCH-$SHORTSHA" 36 | fi 37 | if [ "$GIT_TYPE" == "pull" ]; then 38 | # For a PR, tag is the pull number 39 | VERSION="$VERSION-PR$GIT_TAG-$SHORTSHA" 40 | fi 41 | if [ "$GIT_TYPE" == "tags" ]; then 42 | VERNO=$(echo $GIT_TAG | awk -F '-' '{print $1}') 43 | MAJOR=$(echo $VERNO | awk -F '.' '{print $1}') 44 | MINOR=$(echo $VERNO | awk -F '.' '{print $2}') 45 | RELEASE=$(echo $VERNO | awk -F '.' '{print $3}') 46 | if [ "$MAJOR" != "v1" -o -z "$MINOR" -o -z "$RELEASE" ]; then 47 | echo "Invalid tag format. Must be v1.0.3. Refusing to build!" 48 | exit 1 49 | fi 50 | VERSION="$GIT_TAG" 51 | fi 52 | echo "$PROGRAM version is now $VERSION" 53 | sed "s/CONFIG_APP_PROJECT_VER=.*//g" sdkconfig > sdkconfig.tmp 54 | echo "CONFIG_APP_PROJECT_VER=\"$VERSION\"" >> sdkconfig.tmp 55 | mv sdkconfig.tmp sdkconfig 56 | else 57 | echo "Running a local build" 58 | fi 59 | } 60 | 61 | tagrepo() { 62 | CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD -- | head -1) 63 | if [ "$CURRENT_BRANCH" != "master" ]; then 64 | echo "Unable to tag $CURRENT_BRANCH branch for release. Releases are from master only!" 65 | exit 1 66 | fi 67 | echo "$PROGRAM version will be updated by the auto-build system to match the tag" 68 | getVersion 69 | # Remove the -private from the version 70 | VERSIONNO=$(echo $VERSION | awk -F - '{print $1}') 71 | TAGNAME="v$VERSIONNO" 72 | echo "Tagging with $TAGNAME" 73 | git tag $TAGNAME 74 | git push origin $TAGNAME 75 | } 76 | 77 | # 78 | # Update the version number in the sdkconfig in the dev branch, 79 | dorelease() { 80 | CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD -- | head -1) 81 | if [ "$CURRENT_BRANCH" != "dev" ]; then 82 | echo "Unable to do release on $CURRENT_BRANCH branch. You must be on dev branch to cut a release". 83 | exit 1 84 | fi 85 | if ! git diff-index --quiet HEAD --; then 86 | echo "$CURRENT_BRANCH has uncommited changed. Refusing to release. Commit your code." 87 | exit 1 88 | fi 89 | if [ x"$(git rev-parse $CURRENT_BRANCH)" != x"$(git rev-parse origin/$CURRENT_BRANCH)" ]; then 90 | echo "$CURRENT_BRANCH is not in sync with origin. Please push your changes." 91 | exit 1 92 | fi 93 | getVersion 94 | # Remove the -private from the version 95 | VERSIONNO=$(echo $VERSION | awk -F - '{print $1}') 96 | MAJOR=$(echo $VERSIONNO | awk -F '.' '{print $1}') 97 | MINOR=$(echo $VERSIONNO | awk -F '.' '{print $2}') 98 | RELEASE=$(echo $VERSIONNO | awk -F '.' '{print $3}') 99 | RELEASE=$RELEASE+1 100 | NEWVERSION="$MAJOR.$MINOR.$RELEASE" 101 | echo "New version is $NEWVERSION" 102 | exit 1 103 | TAGNAME="v$VERSIONNO" 104 | echo "Releasing with $TAGNAME" 105 | git checkout master 106 | git merge dev -m "Release $TAGNAME" 107 | git push 108 | echo "Code merged into master..." 109 | git tag $TAGNAME 110 | git push origin $TAGNAME 111 | echo "Code tagged with $TAGNAME for release" 112 | git checkout dev 113 | echo "Current branch set back to dev..." 114 | } 115 | 116 | cleanup() { 117 | if [ -z "$IDF_TOOLS_EXPORT_CMD" ]; then 118 | echo "Build env not available. Suggest using docker version." 119 | exit 1 120 | fi 121 | . $IDF_TOOLS_EXPORT_CMD 122 | idf.py clean 123 | idf.py reconfigure 124 | } 125 | 126 | build() { 127 | if [ -z "$IDF_TOOLS_EXPORT_CMD" ]; then 128 | echo "Build env not available. Suggest using docker version." 129 | exit 1 130 | fi 131 | . $IDF_TOOLS_EXPORT_CMD 132 | idf.py build 133 | } 134 | 135 | buildwithdocker() { 136 | docker run --rm -v $PWD:/project -e LC_ALL=C.UTF-8 -w /project espressif/idf:release-v4.4 idf.py clean reconfigure build 137 | } 138 | 139 | copysdkconfig() { 140 | echo "Setting up SDK config..." 141 | cp sdkconfig.base sdkconfig 142 | } 143 | 144 | copyrelease() { 145 | ls build/ 146 | if [ ! -f build/$PROGRAM.bin ]; then 147 | echo "Can't find build output: Build wasn't completed successfully." 148 | exit 1 149 | fi 150 | getVersion 151 | rm -rf package release 152 | mkdir -p release 153 | mkdir -p package 154 | mkdir -p package/partition_table 155 | mkdir -p package/bootloader 156 | cp build/partition_table/partition-table.bin package/partition_table/ 157 | cp build/$PROGRAM.bin package 158 | cp build/bootloader/bootloader.bin package/bootloader/ 159 | cp build/ota_data_initial.bin package 160 | cp flash.sh package 161 | chmod 755 package/flash.sh 162 | 163 | tar -cvvzf release/$PROGRAM-$VERSION.tar.gz package/ 164 | } 165 | 166 | doHelp() { 167 | cat < 4 | 5 | void motion_sensor_update(bool state); 6 | void close_sensor_update(uint8_t state); 7 | void open_sensor_update(uint8_t state); 8 | void door_switches_update(bool state); 9 | void door_status_update(int state); 10 | void reset_to_factory_handler(void); 11 | -------------------------------------------------------------------------------- /main/include/garagedoor.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | 6 | void garagedoor_setup(void); 7 | void start_garagedoor(void); 8 | void kickrelay(void); 9 | uint8_t get_door_current_state(void); 10 | void set_door_target_state(uint8_t target_state); 11 | void force_door_target_state(uint8_t target_state); 12 | bool get_motion_detected(void); 13 | uint8_t get_open_contact_status(void); 14 | uint8_t get_close_contact_status(void); 15 | -------------------------------------------------------------------------------- /main/include/homekit_states.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | /** 6 | * TargetDoorState enum - matches homekit status for same 7 | Characteristic.TargetDoorState.OPEN = 0; 8 | Characteristic.TargetDoorState.CLOSED = 1; 9 | */ 10 | enum TargetDoorState { 11 | TARGET_STATE_OPEN = 0, 12 | TARGET_STATE_CLOSED = 1 13 | }; 14 | 15 | /** 16 | * CurrentDoorState enum - matches homekit status for same 17 | Characteristic.CurrentDoorState.OPEN = 0; 18 | Characteristic.CurrentDoorState.CLOSED = 1; 19 | Characteristic.CurrentDoorState.OPENING = 2; 20 | Characteristic.CurrentDoorState.CLOSING = 3; 21 | Characteristic.CurrentDoorState.STOPPED = 4; 22 | */ 23 | enum CurrentDoorState { 24 | CURRENT_STATE_OPEN = 0, 25 | CURRENT_STATE_CLOSED = 1, 26 | CURRENT_STATE_OPENING = 2, 27 | CURRENT_STATE_CLOSING = 3, 28 | CURRENT_STATE_STOPPED = 4 29 | }; 30 | 31 | /** 32 | * ContactState enum - matches the homekit status for same 33 | * Characteristic.ContactSensorState.CONTACT_DETECTED = 0; 34 | * Characteristic.ContactSensorState.CONTACT_NOT_DETECTED = 1; 35 | */ 36 | enum ContactState { 37 | CONTACT_DETECTED = 0, 38 | CONTACT_NOT_DETECTED = 1 39 | }; 40 | 41 | char *garagedoor_current_state_string(uint8_t state); 42 | char *garagedoor_target_state_string(uint8_t state); 43 | char *contact_state_string(uint8_t state); -------------------------------------------------------------------------------- /main/src/app_main.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020 MIT License 3 | * 4 | * HomeKit GarageDoor Project 5 | */ 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include "freertos/queue.h" 13 | #include 14 | #include 15 | 16 | #include 17 | #include 18 | #include 19 | 20 | //#include 21 | //#include 22 | 23 | #include "network.h" 24 | #include 25 | 26 | #include "garagedoor.h" 27 | #include "homekit_states.h" 28 | 29 | /* Required for server verification during OTA, PEM format as string */ 30 | char server_cert[] = {}; 31 | 32 | static const char *TAG = "HAP"; 33 | 34 | static const uint16_t GARAGEDOOR_TASK_PRIORITY = 5; 35 | static const uint16_t GARAGEDOOR_TASK_STACKSIZE = 4 * 1024; 36 | static const char *GARAGEDOOR_TASK_NAME = "hap_garage"; 37 | 38 | /* Reset network credentials if button is pressed for more than 3 seconds and then released */ 39 | //static const uint16_t RESET_NETWORK_BUTTON_TIMEOUT = 3; 40 | 41 | /* Reset to factory if button is pressed and held for more than 10 seconds */ 42 | // static const uint16_t RESET_TO_FACTORY_BUTTON_TIMEOUT = 10; 43 | 44 | /* The button "Boot" will be used as the Reset button for the example */ 45 | //static const uint16_t RESET_GPIO = GPIO_NUM_0; 46 | 47 | /* Char definitions for our switches */ 48 | static hap_char_t *open_contact_char = 0; 49 | static hap_char_t *close_contact_char = 0; 50 | static hap_char_t *motion_sensor_char = 0; 51 | static hap_char_t *door_switch_char = 0; 52 | static hap_char_t *closeif_door_switch_char = 0; 53 | static hap_char_t *garage_door_current_status_char = 0; 54 | static bool reset_requested = false; 55 | 56 | /** 57 | * @brief The factory reset button callback handler. 58 | */ 59 | void reset_to_factory_handler(void) 60 | { 61 | // Only allow the routine to be called once. It reboots the device so we start over. 62 | if (!reset_requested) 63 | { 64 | hap_reset_to_factory(); 65 | reset_requested = true; 66 | } 67 | } 68 | 69 | static void reset_network_handler(void) 70 | { 71 | hap_reset_network(); 72 | } 73 | 74 | static void reboot_system(void) 75 | { 76 | esp_restart(); 77 | } 78 | 79 | /** 80 | * Accessory Identity routine. Does nothing other than long the event because the device has no 81 | * LED to let the user know who we are. 82 | */ 83 | static int garage_identify(hap_acc_t *ha) 84 | { 85 | ESP_LOGI(TAG, "Garage Door Accessory identified"); 86 | return HAP_SUCCESS; 87 | } 88 | 89 | /** 90 | * Event handler to report what HAP is doing. Useful for debugging. 91 | */ 92 | static void garage_hap_event_handler(void* arg, esp_event_base_t event_base, int32_t event, void *data) 93 | { 94 | switch(event) { 95 | case HAP_EVENT_PAIRING_STARTED : 96 | ESP_LOGI(TAG, "Pairing Started"); 97 | break; 98 | case HAP_EVENT_PAIRING_ABORTED : 99 | ESP_LOGI(TAG, "Pairing Aborted"); 100 | break; 101 | case HAP_EVENT_CTRL_PAIRED : 102 | ESP_LOGI(TAG, "Controller %s Paired. Controller count: %d", 103 | (char *)data, hap_get_paired_controller_count()); 104 | break; 105 | case HAP_EVENT_CTRL_UNPAIRED : 106 | ESP_LOGI(TAG, "Controller %s Removed. Controller count: %d", 107 | (char *)data, hap_get_paired_controller_count()); 108 | break; 109 | case HAP_EVENT_CTRL_CONNECTED : 110 | ESP_LOGI(TAG, "Controller %s Connected", (char *)data); 111 | break; 112 | case HAP_EVENT_CTRL_DISCONNECTED : 113 | ESP_LOGI(TAG, "Controller %s Disconnected", (char *)data); 114 | break; 115 | case HAP_EVENT_ACC_REBOOTING : { 116 | char *reason = (char *)data; 117 | ESP_LOGI(TAG, "Accessory Rebooting (Reason: %s)", reason ? reason : "null"); 118 | break; 119 | } 120 | default: 121 | /* Silently ignore unknown events */ 122 | break; 123 | } 124 | } 125 | 126 | /** 127 | * @brief Update the door status from our door switches 128 | */ 129 | void door_status_update(int state) 130 | { 131 | hap_val_t new_val; 132 | new_val.i = state; 133 | hap_char_update_val(garage_door_current_status_char, &new_val); 134 | } 135 | 136 | /* 137 | * @brief Check the current status of the garage door and return it to homekit 138 | */ 139 | static int garagedoor_read(hap_char_t *hc, hap_status_t *status_code, void *serv_priv, void *read_priv) 140 | { 141 | if (hap_req_get_ctrl_id(read_priv)) { 142 | ESP_LOGI(TAG, "garagedoor received read from %s", hap_req_get_ctrl_id(read_priv)); 143 | } 144 | if (!strcmp(hap_char_get_type_uuid(hc), HAP_CHAR_UUID_CURRENT_DOOR_STATE)) 145 | { 146 | hap_val_t new_val; 147 | new_val.i = get_door_current_state(); 148 | hap_char_update_val(hc, &new_val); 149 | *status_code = HAP_STATUS_SUCCESS; 150 | ESP_LOGI(TAG,"garagedoor status updated to %s", garagedoor_current_state_string(new_val.i)); 151 | } 152 | return HAP_SUCCESS; 153 | } 154 | 155 | /** 156 | * @brief Open the garage door when homekit asks for it. 157 | */ 158 | static int garagedoor_write(hap_write_data_t write_data[], int count, 159 | void *serv_priv, void *write_priv) 160 | { 161 | if (hap_req_get_ctrl_id(write_priv)) { 162 | ESP_LOGI(TAG, "garagedoor received write from %s", hap_req_get_ctrl_id(write_priv)); 163 | } 164 | ESP_LOGI(TAG, "garagedoor write called with %d chars", count); 165 | int i, ret = HAP_SUCCESS; 166 | hap_write_data_t *write; 167 | for (i = 0; i < count; i++) { 168 | write = &write_data[i]; 169 | if (!strcmp(hap_char_get_type_uuid(write->hc), HAP_CHAR_UUID_TARGET_DOOR_STATE)) { 170 | ESP_LOGI(TAG, "garagedoor received write TargetDoorState: %s", garagedoor_target_state_string(write->val.b)); 171 | set_door_target_state(write->val.b); 172 | hap_char_update_val(write->hc, &(write->val)); 173 | *(write->status) = HAP_STATUS_SUCCESS; 174 | } else { 175 | *(write->status) = HAP_STATUS_RES_ABSENT; 176 | } 177 | } 178 | return ret; 179 | } 180 | 181 | /** 182 | * @brief Update our door and closeif switches status from the door switches 183 | */ 184 | void door_switches_update(bool state) 185 | { 186 | hap_val_t new_val; 187 | new_val.b = state; 188 | hap_char_update_val(door_switch_char, &new_val); 189 | hap_char_update_val(closeif_door_switch_char, &new_val); 190 | } 191 | 192 | /** 193 | * @brief Reads the status of the garage door to select if the switch should be on or off. We set it to ON 194 | * if the door it open, and off if its anything else. Used for the door_switch_service and closeif_switch_service. 195 | */ 196 | static int door_switch_read(hap_char_t *hc, hap_status_t *status_code, void *serv_priv, void *read_priv) 197 | { 198 | if (hap_req_get_ctrl_id(read_priv)) { 199 | ESP_LOGI(TAG, "closeif/door_switch received read from %s", hap_req_get_ctrl_id(read_priv)); 200 | } 201 | if (!strcmp(hap_char_get_type_uuid(hc), HAP_CHAR_UUID_ON)) 202 | { 203 | hap_val_t new_val; 204 | // use open as on 205 | new_val.b = (get_door_current_state()==CURRENT_STATE_OPEN); 206 | hap_char_update_val(hc, &new_val); 207 | *status_code = HAP_STATUS_SUCCESS; 208 | ESP_LOGI(TAG,"closeif/door_switch status updated to %s", (new_val.b)?"on(open)":"off(closed)"); 209 | } 210 | return HAP_SUCCESS; 211 | } 212 | 213 | /** 214 | * @brief Takes a request from homekit and sets the switch status. We use on for open and off for closed 215 | */ 216 | static int door_switch_write(hap_write_data_t write_data[], int count, void *serv_priv, void *write_priv) 217 | { 218 | if (hap_req_get_ctrl_id(write_priv)) { 219 | ESP_LOGI(TAG, "door switch received write from %s", hap_req_get_ctrl_id(write_priv)); 220 | } 221 | ESP_LOGI(TAG, "door switch write called with %d chars", count); 222 | int i, ret = HAP_SUCCESS; 223 | hap_write_data_t *write; 224 | for (i = 0; i < count; i++) { 225 | write = &write_data[i]; 226 | if (!strcmp(hap_char_get_type_uuid(write->hc), HAP_CHAR_UUID_ON)) { 227 | ESP_LOGI(TAG, "door switch received write On State: %s", write->val.b?"on(open)":"off(closed)"); 228 | set_door_target_state(write->val.b?TARGET_STATE_OPEN:TARGET_STATE_CLOSED); 229 | hap_char_update_val(write->hc, &(write->val)); 230 | *(write->status) = HAP_STATUS_SUCCESS; 231 | } else { 232 | *(write->status) = HAP_STATUS_RES_ABSENT; 233 | } 234 | } 235 | return ret; 236 | } 237 | 238 | /** 239 | * @brief Takes a request from homekit and sets the switch status. We use on for open and off for closed 240 | */ 241 | static int closeif_switch_write(hap_write_data_t write_data[], int count, void *serv_priv, void *write_priv) 242 | { 243 | if (hap_req_get_ctrl_id(write_priv)) { 244 | ESP_LOGI(TAG, "closeif received write from %s", hap_req_get_ctrl_id(write_priv)); 245 | } 246 | ESP_LOGI(TAG, "closeif write called with %d chars", count); 247 | int i, ret = HAP_SUCCESS; 248 | hap_write_data_t *write; 249 | for (i = 0; i < count; i++) { 250 | write = &write_data[i]; 251 | if (!strcmp(hap_char_get_type_uuid(write->hc), HAP_CHAR_UUID_ON)) { 252 | ESP_LOGI(TAG, "closeif received write ON State: %s", write->val.b?"on(open)":"off(closed)"); 253 | force_door_target_state(write->val.b?TARGET_STATE_OPEN:TARGET_STATE_CLOSED); 254 | hap_char_update_val(write->hc, &(write->val)); 255 | *(write->status) = HAP_STATUS_SUCCESS; 256 | } else { 257 | *(write->status) = HAP_STATUS_RES_ABSENT; 258 | } 259 | } 260 | return ret; 261 | } 262 | 263 | void open_sensor_update(uint8_t state) 264 | { 265 | hap_val_t new_val; 266 | new_val.i = state; 267 | hap_char_update_val(open_contact_char, &new_val); 268 | } 269 | 270 | static int open_sensor_read(hap_char_t *hc, hap_status_t *status_code, void *serv_priv, void *read_priv) 271 | { 272 | if (hap_req_get_ctrl_id(read_priv)) { 273 | ESP_LOGI(TAG, "open sensor received read from %s", hap_req_get_ctrl_id(read_priv)); 274 | } 275 | if (!strcmp(hap_char_get_type_uuid(hc), HAP_CHAR_UUID_CONTACT_SENSOR_STATE)) 276 | { 277 | hap_val_t new_val; 278 | // use open as on 279 | new_val.i = get_open_contact_status(); 280 | hap_char_update_val(hc, &new_val); 281 | *status_code = HAP_STATUS_SUCCESS; 282 | ESP_LOGI(TAG,"open sensor status updated to %s", contact_state_string(new_val.i)); 283 | } 284 | return HAP_SUCCESS; 285 | } 286 | 287 | void close_sensor_update(uint8_t state) 288 | { 289 | hap_val_t new_val; 290 | new_val.i = state; 291 | hap_char_update_val(close_contact_char, &new_val); 292 | } 293 | 294 | static int close_sensor_read(hap_char_t *hc, hap_status_t *status_code, void *serv_priv, void *read_priv) 295 | { 296 | if (hap_req_get_ctrl_id(read_priv)) { 297 | ESP_LOGI(TAG, "close sensor received read from %s", hap_req_get_ctrl_id(read_priv)); 298 | } 299 | if (!strcmp(hap_char_get_type_uuid(hc), HAP_CHAR_UUID_CONTACT_SENSOR_STATE)) 300 | { 301 | hap_val_t new_val; 302 | // use open as on 303 | new_val.i = get_close_contact_status(); 304 | hap_char_update_val(hc, &new_val); 305 | *status_code = HAP_STATUS_SUCCESS; 306 | ESP_LOGI(TAG,"close sensor status updated to %s", contact_state_string(new_val.i)); 307 | } 308 | return HAP_SUCCESS; 309 | } 310 | 311 | void motion_sensor_update(bool state) 312 | { 313 | hap_val_t new_val; 314 | new_val.b = state; 315 | hap_char_update_val(motion_sensor_char, &new_val); 316 | } 317 | 318 | static int motion_sensor_read(hap_char_t *hc, hap_status_t *status_code, void *serv_priv, void *read_priv) 319 | { 320 | if (hap_req_get_ctrl_id(read_priv)) { 321 | ESP_LOGI(TAG, "close sensor received read from %s", hap_req_get_ctrl_id(read_priv)); 322 | } 323 | if (!strcmp(hap_char_get_type_uuid(hc), HAP_CHAR_UUID_MOTION_DETECTED)) 324 | { 325 | hap_val_t new_val; 326 | // use open as on 327 | new_val.b = get_motion_detected(); 328 | hap_char_update_val(hc, &new_val); 329 | *status_code = HAP_STATUS_SUCCESS; 330 | ESP_LOGI(TAG,"motion sensor status updated to %s", new_val.b?"inmotion":"nomotion"); 331 | } 332 | return HAP_SUCCESS; 333 | } 334 | 335 | /** 336 | * @brief Main Thread to handle setting up the service and accessories for the GarageDoor 337 | */ 338 | static void garage_thread_entry(void *p) 339 | { 340 | hap_acc_t *garageaccessory = NULL; 341 | hap_serv_t *garagedoorservice = NULL; 342 | hap_serv_t *closeif_switch_service = NULL; 343 | hap_serv_t *door_switch_service = NULL; 344 | hap_serv_t *opencontact_sensor_service = NULL; 345 | hap_serv_t *closecontact_sensor_service = NULL; 346 | hap_serv_t *motion_sensor_service = NULL; 347 | 348 | /* 349 | * Configure the GPIO for the garage door state/relay control 350 | */ 351 | garagedoor_setup(); 352 | 353 | /* Configure HomeKit core to make the Accessory name (and thus the WAC SSID) unique, 354 | * instead of the default configuration wherein only the WAC SSID is made unique. 355 | */ 356 | ESP_LOGI(TAG, "configuring HAP"); 357 | hap_cfg_t hap_cfg; 358 | hap_get_config(&hap_cfg); 359 | hap_cfg.unique_param = UNIQUE_NAME; 360 | hap_set_config(&hap_cfg); 361 | 362 | ESP_LOGI(TAG, "initializing HAP"); 363 | /* Initialize the HAP core */ 364 | hap_init(HAP_TRANSPORT_WIFI); 365 | 366 | /* Initialise the mandatory parameters for Accessory which will be added as 367 | * the mandatory services internally 368 | */ 369 | hap_acc_cfg_t cfg = { 370 | .name = "Esp-GarageDoor", 371 | .manufacturer = "Espressif", 372 | .model = "EspGarageDoor01", 373 | .serial_num = "001122334455", 374 | .fw_rev = "0.9.0", 375 | .hw_rev = (char*)esp_get_idf_version(), 376 | .pv = "1.1.0", 377 | .identify_routine = garage_identify, 378 | .cid = HAP_CID_GARAGE_DOOR_OPENER, 379 | }; 380 | ESP_LOGI(TAG, "Creating garage door accessory..."); 381 | /* Create accessory object */ 382 | garageaccessory = hap_acc_create(&cfg); 383 | 384 | /* Add a dummy Product Data */ 385 | uint8_t product_data[] = {'E','S','P','3','2','H','A','P'}; 386 | hap_acc_add_product_data(garageaccessory, product_data, sizeof(product_data)); 387 | 388 | uint8_t currentdoorstate = get_door_current_state(); 389 | 390 | ESP_LOGI(TAG, "Creating garage door service (current state: %s)", garagedoor_current_state_string(currentdoorstate)); 391 | 392 | /* Create the GarageDoor Service. Include the "name" since this is a user visible service */ 393 | garagedoorservice = hap_serv_garage_door_opener_create(currentdoorstate, TARGET_STATE_CLOSED, false); 394 | hap_serv_add_char(garagedoorservice, hap_char_name_create("ESP Garage Door")); 395 | /* Set the write callback for the service */ 396 | hap_serv_set_write_cb(garagedoorservice, garagedoor_write); 397 | /* Set the read callback for the service (optional) */ 398 | hap_serv_set_read_cb(garagedoorservice, garagedoor_read); 399 | /* Add the Garage Service to the Accessory Object */ 400 | hap_acc_add_serv(garageaccessory, garagedoorservice); 401 | garage_door_current_status_char = hap_serv_get_char_by_uuid(garagedoorservice, HAP_CHAR_UUID_CURRENT_DOOR_STATE); 402 | 403 | ESP_LOGI(TAG, "Creating closeif service (current state: %s)", (currentdoorstate==CURRENT_STATE_OPEN)?"on(open)":"off(closed)"); 404 | // Create the CloseIf switch 405 | closeif_switch_service = hap_serv_switch_create((bool)(currentdoorstate==CURRENT_STATE_OPEN)); 406 | hap_serv_add_char(closeif_switch_service, hap_char_name_create("ESP CloseIf Door")); 407 | hap_serv_set_read_cb(closeif_switch_service, door_switch_read); 408 | hap_serv_set_write_cb(closeif_switch_service, closeif_switch_write); 409 | hap_acc_add_serv(garageaccessory, closeif_switch_service); 410 | closeif_door_switch_char = hap_serv_get_char_by_uuid(closeif_switch_service, HAP_CHAR_UUID_ON); 411 | 412 | ESP_LOGI(TAG, "Creating door switch service (current state: %s)", (currentdoorstate==CURRENT_STATE_OPEN)?"on(open)":"off(closed)"); 413 | // Create the CloseIf switch 414 | door_switch_service = hap_serv_switch_create((bool)(currentdoorstate==CURRENT_STATE_OPEN)); 415 | hap_serv_add_char(door_switch_service, hap_char_name_create("ESP Door Switch")); 416 | hap_serv_set_read_cb(door_switch_service, door_switch_read); 417 | hap_serv_set_write_cb(door_switch_service, door_switch_write); 418 | hap_acc_add_serv(garageaccessory, door_switch_service); 419 | door_switch_char = hap_serv_get_char_by_uuid(door_switch_service, HAP_CHAR_UUID_ON); 420 | 421 | // Create the open contact sensor 422 | uint8_t openstate = get_open_contact_status(); 423 | ESP_LOGI(TAG, "Creating open contact service (current state: %s)", contact_state_string(openstate)); 424 | opencontact_sensor_service = hap_serv_contact_sensor_create(openstate); 425 | hap_serv_add_char(opencontact_sensor_service, hap_char_name_create("ESP Open Contact Sensor")); 426 | hap_serv_set_read_cb(opencontact_sensor_service, open_sensor_read); 427 | hap_acc_add_serv(garageaccessory, opencontact_sensor_service); 428 | open_contact_char = hap_serv_get_char_by_uuid(opencontact_sensor_service, HAP_CHAR_UUID_CONTACT_SENSOR_STATE); 429 | 430 | // Create the open contact sensor 431 | uint8_t closestate = get_open_contact_status(); 432 | ESP_LOGI(TAG, "Creating close contact service (current state: %s)", contact_state_string(closestate)); 433 | closecontact_sensor_service = hap_serv_contact_sensor_create(get_close_contact_status()); 434 | hap_serv_add_char(closecontact_sensor_service, hap_char_name_create("ESP Close Contact Sensor")); 435 | hap_serv_set_read_cb(closecontact_sensor_service, close_sensor_read); 436 | hap_acc_add_serv(garageaccessory, closecontact_sensor_service); 437 | close_contact_char = hap_serv_get_char_by_uuid(closecontact_sensor_service, HAP_CHAR_UUID_CONTACT_SENSOR_STATE); 438 | 439 | bool inmotion = get_motion_detected(); 440 | ESP_LOGI(TAG, "Creating motion service (current state: %s)", inmotion?"inmotion":"nomotion"); 441 | motion_sensor_service = hap_serv_motion_sensor_create(inmotion); 442 | hap_serv_add_char(motion_sensor_service, hap_char_name_create("ESP Garage Motion Sensor")); 443 | hap_serv_set_read_cb(motion_sensor_service, motion_sensor_read); 444 | hap_acc_add_serv(garageaccessory, motion_sensor_service); 445 | motion_sensor_char = hap_serv_get_char_by_uuid(motion_sensor_service, HAP_CHAR_UUID_MOTION_DETECTED); 446 | 447 | 448 | #if 0 449 | /* Create the Firmware Upgrade HomeKit Custom Service. 450 | * Please refer the FW Upgrade documentation under components/homekit/extras/include/hap_fw_upgrade.h 451 | * and the top level README for more information. 452 | */ 453 | hap_fw_upgrade_config_t ota_config = { 454 | .server_cert_pem = server_cert, 455 | }; 456 | service = hap_serv_fw_upgrade_create(&ota_config); 457 | /* Add the service to the Accessory Object */ 458 | hap_acc_add_serv(accessory, service); 459 | #endif 460 | 461 | /* Add the Accessory to the HomeKit Database */ 462 | ESP_LOGI(TAG, "Adding Garage Door Accessory..."); 463 | hap_add_accessory(garageaccessory); 464 | 465 | /* Register a common button for reset Wi-Fi network and reset to factory. 466 | */ 467 | // ESP_LOGI(TAG, "Register reset GPIO (reset button) on pin %d", RESET_GPIO); 468 | // reset_key_init(RESET_GPIO); 469 | 470 | /* Register an event handler for HomeKit specific events */ 471 | esp_event_handler_register(HAP_EVENT, ESP_EVENT_ANY_ID, &garage_hap_event_handler, NULL); 472 | 473 | /* Query the controller count (just for information) */ 474 | ESP_LOGI(TAG, "Accessory is paired with %d controllers", hap_get_paired_controller_count()); 475 | 476 | 477 | /* For production accessories, the setup code shouldn't be programmed on to 478 | * the device. Instead, the setup info, derived from the setup code must 479 | * be used. Use the factory_nvs_gen utility to generate this data and then 480 | * flash it into the factory NVS partition. 481 | * 482 | * By default, the setup ID and setup info will be read from the factory_nvs 483 | * Flash partition and so, is not required to set here explicitly. 484 | * 485 | * However, for testing purpose, this can be overridden by using hap_set_setup_code() 486 | * and hap_set_setup_id() APIs, as has been done here. 487 | * 488 | * That said, this garage door controller is meant for home use, and not for production, 489 | * so it it OK to hard code the device info. 490 | */ 491 | #ifdef CONFIG_HOMEKIT_USE_HARDCODED_SETUP_CODE 492 | /* Unique Setup code of the format xxx-xx-xxx. Default: 111-22-333 */ 493 | hap_set_setup_code(CONFIG_HOMEKIT_SETUP_CODE); 494 | /* Unique four character Setup Id. Default: ES32 */ 495 | hap_set_setup_id(CONFIG_HOMEKIT_SETUP_ID); 496 | #ifdef CONFIG_APP_WIFI_USE_WAC_PROVISIONING 497 | app_hap_setup_payload(CONFIG_HOMEKIT_SETUP_CODE, CONFIG_HOMEKIT_SETUP_ID, true, cfg.cid); 498 | #else 499 | app_hap_setup_payload(CONFIG_HOMEKIT_SETUP_CODE, CONFIG_HOMEKIT_SETUP_ID, false, cfg.cid); 500 | #endif 501 | #endif 502 | 503 | /* mfi is not supported */ 504 | hap_enable_mfi_auth(HAP_MFI_AUTH_NONE); 505 | 506 | ESP_LOGI(TAG, "Starting WIFI..."); 507 | /* Initialize Wi-Fi */ 508 | network_setup(); 509 | 510 | start_garagedoor(); 511 | 512 | network_waitforconnect(); 513 | 514 | 515 | /* After all the initializations are done, start the HAP core */ 516 | ESP_LOGI(TAG, "Starting HAP..."); 517 | hap_start(); 518 | 519 | ESP_LOGI(TAG, "HAP initialization complete."); 520 | 521 | /* The task ends here. The read/write callbacks will be invoked by the HAP Framework */ 522 | vTaskDelete(NULL); 523 | } 524 | 525 | #ifdef CONFIG_ESP_BLUFI_ENABLED 526 | /** 527 | * Define our commands to use for the blufi custom data 528 | */ 529 | #define NUMCMDS 3 530 | static bluficmd_t blufi_commands[NUMCMDS] = { 531 | { "reboot", &reboot_system }, 532 | { "habreset", &reset_to_factory_handler }, 533 | { "netreset", &reset_network_handler }, 534 | }; 535 | 536 | void process_custom_cmd(const char* data) 537 | { 538 | ESP_LOGI(TAG, "Received command: %s", data); 539 | for(int i=0; i < NUMCMDS; i++) 540 | { 541 | ESP_LOGI(TAG, "Found cmd: %s", blufi_commands[i].command); 542 | if (strcmp(blufi_commands[i].command, data) == 0) 543 | { 544 | ESP_LOGI(TAG, "Running command: %s", blufi_commands[i].command); 545 | blufi_commands[i].cmd_callback(); 546 | break; 547 | } 548 | } 549 | } 550 | #endif 551 | 552 | void app_main() 553 | { 554 | ESP_LOGI(TAG, "[APP] Startup..."); 555 | ESP_LOGI(TAG, "[APP] Free memory: %d bytes", esp_get_free_heap_size()); 556 | ESP_LOGI(TAG, "[APP] IDF version: %s", esp_get_idf_version()); 557 | 558 | esp_log_level_set("*", ESP_LOG_INFO); 559 | esp_log_level_set("TRANSPORT_TCP", ESP_LOG_VERBOSE); 560 | esp_log_level_set("TRANSPORT_SSL", ESP_LOG_VERBOSE); 561 | esp_log_level_set("TRANSPORT", ESP_LOG_VERBOSE); 562 | esp_log_level_set("OUTBOX", ESP_LOG_VERBOSE); 563 | 564 | #ifdef CONFIG_ESP_BLUFI_ENABLED 565 | void (*ptr_callback)(const char*) = &process_custom_cmd; 566 | set_custom_command_callback(ptr_callback); 567 | #endif 568 | 569 | ESP_LOGI(TAG, "[APP] Creating main thread..."); 570 | 571 | xTaskCreate(garage_thread_entry, GARAGEDOOR_TASK_NAME, GARAGEDOOR_TASK_STACKSIZE, NULL, GARAGEDOOR_TASK_PRIORITY, NULL); 572 | } 573 | -------------------------------------------------------------------------------- /main/src/garagedoor.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include "freertos/queue.h" 7 | #include 8 | #include 9 | #include "driver/gpio.h" 10 | //#include 11 | #include 12 | #include "app_main.h" 13 | #include "homekit_states.h" 14 | 15 | 16 | static const char *TAG = "GDGPIO"; 17 | 18 | static QueueHandle_t gpio_evt_queue = NULL; 19 | static uint8_t default_door_state = CURRENT_STATE_STOPPED; 20 | 21 | static const long long unsigned int GPIO_OUTPUT_PIN_SEL = (1ULL< 2 | #include 3 | #include 4 | 5 | #include "homekit_states.h" 6 | 7 | static char *garagedoor_current_states[] = { 8 | "open", 9 | "closed", 10 | "opening", 11 | "closing", 12 | "stopped" 13 | }; 14 | 15 | static char *garagedoor_target_states[] = { 16 | "open", 17 | "close" 18 | }; 19 | 20 | static char *contact_state[] = 21 | { 22 | "contact detected", 23 | "contact not detected" 24 | }; 25 | 26 | /** 27 | * @brief Change the Garage Door current status to a string 28 | * 29 | * @param(status) - current status 30 | * 31 | * @return string to the name of the status 32 | */ 33 | 34 | char *garagedoor_current_state_string(uint8_t state) 35 | { 36 | if (state>CURRENT_STATE_STOPPED) 37 | { 38 | state = CURRENT_STATE_OPEN; 39 | } 40 | return (garagedoor_current_states[state]); 41 | } 42 | 43 | /** 44 | * @brief Change the Garage Door target status to a string 45 | * 46 | * @param(status) - target status 47 | * 48 | * @return string to the name of the status 49 | */ 50 | 51 | char *garagedoor_target_state_string(uint8_t state) 52 | { 53 | if (state>TARGET_STATE_CLOSED) 54 | { 55 | state = TARGET_STATE_CLOSED; 56 | } 57 | return (garagedoor_target_states[state]); 58 | } 59 | 60 | /** 61 | * @brief Change the contact sensor status to a string 62 | * 63 | * @param(status) - contact status 64 | * 65 | * @return string to the name of the status 66 | */ 67 | 68 | char *contact_state_string(uint8_t state) 69 | { 70 | if (state>CONTACT_NOT_DETECTED) 71 | { 72 | state = CONTACT_NOT_DETECTED; 73 | } 74 | return (contact_state[state]); 75 | } -------------------------------------------------------------------------------- /partitions_hap.csv: -------------------------------------------------------------------------------- 1 | # Name, Type, SubType, Offset, Size, Flags 2 | # Note: Firmware partition offset needs to be 64K aligned, initial 36K (9 sectors) are reserved for bootloader and partition table 3 | sec_cert, 0x3F, ,0xd000, 0x3000, , # Never mark this as an encrypted partition 4 | nvs, data, nvs, 0x10000, 0x6000, 5 | otadata, data, ota, , 0x2000 6 | phy_init, data, phy, , 0x1000, 7 | ota_0, app, ota_0, 0x20000, 1600K, 8 | ota_1, app, ota_1, , 1600K, 9 | factory_nvs, data, nvs, 0x340000, 0x6000 10 | nvs_keys, data, nvs_keys,0x346000, 0x1000 11 | -------------------------------------------------------------------------------- /sdkconfig.base: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated file. DO NOT EDIT. 3 | # Espressif IoT Development Framework (ESP-IDF) Project Configuration 4 | # 5 | CONFIG_IDF_CMAKE=y 6 | CONFIG_IDF_TARGET_ARCH_XTENSA=y 7 | CONFIG_IDF_TARGET="esp32" 8 | CONFIG_IDF_TARGET_ESP32=y 9 | CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 10 | 11 | # 12 | # SDK tool configuration 13 | # 14 | CONFIG_SDK_TOOLPREFIX="xtensa-esp32-elf-" 15 | # CONFIG_SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS is not set 16 | # end of SDK tool configuration 17 | 18 | # 19 | # Build type 20 | # 21 | CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y 22 | # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set 23 | CONFIG_APP_BUILD_GENERATE_BINARIES=y 24 | CONFIG_APP_BUILD_BOOTLOADER=y 25 | CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y 26 | # end of Build type 27 | 28 | # 29 | # Application manager 30 | # 31 | CONFIG_APP_COMPILE_TIME_DATE=y 32 | # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set 33 | # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set 34 | CONFIG_APP_PROJECT_VER_FROM_CONFIG=y 35 | CONFIG_APP_PROJECT_VER="1.2.0-private" 36 | CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 37 | # end of Application manager 38 | 39 | # 40 | # Bootloader config 41 | # 42 | CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 43 | CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y 44 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set 45 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set 46 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set 47 | # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set 48 | # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set 49 | # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set 50 | CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y 51 | # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set 52 | # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set 53 | CONFIG_BOOTLOADER_LOG_LEVEL=3 54 | # CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set 55 | CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y 56 | # CONFIG_BOOTLOADER_FACTORY_RESET is not set 57 | # CONFIG_BOOTLOADER_APP_TEST is not set 58 | CONFIG_BOOTLOADER_WDT_ENABLE=y 59 | # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set 60 | CONFIG_BOOTLOADER_WDT_TIME_MS=9000 61 | # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set 62 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set 63 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set 64 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set 65 | CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 66 | # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set 67 | CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y 68 | # end of Bootloader config 69 | 70 | # 71 | # Security features 72 | # 73 | # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set 74 | # CONFIG_SECURE_BOOT is not set 75 | # CONFIG_SECURE_FLASH_ENC_ENABLED is not set 76 | # end of Security features 77 | 78 | # 79 | # Serial flasher config 80 | # 81 | CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 82 | # CONFIG_ESPTOOLPY_NO_STUB is not set 83 | # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set 84 | # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set 85 | CONFIG_ESPTOOLPY_FLASHMODE_DIO=y 86 | # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set 87 | CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y 88 | CONFIG_ESPTOOLPY_FLASHMODE="dio" 89 | # CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set 90 | CONFIG_ESPTOOLPY_FLASHFREQ_40M=y 91 | # CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set 92 | # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set 93 | CONFIG_ESPTOOLPY_FLASHFREQ="40m" 94 | # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set 95 | # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set 96 | CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y 97 | # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set 98 | # CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set 99 | CONFIG_ESPTOOLPY_FLASHSIZE="4MB" 100 | CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y 101 | CONFIG_ESPTOOLPY_BEFORE_RESET=y 102 | # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set 103 | CONFIG_ESPTOOLPY_BEFORE="default_reset" 104 | CONFIG_ESPTOOLPY_AFTER_RESET=y 105 | # CONFIG_ESPTOOLPY_AFTER_NORESET is not set 106 | CONFIG_ESPTOOLPY_AFTER="hard_reset" 107 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_CONSOLE is not set 108 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_9600B is not set 109 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_57600B is not set 110 | CONFIG_ESPTOOLPY_MONITOR_BAUD_115200B=y 111 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_230400B is not set 112 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_921600B is not set 113 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_2MB is not set 114 | # CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER is not set 115 | CONFIG_ESPTOOLPY_MONITOR_BAUD_OTHER_VAL=115200 116 | CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 117 | # end of Serial flasher config 118 | 119 | # 120 | # Partition Table 121 | # 122 | # CONFIG_PARTITION_TABLE_SINGLE_APP is not set 123 | # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set 124 | # CONFIG_PARTITION_TABLE_TWO_OTA is not set 125 | CONFIG_PARTITION_TABLE_CUSTOM=y 126 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_hap.csv" 127 | CONFIG_PARTITION_TABLE_FILENAME="partitions_hap.csv" 128 | CONFIG_PARTITION_TABLE_OFFSET=0x8000 129 | CONFIG_PARTITION_TABLE_MD5=y 130 | # end of Partition Table 131 | 132 | # 133 | # Homekit Configuration 134 | # 135 | CONFIG_HOMEKIT_USE_HARDCODED_SETUP_CODE=y 136 | CONFIG_HOMEKIT_SETUP_CODE="111-22-333" 137 | CONFIG_HOMEKIT_SETUP_ID="ES32" 138 | # end of Homekit Configuration 139 | 140 | # 141 | # Garage Door GPIO Configuration 142 | # 143 | CONFIG_GPIO_OUTPUT_IO_RELAY=26 144 | CONFIG_GPIO_INPUT_IO_OPEN=27 145 | CONFIG_GPIO_INPUT_IO_CLOSE=25 146 | # end of Garage Door GPIO Configuration 147 | 148 | # 149 | # Button Lib Configuration 150 | # 151 | CONFIG_LONG_PRESS_DURATION=2 152 | CONFIG_LONG_PRESS_REPEAT=50 153 | # end of Button Lib Configuration 154 | 155 | # 156 | # WIFI Configuration 157 | # 158 | CONFIG_ESP_WIFI_ENABLED=y 159 | CONFIG_ESP_BLUFI_ENABLED=y 160 | # CONFIG_ESP_MANUAL_WIFI_ENABLED is not set 161 | CONFIG_BT_ENABLED=y 162 | CONFIG_BT_DEVICE_NAME="ESP32GarageDoor" 163 | CONFIG_ESP_WIFI_RETRY_DELAY=8 164 | CONFIG_ESP_WIFI_REBOOT_ENABLED=y 165 | CONFIG_ESP_WIFI_REBOOT_COUNT=20 166 | # end of WIFI Configuration 167 | 168 | # 169 | # Ethernet Configuration 170 | # 171 | # CONFIG_ESP_ETHERNET_ENABLED is not set 172 | # end of Ethernet Configuration 173 | 174 | # 175 | # Compiler options 176 | # 177 | CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y 178 | # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set 179 | # CONFIG_COMPILER_OPTIMIZATION_PERF is not set 180 | # CONFIG_COMPILER_OPTIMIZATION_NONE is not set 181 | CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y 182 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set 183 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set 184 | CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 185 | # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set 186 | CONFIG_COMPILER_HIDE_PATHS_MACROS=y 187 | # CONFIG_COMPILER_CXX_EXCEPTIONS is not set 188 | # CONFIG_COMPILER_CXX_RTTI is not set 189 | CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y 190 | # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set 191 | # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set 192 | # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set 193 | # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set 194 | # CONFIG_COMPILER_DISABLE_GCC8_WARNINGS is not set 195 | # CONFIG_COMPILER_DUMP_RTL_FILES is not set 196 | # end of Compiler options 197 | 198 | # 199 | # Component config 200 | # 201 | 202 | # 203 | # Application Level Tracing 204 | # 205 | # CONFIG_APPTRACE_DEST_JTAG is not set 206 | CONFIG_APPTRACE_DEST_NONE=y 207 | CONFIG_APPTRACE_LOCK_ENABLE=y 208 | # end of Application Level Tracing 209 | 210 | # 211 | # ESP-ASIO 212 | # 213 | # CONFIG_ASIO_SSL_SUPPORT is not set 214 | # end of ESP-ASIO 215 | 216 | # 217 | # Bluetooth 218 | # 219 | 220 | # 221 | # Bluetooth controller 222 | # 223 | CONFIG_BTDM_CTRL_MODE_BLE_ONLY=y 224 | # CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY is not set 225 | # CONFIG_BTDM_CTRL_MODE_BTDM is not set 226 | CONFIG_BTDM_CTRL_BLE_MAX_CONN=3 227 | CONFIG_BTDM_CTRL_BR_EDR_SCO_DATA_PATH_EFF=0 228 | CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0 229 | CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0 230 | CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=3 231 | CONFIG_BTDM_CTRL_BR_EDR_MAX_ACL_CONN_EFF=0 232 | CONFIG_BTDM_CTRL_BR_EDR_MAX_SYNC_CONN_EFF=0 233 | CONFIG_BTDM_CTRL_PINNED_TO_CORE=0 234 | CONFIG_BTDM_CTRL_HCI_MODE_VHCI=y 235 | # CONFIG_BTDM_CTRL_HCI_MODE_UART_H4 is not set 236 | 237 | # 238 | # MODEM SLEEP Options 239 | # 240 | CONFIG_BTDM_CTRL_MODEM_SLEEP=y 241 | CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_ORIG=y 242 | # CONFIG_BTDM_CTRL_MODEM_SLEEP_MODE_EVED is not set 243 | CONFIG_BTDM_CTRL_LPCLK_SEL_MAIN_XTAL=y 244 | # end of MODEM SLEEP Options 245 | 246 | CONFIG_BTDM_BLE_DEFAULT_SCA_250PPM=y 247 | CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1 248 | CONFIG_BTDM_BLE_SCAN_DUPL=y 249 | CONFIG_BTDM_SCAN_DUPL_TYPE_DEVICE=y 250 | # CONFIG_BTDM_SCAN_DUPL_TYPE_DATA is not set 251 | # CONFIG_BTDM_SCAN_DUPL_TYPE_DATA_DEVICE is not set 252 | CONFIG_BTDM_SCAN_DUPL_TYPE=0 253 | CONFIG_BTDM_SCAN_DUPL_CACHE_SIZE=200 254 | # CONFIG_BTDM_BLE_MESH_SCAN_DUPL_EN is not set 255 | CONFIG_BTDM_CTRL_FULL_SCAN_SUPPORTED=y 256 | CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_SUPP=y 257 | CONFIG_BTDM_BLE_ADV_REPORT_FLOW_CTRL_NUM=100 258 | CONFIG_BTDM_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 259 | CONFIG_BTDM_RESERVE_DRAM=0xdb5c 260 | CONFIG_BTDM_CTRL_HLI=y 261 | # end of Bluetooth controller 262 | 263 | CONFIG_BT_BLUEDROID_ENABLED=y 264 | # CONFIG_BT_NIMBLE_ENABLED is not set 265 | # CONFIG_BT_CONTROLLER_ONLY is not set 266 | 267 | # 268 | # Bluedroid Options 269 | # 270 | CONFIG_BT_BTC_TASK_STACK_SIZE=3072 271 | CONFIG_BT_BLUEDROID_PINNED_TO_CORE=0 272 | CONFIG_BT_BTU_TASK_STACK_SIZE=4096 273 | # CONFIG_BT_BLUEDROID_MEM_DEBUG is not set 274 | # CONFIG_BT_CLASSIC_ENABLED is not set 275 | CONFIG_BT_BLE_ENABLED=y 276 | CONFIG_BT_GATTS_ENABLE=y 277 | # CONFIG_BT_GATTS_PPCP_CHAR_GAP is not set 278 | CONFIG_BT_BLE_BLUFI_ENABLE=y 279 | CONFIG_BT_GATT_MAX_SR_PROFILES=8 280 | # CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_MANUAL is not set 281 | CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_AUTO=y 282 | CONFIG_BT_GATTS_SEND_SERVICE_CHANGE_MODE=0 283 | CONFIG_BT_GATTC_ENABLE=y 284 | # CONFIG_BT_GATTC_CACHE_NVS_FLASH is not set 285 | CONFIG_BT_GATTC_CONNECT_RETRY_COUNT=3 286 | CONFIG_BT_BLE_SMP_ENABLE=y 287 | # CONFIG_BT_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set 288 | # CONFIG_BT_STACK_NO_LOG is not set 289 | 290 | # 291 | # BT DEBUG LOG LEVEL 292 | # 293 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_NONE is not set 294 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_ERROR is not set 295 | CONFIG_BT_LOG_HCI_TRACE_LEVEL_WARNING=y 296 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_API is not set 297 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_EVENT is not set 298 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_DEBUG is not set 299 | # CONFIG_BT_LOG_HCI_TRACE_LEVEL_VERBOSE is not set 300 | CONFIG_BT_LOG_HCI_TRACE_LEVEL=2 301 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_NONE is not set 302 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_ERROR is not set 303 | CONFIG_BT_LOG_BTM_TRACE_LEVEL_WARNING=y 304 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_API is not set 305 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_EVENT is not set 306 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_DEBUG is not set 307 | # CONFIG_BT_LOG_BTM_TRACE_LEVEL_VERBOSE is not set 308 | CONFIG_BT_LOG_BTM_TRACE_LEVEL=2 309 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_NONE is not set 310 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_ERROR is not set 311 | CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_WARNING=y 312 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_API is not set 313 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_EVENT is not set 314 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_DEBUG is not set 315 | # CONFIG_BT_LOG_L2CAP_TRACE_LEVEL_VERBOSE is not set 316 | CONFIG_BT_LOG_L2CAP_TRACE_LEVEL=2 317 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_NONE is not set 318 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_ERROR is not set 319 | CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_WARNING=y 320 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_API is not set 321 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_EVENT is not set 322 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_DEBUG is not set 323 | # CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL_VERBOSE is not set 324 | CONFIG_BT_LOG_RFCOMM_TRACE_LEVEL=2 325 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_NONE is not set 326 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_ERROR is not set 327 | CONFIG_BT_LOG_SDP_TRACE_LEVEL_WARNING=y 328 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_API is not set 329 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_EVENT is not set 330 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_DEBUG is not set 331 | # CONFIG_BT_LOG_SDP_TRACE_LEVEL_VERBOSE is not set 332 | CONFIG_BT_LOG_SDP_TRACE_LEVEL=2 333 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_NONE is not set 334 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_ERROR is not set 335 | CONFIG_BT_LOG_GAP_TRACE_LEVEL_WARNING=y 336 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_API is not set 337 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_EVENT is not set 338 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_DEBUG is not set 339 | # CONFIG_BT_LOG_GAP_TRACE_LEVEL_VERBOSE is not set 340 | CONFIG_BT_LOG_GAP_TRACE_LEVEL=2 341 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_NONE is not set 342 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_ERROR is not set 343 | CONFIG_BT_LOG_BNEP_TRACE_LEVEL_WARNING=y 344 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_API is not set 345 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_EVENT is not set 346 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_DEBUG is not set 347 | # CONFIG_BT_LOG_BNEP_TRACE_LEVEL_VERBOSE is not set 348 | CONFIG_BT_LOG_BNEP_TRACE_LEVEL=2 349 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_NONE is not set 350 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_ERROR is not set 351 | CONFIG_BT_LOG_PAN_TRACE_LEVEL_WARNING=y 352 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_API is not set 353 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_EVENT is not set 354 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_DEBUG is not set 355 | # CONFIG_BT_LOG_PAN_TRACE_LEVEL_VERBOSE is not set 356 | CONFIG_BT_LOG_PAN_TRACE_LEVEL=2 357 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_NONE is not set 358 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_ERROR is not set 359 | CONFIG_BT_LOG_A2D_TRACE_LEVEL_WARNING=y 360 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_API is not set 361 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_EVENT is not set 362 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_DEBUG is not set 363 | # CONFIG_BT_LOG_A2D_TRACE_LEVEL_VERBOSE is not set 364 | CONFIG_BT_LOG_A2D_TRACE_LEVEL=2 365 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_NONE is not set 366 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_ERROR is not set 367 | CONFIG_BT_LOG_AVDT_TRACE_LEVEL_WARNING=y 368 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_API is not set 369 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_EVENT is not set 370 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_DEBUG is not set 371 | # CONFIG_BT_LOG_AVDT_TRACE_LEVEL_VERBOSE is not set 372 | CONFIG_BT_LOG_AVDT_TRACE_LEVEL=2 373 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_NONE is not set 374 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_ERROR is not set 375 | CONFIG_BT_LOG_AVCT_TRACE_LEVEL_WARNING=y 376 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_API is not set 377 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_EVENT is not set 378 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_DEBUG is not set 379 | # CONFIG_BT_LOG_AVCT_TRACE_LEVEL_VERBOSE is not set 380 | CONFIG_BT_LOG_AVCT_TRACE_LEVEL=2 381 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_NONE is not set 382 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_ERROR is not set 383 | CONFIG_BT_LOG_AVRC_TRACE_LEVEL_WARNING=y 384 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_API is not set 385 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_EVENT is not set 386 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_DEBUG is not set 387 | # CONFIG_BT_LOG_AVRC_TRACE_LEVEL_VERBOSE is not set 388 | CONFIG_BT_LOG_AVRC_TRACE_LEVEL=2 389 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_NONE is not set 390 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_ERROR is not set 391 | CONFIG_BT_LOG_MCA_TRACE_LEVEL_WARNING=y 392 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_API is not set 393 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_EVENT is not set 394 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_DEBUG is not set 395 | # CONFIG_BT_LOG_MCA_TRACE_LEVEL_VERBOSE is not set 396 | CONFIG_BT_LOG_MCA_TRACE_LEVEL=2 397 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_NONE is not set 398 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_ERROR is not set 399 | CONFIG_BT_LOG_HID_TRACE_LEVEL_WARNING=y 400 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_API is not set 401 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_EVENT is not set 402 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_DEBUG is not set 403 | # CONFIG_BT_LOG_HID_TRACE_LEVEL_VERBOSE is not set 404 | CONFIG_BT_LOG_HID_TRACE_LEVEL=2 405 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_NONE is not set 406 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_ERROR is not set 407 | CONFIG_BT_LOG_APPL_TRACE_LEVEL_WARNING=y 408 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_API is not set 409 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_EVENT is not set 410 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_DEBUG is not set 411 | # CONFIG_BT_LOG_APPL_TRACE_LEVEL_VERBOSE is not set 412 | CONFIG_BT_LOG_APPL_TRACE_LEVEL=2 413 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_NONE is not set 414 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_ERROR is not set 415 | CONFIG_BT_LOG_GATT_TRACE_LEVEL_WARNING=y 416 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_API is not set 417 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_EVENT is not set 418 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_DEBUG is not set 419 | # CONFIG_BT_LOG_GATT_TRACE_LEVEL_VERBOSE is not set 420 | CONFIG_BT_LOG_GATT_TRACE_LEVEL=2 421 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_NONE is not set 422 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_ERROR is not set 423 | CONFIG_BT_LOG_SMP_TRACE_LEVEL_WARNING=y 424 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_API is not set 425 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_EVENT is not set 426 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_DEBUG is not set 427 | # CONFIG_BT_LOG_SMP_TRACE_LEVEL_VERBOSE is not set 428 | CONFIG_BT_LOG_SMP_TRACE_LEVEL=2 429 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_NONE is not set 430 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_ERROR is not set 431 | CONFIG_BT_LOG_BTIF_TRACE_LEVEL_WARNING=y 432 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_API is not set 433 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_EVENT is not set 434 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_DEBUG is not set 435 | # CONFIG_BT_LOG_BTIF_TRACE_LEVEL_VERBOSE is not set 436 | CONFIG_BT_LOG_BTIF_TRACE_LEVEL=2 437 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_NONE is not set 438 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_ERROR is not set 439 | CONFIG_BT_LOG_BTC_TRACE_LEVEL_WARNING=y 440 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_API is not set 441 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_EVENT is not set 442 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_DEBUG is not set 443 | # CONFIG_BT_LOG_BTC_TRACE_LEVEL_VERBOSE is not set 444 | CONFIG_BT_LOG_BTC_TRACE_LEVEL=2 445 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_NONE is not set 446 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_ERROR is not set 447 | CONFIG_BT_LOG_OSI_TRACE_LEVEL_WARNING=y 448 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_API is not set 449 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_EVENT is not set 450 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_DEBUG is not set 451 | # CONFIG_BT_LOG_OSI_TRACE_LEVEL_VERBOSE is not set 452 | CONFIG_BT_LOG_OSI_TRACE_LEVEL=2 453 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_NONE is not set 454 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_ERROR is not set 455 | CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_WARNING=y 456 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_API is not set 457 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_EVENT is not set 458 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_DEBUG is not set 459 | # CONFIG_BT_LOG_BLUFI_TRACE_LEVEL_VERBOSE is not set 460 | CONFIG_BT_LOG_BLUFI_TRACE_LEVEL=2 461 | # end of BT DEBUG LOG LEVEL 462 | 463 | CONFIG_BT_ACL_CONNECTIONS=4 464 | CONFIG_BT_MULTI_CONNECTION_ENBALE=y 465 | # CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST is not set 466 | # CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is not set 467 | # CONFIG_BT_BLE_HOST_QUEUE_CONG_CHECK is not set 468 | CONFIG_BT_SMP_ENABLE=y 469 | # CONFIG_BT_BLE_ACT_SCAN_REP_ADV_SCAN is not set 470 | CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30 471 | # CONFIG_BT_BLE_RPA_SUPPORTED is not set 472 | # end of Bluedroid Options 473 | # end of Bluetooth 474 | 475 | # CONFIG_BLE_MESH is not set 476 | 477 | # 478 | # CoAP Configuration 479 | # 480 | CONFIG_COAP_MBEDTLS_PSK=y 481 | # CONFIG_COAP_MBEDTLS_PKI is not set 482 | # CONFIG_COAP_MBEDTLS_DEBUG is not set 483 | CONFIG_COAP_LOG_DEFAULT_LEVEL=0 484 | # end of CoAP Configuration 485 | 486 | # 487 | # Driver configurations 488 | # 489 | 490 | # 491 | # ADC configuration 492 | # 493 | # CONFIG_ADC_FORCE_XPD_FSM is not set 494 | CONFIG_ADC_DISABLE_DAC=y 495 | # end of ADC configuration 496 | 497 | # 498 | # MCPWM configuration 499 | # 500 | # CONFIG_MCPWM_ISR_IN_IRAM is not set 501 | # end of MCPWM configuration 502 | 503 | # 504 | # SPI configuration 505 | # 506 | # CONFIG_SPI_MASTER_IN_IRAM is not set 507 | CONFIG_SPI_MASTER_ISR_IN_IRAM=y 508 | # CONFIG_SPI_SLAVE_IN_IRAM is not set 509 | CONFIG_SPI_SLAVE_ISR_IN_IRAM=y 510 | # end of SPI configuration 511 | 512 | # 513 | # TWAI configuration 514 | # 515 | # CONFIG_TWAI_ISR_IN_IRAM is not set 516 | # CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC is not set 517 | # CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST is not set 518 | # CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID is not set 519 | # CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT is not set 520 | # end of TWAI configuration 521 | 522 | # 523 | # UART configuration 524 | # 525 | # CONFIG_UART_ISR_IN_IRAM is not set 526 | # end of UART configuration 527 | 528 | # 529 | # RTCIO configuration 530 | # 531 | # CONFIG_RTCIO_SUPPORT_RTC_GPIO_DESC is not set 532 | # end of RTCIO configuration 533 | 534 | # 535 | # GPIO Configuration 536 | # 537 | # CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set 538 | # end of GPIO Configuration 539 | 540 | # 541 | # GDMA Configuration 542 | # 543 | # CONFIG_GDMA_CTRL_FUNC_IN_IRAM is not set 544 | # CONFIG_GDMA_ISR_IRAM_SAFE is not set 545 | # end of GDMA Configuration 546 | # end of Driver configurations 547 | 548 | # 549 | # eFuse Bit Manager 550 | # 551 | # CONFIG_EFUSE_CUSTOM_TABLE is not set 552 | # CONFIG_EFUSE_VIRTUAL is not set 553 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set 554 | CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y 555 | # CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set 556 | CONFIG_EFUSE_MAX_BLK_LEN=192 557 | # end of eFuse Bit Manager 558 | 559 | # 560 | # ESP-TLS 561 | # 562 | CONFIG_ESP_TLS_USING_MBEDTLS=y 563 | # CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set 564 | # CONFIG_ESP_TLS_SERVER is not set 565 | # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set 566 | # CONFIG_ESP_TLS_PSK_VERIFICATION is not set 567 | # CONFIG_ESP_TLS_INSECURE is not set 568 | # end of ESP-TLS 569 | 570 | # 571 | # ESP32-specific 572 | # 573 | CONFIG_ESP32_REV_MIN_0=y 574 | # CONFIG_ESP32_REV_MIN_1 is not set 575 | # CONFIG_ESP32_REV_MIN_2 is not set 576 | # CONFIG_ESP32_REV_MIN_3 is not set 577 | CONFIG_ESP32_REV_MIN=0 578 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set 579 | # CONFIG_ESP32_DEFAULT_CPU_FREQ_160 is not set 580 | CONFIG_ESP32_DEFAULT_CPU_FREQ_240=y 581 | CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=240 582 | # CONFIG_ESP32_SPIRAM_SUPPORT is not set 583 | # CONFIG_ESP32_TRAX is not set 584 | CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 585 | # CONFIG_ESP32_ULP_COPROC_ENABLED is not set 586 | CONFIG_ESP32_ULP_COPROC_RESERVE_MEM=0 587 | CONFIG_ESP32_DEBUG_OCDAWARE=y 588 | CONFIG_ESP32_BROWNOUT_DET=y 589 | CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y 590 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set 591 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set 592 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set 593 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set 594 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set 595 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set 596 | # CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set 597 | CONFIG_ESP32_BROWNOUT_DET_LVL=0 598 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y 599 | # CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set 600 | # CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set 601 | # CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set 602 | CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y 603 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set 604 | # CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set 605 | # CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set 606 | CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 607 | CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 608 | CONFIG_ESP32_XTAL_FREQ_40=y 609 | # CONFIG_ESP32_XTAL_FREQ_26 is not set 610 | # CONFIG_ESP32_XTAL_FREQ_AUTO is not set 611 | CONFIG_ESP32_XTAL_FREQ=40 612 | # CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set 613 | # CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 614 | # CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set 615 | # CONFIG_ESP32_RTCDATA_IN_FAST_MEM is not set 616 | # CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set 617 | CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL=5 618 | # CONFIG_ESP32_IRAM_AS_8BIT_ACCESSIBLE_MEMORY is not set 619 | # end of ESP32-specific 620 | 621 | # 622 | # ADC-Calibration 623 | # 624 | CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y 625 | CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y 626 | CONFIG_ADC_CAL_LUT_ENABLE=y 627 | # end of ADC-Calibration 628 | 629 | # 630 | # Common ESP-related 631 | # 632 | CONFIG_ESP_ERR_TO_NAME_LOOKUP=y 633 | # end of Common ESP-related 634 | 635 | # 636 | # Ethernet 637 | # 638 | CONFIG_ETH_ENABLED=y 639 | CONFIG_ETH_USE_ESP32_EMAC=y 640 | CONFIG_ETH_PHY_INTERFACE_RMII=y 641 | CONFIG_ETH_RMII_CLK_INPUT=y 642 | # CONFIG_ETH_RMII_CLK_OUTPUT is not set 643 | CONFIG_ETH_RMII_CLK_IN_GPIO=0 644 | CONFIG_ETH_DMA_BUFFER_SIZE=512 645 | CONFIG_ETH_DMA_RX_BUFFER_NUM=10 646 | CONFIG_ETH_DMA_TX_BUFFER_NUM=10 647 | CONFIG_ETH_USE_SPI_ETHERNET=y 648 | # CONFIG_ETH_SPI_ETHERNET_DM9051 is not set 649 | # CONFIG_ETH_SPI_ETHERNET_W5500 is not set 650 | # CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set 651 | # CONFIG_ETH_USE_OPENETH is not set 652 | # end of Ethernet 653 | 654 | # 655 | # Event Loop Library 656 | # 657 | # CONFIG_ESP_EVENT_LOOP_PROFILING is not set 658 | CONFIG_ESP_EVENT_POST_FROM_ISR=y 659 | CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y 660 | # end of Event Loop Library 661 | 662 | # 663 | # GDB Stub 664 | # 665 | # end of GDB Stub 666 | 667 | # 668 | # ESP HTTP client 669 | # 670 | CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y 671 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set 672 | CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y 673 | # end of ESP HTTP client 674 | 675 | # 676 | # HTTP Server 677 | # 678 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 679 | CONFIG_HTTPD_MAX_URI_LEN=512 680 | CONFIG_HTTPD_ERR_RESP_NO_DELAY=y 681 | CONFIG_HTTPD_PURGE_BUF_LEN=32 682 | # CONFIG_HTTPD_LOG_PURGE_DATA is not set 683 | # CONFIG_HTTPD_WS_SUPPORT is not set 684 | # end of HTTP Server 685 | 686 | # 687 | # ESP HTTPS OTA 688 | # 689 | # CONFIG_OTA_ALLOW_HTTP is not set 690 | # end of ESP HTTPS OTA 691 | 692 | # 693 | # ESP HTTPS server 694 | # 695 | # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set 696 | # end of ESP HTTPS server 697 | 698 | # 699 | # Hardware Settings 700 | # 701 | 702 | # 703 | # MAC Config 704 | # 705 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y 706 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y 707 | CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y 708 | CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y 709 | # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set 710 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y 711 | CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 712 | # end of MAC Config 713 | 714 | # 715 | # Sleep Config 716 | # 717 | CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=y 718 | CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y 719 | # CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set 720 | # CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND is not set 721 | # end of Sleep Config 722 | 723 | # 724 | # RTC Clock Config 725 | # 726 | # end of RTC Clock Config 727 | # end of Hardware Settings 728 | 729 | # 730 | # IPC (Inter-Processor Call) 731 | # 732 | CONFIG_ESP_IPC_TASK_STACK_SIZE=1536 733 | # end of IPC (Inter-Processor Call) 734 | 735 | # 736 | # LCD and Touch Panel 737 | # 738 | 739 | # 740 | # LCD Peripheral Configuration 741 | # 742 | CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 743 | # end of LCD Peripheral Configuration 744 | # end of LCD and Touch Panel 745 | 746 | # 747 | # ESP NETIF Adapter 748 | # 749 | CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 750 | CONFIG_ESP_NETIF_TCPIP_LWIP=y 751 | # CONFIG_ESP_NETIF_LOOPBACK is not set 752 | CONFIG_ESP_NETIF_TCPIP_ADAPTER_COMPATIBLE_LAYER=y 753 | # end of ESP NETIF Adapter 754 | 755 | # 756 | # PHY 757 | # 758 | CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y 759 | # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set 760 | CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 761 | CONFIG_ESP_PHY_MAX_TX_POWER=20 762 | CONFIG_ESP_PHY_REDUCE_TX_POWER=y 763 | # end of PHY 764 | 765 | # 766 | # Power Management 767 | # 768 | # CONFIG_PM_ENABLE is not set 769 | # end of Power Management 770 | 771 | # 772 | # ESP System Settings 773 | # 774 | # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set 775 | CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y 776 | # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set 777 | # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set 778 | # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set 779 | CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE=y 780 | CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y 781 | CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y 782 | 783 | # 784 | # Memory protection 785 | # 786 | # end of Memory protection 787 | 788 | CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 789 | CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 790 | CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 791 | CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y 792 | # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set 793 | CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 794 | CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 795 | CONFIG_ESP_CONSOLE_UART_DEFAULT=y 796 | # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set 797 | # CONFIG_ESP_CONSOLE_NONE is not set 798 | CONFIG_ESP_CONSOLE_UART=y 799 | CONFIG_ESP_CONSOLE_MULTIPLE_UART=y 800 | CONFIG_ESP_CONSOLE_UART_NUM=0 801 | CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 802 | CONFIG_ESP_INT_WDT=y 803 | CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 804 | # CONFIG_ESP_TASK_WDT is not set 805 | # CONFIG_ESP_PANIC_HANDLER_IRAM is not set 806 | # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set 807 | CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5=y 808 | # end of ESP System Settings 809 | 810 | # 811 | # High resolution timer (esp_timer) 812 | # 813 | # CONFIG_ESP_TIMER_PROFILING is not set 814 | CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y 815 | CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y 816 | CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 817 | CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 818 | # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set 819 | # CONFIG_ESP_TIMER_IMPL_FRC2 is not set 820 | CONFIG_ESP_TIMER_IMPL_TG0_LAC=y 821 | # end of High resolution timer (esp_timer) 822 | 823 | # 824 | # Wi-Fi 825 | # 826 | CONFIG_ESP32_WIFI_ENABLED=y 827 | CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y 828 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 829 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 830 | # CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set 831 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y 832 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 833 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 834 | CONFIG_ESP32_WIFI_CSI_ENABLED=y 835 | CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y 836 | CONFIG_ESP32_WIFI_TX_BA_WIN=6 837 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y 838 | CONFIG_ESP32_WIFI_RX_BA_WIN=6 839 | CONFIG_ESP32_WIFI_NVS_ENABLED=y 840 | CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 841 | CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 842 | CONFIG_ESP32_WIFI_IRAM_OPT=y 843 | CONFIG_ESP32_WIFI_RX_IRAM_OPT=y 844 | CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y 845 | # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set 846 | CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y 847 | # CONFIG_ESP_WIFI_GMAC_SUPPORT is not set 848 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y 849 | # end of Wi-Fi 850 | 851 | # 852 | # Core dump 853 | # 854 | # CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set 855 | # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set 856 | CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y 857 | # end of Core dump 858 | 859 | # 860 | # FAT Filesystem support 861 | # 862 | # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set 863 | CONFIG_FATFS_CODEPAGE_437=y 864 | # CONFIG_FATFS_CODEPAGE_720 is not set 865 | # CONFIG_FATFS_CODEPAGE_737 is not set 866 | # CONFIG_FATFS_CODEPAGE_771 is not set 867 | # CONFIG_FATFS_CODEPAGE_775 is not set 868 | # CONFIG_FATFS_CODEPAGE_850 is not set 869 | # CONFIG_FATFS_CODEPAGE_852 is not set 870 | # CONFIG_FATFS_CODEPAGE_855 is not set 871 | # CONFIG_FATFS_CODEPAGE_857 is not set 872 | # CONFIG_FATFS_CODEPAGE_860 is not set 873 | # CONFIG_FATFS_CODEPAGE_861 is not set 874 | # CONFIG_FATFS_CODEPAGE_862 is not set 875 | # CONFIG_FATFS_CODEPAGE_863 is not set 876 | # CONFIG_FATFS_CODEPAGE_864 is not set 877 | # CONFIG_FATFS_CODEPAGE_865 is not set 878 | # CONFIG_FATFS_CODEPAGE_866 is not set 879 | # CONFIG_FATFS_CODEPAGE_869 is not set 880 | # CONFIG_FATFS_CODEPAGE_932 is not set 881 | # CONFIG_FATFS_CODEPAGE_936 is not set 882 | # CONFIG_FATFS_CODEPAGE_949 is not set 883 | # CONFIG_FATFS_CODEPAGE_950 is not set 884 | CONFIG_FATFS_CODEPAGE=437 885 | CONFIG_FATFS_LFN_NONE=y 886 | # CONFIG_FATFS_LFN_HEAP is not set 887 | # CONFIG_FATFS_LFN_STACK is not set 888 | CONFIG_FATFS_FS_LOCK=0 889 | CONFIG_FATFS_TIMEOUT_MS=10000 890 | CONFIG_FATFS_PER_FILE_CACHE=y 891 | # CONFIG_FATFS_USE_FASTSEEK is not set 892 | # end of FAT Filesystem support 893 | 894 | # 895 | # Modbus configuration 896 | # 897 | CONFIG_FMB_COMM_MODE_TCP_EN=y 898 | CONFIG_FMB_TCP_PORT_DEFAULT=502 899 | CONFIG_FMB_TCP_PORT_MAX_CONN=5 900 | CONFIG_FMB_TCP_CONNECTION_TOUT_SEC=20 901 | CONFIG_FMB_COMM_MODE_RTU_EN=y 902 | CONFIG_FMB_COMM_MODE_ASCII_EN=y 903 | CONFIG_FMB_MASTER_TIMEOUT_MS_RESPOND=150 904 | CONFIG_FMB_MASTER_DELAY_MS_CONVERT=200 905 | CONFIG_FMB_QUEUE_LENGTH=20 906 | CONFIG_FMB_PORT_TASK_STACK_SIZE=4096 907 | CONFIG_FMB_SERIAL_BUF_SIZE=256 908 | CONFIG_FMB_SERIAL_ASCII_BITS_PER_SYMB=8 909 | CONFIG_FMB_SERIAL_ASCII_TIMEOUT_RESPOND_MS=1000 910 | CONFIG_FMB_PORT_TASK_PRIO=10 911 | CONFIG_FMB_PORT_TASK_AFFINITY=0x7FFFFFFF 912 | CONFIG_FMB_CONTROLLER_SLAVE_ID_SUPPORT=y 913 | CONFIG_FMB_CONTROLLER_SLAVE_ID=0x00112233 914 | CONFIG_FMB_CONTROLLER_NOTIFY_TIMEOUT=20 915 | CONFIG_FMB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 916 | CONFIG_FMB_CONTROLLER_STACK_SIZE=4096 917 | CONFIG_FMB_EVENT_QUEUE_TIMEOUT=20 918 | # CONFIG_FMB_TIMER_PORT_ENABLED is not set 919 | CONFIG_FMB_TIMER_GROUP=0 920 | CONFIG_FMB_TIMER_INDEX=0 921 | CONFIG_FMB_MASTER_TIMER_GROUP=0 922 | CONFIG_FMB_MASTER_TIMER_INDEX=0 923 | # CONFIG_FMB_TIMER_ISR_IN_IRAM is not set 924 | # end of Modbus configuration 925 | 926 | # 927 | # FreeRTOS 928 | # 929 | CONFIG_FREERTOS_UNICORE=y 930 | CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF 931 | CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y 932 | CONFIG_FREERTOS_CORETIMER_0=y 933 | # CONFIG_FREERTOS_CORETIMER_1 is not set 934 | CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y 935 | CONFIG_FREERTOS_OPTIMIZED_SCHEDULER=y 936 | CONFIG_FREERTOS_HZ=100 937 | # CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION is not set 938 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set 939 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set 940 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y 941 | # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set 942 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y 943 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 944 | # CONFIG_FREERTOS_ASSERT_FAIL_ABORT is not set 945 | # CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE is not set 946 | CONFIG_FREERTOS_ASSERT_DISABLE=y 947 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 948 | CONFIG_FREERTOS_ISR_STACKSIZE=1536 949 | # CONFIG_FREERTOS_LEGACY_HOOKS is not set 950 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 951 | CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y 952 | # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set 953 | CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 954 | CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 955 | CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 956 | CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 957 | # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set 958 | # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set 959 | CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y 960 | CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y 961 | # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set 962 | # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set 963 | CONFIG_FREERTOS_DEBUG_OCDAWARE=y 964 | # CONFIG_FREERTOS_FPU_IN_ISR is not set 965 | CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y 966 | # CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set 967 | # end of FreeRTOS 968 | 969 | # 970 | # Hardware Abstraction Layer (HAL) and Low Level (LL) 971 | # 972 | CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y 973 | # CONFIG_HAL_ASSERTION_DISABLE is not set 974 | # CONFIG_HAL_ASSERTION_SILIENT is not set 975 | # CONFIG_HAL_ASSERTION_ENABLE is not set 976 | CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 977 | # end of Hardware Abstraction Layer (HAL) and Low Level (LL) 978 | 979 | # 980 | # Heap memory debugging 981 | # 982 | CONFIG_HEAP_POISONING_DISABLED=y 983 | # CONFIG_HEAP_POISONING_LIGHT is not set 984 | # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set 985 | CONFIG_HEAP_TRACING_OFF=y 986 | # CONFIG_HEAP_TRACING_STANDALONE is not set 987 | # CONFIG_HEAP_TRACING_TOHOST is not set 988 | # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set 989 | # end of Heap memory debugging 990 | 991 | # 992 | # jsmn 993 | # 994 | # CONFIG_JSMN_PARENT_LINKS is not set 995 | # CONFIG_JSMN_STRICT is not set 996 | # end of jsmn 997 | 998 | # 999 | # libsodium 1000 | # 1001 | CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y 1002 | # end of libsodium 1003 | 1004 | # 1005 | # Log output 1006 | # 1007 | # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set 1008 | # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set 1009 | # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set 1010 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y 1011 | # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set 1012 | # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set 1013 | CONFIG_LOG_DEFAULT_LEVEL=3 1014 | CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y 1015 | # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set 1016 | # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set 1017 | CONFIG_LOG_MAXIMUM_LEVEL=3 1018 | CONFIG_LOG_COLORS=y 1019 | CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y 1020 | # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set 1021 | # end of Log output 1022 | 1023 | # 1024 | # LWIP 1025 | # 1026 | CONFIG_LWIP_LOCAL_HOSTNAME="espressif" 1027 | # CONFIG_LWIP_NETIF_API is not set 1028 | # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set 1029 | CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y 1030 | # CONFIG_LWIP_L2_TO_L3_COPY is not set 1031 | # CONFIG_LWIP_IRAM_OPTIMIZATION is not set 1032 | CONFIG_LWIP_TIMERS_ONDEMAND=y 1033 | CONFIG_LWIP_MAX_SOCKETS=16 1034 | # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set 1035 | # CONFIG_LWIP_SO_LINGER is not set 1036 | CONFIG_LWIP_SO_REUSE=y 1037 | CONFIG_LWIP_SO_REUSE_RXTOALL=y 1038 | # CONFIG_LWIP_SO_RCVBUF is not set 1039 | # CONFIG_LWIP_NETBUF_RECVINFO is not set 1040 | CONFIG_LWIP_IP4_FRAG=y 1041 | CONFIG_LWIP_IP6_FRAG=y 1042 | # CONFIG_LWIP_IP4_REASSEMBLY is not set 1043 | # CONFIG_LWIP_IP6_REASSEMBLY is not set 1044 | # CONFIG_LWIP_IP_FORWARD is not set 1045 | # CONFIG_LWIP_STATS is not set 1046 | # CONFIG_LWIP_ETHARP_TRUST_IP_MAC is not set 1047 | CONFIG_LWIP_ESP_GRATUITOUS_ARP=y 1048 | CONFIG_LWIP_GARP_TMR_INTERVAL=60 1049 | CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 1050 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y 1051 | # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set 1052 | CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y 1053 | # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set 1054 | CONFIG_LWIP_DHCP_OPTIONS_LEN=68 1055 | 1056 | # 1057 | # DHCP server 1058 | # 1059 | CONFIG_LWIP_DHCPS=y 1060 | CONFIG_LWIP_DHCPS_LEASE_UNIT=60 1061 | CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 1062 | # end of DHCP server 1063 | 1064 | CONFIG_LWIP_AUTOIP=y 1065 | CONFIG_LWIP_AUTOIP_TRIES=2 1066 | CONFIG_LWIP_AUTOIP_MAX_CONFLICTS=9 1067 | CONFIG_LWIP_AUTOIP_RATE_LIMIT_INTERVAL=60 1068 | CONFIG_LWIP_IPV6=y 1069 | # CONFIG_LWIP_IPV6_AUTOCONFIG is not set 1070 | CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 1071 | # CONFIG_LWIP_IPV6_FORWARD is not set 1072 | # CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set 1073 | CONFIG_LWIP_NETIF_LOOPBACK=y 1074 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 1075 | 1076 | # 1077 | # TCP 1078 | # 1079 | CONFIG_LWIP_MAX_ACTIVE_TCP=12 1080 | CONFIG_LWIP_MAX_LISTENING_TCP=12 1081 | CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y 1082 | CONFIG_LWIP_TCP_MAXRTX=12 1083 | CONFIG_LWIP_TCP_SYNMAXRTX=12 1084 | CONFIG_LWIP_TCP_MSS=1440 1085 | CONFIG_LWIP_TCP_TMR_INTERVAL=250 1086 | CONFIG_LWIP_TCP_MSL=60000 1087 | CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 1088 | CONFIG_LWIP_TCP_WND_DEFAULT=5744 1089 | CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 1090 | CONFIG_LWIP_TCP_QUEUE_OOSEQ=y 1091 | # CONFIG_LWIP_TCP_SACK_OUT is not set 1092 | # CONFIG_LWIP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set 1093 | CONFIG_LWIP_TCP_OVERSIZE_MSS=y 1094 | # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set 1095 | # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set 1096 | CONFIG_LWIP_TCP_RTO_TIME=1500 1097 | # end of TCP 1098 | 1099 | # 1100 | # UDP 1101 | # 1102 | CONFIG_LWIP_MAX_UDP_PCBS=16 1103 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=10 1104 | # end of UDP 1105 | 1106 | # 1107 | # Checksums 1108 | # 1109 | # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set 1110 | # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set 1111 | CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y 1112 | # end of Checksums 1113 | 1114 | CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 1115 | CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1116 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set 1117 | CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1118 | # CONFIG_LWIP_PPP_SUPPORT is not set 1119 | CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 1120 | CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 1121 | # CONFIG_LWIP_SLIP_SUPPORT is not set 1122 | 1123 | # 1124 | # ICMP 1125 | # 1126 | CONFIG_LWIP_ICMP=y 1127 | # CONFIG_LWIP_MULTICAST_PING is not set 1128 | # CONFIG_LWIP_BROADCAST_PING is not set 1129 | # end of ICMP 1130 | 1131 | # 1132 | # LWIP RAW API 1133 | # 1134 | CONFIG_LWIP_MAX_RAW_PCBS=16 1135 | # end of LWIP RAW API 1136 | 1137 | # 1138 | # SNTP 1139 | # 1140 | CONFIG_LWIP_SNTP_MAX_SERVERS=1 1141 | # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set 1142 | CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 1143 | # end of SNTP 1144 | 1145 | CONFIG_LWIP_ESP_LWIP_ASSERT=y 1146 | 1147 | # 1148 | # Hooks 1149 | # 1150 | # CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set 1151 | CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y 1152 | # CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set 1153 | CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y 1154 | # CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set 1155 | # CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set 1156 | CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y 1157 | # CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set 1158 | # CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set 1159 | CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y 1160 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set 1161 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set 1162 | # end of Hooks 1163 | 1164 | # CONFIG_LWIP_DEBUG is not set 1165 | # end of LWIP 1166 | 1167 | # 1168 | # mbedTLS 1169 | # 1170 | CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y 1171 | # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set 1172 | # CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set 1173 | CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y 1174 | CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 1175 | CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 1176 | # CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set 1177 | # CONFIG_MBEDTLS_DEBUG is not set 1178 | 1179 | # 1180 | # mbedTLS v2.28.x related 1181 | # 1182 | # CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set 1183 | # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set 1184 | # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set 1185 | CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y 1186 | # end of mbedTLS v2.28.x related 1187 | 1188 | # 1189 | # Certificate Bundle 1190 | # 1191 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y 1192 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y 1193 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set 1194 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set 1195 | # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set 1196 | # end of Certificate Bundle 1197 | 1198 | # CONFIG_MBEDTLS_ECP_RESTARTABLE is not set 1199 | # CONFIG_MBEDTLS_CMAC_C is not set 1200 | CONFIG_MBEDTLS_HARDWARE_AES=y 1201 | CONFIG_MBEDTLS_HARDWARE_MPI=y 1202 | # CONFIG_MBEDTLS_HARDWARE_SHA is not set 1203 | CONFIG_MBEDTLS_ROM_MD5=y 1204 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set 1205 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set 1206 | CONFIG_MBEDTLS_HAVE_TIME=y 1207 | # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set 1208 | CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y 1209 | CONFIG_MBEDTLS_SHA512_C=y 1210 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 1211 | # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set 1212 | # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set 1213 | # CONFIG_MBEDTLS_TLS_DISABLED is not set 1214 | CONFIG_MBEDTLS_TLS_SERVER=y 1215 | CONFIG_MBEDTLS_TLS_CLIENT=y 1216 | CONFIG_MBEDTLS_TLS_ENABLED=y 1217 | 1218 | # 1219 | # TLS Key Exchange Methods 1220 | # 1221 | # CONFIG_MBEDTLS_PSK_MODES is not set 1222 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y 1223 | CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y 1224 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y 1225 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y 1226 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y 1227 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y 1228 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y 1229 | # end of TLS Key Exchange Methods 1230 | 1231 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y 1232 | # CONFIG_MBEDTLS_SSL_PROTO_SSL3 is not set 1233 | CONFIG_MBEDTLS_SSL_PROTO_TLS1=y 1234 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y 1235 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 1236 | # CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set 1237 | # CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set 1238 | CONFIG_MBEDTLS_SSL_ALPN=y 1239 | CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y 1240 | CONFIG_MBEDTLS_X509_CHECK_KEY_USAGE=y 1241 | CONFIG_MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE=y 1242 | CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y 1243 | 1244 | # 1245 | # Symmetric Ciphers 1246 | # 1247 | CONFIG_MBEDTLS_AES_C=y 1248 | # CONFIG_MBEDTLS_CAMELLIA_C is not set 1249 | # CONFIG_MBEDTLS_DES_C is not set 1250 | CONFIG_MBEDTLS_RC4_DISABLED=y 1251 | # CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT is not set 1252 | # CONFIG_MBEDTLS_RC4_ENABLED is not set 1253 | # CONFIG_MBEDTLS_BLOWFISH_C is not set 1254 | # CONFIG_MBEDTLS_XTEA_C is not set 1255 | CONFIG_MBEDTLS_CCM_C=y 1256 | CONFIG_MBEDTLS_GCM_C=y 1257 | # CONFIG_MBEDTLS_NIST_KW_C is not set 1258 | # end of Symmetric Ciphers 1259 | 1260 | # CONFIG_MBEDTLS_RIPEMD160_C is not set 1261 | 1262 | # 1263 | # Certificates 1264 | # 1265 | CONFIG_MBEDTLS_PEM_PARSE_C=y 1266 | CONFIG_MBEDTLS_PEM_WRITE_C=y 1267 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y 1268 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y 1269 | # end of Certificates 1270 | 1271 | CONFIG_MBEDTLS_ECP_C=y 1272 | CONFIG_MBEDTLS_ECDH_C=y 1273 | CONFIG_MBEDTLS_ECDSA_C=y 1274 | # CONFIG_MBEDTLS_ECJPAKE_C is not set 1275 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y 1276 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y 1277 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y 1278 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y 1279 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y 1280 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y 1281 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y 1282 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y 1283 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y 1284 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y 1285 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y 1286 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y 1287 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y 1288 | # CONFIG_MBEDTLS_POLY1305_C is not set 1289 | # CONFIG_MBEDTLS_CHACHA20_C is not set 1290 | # CONFIG_MBEDTLS_HKDF_C is not set 1291 | # CONFIG_MBEDTLS_THREADING_C is not set 1292 | # CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set 1293 | # CONFIG_MBEDTLS_SECURITY_RISKS is not set 1294 | # end of mbedTLS 1295 | 1296 | # 1297 | # mDNS 1298 | # 1299 | CONFIG_MDNS_MAX_SERVICES=10 1300 | CONFIG_MDNS_TASK_PRIORITY=1 1301 | CONFIG_MDNS_TASK_STACK_SIZE=4096 1302 | # CONFIG_MDNS_TASK_AFFINITY_NO_AFFINITY is not set 1303 | CONFIG_MDNS_TASK_AFFINITY_CPU0=y 1304 | CONFIG_MDNS_TASK_AFFINITY=0x0 1305 | CONFIG_MDNS_SERVICE_ADD_TIMEOUT_MS=2000 1306 | # CONFIG_MDNS_STRICT_MODE is not set 1307 | CONFIG_MDNS_TIMER_PERIOD_MS=100 1308 | # CONFIG_MDNS_NETWORKING_SOCKET is not set 1309 | CONFIG_MDNS_MULTIPLE_INSTANCE=y 1310 | # end of mDNS 1311 | 1312 | # 1313 | # ESP-MQTT Configurations 1314 | # 1315 | CONFIG_MQTT_PROTOCOL_311=y 1316 | CONFIG_MQTT_TRANSPORT_SSL=y 1317 | CONFIG_MQTT_TRANSPORT_WEBSOCKET=y 1318 | CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y 1319 | # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set 1320 | # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set 1321 | # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set 1322 | # CONFIG_MQTT_USE_CUSTOM_CONFIG is not set 1323 | # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set 1324 | # CONFIG_MQTT_CUSTOM_OUTBOX is not set 1325 | # end of ESP-MQTT Configurations 1326 | 1327 | # 1328 | # Newlib 1329 | # 1330 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y 1331 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set 1332 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set 1333 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set 1334 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set 1335 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y 1336 | # CONFIG_NEWLIB_NANO_FORMAT is not set 1337 | # end of Newlib 1338 | 1339 | # 1340 | # NVS 1341 | # 1342 | # end of NVS 1343 | 1344 | # 1345 | # OpenSSL 1346 | # 1347 | # CONFIG_OPENSSL_DEBUG is not set 1348 | CONFIG_OPENSSL_ERROR_STACK=y 1349 | # CONFIG_OPENSSL_ASSERT_DO_NOTHING is not set 1350 | CONFIG_OPENSSL_ASSERT_EXIT=y 1351 | # end of OpenSSL 1352 | 1353 | # 1354 | # OpenThread 1355 | # 1356 | # CONFIG_OPENTHREAD_ENABLED is not set 1357 | # end of OpenThread 1358 | 1359 | # 1360 | # PThreads 1361 | # 1362 | CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 1363 | CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1364 | CONFIG_PTHREAD_STACK_MIN=768 1365 | CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 1366 | CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" 1367 | # end of PThreads 1368 | 1369 | # 1370 | # SPI Flash driver 1371 | # 1372 | # CONFIG_SPI_FLASH_VERIFY_WRITE is not set 1373 | # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set 1374 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y 1375 | CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y 1376 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set 1377 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set 1378 | # CONFIG_SPI_FLASH_USE_LEGACY_IMPL is not set 1379 | # CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set 1380 | # CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set 1381 | CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y 1382 | CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 1383 | CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 1384 | CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 1385 | # CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set 1386 | # CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set 1387 | # CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set 1388 | 1389 | # 1390 | # Auto-detect flash chips 1391 | # 1392 | CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y 1393 | CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y 1394 | CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y 1395 | CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y 1396 | # CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set 1397 | # CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set 1398 | # end of Auto-detect flash chips 1399 | 1400 | CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y 1401 | # end of SPI Flash driver 1402 | 1403 | # 1404 | # SPIFFS Configuration 1405 | # 1406 | CONFIG_SPIFFS_MAX_PARTITIONS=3 1407 | 1408 | # 1409 | # SPIFFS Cache Configuration 1410 | # 1411 | CONFIG_SPIFFS_CACHE=y 1412 | CONFIG_SPIFFS_CACHE_WR=y 1413 | # CONFIG_SPIFFS_CACHE_STATS is not set 1414 | # end of SPIFFS Cache Configuration 1415 | 1416 | CONFIG_SPIFFS_PAGE_CHECK=y 1417 | CONFIG_SPIFFS_GC_MAX_RUNS=10 1418 | # CONFIG_SPIFFS_GC_STATS is not set 1419 | CONFIG_SPIFFS_PAGE_SIZE=256 1420 | CONFIG_SPIFFS_OBJ_NAME_LEN=32 1421 | # CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set 1422 | CONFIG_SPIFFS_USE_MAGIC=y 1423 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y 1424 | CONFIG_SPIFFS_META_LENGTH=4 1425 | CONFIG_SPIFFS_USE_MTIME=y 1426 | 1427 | # 1428 | # Debug Configuration 1429 | # 1430 | # CONFIG_SPIFFS_DBG is not set 1431 | # CONFIG_SPIFFS_API_DBG is not set 1432 | # CONFIG_SPIFFS_GC_DBG is not set 1433 | # CONFIG_SPIFFS_CACHE_DBG is not set 1434 | # CONFIG_SPIFFS_CHECK_DBG is not set 1435 | # CONFIG_SPIFFS_TEST_VISUALISATION is not set 1436 | # end of Debug Configuration 1437 | # end of SPIFFS Configuration 1438 | 1439 | # 1440 | # TCP Transport 1441 | # 1442 | 1443 | # 1444 | # Websocket 1445 | # 1446 | CONFIG_WS_TRANSPORT=y 1447 | CONFIG_WS_BUFFER_SIZE=1024 1448 | # end of Websocket 1449 | # end of TCP Transport 1450 | 1451 | # 1452 | # Unity unit testing library 1453 | # 1454 | CONFIG_UNITY_ENABLE_FLOAT=y 1455 | CONFIG_UNITY_ENABLE_DOUBLE=y 1456 | # CONFIG_UNITY_ENABLE_64BIT is not set 1457 | # CONFIG_UNITY_ENABLE_COLOR is not set 1458 | CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y 1459 | # CONFIG_UNITY_ENABLE_FIXTURE is not set 1460 | # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set 1461 | # end of Unity unit testing library 1462 | 1463 | # 1464 | # Virtual file system 1465 | # 1466 | CONFIG_VFS_SUPPORT_IO=y 1467 | CONFIG_VFS_SUPPORT_DIR=y 1468 | CONFIG_VFS_SUPPORT_SELECT=y 1469 | CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1470 | CONFIG_VFS_SUPPORT_TERMIOS=y 1471 | 1472 | # 1473 | # Host File System I/O (Semihosting) 1474 | # 1475 | CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1476 | CONFIG_VFS_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 1477 | # end of Host File System I/O (Semihosting) 1478 | # end of Virtual file system 1479 | 1480 | # 1481 | # Wear Levelling 1482 | # 1483 | # CONFIG_WL_SECTOR_SIZE_512 is not set 1484 | CONFIG_WL_SECTOR_SIZE_4096=y 1485 | CONFIG_WL_SECTOR_SIZE=4096 1486 | # end of Wear Levelling 1487 | 1488 | # 1489 | # Wi-Fi Provisioning Manager 1490 | # 1491 | CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 1492 | CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 1493 | # CONFIG_WIFI_PROV_BLE_BONDING is not set 1494 | # end of Wi-Fi Provisioning Manager 1495 | 1496 | # 1497 | # Supplicant 1498 | # 1499 | CONFIG_WPA_MBEDTLS_CRYPTO=y 1500 | # CONFIG_WPA_WAPI_PSK is not set 1501 | # CONFIG_WPA_SUITE_B_192 is not set 1502 | # CONFIG_WPA_DEBUG_PRINT is not set 1503 | # CONFIG_WPA_TESTING_OPTIONS is not set 1504 | # CONFIG_WPA_WPS_STRICT is not set 1505 | # CONFIG_WPA_11KV_SUPPORT is not set 1506 | # end of Supplicant 1507 | 1508 | # 1509 | # Button 1510 | # 1511 | CONFIG_IO_GLITCH_FILTER_TIME_MS=50 1512 | # end of Button 1513 | 1514 | # 1515 | # HomeKit 1516 | # 1517 | # CONFIG_HAP_MFI_ENABLE is not set 1518 | # end of HomeKit 1519 | 1520 | # 1521 | # MFi I2C Setup 1522 | # 1523 | CONFIG_DR_400=y 1524 | # CONFIG_DR_100 is not set 1525 | CONFIG_IC2_SPEED=400000 1526 | CONFIG_SDA_GPIO=26 1527 | CONFIG_SCL_GPIO=27 1528 | CONFIG_I2C_MAX_READ_COUNT=150 1529 | CONFIG_I2C_RETRY_COUNT=200 1530 | # end of MFi I2C Setup 1531 | 1532 | # 1533 | # HAP HTTP Server 1534 | # 1535 | CONFIG_HAP_HTTP_STACK_SIZE=12288 1536 | CONFIG_HAP_HTTP_SERVER_PORT=80 1537 | CONFIG_HAP_HTTP_CONTROL_PORT=32859 1538 | CONFIG_HAP_HTTP_MAX_OPEN_SOCKETS=8 1539 | CONFIG_HAP_HTTP_MAX_URI_HANDLERS=16 1540 | # end of HAP HTTP Server 1541 | # end of Component config 1542 | 1543 | # 1544 | # Compatibility options 1545 | # 1546 | # CONFIG_LEGACY_INCLUDE_COMMON_HEADERS is not set 1547 | # end of Compatibility options 1548 | 1549 | # Deprecated options for backward compatibility 1550 | CONFIG_TOOLPREFIX="xtensa-esp32-elf-" 1551 | # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set 1552 | # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set 1553 | # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set 1554 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y 1555 | # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set 1556 | # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set 1557 | CONFIG_LOG_BOOTLOADER_LEVEL=3 1558 | # CONFIG_APP_ROLLBACK_ENABLE is not set 1559 | # CONFIG_FLASH_ENCRYPTION_ENABLED is not set 1560 | # CONFIG_FLASHMODE_QIO is not set 1561 | # CONFIG_FLASHMODE_QOUT is not set 1562 | CONFIG_FLASHMODE_DIO=y 1563 | # CONFIG_FLASHMODE_DOUT is not set 1564 | # CONFIG_MONITOR_BAUD_9600B is not set 1565 | # CONFIG_MONITOR_BAUD_57600B is not set 1566 | CONFIG_MONITOR_BAUD_115200B=y 1567 | # CONFIG_MONITOR_BAUD_230400B is not set 1568 | # CONFIG_MONITOR_BAUD_921600B is not set 1569 | # CONFIG_MONITOR_BAUD_2MB is not set 1570 | # CONFIG_MONITOR_BAUD_OTHER is not set 1571 | CONFIG_MONITOR_BAUD_OTHER_VAL=115200 1572 | CONFIG_MONITOR_BAUD=115200 1573 | CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y 1574 | # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set 1575 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y 1576 | # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set 1577 | # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set 1578 | CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 1579 | # CONFIG_CXX_EXCEPTIONS is not set 1580 | CONFIG_STACK_CHECK_NONE=y 1581 | # CONFIG_STACK_CHECK_NORM is not set 1582 | # CONFIG_STACK_CHECK_STRONG is not set 1583 | # CONFIG_STACK_CHECK_ALL is not set 1584 | # CONFIG_WARN_WRITE_STRINGS is not set 1585 | # CONFIG_DISABLE_GCC8_WARNINGS is not set 1586 | # CONFIG_ESP32_APPTRACE_DEST_TRAX is not set 1587 | CONFIG_ESP32_APPTRACE_DEST_NONE=y 1588 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y 1589 | CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY=y 1590 | # CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY is not set 1591 | # CONFIG_BTDM_CONTROLLER_MODE_BTDM is not set 1592 | CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN=3 1593 | CONFIG_BTDM_CONTROLLER_BLE_MAX_CONN_EFF=3 1594 | CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF=0 1595 | CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF=0 1596 | CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0 1597 | CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y 1598 | # CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4 is not set 1599 | CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=y 1600 | CONFIG_BLE_SCAN_DUPLICATE=y 1601 | CONFIG_SCAN_DUPLICATE_BY_DEVICE_ADDR=y 1602 | # CONFIG_SCAN_DUPLICATE_BY_ADV_DATA is not set 1603 | # CONFIG_SCAN_DUPLICATE_BY_ADV_DATA_AND_DEVICE_ADDR is not set 1604 | CONFIG_SCAN_DUPLICATE_TYPE=0 1605 | CONFIG_DUPLICATE_SCAN_CACHE_SIZE=200 1606 | # CONFIG_BLE_MESH_SCAN_DUPLICATE_EN is not set 1607 | CONFIG_BTDM_CONTROLLER_FULL_SCAN_SUPPORTED=y 1608 | CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_SUPPORTED=y 1609 | CONFIG_BLE_ADV_REPORT_FLOW_CONTROL_NUM=100 1610 | CONFIG_BLE_ADV_REPORT_DISCARD_THRSHOLD=20 1611 | CONFIG_BLUEDROID_ENABLED=y 1612 | # CONFIG_NIMBLE_ENABLED is not set 1613 | CONFIG_BTC_TASK_STACK_SIZE=3072 1614 | CONFIG_BLUEDROID_PINNED_TO_CORE=0 1615 | CONFIG_BTU_TASK_STACK_SIZE=4096 1616 | # CONFIG_BLUEDROID_MEM_DEBUG is not set 1617 | # CONFIG_CLASSIC_BT_ENABLED is not set 1618 | CONFIG_GATTS_ENABLE=y 1619 | # CONFIG_GATTS_SEND_SERVICE_CHANGE_MANUAL is not set 1620 | CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y 1621 | CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0 1622 | CONFIG_GATTC_ENABLE=y 1623 | # CONFIG_GATTC_CACHE_NVS_FLASH is not set 1624 | CONFIG_BLE_SMP_ENABLE=y 1625 | # CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set 1626 | # CONFIG_HCI_TRACE_LEVEL_NONE is not set 1627 | # CONFIG_HCI_TRACE_LEVEL_ERROR is not set 1628 | CONFIG_HCI_TRACE_LEVEL_WARNING=y 1629 | # CONFIG_HCI_TRACE_LEVEL_API is not set 1630 | # CONFIG_HCI_TRACE_LEVEL_EVENT is not set 1631 | # CONFIG_HCI_TRACE_LEVEL_DEBUG is not set 1632 | # CONFIG_HCI_TRACE_LEVEL_VERBOSE is not set 1633 | CONFIG_HCI_INITIAL_TRACE_LEVEL=2 1634 | # CONFIG_BTM_TRACE_LEVEL_NONE is not set 1635 | # CONFIG_BTM_TRACE_LEVEL_ERROR is not set 1636 | CONFIG_BTM_TRACE_LEVEL_WARNING=y 1637 | # CONFIG_BTM_TRACE_LEVEL_API is not set 1638 | # CONFIG_BTM_TRACE_LEVEL_EVENT is not set 1639 | # CONFIG_BTM_TRACE_LEVEL_DEBUG is not set 1640 | # CONFIG_BTM_TRACE_LEVEL_VERBOSE is not set 1641 | CONFIG_BTM_INITIAL_TRACE_LEVEL=2 1642 | # CONFIG_L2CAP_TRACE_LEVEL_NONE is not set 1643 | # CONFIG_L2CAP_TRACE_LEVEL_ERROR is not set 1644 | CONFIG_L2CAP_TRACE_LEVEL_WARNING=y 1645 | # CONFIG_L2CAP_TRACE_LEVEL_API is not set 1646 | # CONFIG_L2CAP_TRACE_LEVEL_EVENT is not set 1647 | # CONFIG_L2CAP_TRACE_LEVEL_DEBUG is not set 1648 | # CONFIG_L2CAP_TRACE_LEVEL_VERBOSE is not set 1649 | CONFIG_L2CAP_INITIAL_TRACE_LEVEL=2 1650 | # CONFIG_RFCOMM_TRACE_LEVEL_NONE is not set 1651 | # CONFIG_RFCOMM_TRACE_LEVEL_ERROR is not set 1652 | CONFIG_RFCOMM_TRACE_LEVEL_WARNING=y 1653 | # CONFIG_RFCOMM_TRACE_LEVEL_API is not set 1654 | # CONFIG_RFCOMM_TRACE_LEVEL_EVENT is not set 1655 | # CONFIG_RFCOMM_TRACE_LEVEL_DEBUG is not set 1656 | # CONFIG_RFCOMM_TRACE_LEVEL_VERBOSE is not set 1657 | CONFIG_RFCOMM_INITIAL_TRACE_LEVEL=2 1658 | # CONFIG_SDP_TRACE_LEVEL_NONE is not set 1659 | # CONFIG_SDP_TRACE_LEVEL_ERROR is not set 1660 | CONFIG_SDP_TRACE_LEVEL_WARNING=y 1661 | # CONFIG_SDP_TRACE_LEVEL_API is not set 1662 | # CONFIG_SDP_TRACE_LEVEL_EVENT is not set 1663 | # CONFIG_SDP_TRACE_LEVEL_DEBUG is not set 1664 | # CONFIG_SDP_TRACE_LEVEL_VERBOSE is not set 1665 | CONFIG_BTH_LOG_SDP_INITIAL_TRACE_LEVEL=2 1666 | # CONFIG_GAP_TRACE_LEVEL_NONE is not set 1667 | # CONFIG_GAP_TRACE_LEVEL_ERROR is not set 1668 | CONFIG_GAP_TRACE_LEVEL_WARNING=y 1669 | # CONFIG_GAP_TRACE_LEVEL_API is not set 1670 | # CONFIG_GAP_TRACE_LEVEL_EVENT is not set 1671 | # CONFIG_GAP_TRACE_LEVEL_DEBUG is not set 1672 | # CONFIG_GAP_TRACE_LEVEL_VERBOSE is not set 1673 | CONFIG_GAP_INITIAL_TRACE_LEVEL=2 1674 | CONFIG_BNEP_INITIAL_TRACE_LEVEL=2 1675 | # CONFIG_PAN_TRACE_LEVEL_NONE is not set 1676 | # CONFIG_PAN_TRACE_LEVEL_ERROR is not set 1677 | CONFIG_PAN_TRACE_LEVEL_WARNING=y 1678 | # CONFIG_PAN_TRACE_LEVEL_API is not set 1679 | # CONFIG_PAN_TRACE_LEVEL_EVENT is not set 1680 | # CONFIG_PAN_TRACE_LEVEL_DEBUG is not set 1681 | # CONFIG_PAN_TRACE_LEVEL_VERBOSE is not set 1682 | CONFIG_PAN_INITIAL_TRACE_LEVEL=2 1683 | # CONFIG_A2D_TRACE_LEVEL_NONE is not set 1684 | # CONFIG_A2D_TRACE_LEVEL_ERROR is not set 1685 | CONFIG_A2D_TRACE_LEVEL_WARNING=y 1686 | # CONFIG_A2D_TRACE_LEVEL_API is not set 1687 | # CONFIG_A2D_TRACE_LEVEL_EVENT is not set 1688 | # CONFIG_A2D_TRACE_LEVEL_DEBUG is not set 1689 | # CONFIG_A2D_TRACE_LEVEL_VERBOSE is not set 1690 | CONFIG_A2D_INITIAL_TRACE_LEVEL=2 1691 | # CONFIG_AVDT_TRACE_LEVEL_NONE is not set 1692 | # CONFIG_AVDT_TRACE_LEVEL_ERROR is not set 1693 | CONFIG_AVDT_TRACE_LEVEL_WARNING=y 1694 | # CONFIG_AVDT_TRACE_LEVEL_API is not set 1695 | # CONFIG_AVDT_TRACE_LEVEL_EVENT is not set 1696 | # CONFIG_AVDT_TRACE_LEVEL_DEBUG is not set 1697 | # CONFIG_AVDT_TRACE_LEVEL_VERBOSE is not set 1698 | CONFIG_AVDT_INITIAL_TRACE_LEVEL=2 1699 | # CONFIG_AVCT_TRACE_LEVEL_NONE is not set 1700 | # CONFIG_AVCT_TRACE_LEVEL_ERROR is not set 1701 | CONFIG_AVCT_TRACE_LEVEL_WARNING=y 1702 | # CONFIG_AVCT_TRACE_LEVEL_API is not set 1703 | # CONFIG_AVCT_TRACE_LEVEL_EVENT is not set 1704 | # CONFIG_AVCT_TRACE_LEVEL_DEBUG is not set 1705 | # CONFIG_AVCT_TRACE_LEVEL_VERBOSE is not set 1706 | CONFIG_AVCT_INITIAL_TRACE_LEVEL=2 1707 | # CONFIG_AVRC_TRACE_LEVEL_NONE is not set 1708 | # CONFIG_AVRC_TRACE_LEVEL_ERROR is not set 1709 | CONFIG_AVRC_TRACE_LEVEL_WARNING=y 1710 | # CONFIG_AVRC_TRACE_LEVEL_API is not set 1711 | # CONFIG_AVRC_TRACE_LEVEL_EVENT is not set 1712 | # CONFIG_AVRC_TRACE_LEVEL_DEBUG is not set 1713 | # CONFIG_AVRC_TRACE_LEVEL_VERBOSE is not set 1714 | CONFIG_AVRC_INITIAL_TRACE_LEVEL=2 1715 | # CONFIG_MCA_TRACE_LEVEL_NONE is not set 1716 | # CONFIG_MCA_TRACE_LEVEL_ERROR is not set 1717 | CONFIG_MCA_TRACE_LEVEL_WARNING=y 1718 | # CONFIG_MCA_TRACE_LEVEL_API is not set 1719 | # CONFIG_MCA_TRACE_LEVEL_EVENT is not set 1720 | # CONFIG_MCA_TRACE_LEVEL_DEBUG is not set 1721 | # CONFIG_MCA_TRACE_LEVEL_VERBOSE is not set 1722 | CONFIG_MCA_INITIAL_TRACE_LEVEL=2 1723 | # CONFIG_HID_TRACE_LEVEL_NONE is not set 1724 | # CONFIG_HID_TRACE_LEVEL_ERROR is not set 1725 | CONFIG_HID_TRACE_LEVEL_WARNING=y 1726 | # CONFIG_HID_TRACE_LEVEL_API is not set 1727 | # CONFIG_HID_TRACE_LEVEL_EVENT is not set 1728 | # CONFIG_HID_TRACE_LEVEL_DEBUG is not set 1729 | # CONFIG_HID_TRACE_LEVEL_VERBOSE is not set 1730 | CONFIG_HID_INITIAL_TRACE_LEVEL=2 1731 | # CONFIG_APPL_TRACE_LEVEL_NONE is not set 1732 | # CONFIG_APPL_TRACE_LEVEL_ERROR is not set 1733 | CONFIG_APPL_TRACE_LEVEL_WARNING=y 1734 | # CONFIG_APPL_TRACE_LEVEL_API is not set 1735 | # CONFIG_APPL_TRACE_LEVEL_EVENT is not set 1736 | # CONFIG_APPL_TRACE_LEVEL_DEBUG is not set 1737 | # CONFIG_APPL_TRACE_LEVEL_VERBOSE is not set 1738 | CONFIG_APPL_INITIAL_TRACE_LEVEL=2 1739 | # CONFIG_GATT_TRACE_LEVEL_NONE is not set 1740 | # CONFIG_GATT_TRACE_LEVEL_ERROR is not set 1741 | CONFIG_GATT_TRACE_LEVEL_WARNING=y 1742 | # CONFIG_GATT_TRACE_LEVEL_API is not set 1743 | # CONFIG_GATT_TRACE_LEVEL_EVENT is not set 1744 | # CONFIG_GATT_TRACE_LEVEL_DEBUG is not set 1745 | # CONFIG_GATT_TRACE_LEVEL_VERBOSE is not set 1746 | CONFIG_GATT_INITIAL_TRACE_LEVEL=2 1747 | # CONFIG_SMP_TRACE_LEVEL_NONE is not set 1748 | # CONFIG_SMP_TRACE_LEVEL_ERROR is not set 1749 | CONFIG_SMP_TRACE_LEVEL_WARNING=y 1750 | # CONFIG_SMP_TRACE_LEVEL_API is not set 1751 | # CONFIG_SMP_TRACE_LEVEL_EVENT is not set 1752 | # CONFIG_SMP_TRACE_LEVEL_DEBUG is not set 1753 | # CONFIG_SMP_TRACE_LEVEL_VERBOSE is not set 1754 | CONFIG_SMP_INITIAL_TRACE_LEVEL=2 1755 | # CONFIG_BTIF_TRACE_LEVEL_NONE is not set 1756 | # CONFIG_BTIF_TRACE_LEVEL_ERROR is not set 1757 | CONFIG_BTIF_TRACE_LEVEL_WARNING=y 1758 | # CONFIG_BTIF_TRACE_LEVEL_API is not set 1759 | # CONFIG_BTIF_TRACE_LEVEL_EVENT is not set 1760 | # CONFIG_BTIF_TRACE_LEVEL_DEBUG is not set 1761 | # CONFIG_BTIF_TRACE_LEVEL_VERBOSE is not set 1762 | CONFIG_BTIF_INITIAL_TRACE_LEVEL=2 1763 | # CONFIG_BTC_TRACE_LEVEL_NONE is not set 1764 | # CONFIG_BTC_TRACE_LEVEL_ERROR is not set 1765 | CONFIG_BTC_TRACE_LEVEL_WARNING=y 1766 | # CONFIG_BTC_TRACE_LEVEL_API is not set 1767 | # CONFIG_BTC_TRACE_LEVEL_EVENT is not set 1768 | # CONFIG_BTC_TRACE_LEVEL_DEBUG is not set 1769 | # CONFIG_BTC_TRACE_LEVEL_VERBOSE is not set 1770 | CONFIG_BTC_INITIAL_TRACE_LEVEL=2 1771 | # CONFIG_OSI_TRACE_LEVEL_NONE is not set 1772 | # CONFIG_OSI_TRACE_LEVEL_ERROR is not set 1773 | CONFIG_OSI_TRACE_LEVEL_WARNING=y 1774 | # CONFIG_OSI_TRACE_LEVEL_API is not set 1775 | # CONFIG_OSI_TRACE_LEVEL_EVENT is not set 1776 | # CONFIG_OSI_TRACE_LEVEL_DEBUG is not set 1777 | # CONFIG_OSI_TRACE_LEVEL_VERBOSE is not set 1778 | CONFIG_OSI_INITIAL_TRACE_LEVEL=2 1779 | # CONFIG_BLUFI_TRACE_LEVEL_NONE is not set 1780 | # CONFIG_BLUFI_TRACE_LEVEL_ERROR is not set 1781 | CONFIG_BLUFI_TRACE_LEVEL_WARNING=y 1782 | # CONFIG_BLUFI_TRACE_LEVEL_API is not set 1783 | # CONFIG_BLUFI_TRACE_LEVEL_EVENT is not set 1784 | # CONFIG_BLUFI_TRACE_LEVEL_DEBUG is not set 1785 | # CONFIG_BLUFI_TRACE_LEVEL_VERBOSE is not set 1786 | CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2 1787 | # CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK is not set 1788 | CONFIG_SMP_ENABLE=y 1789 | # CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY is not set 1790 | CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 1791 | CONFIG_ADC2_DISABLE_DAC=y 1792 | # CONFIG_SPIRAM_SUPPORT is not set 1793 | CONFIG_TRACEMEM_RESERVE_DRAM=0x0 1794 | # CONFIG_ULP_COPROC_ENABLED is not set 1795 | CONFIG_ULP_COPROC_RESERVE_MEM=0 1796 | CONFIG_BROWNOUT_DET=y 1797 | CONFIG_BROWNOUT_DET_LVL_SEL_0=y 1798 | # CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set 1799 | # CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set 1800 | # CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set 1801 | # CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set 1802 | # CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set 1803 | # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set 1804 | # CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set 1805 | CONFIG_BROWNOUT_DET_LVL=0 1806 | CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y 1807 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set 1808 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set 1809 | # CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set 1810 | # CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set 1811 | # CONFIG_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set 1812 | # CONFIG_EVENT_LOOP_PROFILING is not set 1813 | CONFIG_POST_EVENTS_FROM_ISR=y 1814 | CONFIG_POST_EVENTS_FROM_IRAM_ISR=y 1815 | # CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set 1816 | CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y 1817 | CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 1818 | CONFIG_ESP_SYSTEM_PD_FLASH=y 1819 | # CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND is not set 1820 | CONFIG_IPC_TASK_STACK_SIZE=1536 1821 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y 1822 | # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set 1823 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 1824 | CONFIG_ESP32_PHY_MAX_TX_POWER=20 1825 | CONFIG_ESP32_REDUCE_PHY_TX_POWER=y 1826 | # CONFIG_ESP32S2_PANIC_PRINT_HALT is not set 1827 | CONFIG_ESP32S2_PANIC_PRINT_REBOOT=y 1828 | # CONFIG_ESP32S2_PANIC_SILENT_REBOOT is not set 1829 | # CONFIG_ESP32S2_PANIC_GDBSTUB is not set 1830 | CONFIG_ESP32S2_ALLOW_RTC_FAST_MEM_AS_HEAP=y 1831 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 1832 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 1833 | CONFIG_MAIN_TASK_STACK_SIZE=3584 1834 | CONFIG_CONSOLE_UART_DEFAULT=y 1835 | # CONFIG_CONSOLE_UART_CUSTOM is not set 1836 | # CONFIG_ESP_CONSOLE_UART_NONE is not set 1837 | CONFIG_CONSOLE_UART=y 1838 | CONFIG_CONSOLE_UART_NUM=0 1839 | CONFIG_CONSOLE_UART_BAUDRATE=115200 1840 | CONFIG_INT_WDT=y 1841 | CONFIG_INT_WDT_TIMEOUT_MS=300 1842 | # CONFIG_TASK_WDT is not set 1843 | # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set 1844 | CONFIG_TIMER_TASK_STACK_SIZE=3584 1845 | CONFIG_SW_COEXIST_ENABLE=y 1846 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set 1847 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set 1848 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y 1849 | CONFIG_MB_MASTER_TIMEOUT_MS_RESPOND=150 1850 | CONFIG_MB_MASTER_DELAY_MS_CONVERT=200 1851 | CONFIG_MB_QUEUE_LENGTH=20 1852 | CONFIG_MB_SERIAL_TASK_STACK_SIZE=4096 1853 | CONFIG_MB_SERIAL_BUF_SIZE=256 1854 | CONFIG_MB_SERIAL_TASK_PRIO=10 1855 | CONFIG_MB_CONTROLLER_SLAVE_ID_SUPPORT=y 1856 | CONFIG_MB_CONTROLLER_SLAVE_ID=0x00112233 1857 | CONFIG_MB_CONTROLLER_NOTIFY_TIMEOUT=20 1858 | CONFIG_MB_CONTROLLER_NOTIFY_QUEUE_SIZE=20 1859 | CONFIG_MB_CONTROLLER_STACK_SIZE=4096 1860 | CONFIG_MB_EVENT_QUEUE_TIMEOUT=20 1861 | # CONFIG_MB_TIMER_PORT_ENABLED is not set 1862 | CONFIG_MB_TIMER_GROUP=0 1863 | CONFIG_MB_TIMER_INDEX=0 1864 | # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set 1865 | CONFIG_TIMER_TASK_PRIORITY=1 1866 | CONFIG_TIMER_TASK_STACK_DEPTH=2048 1867 | CONFIG_TIMER_QUEUE_LENGTH=10 1868 | # CONFIG_L2_TO_L3_COPY is not set 1869 | # CONFIG_USE_ONLY_LWIP_SELECT is not set 1870 | CONFIG_ESP_GRATUITOUS_ARP=y 1871 | CONFIG_GARP_TMR_INTERVAL=60 1872 | CONFIG_TCPIP_RECVMBOX_SIZE=32 1873 | CONFIG_TCP_MAXRTX=12 1874 | CONFIG_TCP_SYNMAXRTX=12 1875 | CONFIG_TCP_MSS=1440 1876 | CONFIG_TCP_MSL=60000 1877 | CONFIG_TCP_SND_BUF_DEFAULT=5744 1878 | CONFIG_TCP_WND_DEFAULT=5744 1879 | CONFIG_TCP_RECVMBOX_SIZE=6 1880 | CONFIG_TCP_QUEUE_OOSEQ=y 1881 | # CONFIG_ESP_TCP_KEEP_CONNECTION_WHEN_IP_CHANGES is not set 1882 | CONFIG_TCP_OVERSIZE_MSS=y 1883 | # CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set 1884 | # CONFIG_TCP_OVERSIZE_DISABLE is not set 1885 | CONFIG_UDP_RECVMBOX_SIZE=10 1886 | CONFIG_TCPIP_TASK_STACK_SIZE=3072 1887 | CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y 1888 | # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set 1889 | CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF 1890 | # CONFIG_PPP_SUPPORT is not set 1891 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 1892 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 1893 | CONFIG_ESP32_PTHREAD_STACK_MIN=768 1894 | CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 1895 | CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" 1896 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y 1897 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set 1898 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set 1899 | CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y 1900 | CONFIG_SUPPORT_TERMIOS=y 1901 | CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 1902 | CONFIG_SEMIHOSTFS_HOST_PATH_MAX_LEN=128 1903 | # End of deprecated options 1904 | -------------------------------------------------------------------------------- /sdkconfig.defaults: -------------------------------------------------------------------------------- 1 | CONFIG_PARTITION_TABLE_CUSTOM=y 2 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_hap.csv" 3 | CONFIG_PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET=0x10000 4 | CONFIG_FREERTOS_UNICORE=y 5 | CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=n 6 | CONFIG_FREERTOS_ASSERT_FAIL_ABORT=n 7 | CONFIG_FREERTOS_ASSERT_DISABLE=y 8 | CONFIG_LWIP_MAX_SOCKETS=16 9 | CONFIG_LWIP_SO_REUSE=y 10 | CONFIG_LWIP_MAX_ACTIVE_TCP=12 11 | CONFIG_LWIP_MAX_LISTENING_TCP=12 12 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=10 13 | CONFIG_MBEDTLS_HARDWARE_MPI=y 14 | CONFIG_MBEDTLS_HARDWARE_SHA=n 15 | CONFIG_ESP_TASK_WDT=n 16 | CONFIG_LWIP_AUTOIP=y 17 | CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y 18 | CONFIG_LWIP_AUTOIP_RATE_LIMIT_INTERVAL=60 19 | CONFIG_MP_BLOB_SUPPORT=y 20 | CONFIG_ENABLE_UNIFIED_PROVISIONING=y 21 | CONFIG_APP_PROJECT_VER_FROM_CONFIG=y 22 | -------------------------------------------------------------------------------- /updatemodules.sh: -------------------------------------------------------------------------------- 1 | git submodule update --init --recursive 2 | 3 | --------------------------------------------------------------------------------