├── Makefile ├── README.md ├── Snapshoot ├── esp32_board.png └── ui.png ├── flash_it.cmd ├── main ├── component.mk └── hello_world_main.c └── sdkconfig /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 | PROJECT_NAME := hello-world 7 | 8 | include $(IDF_PATH)/make/project.mk 9 | 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A minimal esp32/esp-idf http Web Server example/demo 2 | 3 | **With GPIO control, static IP address, Wifi connection status. Implemented in ESP-IDF framework.** 4 | 5 | (To see main code from [here](https://github.com/qienhuang/esp32_mini_webserver_gpio/blob/master/main/hello_world_main.c)) 6 | 7 | ![ESP32 board](https://github.com/qienhuang/esp32_mini_webserver_gpio/blob/master/Snapshoot/esp32_board.png) 8 | 9 | 10 | ![demo_webpage](https://github.com/qienhuang/esp32_mini_webserver_gpio/raw/master/Snapshoot/ui.png) 11 | 12 | -------------------------------------------------------------------------------- /Snapshoot/esp32_board.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qienhuang/esp32_mini_webserver_gpio/fbc779c5aea70701a07b2bebf9ee9f6dba72393c/Snapshoot/esp32_board.png -------------------------------------------------------------------------------- /Snapshoot/ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/qienhuang/esp32_mini_webserver_gpio/fbc779c5aea70701a07b2bebf9ee9f6dba72393c/Snapshoot/ui.png -------------------------------------------------------------------------------- /flash_it.cmd: -------------------------------------------------------------------------------- 1 | C:\Users\ect\AppData\Local\Programs\Python\Python36-32\python C:/msys64/home/ect/esp/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port COM4 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 C:/msys64/home/ect/esp/hello_world/build/bootloader/bootloader.bin 0x10000 C:/msys64/home/ect/esp/hello_world/build/hello-world.bin 0x8000 C:/msys64/home/ect/esp/hello_world/build/partitions_singleapp.bin -------------------------------------------------------------------------------- /main/component.mk: -------------------------------------------------------------------------------- 1 | # 2 | # "main" pseudo-component makefile. 3 | # 4 | # (Uses default behaviour of compiling all source files in directory, adding 'include' to include path.) 5 | 6 | -------------------------------------------------------------------------------- /main/hello_world_main.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include //Requires by memset 4 | #include "freertos/FreeRTOS.h" 5 | #include "freertos/task.h" 6 | #include "esp_system.h" 7 | #include "esp_spi_flash.h" 8 | 9 | #include "esp_wifi.h" 10 | #include "esp_event_loop.h" 11 | #include "freertos/event_groups.h" 12 | #include "esp_log.h" 13 | #include "nvs_flash.h" 14 | #include "tcpip_adapter.h" 15 | 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | #define MY_WIFI_SSID "YourWifiSSID" 22 | #define MY_WIFI_PASS "YourPassword" 23 | #define STATIC_IP "192.168.1.222" 24 | #define SUBNET_MASK "255.255.255.0" 25 | #define GATE_WAY "192.168.1.1" 26 | #define DNS_SERVER "8.8.8.8" 27 | 28 | #define ENABLE_STATIC_IP 29 | 30 | static const char *TAG = "espressif"; //TAG for debug 31 | 32 | static EventGroupHandle_t wifi_event_group; 33 | 34 | static wifi_config_t wifi_config = { .sta = { .ssid = MY_WIFI_SSID, .password = 35 | MY_WIFI_PASS, .bssid_set = 0 } }; 36 | 37 | const int CONNECTED_BIT = BIT0; 38 | 39 | int state = 0; 40 | int LED_PIN = 25; 41 | // Build http header 42 | const static char http_html_hdr[] = 43 | "HTTP/1.1 200 OK\r\nContent-type: text/html\r\n\r\n"; 44 | 45 | // Build 404 header 46 | const static char http_404_hdr[] = 47 | "HTTP/1.1 404 Not Found\r\nContent-type: text/html\r\n\r\n"; 48 | 49 | // Build http body 50 | const static char http_index_hml[] = 51 | "\ 52 | Control\ 53 |

Control

ON
OFF"; 54 | 55 | // Has to implement this event_handler for WIFI station connection 56 | static esp_err_t event_handler(void *ctx, system_event_t *event) { 57 | switch (event->event_id) { 58 | case SYSTEM_EVENT_STA_START: 59 | ESP_ERROR_CHECK(esp_wifi_connect()) ; 60 | break; 61 | case SYSTEM_EVENT_STA_GOT_IP: 62 | xEventGroupSetBits(wifi_event_group, CONNECTED_BIT); 63 | 64 | //Just for print out IP information 65 | tcpip_adapter_ip_info_t ip; 66 | tcpip_adapter_dns_info_t dns; 67 | memset(&ip, 0, sizeof(tcpip_adapter_ip_info_t)); 68 | memset(&dns, 0, sizeof(tcpip_adapter_dns_info_t)); 69 | ESP_LOGI(TAG, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~") 70 | ; 71 | if (tcpip_adapter_get_ip_info(ESP_IF_WIFI_STA, &ip) == 0) { 72 | ESP_LOGI(TAG, "IP Address..........: "IPSTR, IP2STR(&ip.ip)); 73 | ESP_LOGI(TAG, "Subnet Mask.........: "IPSTR, IP2STR(&ip.netmask)); 74 | ESP_LOGI(TAG, "Default Gateway.....: "IPSTR, IP2STR(&ip.gw)); 75 | } 76 | if (tcpip_adapter_get_dns_info(ESP_IF_WIFI_STA, TCPIP_ADAPTER_DNS_MAIN, 77 | &dns) == 0) { 78 | ESP_LOGI(TAG, "DNS Server..........: "IPSTR, 79 | IP2STR(&dns.ip.u_addr.ip4)); 80 | } 81 | ESP_LOGI(TAG, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~") 82 | ; 83 | 84 | break; 85 | case SYSTEM_EVENT_STA_DISCONNECTED: 86 | 87 | switch (event->event_info.disconnected.reason) 88 | { 89 | 90 | case WIFI_REASON_AUTH_EXPIRE: 91 | ESP_LOGE(TAG, "WIFI_REASON_AUTH_EXPIRE"); 92 | break; 93 | 94 | case WIFI_REASON_NOT_AUTHED: 95 | ESP_LOGE(TAG, "WIFI_REASON_NOT_AUTHED"); 96 | break; 97 | 98 | case WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT: 99 | ESP_LOGE(TAG, "WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT"); 100 | break; 101 | 102 | case WIFI_REASON_NO_AP_FOUND: 103 | ESP_LOGE(TAG, "WIFI_REASON_NO_AP_FOUND"); 104 | break; 105 | case WIFI_REASON_AUTH_FAIL: 106 | ESP_LOGE(TAG, "WIFI_REASON_AUTH_FAIL"); 107 | break; 108 | 109 | case WIFI_REASON_HANDSHAKE_TIMEOUT: 110 | ESP_LOGE(TAG, "WIFI_REASON_HANDSHAKE_TIMEOUT"); 111 | break; 112 | 113 | default: 114 | ESP_LOGE(TAG, "WiFi station disconnected, REASON CODE: %d", event->event_info.disconnected.reason ); 115 | 116 | } 117 | 118 | xEventGroupClearBits(wifi_event_group, CONNECTED_BIT); 119 | //Try to reconnect Wifi again 120 | //if(event->event_info.disconnected.reason != WIFI_REASON_NO_AP_FOUND 121 | // && event->event_info.disconnected.reason != WIFI_REASON_AUTH_FAIL 122 | // && event->event_info.disconnected.reason != WIFI_REASON_NOT_AUTHED) 123 | //{ 124 | 125 | ESP_ERROR_CHECK(esp_wifi_connect()); 126 | //} 127 | 128 | break; 129 | default: 130 | break; 131 | } 132 | return ESP_OK; 133 | } 134 | 135 | static void initialise_wifi(void) { 136 | tcpip_adapter_init(); 137 | 138 | #ifdef ENABLE_STATIC_IP 139 | //For using of static IP 140 | tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_STA); // Don't run a DHCP client 141 | 142 | //Set static IP 143 | tcpip_adapter_ip_info_t ipInfo; 144 | inet_pton(AF_INET, STATIC_IP, &ipInfo.ip); 145 | inet_pton(AF_INET, GATE_WAY, &ipInfo.gw); 146 | inet_pton(AF_INET, SUBNET_MASK, &ipInfo.netmask); 147 | tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_STA, &ipInfo); 148 | 149 | //Set Main DNS server 150 | tcpip_adapter_dns_info_t dnsInfo; 151 | inet_pton(AF_INET, DNS_SERVER, &dnsInfo.ip); 152 | tcpip_adapter_set_dns_info(TCPIP_ADAPTER_IF_STA, TCPIP_ADAPTER_DNS_MAIN, 153 | &dnsInfo); 154 | #endif 155 | 156 | wifi_event_group = xEventGroupCreate(); 157 | ESP_ERROR_CHECK(esp_event_loop_init(event_handler, NULL)); 158 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT() 159 | ; 160 | ESP_ERROR_CHECK(esp_wifi_init(&cfg)); 161 | ESP_ERROR_CHECK(esp_wifi_set_storage(WIFI_STORAGE_RAM)); 162 | 163 | ESP_LOGI(TAG, "Setting Wifi configuration SSID %s...", wifi_config.sta.ssid); 164 | ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_STA)); 165 | ESP_ERROR_CHECK(esp_wifi_set_config(ESP_IF_WIFI_STA, &wifi_config)); 166 | ESP_ERROR_CHECK(esp_wifi_start()); 167 | 168 | } 169 | 170 | static void http_server_netconn_serve(struct netconn *conn) { 171 | struct netbuf *inbuf; 172 | char *buf; 173 | u16_t buflen; 174 | err_t err; 175 | 176 | /* Read the data from the port, blocking if nothing yet there. 177 | We assume the request (the part we care about) is in one netbuf */ 178 | err = netconn_recv(conn, &inbuf); 179 | 180 | if (err == ERR_OK) { 181 | netbuf_data(inbuf, (void**) &buf, &buflen); 182 | 183 | /* Is this an HTTP GET command? (only check the first 5 chars, since 184 | there are other formats for GET, and we're keeping it very simple )*/ 185 | if (buflen >= 5 && strncmp("GET ",buf,4)==0) { 186 | 187 | /* sample: 188 | * GET /l HTTP/1.1 189 | Accept: text/html, application/xhtml+xml, image/jxr, 190 | Referer: http://192.168.1.222/h 191 | Accept-Language: en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3 192 | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 193 | Accept-Encoding: gzip, deflate 194 | Host: 192.168.1.222 195 | Connection: Keep-Alive 196 | * 197 | */ 198 | //Parse URL 199 | char* path = NULL; 200 | char* line_end = strchr(buf, '\n'); 201 | if( line_end != NULL ) 202 | { 203 | //Extract the path from HTTP GET request 204 | path = (char*)malloc(sizeof(char)*(line_end-buf+1)); 205 | int path_length = line_end - buf - strlen("GET ")-strlen("HTTP/1.1")-2; 206 | strncpy(path, &buf[4], path_length ); 207 | path[path_length] = '\0'; 208 | //Get remote IP address 209 | ip_addr_t remote_ip; 210 | u16_t remote_port; 211 | netconn_getaddr(conn, &remote_ip, &remote_port, 0); 212 | printf("[ "IPSTR" ] GET %s\n", IP2STR(&(remote_ip.u_addr.ip4)),path); 213 | } 214 | 215 | /* Send the HTML header 216 | * subtract 1 from the size, since we dont send the \0 in the string 217 | * NETCONN_NOCOPY: our data is const static, so no need to copy it 218 | */ 219 | bool bNotFound = false; 220 | if(path != NULL) 221 | { 222 | 223 | if (strcmp("/high",path)==0) { 224 | gpio_set_level(LED_PIN,1); 225 | } 226 | else if (strcmp("/low",path)==0) { 227 | gpio_set_level(LED_PIN,0); 228 | } 229 | else if (strcmp("/",path)==0) 230 | { 231 | 232 | } 233 | else 234 | { 235 | bNotFound = true; // 404 Not found 236 | } 237 | 238 | free(path); 239 | path=NULL; 240 | } 241 | 242 | // Send HTTP response header 243 | if(bNotFound) 244 | { 245 | netconn_write(conn, http_404_hdr, sizeof(http_404_hdr) - 1, 246 | NETCONN_NOCOPY); 247 | } 248 | else 249 | { 250 | netconn_write(conn, http_html_hdr, sizeof(http_html_hdr) - 1, 251 | NETCONN_NOCOPY); 252 | } 253 | 254 | // Send HTML content 255 | netconn_write(conn, http_index_hml, sizeof(http_index_hml) - 1, 256 | NETCONN_NOCOPY); 257 | } 258 | 259 | } 260 | // Close the connection (server closes in HTTP) 261 | netconn_close(conn); 262 | 263 | // Delete the buffer (netconn_recv gives us ownership, 264 | // so we have to make sure to deallocate the buffer) 265 | netbuf_delete(inbuf); 266 | } 267 | 268 | static void http_server(void *pvParameters) { 269 | struct netconn *conn, *newconn; //conn is listening thread, newconn is new thread for each client 270 | err_t err; 271 | conn = netconn_new(NETCONN_TCP); 272 | netconn_bind(conn, NULL, 80); 273 | netconn_listen(conn); 274 | do { 275 | err = netconn_accept(conn, &newconn); 276 | if (err == ERR_OK) { 277 | http_server_netconn_serve(newconn); 278 | netconn_delete(newconn); 279 | } 280 | } while (err == ERR_OK); 281 | netconn_close(conn); 282 | netconn_delete(conn); 283 | } 284 | 285 | void app_main() { 286 | ESP_ERROR_CHECK(nvs_flash_init()); 287 | initialise_wifi(); 288 | 289 | //GPIO initialization 290 | gpio_pad_select_gpio(LED_PIN); 291 | gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT); 292 | 293 | ESP_LOGI(TAG, "Hello world! App is running ... ...\n"); 294 | 295 | xTaskCreate(&http_server, "http_server", 2048, NULL, 5, NULL); 296 | } 297 | -------------------------------------------------------------------------------- /sdkconfig: -------------------------------------------------------------------------------- 1 | # 2 | # Automatically generated file; DO NOT EDIT. 3 | # Espressif IoT Development Framework Configuration 4 | # 5 | 6 | # 7 | # SDK tool configuration 8 | # 9 | CONFIG_TOOLPREFIX="xtensa-esp32-elf-" 10 | CONFIG_PYTHON="python" 11 | CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y 12 | 13 | # 14 | # Bootloader config 15 | # 16 | CONFIG_LOG_BOOTLOADER_LEVEL_NONE= 17 | CONFIG_LOG_BOOTLOADER_LEVEL_ERROR= 18 | CONFIG_LOG_BOOTLOADER_LEVEL_WARN= 19 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO= 20 | CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG=y 21 | CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE= 22 | CONFIG_LOG_BOOTLOADER_LEVEL=4 23 | CONFIG_BOOTLOADER_VDDSDIO_BOOST=y 24 | 25 | # 26 | # Security features 27 | # 28 | CONFIG_SECURE_BOOT_ENABLED= 29 | CONFIG_FLASH_ENCRYPTION_ENABLED= 30 | 31 | # 32 | # Serial flasher config 33 | # 34 | CONFIG_ESPTOOLPY_PORT="COM4" 35 | CONFIG_ESPTOOLPY_BAUD_115200B=y 36 | CONFIG_ESPTOOLPY_BAUD_230400B= 37 | CONFIG_ESPTOOLPY_BAUD_921600B= 38 | CONFIG_ESPTOOLPY_BAUD_2MB= 39 | CONFIG_ESPTOOLPY_BAUD_OTHER= 40 | CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200 41 | CONFIG_ESPTOOLPY_BAUD=115200 42 | CONFIG_ESPTOOLPY_COMPRESSED=y 43 | CONFIG_FLASHMODE_QIO= 44 | CONFIG_FLASHMODE_QOUT= 45 | CONFIG_FLASHMODE_DIO=y 46 | CONFIG_FLASHMODE_DOUT= 47 | CONFIG_ESPTOOLPY_FLASHMODE="dio" 48 | CONFIG_ESPTOOLPY_FLASHFREQ_80M= 49 | CONFIG_ESPTOOLPY_FLASHFREQ_40M=y 50 | CONFIG_ESPTOOLPY_FLASHFREQ_26M= 51 | CONFIG_ESPTOOLPY_FLASHFREQ_20M= 52 | CONFIG_ESPTOOLPY_FLASHFREQ="40m" 53 | CONFIG_ESPTOOLPY_FLASHSIZE_1MB= 54 | CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y 55 | CONFIG_ESPTOOLPY_FLASHSIZE_4MB= 56 | CONFIG_ESPTOOLPY_FLASHSIZE_8MB= 57 | CONFIG_ESPTOOLPY_FLASHSIZE_16MB= 58 | CONFIG_ESPTOOLPY_FLASHSIZE="2MB" 59 | CONFIG_ESPTOOLPY_FLASHSIZE_DETECT=y 60 | CONFIG_ESPTOOLPY_BEFORE_RESET=y 61 | CONFIG_ESPTOOLPY_BEFORE_NORESET= 62 | CONFIG_ESPTOOLPY_BEFORE="default_reset" 63 | CONFIG_ESPTOOLPY_AFTER_RESET=y 64 | CONFIG_ESPTOOLPY_AFTER_NORESET= 65 | CONFIG_ESPTOOLPY_AFTER="hard_reset" 66 | CONFIG_MONITOR_BAUD_9600B= 67 | CONFIG_MONITOR_BAUD_57600B= 68 | CONFIG_MONITOR_BAUD_115200B=y 69 | CONFIG_MONITOR_BAUD_230400B= 70 | CONFIG_MONITOR_BAUD_921600B= 71 | CONFIG_MONITOR_BAUD_2MB= 72 | CONFIG_MONITOR_BAUD_OTHER= 73 | CONFIG_MONITOR_BAUD_OTHER_VAL=115200 74 | CONFIG_MONITOR_BAUD=115200 75 | 76 | # 77 | # Partition Table 78 | # 79 | CONFIG_PARTITION_TABLE_SINGLE_APP=y 80 | CONFIG_PARTITION_TABLE_TWO_OTA= 81 | CONFIG_PARTITION_TABLE_CUSTOM= 82 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" 83 | CONFIG_PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET=0x10000 84 | CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" 85 | CONFIG_APP_OFFSET=0x10000 86 | 87 | # 88 | # Compiler options 89 | # 90 | CONFIG_OPTIMIZATION_LEVEL_DEBUG=y 91 | CONFIG_OPTIMIZATION_LEVEL_RELEASE= 92 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y 93 | CONFIG_OPTIMIZATION_ASSERTIONS_SILENT= 94 | CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED= 95 | CONFIG_CXX_EXCEPTIONS= 96 | 97 | # 98 | # Component config 99 | # 100 | 101 | # 102 | # Application Level Tracing 103 | # 104 | CONFIG_ESP32_APPTRACE_DEST_TRAX= 105 | CONFIG_ESP32_APPTRACE_DEST_NONE=y 106 | CONFIG_ESP32_APPTRACE_ENABLE= 107 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y 108 | 109 | # 110 | # FreeRTOS SystemView Tracing 111 | # 112 | CONFIG_AWS_IOT_SDK= 113 | 114 | # 115 | # Bluetooth 116 | # 117 | CONFIG_BT_ENABLED= 118 | CONFIG_BTDM_CONTROLLER_PINNED_TO_CORE=0 119 | CONFIG_BT_RESERVE_DRAM=0 120 | 121 | # 122 | # ESP32-specific 123 | # 124 | CONFIG_ESP32_DEFAULT_CPU_FREQ_80= 125 | CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y 126 | CONFIG_ESP32_DEFAULT_CPU_FREQ_240= 127 | CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 128 | CONFIG_MEMMAP_SMP=y 129 | CONFIG_SPIRAM_SUPPORT= 130 | CONFIG_MEMMAP_TRACEMEM= 131 | CONFIG_MEMMAP_TRACEMEM_TWOBANKS= 132 | CONFIG_ESP32_TRAX= 133 | CONFIG_TRACEMEM_RESERVE_DRAM=0x0 134 | CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH= 135 | CONFIG_ESP32_ENABLE_COREDUMP_TO_UART= 136 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y 137 | CONFIG_ESP32_ENABLE_COREDUMP= 138 | CONFIG_TWO_UNIVERSAL_MAC_ADDRESS= 139 | CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y 140 | CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 141 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 142 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=4096 143 | CONFIG_MAIN_TASK_STACK_SIZE=4096 144 | CONFIG_IPC_TASK_STACK_SIZE=1024 145 | CONFIG_TIMER_TASK_STACK_SIZE=4096 146 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y 147 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF= 148 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR= 149 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF= 150 | CONFIG_NEWLIB_STDIN_LINE_ENDING_LF= 151 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y 152 | CONFIG_NEWLIB_NANO_FORMAT= 153 | CONFIG_CONSOLE_UART_DEFAULT=y 154 | CONFIG_CONSOLE_UART_CUSTOM= 155 | CONFIG_CONSOLE_UART_NONE= 156 | CONFIG_CONSOLE_UART_NUM=0 157 | CONFIG_CONSOLE_UART_BAUDRATE=115200 158 | CONFIG_ULP_COPROC_ENABLED= 159 | CONFIG_ULP_COPROC_RESERVE_MEM=0 160 | CONFIG_ESP32_PANIC_PRINT_HALT= 161 | CONFIG_ESP32_PANIC_PRINT_REBOOT=y 162 | CONFIG_ESP32_PANIC_SILENT_REBOOT= 163 | CONFIG_ESP32_PANIC_GDBSTUB= 164 | CONFIG_ESP32_DEBUG_OCDAWARE=y 165 | CONFIG_INT_WDT=y 166 | CONFIG_INT_WDT_TIMEOUT_MS=300 167 | CONFIG_INT_WDT_CHECK_CPU1=y 168 | CONFIG_TASK_WDT=y 169 | CONFIG_TASK_WDT_PANIC= 170 | CONFIG_TASK_WDT_TIMEOUT_S=5 171 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y 172 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y 173 | CONFIG_BROWNOUT_DET=y 174 | CONFIG_BROWNOUT_DET_LVL_SEL_0=y 175 | CONFIG_BROWNOUT_DET_LVL_SEL_1= 176 | CONFIG_BROWNOUT_DET_LVL_SEL_2= 177 | CONFIG_BROWNOUT_DET_LVL_SEL_3= 178 | CONFIG_BROWNOUT_DET_LVL_SEL_4= 179 | CONFIG_BROWNOUT_DET_LVL_SEL_5= 180 | CONFIG_BROWNOUT_DET_LVL_SEL_6= 181 | CONFIG_BROWNOUT_DET_LVL_SEL_7= 182 | CONFIG_BROWNOUT_DET_LVL=0 183 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC= 184 | CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y 185 | CONFIG_ESP32_TIME_SYSCALL_USE_FRC1= 186 | CONFIG_ESP32_TIME_SYSCALL_USE_NONE= 187 | CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y 188 | CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL= 189 | CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 190 | CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 191 | CONFIG_ESP32_XTAL_FREQ_40=y 192 | CONFIG_ESP32_XTAL_FREQ_26= 193 | CONFIG_ESP32_XTAL_FREQ_AUTO= 194 | CONFIG_ESP32_XTAL_FREQ=40 195 | CONFIG_DISABLE_BASIC_ROM_CONSOLE= 196 | CONFIG_NO_BLOBS= 197 | 198 | # 199 | # Wi-Fi 200 | # 201 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 202 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 203 | CONFIG_ESP32_WIFI_STATIC_TX_BUFFER= 204 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y 205 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 206 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 207 | CONFIG_ESP32_WIFI_AMPDU_ENABLED=y 208 | CONFIG_ESP32_WIFI_TX_BA_WIN=6 209 | CONFIG_ESP32_WIFI_RX_BA_WIN=6 210 | CONFIG_ESP32_WIFI_NVS_ENABLED=y 211 | 212 | # 213 | # PHY 214 | # 215 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y 216 | CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION= 217 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 218 | CONFIG_ESP32_PHY_MAX_TX_POWER=20 219 | 220 | # 221 | # Power Management 222 | # 223 | CONFIG_PM_ENABLE= 224 | 225 | # 226 | # Ethernet 227 | # 228 | CONFIG_DMA_RX_BUF_NUM=10 229 | CONFIG_DMA_TX_BUF_NUM=10 230 | CONFIG_EMAC_L2_TO_L3_RX_BUF_MODE= 231 | CONFIG_EMAC_TASK_PRIORITY=20 232 | 233 | # 234 | # FAT Filesystem support 235 | # 236 | CONFIG_FATFS_CODEPAGE_ASCII=y 237 | CONFIG_FATFS_CODEPAGE_437= 238 | CONFIG_FATFS_CODEPAGE_720= 239 | CONFIG_FATFS_CODEPAGE_737= 240 | CONFIG_FATFS_CODEPAGE_771= 241 | CONFIG_FATFS_CODEPAGE_775= 242 | CONFIG_FATFS_CODEPAGE_850= 243 | CONFIG_FATFS_CODEPAGE_852= 244 | CONFIG_FATFS_CODEPAGE_855= 245 | CONFIG_FATFS_CODEPAGE_857= 246 | CONFIG_FATFS_CODEPAGE_860= 247 | CONFIG_FATFS_CODEPAGE_861= 248 | CONFIG_FATFS_CODEPAGE_862= 249 | CONFIG_FATFS_CODEPAGE_863= 250 | CONFIG_FATFS_CODEPAGE_864= 251 | CONFIG_FATFS_CODEPAGE_865= 252 | CONFIG_FATFS_CODEPAGE_866= 253 | CONFIG_FATFS_CODEPAGE_869= 254 | CONFIG_FATFS_CODEPAGE_932= 255 | CONFIG_FATFS_CODEPAGE_936= 256 | CONFIG_FATFS_CODEPAGE_949= 257 | CONFIG_FATFS_CODEPAGE_950= 258 | CONFIG_FATFS_CODEPAGE=1 259 | CONFIG_FATFS_MAX_LFN=255 260 | 261 | # 262 | # FreeRTOS 263 | # 264 | CONFIG_FREERTOS_UNICORE= 265 | CONFIG_FREERTOS_CORETIMER_0=y 266 | CONFIG_FREERTOS_CORETIMER_1= 267 | CONFIG_FREERTOS_HZ=100 268 | CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION=y 269 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE= 270 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL= 271 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y 272 | CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK= 273 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y 274 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 275 | CONFIG_FREERTOS_ASSERT_FAIL_ABORT=y 276 | CONFIG_FREERTOS_ASSERT_FAIL_PRINT_CONTINUE= 277 | CONFIG_FREERTOS_ASSERT_DISABLE= 278 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1024 279 | CONFIG_FREERTOS_ISR_STACKSIZE=1536 280 | CONFIG_FREERTOS_LEGACY_HOOKS= 281 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 282 | CONFIG_SUPPORT_STATIC_ALLOCATION= 283 | CONFIG_TIMER_TASK_PRIORITY=1 284 | CONFIG_TIMER_TASK_STACK_DEPTH=2048 285 | CONFIG_TIMER_QUEUE_LENGTH=10 286 | CONFIG_FREERTOS_USE_TRACE_FACILITY= 287 | CONFIG_FREERTOS_DEBUG_INTERNALS= 288 | 289 | # 290 | # Heap memory debugging 291 | # 292 | CONFIG_HEAP_POISONING_DISABLED=y 293 | CONFIG_HEAP_POISONING_LIGHT= 294 | CONFIG_HEAP_POISONING_COMPREHENSIVE= 295 | CONFIG_HEAP_TRACING= 296 | 297 | # 298 | # libsodium 299 | # 300 | CONFIG_LIBSODIUM_USE_MBEDTLS_SHA=y 301 | 302 | # 303 | # Log output 304 | # 305 | CONFIG_LOG_DEFAULT_LEVEL_NONE= 306 | CONFIG_LOG_DEFAULT_LEVEL_ERROR= 307 | CONFIG_LOG_DEFAULT_LEVEL_WARN= 308 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y 309 | CONFIG_LOG_DEFAULT_LEVEL_DEBUG= 310 | CONFIG_LOG_DEFAULT_LEVEL_VERBOSE= 311 | CONFIG_LOG_DEFAULT_LEVEL=3 312 | CONFIG_LOG_COLORS=y 313 | 314 | # 315 | # LWIP 316 | # 317 | CONFIG_L2_TO_L3_COPY= 318 | CONFIG_LWIP_MAX_SOCKETS=10 319 | CONFIG_LWIP_SO_REUSE=y 320 | CONFIG_LWIP_SO_REUSE_RXTOALL=y 321 | CONFIG_LWIP_SO_RCVBUF= 322 | CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1 323 | CONFIG_LWIP_IP_FRAG= 324 | CONFIG_LWIP_IP_REASSEMBLY= 325 | CONFIG_LWIP_STATS= 326 | CONFIG_LWIP_ETHARP_TRUST_IP_MAC=y 327 | CONFIG_TCPIP_RECVMBOX_SIZE=32 328 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y 329 | CONFIG_LWIP_AUTOIP= 330 | CONFIG_LWIP_NETIF_LOOPBACK=y 331 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 332 | 333 | # 334 | # TCP 335 | # 336 | CONFIG_TCP_MAXRTX=12 337 | CONFIG_TCP_SYNMAXRTX=6 338 | CONFIG_TCP_MSS=1436 339 | CONFIG_TCP_MSL=60000 340 | CONFIG_TCP_SND_BUF_DEFAULT=5744 341 | CONFIG_TCP_WND_DEFAULT=5744 342 | CONFIG_TCP_RECVMBOX_SIZE=6 343 | CONFIG_TCP_QUEUE_OOSEQ=y 344 | CONFIG_TCP_OVERSIZE_MSS=y 345 | CONFIG_TCP_OVERSIZE_QUARTER_MSS= 346 | CONFIG_TCP_OVERSIZE_DISABLE= 347 | 348 | # 349 | # UDP 350 | # 351 | CONFIG_UDP_RECVMBOX_SIZE=6 352 | CONFIG_TCPIP_TASK_STACK_SIZE=2560 353 | CONFIG_PPP_SUPPORT= 354 | 355 | # 356 | # ICMP 357 | # 358 | CONFIG_LWIP_MULTICAST_PING= 359 | CONFIG_LWIP_BROADCAST_PING= 360 | 361 | # 362 | # mbedTLS 363 | # 364 | CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=16384 365 | CONFIG_MBEDTLS_DEBUG= 366 | CONFIG_MBEDTLS_HARDWARE_AES=y 367 | CONFIG_MBEDTLS_HARDWARE_MPI= 368 | CONFIG_MBEDTLS_HARDWARE_SHA= 369 | CONFIG_MBEDTLS_HAVE_TIME=y 370 | CONFIG_MBEDTLS_HAVE_TIME_DATE= 371 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y 372 | CONFIG_MBEDTLS_TLS_SERVER_ONLY= 373 | CONFIG_MBEDTLS_TLS_CLIENT_ONLY= 374 | CONFIG_MBEDTLS_TLS_DISABLED= 375 | CONFIG_MBEDTLS_TLS_SERVER=y 376 | CONFIG_MBEDTLS_TLS_CLIENT=y 377 | CONFIG_MBEDTLS_TLS_ENABLED=y 378 | 379 | # 380 | # TLS Key Exchange Methods 381 | # 382 | CONFIG_MBEDTLS_PSK_MODES= 383 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y 384 | CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=y 385 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y 386 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y 387 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y 388 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y 389 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y 390 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y 391 | CONFIG_MBEDTLS_SSL_PROTO_SSL3= 392 | CONFIG_MBEDTLS_SSL_PROTO_TLS1=y 393 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y 394 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y 395 | CONFIG_MBEDTLS_SSL_PROTO_DTLS= 396 | CONFIG_MBEDTLS_SSL_ALPN=y 397 | CONFIG_MBEDTLS_SSL_SESSION_TICKETS=y 398 | 399 | # 400 | # Symmetric Ciphers 401 | # 402 | CONFIG_MBEDTLS_AES_C=y 403 | CONFIG_MBEDTLS_CAMELLIA_C= 404 | CONFIG_MBEDTLS_DES_C= 405 | CONFIG_MBEDTLS_RC4_DISABLED=y 406 | CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT= 407 | CONFIG_MBEDTLS_RC4_ENABLED= 408 | CONFIG_MBEDTLS_BLOWFISH_C= 409 | CONFIG_MBEDTLS_XTEA_C= 410 | CONFIG_MBEDTLS_CCM_C=y 411 | CONFIG_MBEDTLS_GCM_C=y 412 | CONFIG_MBEDTLS_RIPEMD160_C= 413 | 414 | # 415 | # Certificates 416 | # 417 | CONFIG_MBEDTLS_PEM_PARSE_C=y 418 | CONFIG_MBEDTLS_PEM_WRITE_C=y 419 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y 420 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y 421 | CONFIG_MBEDTLS_ECP_C=y 422 | CONFIG_MBEDTLS_ECDH_C=y 423 | CONFIG_MBEDTLS_ECDSA_C=y 424 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y 425 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y 426 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y 427 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y 428 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y 429 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y 430 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y 431 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y 432 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y 433 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y 434 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y 435 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y 436 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y 437 | 438 | # 439 | # OpenSSL 440 | # 441 | CONFIG_OPENSSL_DEBUG= 442 | CONFIG_OPENSSL_ASSERT_DO_NOTHING=y 443 | CONFIG_OPENSSL_ASSERT_EXIT= 444 | 445 | # 446 | # PThreads 447 | # 448 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 449 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=2048 450 | 451 | # 452 | # SPI Flash driver 453 | # 454 | CONFIG_SPI_FLASH_ENABLE_COUNTERS= 455 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y 456 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y 457 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS= 458 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED= 459 | 460 | # 461 | # SPIFFS Configuration 462 | # 463 | CONFIG_SPIFFS_MAX_PARTITIONS=3 464 | 465 | # 466 | # SPIFFS Cache Configuration 467 | # 468 | CONFIG_SPIFFS_CACHE=y 469 | CONFIG_SPIFFS_CACHE_WR=y 470 | CONFIG_SPIFFS_CACHE_STATS= 471 | CONFIG_SPIFFS_PAGE_CHECK=y 472 | CONFIG_SPIFFS_GC_MAX_RUNS=10 473 | CONFIG_SPIFFS_GC_STATS= 474 | CONFIG_SPIFFS_OBJ_NAME_LEN=32 475 | CONFIG_SPIFFS_USE_MAGIC=y 476 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y 477 | 478 | # 479 | # Debug Configuration 480 | # 481 | CONFIG_SPIFFS_DBG= 482 | CONFIG_SPIFFS_API_DBG= 483 | CONFIG_SPIFFS_GC_DBG= 484 | CONFIG_SPIFFS_CACHE_DBG= 485 | CONFIG_SPIFFS_CHECK_DBG= 486 | CONFIG_SPIFFS_TEST_VISUALISATION= 487 | 488 | # 489 | # tcpip adapter 490 | # 491 | CONFIG_IP_LOST_TIMER_INTERVAL=120 492 | 493 | # 494 | # Wear Levelling 495 | # 496 | CONFIG_WL_SECTOR_SIZE_512= 497 | CONFIG_WL_SECTOR_SIZE_4096=y 498 | CONFIG_WL_SECTOR_SIZE=4096 499 | --------------------------------------------------------------------------------