diff options
| -rw-r--r-- | CMakeLists.txt | 2 | ||||
| -rw-r--r-- | Makefile | 206 | ||||
| -rw-r--r-- | main/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | main/captive_portal.c | 224 | ||||
| -rw-r--r-- | main/captive_portal.h | 11 | ||||
| -rw-r--r-- | main/dns_server.c | 3 | ||||
| -rw-r--r-- | main/firewall.c | 17 | ||||
| -rw-r--r-- | main/tollgate_main.c | 221 | ||||
| -rw-r--r-- | package-lock.json | 74 | ||||
| -rw-r--r-- | package.json | 15 | ||||
| -rw-r--r-- | partitions.csv | 5 | ||||
| -rw-r--r-- | sdkconfig | 2262 | ||||
| -rw-r--r-- | sdkconfig.defaults | 9 | ||||
| -rw-r--r-- | tests/api.mjs | 79 | ||||
| -rw-r--r-- | tests/captive-portal.spec.mjs | 75 | ||||
| -rw-r--r-- | tests/helpers/network.mjs | 89 | ||||
| -rw-r--r-- | tests/helpers/serial.mjs | 82 | ||||
| -rw-r--r-- | tests/network.mjs | 66 | ||||
| -rw-r--r-- | tests/playwright.config.mjs | 16 | ||||
| -rw-r--r-- | tests/smoke.mjs | 52 |
20 files changed, 3508 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ae5284d..d93e479 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | cmake_minimum_required(VERSION 3.16) | 1 | cmake_minimum_required(VERSION 3.16) |
| 2 | set(EXTRA_COMPONENT_DIRS "components") | 2 | set(PARTITION_CSV_PATH "${CMAKE_SOURCE_DIR}/partitions.csv") |
| 3 | include($ENV{IDF_PATH}/tools/cmake/project.cmake) | 3 | include($ENV{IDF_PATH}/tools/cmake/project.cmake) |
| 4 | project(esp32-tollgate) | 4 | project(esp32-tollgate) |
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..7de799e --- /dev/null +++ b/Makefile | |||
| @@ -0,0 +1,206 @@ | |||
| 1 | SHELL := /bin/bash | ||
| 2 | .DEFAULT_GOAL := help | ||
| 3 | |||
| 4 | -include .env | ||
| 5 | export | ||
| 6 | |||
| 7 | IDF_PATH ?= $(HOME)/esp/esp-idf | ||
| 8 | PROJECT_DIR := $(shell pwd) | ||
| 9 | BUILD_DIR := $(PROJECT_DIR)/build | ||
| 10 | PORT_A ?= /dev/ttyACM0 | ||
| 11 | PORT_B ?= /dev/ttyACM1 | ||
| 12 | PORT ?= $(PORT_A) | ||
| 13 | BAUD ?= 460800 | ||
| 14 | TARGET ?= esp32s3 | ||
| 15 | |||
| 16 | NODE ?= node | ||
| 17 | NPM ?= npm | ||
| 18 | PYTHON ?= python3 | ||
| 19 | |||
| 20 | .PHONY: help setup detect-ports detect-chip detect-all | ||
| 21 | .PHONY: flash flash-a flash-b monitor monitor-a monitor-b | ||
| 22 | .PHONY: test smoke test-api test-portal test-network test-full | ||
| 23 | .PHONY: tokens test-payment | ||
| 24 | .PHONY: clean erase-nvs reset serial-log | ||
| 25 | .PHONY: bootstrap-config | ||
| 26 | |||
| 27 | help: | ||
| 28 | @echo "TollGate ESP32 — Makefile" | ||
| 29 | @echo "" | ||
| 30 | @echo "Discovery:" | ||
| 31 | @echo " detect-ports List connected ESP32 serial ports" | ||
| 32 | @echo " detect-chip Identify chip type on PORT" | ||
| 33 | @echo " detect-all Full device inventory" | ||
| 34 | @echo "" | ||
| 35 | @echo "Build & Flash:" | ||
| 36 | @echo " flash Build + flash to PORT (default: PORT_A)" | ||
| 37 | @echo " flash-a Flash to PORT_A" | ||
| 38 | @echo " flash-b Flash to PORT_B" | ||
| 39 | @echo " monitor Serial monitor on PORT" | ||
| 40 | @echo "" | ||
| 41 | @echo "Test (Phase 1):" | ||
| 42 | @echo " test Run all Phase 1 tests" | ||
| 43 | @echo " smoke Quick 30s smoke test" | ||
| 44 | @echo " test-api curl API endpoint tests" | ||
| 45 | @echo " test-portal Playwright captive portal tests" | ||
| 46 | @echo " test-network DNS/NAT connectivity tests" | ||
| 47 | @echo " test-full All 14 Phase 1 tests" | ||
| 48 | @echo "" | ||
| 49 | @echo "Test (Phase 2):" | ||
| 50 | @echo " tokens Mint test Cashu tokens (AMOUNT=21)" | ||
| 51 | @echo " test-payment Payment flow tests" | ||
| 52 | @echo "" | ||
| 53 | @echo "Utilities:" | ||
| 54 | @echo " setup One-time: install esptool, deps" | ||
| 55 | @echo " clean Clean build" | ||
| 56 | @echo " erase-nvs Erase NVS partition on PORT" | ||
| 57 | @echo " reset Hardware reset on PORT" | ||
| 58 | @echo " bootstrap-config Write .env values to SPIFFS config.json" | ||
| 59 | @echo " serial-log Capture serial output" | ||
| 60 | |||
| 61 | # ────────────────────────────────────────────── | ||
| 62 | # Discovery | ||
| 63 | # ────────────────────────────────────────────── | ||
| 64 | |||
| 65 | detect-ports: | ||
| 66 | @echo "=== Serial Ports ===" | ||
| 67 | @ls /dev/ttyACM* /dev/ttyUSB* 2>/dev/null || echo "No serial ports found" | ||
| 68 | @echo "" | ||
| 69 | @echo "=== USB Devices ===" | ||
| 70 | @lsusb 2>/dev/null | grep -i -E "serial|uart|cp210|ch340|ftdi|esp" || true | ||
| 71 | @echo "" | ||
| 72 | @echo "=== By ID ===" | ||
| 73 | @ls -la /dev/serial/by-id/ 2>/dev/null || true | ||
| 74 | |||
| 75 | detect-chip: | ||
| 76 | @echo "=== Detecting chip on $(PORT) ===" | ||
| 77 | @python3 -m esptool --port $(PORT) chip_id 2>&1 || \ | ||
| 78 | $(PYTHON) -c "import esptool; esptool.main(['--port','$(PORT)','chip_id'])" 2>&1 || \ | ||
| 79 | echo "esptool not found. Run: pip install esptool" | ||
| 80 | @echo "" | ||
| 81 | @python3 -m esptool --port $(PORT) flash_id 2>&1 || true | ||
| 82 | |||
| 83 | detect-all: detect-ports | ||
| 84 | @for port in /dev/ttyACM* /dev/ttyUSB*; do \ | ||
| 85 | [ -e "$$port" ] || continue; \ | ||
| 86 | echo ""; \ | ||
| 87 | echo "=== Device at $$port ==="; \ | ||
| 88 | python3 -m esptool --port $$port chip_id 2>&1 | head -5 || true; \ | ||
| 89 | python3 -m esptool --port $$port flash_id 2>&1 | head -5 || true; \ | ||
| 90 | done | ||
| 91 | |||
| 92 | # ────────────────────────────────────────────── | ||
| 93 | # Setup | ||
| 94 | # ────────────────────────────────────────────── | ||
| 95 | |||
| 96 | setup: | ||
| 97 | @echo "=== Installing esptool ===" | ||
| 98 | pip install esptool 2>/dev/null || pip3 install esptool | ||
| 99 | @echo "" | ||
| 100 | @echo "=== Checking ESP-IDF ===" | ||
| 101 | @test -d $(IDF_PATH) && echo "ESP-IDF found at $(IDF_PATH)" || \ | ||
| 102 | echo "ESP-IDF not found at $(IDF_PATH). Install from https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/" | ||
| 103 | @echo "" | ||
| 104 | @echo "=== Installing Node deps ===" | ||
| 105 | $(NPM) install | ||
| 106 | @echo "" | ||
| 107 | @echo "=== Installing Python deps ===" | ||
| 108 | pip install pyserial 2>/dev/null || pip3 install pyserial | ||
| 109 | @echo "" | ||
| 110 | @echo "Setup complete!" | ||
| 111 | |||
| 112 | # ────────────────────────────────────────────── | ||
| 113 | # Build & Flash | ||
| 114 | # ────────────────────────────────────────────── | ||
| 115 | |||
| 116 | flash: build | ||
| 117 | @echo "=== Flashing to $(PORT) ===" | ||
| 118 | . $(IDF_PATH)/export.sh && idf.py -p $(PORT) -b $(BAUD) flash | ||
| 119 | |||
| 120 | flash-a: PORT=$(PORT_A) | ||
| 121 | flash-a: flash | ||
| 122 | |||
| 123 | flash-b: PORT=$(PORT_B) | ||
| 124 | flash-b: flash | ||
| 125 | |||
| 126 | build: | ||
| 127 | @echo "=== Building $(TARGET) ===" | ||
| 128 | . $(IDF_PATH)/export.sh && \ | ||
| 129 | idf.py set-target $(TARGET) 2>/dev/null; \ | ||
| 130 | idf.py build | ||
| 131 | |||
| 132 | monitor: | ||
| 133 | . $(IDF_PATH)/export.sh && idf.py -p $(PORT) monitor | ||
| 134 | |||
| 135 | monitor-a: PORT=$(PORT_A) | ||
| 136 | monitor-a: monitor | ||
| 137 | |||
| 138 | monitor-b: PORT=$(PORT_B) | ||
| 139 | monitor-b: monitor | ||
| 140 | |||
| 141 | # ────────────────────────────────────────────── | ||
| 142 | # Test Infrastructure | ||
| 143 | # ────────────────────────────────────────────── | ||
| 144 | |||
| 145 | test: test-api test-network | ||
| 146 | @echo "=== All tests passed ===" | ||
| 147 | |||
| 148 | smoke: | ||
| 149 | @echo "=== Running smoke test (30s) ===" | ||
| 150 | $(NODE) tests/smoke.mjs $(PORT) | ||
| 151 | |||
| 152 | test-api: | ||
| 153 | @echo "=== Running API tests ===" | ||
| 154 | $(NODE) tests/api.mjs | ||
| 155 | |||
| 156 | test-portal: | ||
| 157 | @echo "=== Running Playwright portal tests ===" | ||
| 158 | npx playwright test tests/captive-portal.spec.mjs | ||
| 159 | |||
| 160 | test-network: | ||
| 161 | @echo "=== Running network tests ===" | ||
| 162 | $(NODE) tests/network.mjs | ||
| 163 | |||
| 164 | test-full: test-api test-portal test-network | ||
| 165 | @echo "=== Full test suite passed ===" | ||
| 166 | |||
| 167 | # ────────────────────────────────────────────── | ||
| 168 | # Phase 2: Payment Testing | ||
| 169 | # ────────────────────────────────────────────── | ||
| 170 | |||
| 171 | tokens: | ||
| 172 | @echo "=== Minting test tokens from $(TEST_MINT) ===" | ||
| 173 | @AMOUNT=$${AMOUNT:-21}; \ | ||
| 174 | cd scripts/mint-token && go run main.go -mint https://$(TEST_MINT) -amount $$AMOUNT | ||
| 175 | |||
| 176 | test-payment: | ||
| 177 | @echo "=== Running payment tests ===" | ||
| 178 | $(NODE) tests/payment.mjs | ||
| 179 | |||
| 180 | # ────────────────────────────────────────────── | ||
| 181 | # Utilities | ||
| 182 | # ────────────────────────────────────────────── | ||
| 183 | |||
| 184 | clean: | ||
| 185 | rm -rf $(BUILD_DIR) sdkconfig sdkconfig.old | ||
| 186 | . $(IDF_PATH)/export.sh && idf.py fullclean | ||
| 187 | |||
| 188 | erase-nvs: | ||
| 189 | @echo "=== Erasing NVS on $(PORT) ===" | ||
| 190 | . $(IDF_PATH)/export.sh && \ | ||
| 191 | partition_offset=$$(idf.py partition-table 2>/dev/null | grep nvs | awk '{print $$2}'); \ | ||
| 192 | python3 -m esptool --port $(PORT) erase_region $$partition_offset 0x6000 | ||
| 193 | |||
| 194 | reset: | ||
| 195 | @echo "=== Resetting device on $(PORT) ===" | ||
| 196 | python3 -m esptool --port $(PORT) run 2>/dev/null || true | ||
| 197 | |||
| 198 | serial-log: | ||
| 199 | @echo "=== Capturing serial output from $(PORT) ===" | ||
| 200 | python3 -c "import serial; s=serial.Serial('$(PORT)',115200,timeout=1); \ | ||
| 201 | [print(s.readline().decode(errors='replace'),end='') for _ in iter(lambda: s.readline(), b'')]" | ||
| 202 | |||
| 203 | bootstrap-config: | ||
| 204 | @echo "=== Bootstrapping config.json ===" | ||
| 205 | @echo '{"wifi_networks":[{"ssid":"$(WIFI_SSID)","password":"$(WIFI_PASSWORD)"}],"ap_ssid":"$(AP_SSID)","ap_password":"$(AP_PASSWORD)","mint_url":"$(MINT_URL)","lnurl_url":"$(LNURL_URL)","price_per_step":$(PRICE_PER_STEP),"step_size_ms":$(STEP_SIZE)}' > main/config.json | ||
| 206 | @echo "Config written to main/config.json" | ||
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt index 2c94ff1..a21a53f 100644 --- a/main/CMakeLists.txt +++ b/main/CMakeLists.txt | |||
| @@ -3,7 +3,7 @@ idf_component_register(SRCS "tollgate_main.c" | |||
| 3 | "dns_server.c" | 3 | "dns_server.c" |
| 4 | "captive_portal.c" | 4 | "captive_portal.c" |
| 5 | "firewall.c" | 5 | "firewall.c" |
| 6 | INCLUDE_DIRS "." | 6 | INCLUDE_DIRS "." "${IDF_PATH}/components/lwip/include/apps" |
| 7 | REQUIRES esp_wifi esp_event esp_netif nvs_flash esp_http_server | 7 | REQUIRES esp_wifi esp_event esp_netif nvs_flash esp_http_server |
| 8 | lwip json esp_http_client esp_tls log | 8 | lwip json esp_http_client mbedtls log spiffs |
| 9 | PRIV_REQUIRES lwip) | 9 | PRIV_REQUIRES esp-tls) |
diff --git a/main/captive_portal.c b/main/captive_portal.c new file mode 100644 index 0000000..acff9c2 --- /dev/null +++ b/main/captive_portal.c | |||
| @@ -0,0 +1,224 @@ | |||
| 1 | #include "captive_portal.h" | ||
| 2 | #include "firewall.h" | ||
| 3 | #include "config.h" | ||
| 4 | #include "esp_log.h" | ||
| 5 | #include "esp_wifi.h" | ||
| 6 | #include "cJSON.h" | ||
| 7 | #include "lwip/sockets.h" | ||
| 8 | #include "lwip/netdb.h" | ||
| 9 | #include <string.h> | ||
| 10 | #include <sys/param.h> | ||
| 11 | |||
| 12 | static const char *TAG = "captive_portal"; | ||
| 13 | static httpd_handle_t s_server = NULL; | ||
| 14 | |||
| 15 | static const char PORTAL_HTML[] = \ | ||
| 16 | "<!DOCTYPE html>" | ||
| 17 | "<html><head>" | ||
| 18 | "<meta charset='utf-8'>" | ||
| 19 | "<meta name='viewport' content='width=device-width, initial-scale=1'>" | ||
| 20 | "<title>TollGate</title>" | ||
| 21 | "<style>" | ||
| 22 | "*{box-sizing:border-box;margin:0;padding:0}" | ||
| 23 | "body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;" | ||
| 24 | "background:#0a0a0a;color:#fff;display:flex;align-items:center;justify-content:center;" | ||
| 25 | "min-height:100vh;padding:20px}" | ||
| 26 | ".card{background:#1a1a1a;border:1px solid #333;border-radius:16px;padding:32px;" | ||
| 27 | "max-width:400px;width:100%;text-align:center}" | ||
| 28 | "h1{font-size:28px;margin-bottom:8px;color:#f7931a}" | ||
| 29 | ".subtitle{color:#888;margin-bottom:24px;font-size:14px}" | ||
| 30 | ".price{background:#252525;border-radius:12px;padding:16px;margin-bottom:24px}" | ||
| 31 | ".price-amount{font-size:36px;font-weight:bold;color:#f7931a}" | ||
| 32 | ".price-unit{color:#888;font-size:14px}" | ||
| 33 | "#status{margin-top:16px;padding:12px;border-radius:8px;display:none;font-size:14px}" | ||
| 34 | "#status.success{display:block;background:#1a472a;color:#4caf50}" | ||
| 35 | "#status.error{display:block;background:#471a1a;color:#f44336}" | ||
| 36 | "#status.processing{display:block;background:#1a3a47;color:#2196f3}" | ||
| 37 | ".btn{background:#f7931a;color:#000;border:none;border-radius:8px;padding:14px 28px;" | ||
| 38 | "font-size:16px;font-weight:bold;cursor:pointer;width:100%;margin-top:8px}" | ||
| 39 | ".btn:hover{background:#e8850f}" | ||
| 40 | ".btn:disabled{background:#333;color:#666;cursor:not-allowed}" | ||
| 41 | "</style>" | ||
| 42 | "</head><body>" | ||
| 43 | "<div class='card'>" | ||
| 44 | "<h1>TollGate</h1>" | ||
| 45 | "<p class='subtitle'>Pay for internet access with ecash</p>" | ||
| 46 | "<div class='price'>" | ||
| 47 | "<div class='price-amount' id='price'>Loading...</div>" | ||
| 48 | "<div class='price-unit'>sats per minute</div>" | ||
| 49 | "</div>" | ||
| 50 | "<button class='btn' id='grantBtn' onclick='grantAccess()'>Grant Free Access</button>" | ||
| 51 | "<div id='status'></div>" | ||
| 52 | "</div>" | ||
| 53 | "<script>" | ||
| 54 | "const priceEl=document.getElementById('price');" | ||
| 55 | "const statusEl=document.getElementById('status');" | ||
| 56 | "const grantBtn=document.getElementById('grantBtn');" | ||
| 57 | "fetch('/api/status').then(r=>r.json()).then(d=>{priceEl.textContent=d.price||'21';}).catch(()=>{priceEl.textContent='21';});" | ||
| 58 | "function showStatus(msg,type){statusEl.textContent=msg;statusEl.className=type;}" | ||
| 59 | "function grantAccess(){" | ||
| 60 | " grantBtn.disabled=true;" | ||
| 61 | " showStatus('Connecting...','processing');" | ||
| 62 | " fetch('/grant_access').then(r=>r.json()).then(d=>{" | ||
| 63 | " if(d.status==='granted'){" | ||
| 64 | " showStatus('Connected! You have internet access.','success');" | ||
| 65 | " grantBtn.textContent='Connected!';" | ||
| 66 | " setTimeout(()=>{window.location.href='http://detectportal.firefox.com/success.txt';},2000);" | ||
| 67 | " }else{showStatus('Error: '+d.message,'error');grantBtn.disabled=false;}" | ||
| 68 | " }).catch(e=>{showStatus('Connection error','error');grantBtn.disabled=false;});" | ||
| 69 | "}" | ||
| 70 | "</script>" | ||
| 71 | "</body></html>"; | ||
| 72 | |||
| 73 | static esp_err_t get_client_ip(httpd_req_t *req, uint32_t *ip_out) | ||
| 74 | { | ||
| 75 | int sockfd = httpd_req_to_sockfd(req); | ||
| 76 | struct sockaddr_in addr; | ||
| 77 | socklen_t addr_len = sizeof(addr); | ||
| 78 | if (getpeername(sockfd, (struct sockaddr *)&addr, &addr_len) == 0) { | ||
| 79 | *ip_out = addr.sin_addr.s_addr; | ||
| 80 | return ESP_OK; | ||
| 81 | } | ||
| 82 | return ESP_FAIL; | ||
| 83 | } | ||
| 84 | |||
| 85 | static bool is_captive_detection_uri(const char *uri) | ||
| 86 | { | ||
| 87 | return strcmp(uri, "/generate_204") == 0 || | ||
| 88 | strcmp(uri, "/hotspot-detect.html") == 0 || | ||
| 89 | strcmp(uri, "/canonical.html") == 0 || | ||
| 90 | strcmp(uri, "/success.txt") == 0 || | ||
| 91 | strcmp(uri, "/ncsi.txt") == 0 || | ||
| 92 | strcmp(uri, "/connecttest.txt") == 0 || | ||
| 93 | strcmp(uri, "/wpad.dat") == 0 || | ||
| 94 | strcmp(uri, "/redirect") == 0; | ||
| 95 | } | ||
| 96 | |||
| 97 | static esp_err_t portal_handler(httpd_req_t *req) | ||
| 98 | { | ||
| 99 | httpd_resp_set_type(req, "text/html"); | ||
| 100 | httpd_resp_send(req, PORTAL_HTML, strlen(PORTAL_HTML)); | ||
| 101 | return ESP_OK; | ||
| 102 | } | ||
| 103 | |||
| 104 | static esp_err_t grant_access_handler(httpd_req_t *req) | ||
| 105 | { | ||
| 106 | uint32_t client_ip; | ||
| 107 | if (get_client_ip(req, &client_ip) == ESP_OK) { | ||
| 108 | firewall_grant_access(client_ip); | ||
| 109 | } | ||
| 110 | const char *resp = "{\"status\":\"granted\"}"; | ||
| 111 | httpd_resp_set_type(req, "application/json"); | ||
| 112 | httpd_resp_send(req, resp, strlen(resp)); | ||
| 113 | return ESP_OK; | ||
| 114 | } | ||
| 115 | |||
| 116 | static esp_err_t status_handler(httpd_req_t *req) | ||
| 117 | { | ||
| 118 | const tollgate_config_t *cfg = tollgate_config_get(); | ||
| 119 | cJSON *root = cJSON_CreateObject(); | ||
| 120 | cJSON_AddBoolToObject(root, "connected", true); | ||
| 121 | cJSON_AddNumberToObject(root, "price", cfg->price_per_step); | ||
| 122 | char *json = cJSON_PrintUnformatted(root); | ||
| 123 | httpd_resp_set_type(req, "application/json"); | ||
| 124 | httpd_resp_send(req, json, strlen(json)); | ||
| 125 | cJSON_free(json); | ||
| 126 | cJSON_Delete(root); | ||
| 127 | return ESP_OK; | ||
| 128 | } | ||
| 129 | |||
| 130 | static esp_err_t whoami_handler(httpd_req_t *req) | ||
| 131 | { | ||
| 132 | uint32_t client_ip; | ||
| 133 | char resp[64]; | ||
| 134 | if (get_client_ip(req, &client_ip) == ESP_OK) { | ||
| 135 | esp_ip4_addr_t ip = { .addr = client_ip }; | ||
| 136 | snprintf(resp, sizeof(resp), "mac=" IPSTR, IP2STR(&ip)); | ||
| 137 | } else { | ||
| 138 | snprintf(resp, sizeof(resp), "mac=unknown"); | ||
| 139 | } | ||
| 140 | httpd_resp_set_type(req, "text/plain"); | ||
| 141 | httpd_resp_send(req, resp, strlen(resp)); | ||
| 142 | return ESP_OK; | ||
| 143 | } | ||
| 144 | |||
| 145 | static esp_err_t usage_handler(httpd_req_t *req) | ||
| 146 | { | ||
| 147 | uint32_t client_ip; | ||
| 148 | char resp[32]; | ||
| 149 | if (get_client_ip(req, &client_ip) == ESP_OK && firewall_is_client_allowed(client_ip)) { | ||
| 150 | snprintf(resp, sizeof(resp), "0/0"); | ||
| 151 | } else { | ||
| 152 | snprintf(resp, sizeof(resp), "-1/-1"); | ||
| 153 | } | ||
| 154 | httpd_resp_set_type(req, "text/plain"); | ||
| 155 | httpd_resp_send(req, resp, strlen(resp)); | ||
| 156 | return ESP_OK; | ||
| 157 | } | ||
| 158 | |||
| 159 | static esp_err_t reset_auth_handler(httpd_req_t *req) | ||
| 160 | { | ||
| 161 | firewall_revoke_all(); | ||
| 162 | const char *resp = "{\"status\":\"reset\"}"; | ||
| 163 | httpd_resp_set_type(req, "application/json"); | ||
| 164 | httpd_resp_send(req, resp, strlen(resp)); | ||
| 165 | return ESP_OK; | ||
| 166 | } | ||
| 167 | |||
| 168 | static esp_err_t catchall_handler(httpd_req_t *req) | ||
| 169 | { | ||
| 170 | if (is_captive_detection_uri(req->uri)) { | ||
| 171 | return portal_handler(req); | ||
| 172 | } | ||
| 173 | httpd_resp_set_status(req, "302 Found"); | ||
| 174 | httpd_resp_set_hdr(req, "Location", "http://192.168.4.1/"); | ||
| 175 | httpd_resp_send(req, NULL, 0); | ||
| 176 | return ESP_OK; | ||
| 177 | } | ||
| 178 | |||
| 179 | static const httpd_uri_t uri_portal = { .uri = "/", .method = HTTP_GET, .handler = portal_handler }; | ||
| 180 | static const httpd_uri_t uri_grant = { .uri = "/grant_access", .method = HTTP_GET, .handler = grant_access_handler }; | ||
| 181 | static const httpd_uri_t uri_status = { .uri = "/api/status", .method = HTTP_GET, .handler = status_handler }; | ||
| 182 | static const httpd_uri_t uri_whoami = { .uri = "/whoami", .method = HTTP_GET, .handler = whoami_handler }; | ||
| 183 | static const httpd_uri_t uri_usage = { .uri = "/usage", .method = HTTP_GET, .handler = usage_handler }; | ||
| 184 | static const httpd_uri_t uri_reset = { .uri = "/reset_authentication", .method = HTTP_GET, .handler = reset_auth_handler }; | ||
| 185 | static const httpd_uri_t uri_catchall = { .uri = "/*", .method = HTTP_GET, .handler = catchall_handler }; | ||
| 186 | |||
| 187 | esp_err_t captive_portal_start(void) | ||
| 188 | { | ||
| 189 | if (s_server) return ESP_OK; | ||
| 190 | |||
| 191 | httpd_config_t config = HTTPD_DEFAULT_CONFIG(); | ||
| 192 | config.max_uri_handlers = 10; | ||
| 193 | config.uri_match_fn = httpd_uri_match_wildcard; | ||
| 194 | |||
| 195 | esp_err_t ret = httpd_start(&s_server, &config); | ||
| 196 | if (ret != ESP_OK) { | ||
| 197 | ESP_LOGE(TAG, "Failed to start HTTP server: %s", esp_err_to_name(ret)); | ||
| 198 | return ret; | ||
| 199 | } | ||
| 200 | |||
| 201 | httpd_register_uri_handler(s_server, &uri_portal); | ||
| 202 | httpd_register_uri_handler(s_server, &uri_grant); | ||
| 203 | httpd_register_uri_handler(s_server, &uri_status); | ||
| 204 | httpd_register_uri_handler(s_server, &uri_whoami); | ||
| 205 | httpd_register_uri_handler(s_server, &uri_usage); | ||
| 206 | httpd_register_uri_handler(s_server, &uri_reset); | ||
| 207 | httpd_register_uri_handler(s_server, &uri_catchall); | ||
| 208 | |||
| 209 | ESP_LOGI(TAG, "Captive portal started on port 80"); | ||
| 210 | return ESP_OK; | ||
| 211 | } | ||
| 212 | |||
| 213 | void captive_portal_stop(void) | ||
| 214 | { | ||
| 215 | if (s_server) { | ||
| 216 | httpd_stop(s_server); | ||
| 217 | s_server = NULL; | ||
| 218 | } | ||
| 219 | } | ||
| 220 | |||
| 221 | httpd_handle_t captive_portal_get_server(void) | ||
| 222 | { | ||
| 223 | return s_server; | ||
| 224 | } | ||
diff --git a/main/captive_portal.h b/main/captive_portal.h new file mode 100644 index 0000000..30d8c3e --- /dev/null +++ b/main/captive_portal.h | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | #ifndef CAPTIVE_PORTAL_H | ||
| 2 | #define CAPTIVE_PORTAL_H | ||
| 3 | |||
| 4 | #include "esp_http_server.h" | ||
| 5 | #include "esp_err.h" | ||
| 6 | |||
| 7 | esp_err_t captive_portal_start(void); | ||
| 8 | void captive_portal_stop(void); | ||
| 9 | httpd_handle_t captive_portal_get_server(void); | ||
| 10 | |||
| 11 | #endif | ||
diff --git a/main/dns_server.c b/main/dns_server.c index f7977c6..733e771 100644 --- a/main/dns_server.c +++ b/main/dns_server.c | |||
| @@ -85,7 +85,6 @@ static void parse_dns_name(const uint8_t *buf, int buf_len, int offset, char *ou | |||
| 85 | 85 | ||
| 86 | static int build_nxdomain(uint8_t *response, int req_len) | 86 | static int build_nxdomain(uint8_t *response, int req_len) |
| 87 | { | 87 | { |
| 88 | memcpy(response, response, req_len); | ||
| 89 | dns_header_t *hdr = (dns_header_t *)response; | 88 | dns_header_t *hdr = (dns_header_t *)response; |
| 90 | hdr->flags = htons(0x8403); | 89 | hdr->flags = htons(0x8403); |
| 91 | hdr->ancount = 0; | 90 | hdr->ancount = 0; |
| @@ -96,7 +95,7 @@ static int build_nxdomain(uint8_t *response, int req_len) | |||
| 96 | 95 | ||
| 97 | static int build_redirect_response(uint8_t *response, int req_len) | 96 | static int build_redirect_response(uint8_t *response, int req_len) |
| 98 | { | 97 | { |
| 99 | memcpy(response, response, req_len); | 98 | memmove(response, response, req_len); |
| 100 | dns_header_t *hdr = (dns_header_t *)response; | 99 | dns_header_t *hdr = (dns_header_t *)response; |
| 101 | hdr->flags = htons(0x8180); | 100 | hdr->flags = htons(0x8180); |
| 102 | hdr->ancount = htons(1); | 101 | hdr->ancount = htons(1); |
diff --git a/main/firewall.c b/main/firewall.c index 9ef3be0..8087b54 100644 --- a/main/firewall.c +++ b/main/firewall.c | |||
| @@ -26,6 +26,20 @@ esp_err_t firewall_init(esp_ip4_addr_t ap_ip) | |||
| 26 | return ESP_OK; | 26 | return ESP_OK; |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | static void update_nat(void) | ||
| 30 | { | ||
| 31 | bool should_enable = (s_client_count > 0); | ||
| 32 | if (should_enable && !s_nat_enabled) { | ||
| 33 | ip_napt_enable(s_ap_ip.addr, 1); | ||
| 34 | s_nat_enabled = true; | ||
| 35 | ESP_LOGI(TAG, "NAT enabled (client authenticated)"); | ||
| 36 | } else if (!should_enable && s_nat_enabled) { | ||
| 37 | ip_napt_enable(s_ap_ip.addr, 0); | ||
| 38 | s_nat_enabled = false; | ||
| 39 | ESP_LOGI(TAG, "NAT disabled (no authenticated clients)"); | ||
| 40 | } | ||
| 41 | } | ||
| 42 | |||
| 29 | void firewall_enable_nat(void) | 43 | void firewall_enable_nat(void) |
| 30 | { | 44 | { |
| 31 | if (s_nat_enabled) return; | 45 | if (s_nat_enabled) return; |
| @@ -54,6 +68,7 @@ void firewall_grant_access(uint32_t client_ip) | |||
| 54 | s_clients[s_client_count].ip = client_ip; | 68 | s_clients[s_client_count].ip = client_ip; |
| 55 | s_client_count++; | 69 | s_client_count++; |
| 56 | dns_server_set_client_authenticated(client_ip, true); | 70 | dns_server_set_client_authenticated(client_ip, true); |
| 71 | update_nat(); | ||
| 57 | 72 | ||
| 58 | esp_ip4_addr_t ip_addr = { .addr = client_ip }; | 73 | esp_ip4_addr_t ip_addr = { .addr = client_ip }; |
| 59 | ESP_LOGI(TAG, "Access granted to " IPSTR, IP2STR(&ip_addr)); | 74 | ESP_LOGI(TAG, "Access granted to " IPSTR, IP2STR(&ip_addr)); |
| @@ -66,6 +81,7 @@ void firewall_revoke_access(uint32_t client_ip) | |||
| 66 | s_clients[i] = s_clients[s_client_count - 1]; | 81 | s_clients[i] = s_clients[s_client_count - 1]; |
| 67 | s_client_count--; | 82 | s_client_count--; |
| 68 | dns_server_set_client_authenticated(client_ip, false); | 83 | dns_server_set_client_authenticated(client_ip, false); |
| 84 | update_nat(); | ||
| 69 | esp_ip4_addr_t ip_addr = { .addr = client_ip }; | 85 | esp_ip4_addr_t ip_addr = { .addr = client_ip }; |
| 70 | ESP_LOGI(TAG, "Access revoked for " IPSTR, IP2STR(&ip_addr)); | 86 | ESP_LOGI(TAG, "Access revoked for " IPSTR, IP2STR(&ip_addr)); |
| 71 | return; | 87 | return; |
| @@ -79,6 +95,7 @@ void firewall_revoke_all(void) | |||
| 79 | dns_server_set_client_authenticated(s_clients[i].ip, false); | 95 | dns_server_set_client_authenticated(s_clients[i].ip, false); |
| 80 | } | 96 | } |
| 81 | s_client_count = 0; | 97 | s_client_count = 0; |
| 98 | update_nat(); | ||
| 82 | ESP_LOGI(TAG, "All client access revoked"); | 99 | ESP_LOGI(TAG, "All client access revoked"); |
| 83 | } | 100 | } |
| 84 | 101 | ||
diff --git a/main/tollgate_main.c b/main/tollgate_main.c new file mode 100644 index 0000000..9eba61f --- /dev/null +++ b/main/tollgate_main.c | |||
| @@ -0,0 +1,221 @@ | |||
| 1 | #include <string.h> | ||
| 2 | #include "freertos/FreeRTOS.h" | ||
| 3 | #include "freertos/task.h" | ||
| 4 | #include "freertos/event_groups.h" | ||
| 5 | #include "esp_wifi.h" | ||
| 6 | #include "esp_event.h" | ||
| 7 | #include "esp_log.h" | ||
| 8 | #include "nvs_flash.h" | ||
| 9 | #include "esp_netif.h" | ||
| 10 | #include "lwip/netif.h" | ||
| 11 | #include "lwip/dns.h" | ||
| 12 | #include "dhcpserver/dhcpserver.h" | ||
| 13 | #include "config.h" | ||
| 14 | #include "dns_server.h" | ||
| 15 | #include "captive_portal.h" | ||
| 16 | #include "firewall.h" | ||
| 17 | |||
| 18 | #define MAX_STA_RETRY 5 | ||
| 19 | #define AP_IP_ADDR "192.168.4.1" | ||
| 20 | #define AP_SUBNET "255.255.255.0" | ||
| 21 | |||
| 22 | static const char *TAG = "tollgate_main"; | ||
| 23 | |||
| 24 | static EventGroupHandle_t s_wifi_event_group; | ||
| 25 | static const int WIFI_CONNECTED_BIT = BIT0; | ||
| 26 | |||
| 27 | static esp_netif_t *s_sta_netif = NULL; | ||
| 28 | static esp_netif_t *s_ap_netif = NULL; | ||
| 29 | static int s_retry_count = 0; | ||
| 30 | static bool s_services_running = false; | ||
| 31 | static SemaphoreHandle_t s_services_mutex = NULL; | ||
| 32 | |||
| 33 | static void start_services(void); | ||
| 34 | static void stop_services(void); | ||
| 35 | |||
| 36 | static void wifi_event_handler(void *arg, esp_event_base_t event_base, | ||
| 37 | int32_t event_id, void *event_data) | ||
| 38 | { | ||
| 39 | if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_START) { | ||
| 40 | wifi_config_t wifi_cfg; | ||
| 41 | if (tollgate_config_get_wifi(&wifi_cfg) == ESP_OK) { | ||
| 42 | esp_wifi_set_config(WIFI_IF_STA, &wifi_cfg); | ||
| 43 | } | ||
| 44 | esp_wifi_connect(); | ||
| 45 | } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_STA_DISCONNECTED) { | ||
| 46 | s_retry_count++; | ||
| 47 | ESP_LOGW(TAG, "WiFi disconnected, retry %d/%d", s_retry_count, MAX_STA_RETRY); | ||
| 48 | if (s_services_running) stop_services(); | ||
| 49 | if (s_retry_count < MAX_STA_RETRY) { | ||
| 50 | esp_wifi_connect(); | ||
| 51 | } else { | ||
| 52 | wifi_config_t wifi_cfg; | ||
| 53 | if (tollgate_config_get_next_wifi(&wifi_cfg) == ESP_OK) { | ||
| 54 | esp_wifi_set_config(WIFI_IF_STA, &wifi_cfg); | ||
| 55 | const tollgate_config_t *cfg = tollgate_config_get(); | ||
| 56 | int idx = cfg->current_network; | ||
| 57 | ESP_LOGI(TAG, "Trying WiFi network %d: %s", idx, cfg->networks[idx].ssid); | ||
| 58 | s_retry_count = 0; | ||
| 59 | esp_wifi_connect(); | ||
| 60 | } | ||
| 61 | } | ||
| 62 | } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STACONNECTED) { | ||
| 63 | wifi_event_ap_staconnected_t *event = (wifi_event_ap_staconnected_t *)event_data; | ||
| 64 | ESP_LOGI(TAG, "Station connected: MAC=%02x:%02x:%02x:%02x:%02x:%02x", | ||
| 65 | event->mac[0], event->mac[1], event->mac[2], | ||
| 66 | event->mac[3], event->mac[4], event->mac[5]); | ||
| 67 | } else if (event_base == WIFI_EVENT && event_id == WIFI_EVENT_AP_STADISCONNECTED) { | ||
| 68 | wifi_event_ap_stadisconnected_t *event = (wifi_event_ap_stadisconnected_t *)event_data; | ||
| 69 | ESP_LOGI(TAG, "Station disconnected: MAC=%02x:%02x:%02x:%02x:%02x:%02x", | ||
| 70 | event->mac[0], event->mac[1], event->mac[2], | ||
| 71 | event->mac[3], event->mac[4], event->mac[5]); | ||
| 72 | } | ||
| 73 | } | ||
| 74 | |||
| 75 | static void ip_event_handler(void *arg, esp_event_base_t event_base, | ||
| 76 | int32_t event_id, void *event_data) | ||
| 77 | { | ||
| 78 | if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) { | ||
| 79 | ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data; | ||
| 80 | ESP_LOGI(TAG, "Got IP:" IPSTR, IP2STR(&event->ip_info.ip)); | ||
| 81 | s_retry_count = 0; | ||
| 82 | xEventGroupSetBits(s_wifi_event_group, WIFI_CONNECTED_BIT); | ||
| 83 | start_services(); | ||
| 84 | } else if (event_base == IP_EVENT && event_id == IP_EVENT_STA_LOST_IP) { | ||
| 85 | ESP_LOGW(TAG, "Lost IP address"); | ||
| 86 | xEventGroupClearBits(s_wifi_event_group, WIFI_CONNECTED_BIT); | ||
| 87 | stop_services(); | ||
| 88 | } | ||
| 89 | } | ||
| 90 | |||
| 91 | static void start_services(void) | ||
| 92 | { | ||
| 93 | if (s_services_mutex) xSemaphoreTake(s_services_mutex, portMAX_DELAY); | ||
| 94 | if (s_services_running) { | ||
| 95 | if (s_services_mutex) xSemaphoreGive(s_services_mutex); | ||
| 96 | return; | ||
| 97 | } | ||
| 98 | |||
| 99 | esp_netif_get_ip_info(s_ap_netif, &(esp_netif_ip_info_t){0}); | ||
| 100 | esp_netif_ip_info_t ap_ip_info; | ||
| 101 | esp_netif_get_ip_info(s_ap_netif, &ap_ip_info); | ||
| 102 | |||
| 103 | esp_ip4_addr_t upstream_dns; | ||
| 104 | const ip_addr_t *dns_addr = dns_getserver(0); | ||
| 105 | upstream_dns.addr = dns_addr->addr; | ||
| 106 | |||
| 107 | firewall_init(ap_ip_info.ip); | ||
| 108 | |||
| 109 | dns_server_start(ap_ip_info.ip, upstream_dns); | ||
| 110 | captive_portal_start(); | ||
| 111 | |||
| 112 | s_services_running = true; | ||
| 113 | if (s_services_mutex) xSemaphoreGive(s_services_mutex); | ||
| 114 | ESP_LOGI(TAG, "=== TollGate services started ==="); | ||
| 115 | } | ||
| 116 | |||
| 117 | static void stop_services(void) | ||
| 118 | { | ||
| 119 | if (s_services_mutex) xSemaphoreTake(s_services_mutex, portMAX_DELAY); | ||
| 120 | if (!s_services_running) { | ||
| 121 | if (s_services_mutex) xSemaphoreGive(s_services_mutex); | ||
| 122 | return; | ||
| 123 | } | ||
| 124 | |||
| 125 | captive_portal_stop(); | ||
| 126 | dns_server_stop(); | ||
| 127 | firewall_disable_nat(); | ||
| 128 | firewall_revoke_all(); | ||
| 129 | s_services_running = false; | ||
| 130 | if (s_services_mutex) xSemaphoreGive(s_services_mutex); | ||
| 131 | ESP_LOGI(TAG, "=== TollGate services stopped ==="); | ||
| 132 | } | ||
| 133 | |||
| 134 | static void wifi_create_ap_netif(void) | ||
| 135 | { | ||
| 136 | s_ap_netif = esp_netif_create_default_wifi_ap(); | ||
| 137 | |||
| 138 | esp_netif_ip_info_t ip_info = { | ||
| 139 | .ip.addr = esp_ip4addr_aton(AP_IP_ADDR), | ||
| 140 | .gw.addr = esp_ip4addr_aton(AP_IP_ADDR), | ||
| 141 | .netmask.addr = esp_ip4addr_aton(AP_SUBNET), | ||
| 142 | }; | ||
| 143 | ESP_ERROR_CHECK(esp_netif_dhcps_stop(s_ap_netif)); | ||
| 144 | ESP_ERROR_CHECK(esp_netif_set_ip_info(s_ap_netif, &ip_info)); | ||
| 145 | ESP_ERROR_CHECK(esp_netif_dhcps_start(s_ap_netif)); | ||
| 146 | |||
| 147 | dhcps_offer_t offer_dns = true; | ||
| 148 | esp_netif_dhcps_option(s_ap_netif, ESP_NETIF_OP_SET, ESP_NETIF_DOMAIN_NAME_SERVER, | ||
| 149 | &offer_dns, sizeof(offer_dns)); | ||
| 150 | } | ||
| 151 | |||
| 152 | static void wifi_configure_ap(void) | ||
| 153 | { | ||
| 154 | const tollgate_config_t *cfg = tollgate_config_get(); | ||
| 155 | wifi_config_t ap_config = {0}; | ||
| 156 | strncpy((char *)ap_config.ap.ssid, cfg->ap_ssid, sizeof(ap_config.ap.ssid) - 1); | ||
| 157 | if (strlen(cfg->ap_password) > 0) { | ||
| 158 | strncpy((char *)ap_config.ap.password, cfg->ap_password, sizeof(ap_config.ap.password) - 1); | ||
| 159 | ap_config.ap.authmode = WIFI_AUTH_WPA2_PSK; | ||
| 160 | } else { | ||
| 161 | ap_config.ap.authmode = WIFI_AUTH_OPEN; | ||
| 162 | } | ||
| 163 | ap_config.ap.channel = cfg->ap_channel; | ||
| 164 | ap_config.ap.max_connection = cfg->ap_max_conn; | ||
| 165 | ap_config.ap.ssid_hidden = 0; | ||
| 166 | |||
| 167 | ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_AP, &ap_config)); | ||
| 168 | ESP_LOGI(TAG, "AP configured: SSID='%s', channel=%d", cfg->ap_ssid, cfg->ap_channel); | ||
| 169 | } | ||
| 170 | |||
| 171 | static void wifi_init_sta(void) | ||
| 172 | { | ||
| 173 | s_sta_netif = esp_netif_create_default_wifi_sta(); | ||
| 174 | } | ||
| 175 | |||
| 176 | void app_main(void) | ||
| 177 | { | ||
| 178 | ESP_LOGI(TAG, "=== TollGate ESP32 Starting ==="); | ||
| 179 | |||
| 180 | esp_err_t ret = nvs_flash_init(); | ||
| 181 | if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { | ||
| 182 | ESP_ERROR_CHECK(nvs_flash_erase()); | ||
| 183 | ret = nvs_flash_init(); | ||
| 184 | } | ||
| 185 | ESP_ERROR_CHECK(ret); | ||
| 186 | |||
| 187 | ESP_ERROR_CHECK(tollgate_config_init()); | ||
| 188 | ESP_ERROR_CHECK(esp_netif_init()); | ||
| 189 | ESP_ERROR_CHECK(esp_event_loop_create_default()); | ||
| 190 | |||
| 191 | s_wifi_event_group = xEventGroupCreate(); | ||
| 192 | s_services_mutex = xSemaphoreCreateMutex(); | ||
| 193 | |||
| 194 | wifi_init_sta(); | ||
| 195 | wifi_create_ap_netif(); | ||
| 196 | |||
| 197 | wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT(); | ||
| 198 | ESP_ERROR_CHECK(esp_wifi_init(&cfg)); | ||
| 199 | |||
| 200 | ESP_ERROR_CHECK(esp_event_handler_instance_register(WIFI_EVENT, ESP_EVENT_ANY_ID, | ||
| 201 | &wifi_event_handler, NULL, NULL)); | ||
| 202 | ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_GOT_IP, | ||
| 203 | &ip_event_handler, NULL, NULL)); | ||
| 204 | ESP_ERROR_CHECK(esp_event_handler_instance_register(IP_EVENT, IP_EVENT_STA_LOST_IP, | ||
| 205 | &ip_event_handler, NULL, NULL)); | ||
| 206 | |||
| 207 | ESP_ERROR_CHECK(esp_wifi_set_mode(WIFI_MODE_APSTA)); | ||
| 208 | |||
| 209 | wifi_configure_ap(); | ||
| 210 | |||
| 211 | wifi_config_t sta_config; | ||
| 212 | if (tollgate_config_get_wifi(&sta_config) == ESP_OK) { | ||
| 213 | ESP_ERROR_CHECK(esp_wifi_set_config(WIFI_IF_STA, &sta_config)); | ||
| 214 | const tollgate_config_t *tcfg = tollgate_config_get(); | ||
| 215 | ESP_LOGI(TAG, "STA configured for SSID: %s", tcfg->networks[tcfg->current_network].ssid); | ||
| 216 | } | ||
| 217 | |||
| 218 | ESP_ERROR_CHECK(esp_wifi_start()); | ||
| 219 | |||
| 220 | ESP_LOGI(TAG, "WiFi AP+STA started, waiting for connection..."); | ||
| 221 | } | ||
diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0de11d2 --- /dev/null +++ b/package-lock.json | |||
| @@ -0,0 +1,74 @@ | |||
| 1 | { | ||
| 2 | "name": "esp32-tollgate-tests", | ||
| 3 | "version": "1.0.0", | ||
| 4 | "lockfileVersion": 3, | ||
| 5 | "requires": true, | ||
| 6 | "packages": { | ||
| 7 | "": { | ||
| 8 | "name": "esp32-tollgate-tests", | ||
| 9 | "version": "1.0.0", | ||
| 10 | "devDependencies": { | ||
| 11 | "@playwright/test": "^1.52.0" | ||
| 12 | } | ||
| 13 | }, | ||
| 14 | "node_modules/@playwright/test": { | ||
| 15 | "version": "1.60.0", | ||
| 16 | "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.60.0.tgz", | ||
| 17 | "integrity": "sha512-O71yZIbAh/PxDMNGns37GHBIfrVkEVyn+AXyIa5dOTfb4/xNvRWV+Vv/NMbNCtODB/pO7vLlF2OTmMVLhmr7Ag==", | ||
| 18 | "dev": true, | ||
| 19 | "dependencies": { | ||
| 20 | "playwright": "1.60.0" | ||
| 21 | }, | ||
| 22 | "bin": { | ||
| 23 | "playwright": "cli.js" | ||
| 24 | }, | ||
| 25 | "engines": { | ||
| 26 | "node": ">=18" | ||
| 27 | } | ||
| 28 | }, | ||
| 29 | "node_modules/fsevents": { | ||
| 30 | "version": "2.3.2", | ||
| 31 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", | ||
| 32 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", | ||
| 33 | "dev": true, | ||
| 34 | "hasInstallScript": true, | ||
| 35 | "optional": true, | ||
| 36 | "os": [ | ||
| 37 | "darwin" | ||
| 38 | ], | ||
| 39 | "engines": { | ||
| 40 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" | ||
| 41 | } | ||
| 42 | }, | ||
| 43 | "node_modules/playwright": { | ||
| 44 | "version": "1.60.0", | ||
| 45 | "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", | ||
| 46 | "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", | ||
| 47 | "dev": true, | ||
| 48 | "dependencies": { | ||
| 49 | "playwright-core": "1.60.0" | ||
| 50 | }, | ||
| 51 | "bin": { | ||
| 52 | "playwright": "cli.js" | ||
| 53 | }, | ||
| 54 | "engines": { | ||
| 55 | "node": ">=18" | ||
| 56 | }, | ||
| 57 | "optionalDependencies": { | ||
| 58 | "fsevents": "2.3.2" | ||
| 59 | } | ||
| 60 | }, | ||
| 61 | "node_modules/playwright-core": { | ||
| 62 | "version": "1.60.0", | ||
| 63 | "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", | ||
| 64 | "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", | ||
| 65 | "dev": true, | ||
| 66 | "bin": { | ||
| 67 | "playwright-core": "cli.js" | ||
| 68 | }, | ||
| 69 | "engines": { | ||
| 70 | "node": ">=18" | ||
| 71 | } | ||
| 72 | } | ||
| 73 | } | ||
| 74 | } | ||
diff --git a/package.json b/package.json new file mode 100644 index 0000000..d6e270b --- /dev/null +++ b/package.json | |||
| @@ -0,0 +1,15 @@ | |||
| 1 | { | ||
| 2 | "name": "esp32-tollgate-tests", | ||
| 3 | "version": "1.0.0", | ||
| 4 | "private": true, | ||
| 5 | "scripts": { | ||
| 6 | "test": "node tests/api.mjs && node tests/network.mjs", | ||
| 7 | "test:api": "node tests/api.mjs", | ||
| 8 | "test:network": "node tests/network.mjs", | ||
| 9 | "test:portal": "npx playwright test tests/captive-portal.spec.mjs", | ||
| 10 | "test:smoke": "node tests/smoke.mjs" | ||
| 11 | }, | ||
| 12 | "devDependencies": { | ||
| 13 | "@playwright/test": "^1.52.0" | ||
| 14 | } | ||
| 15 | } | ||
diff --git a/partitions.csv b/partitions.csv new file mode 100644 index 0000000..8998d84 --- /dev/null +++ b/partitions.csv | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | # Name, Type, SubType, Offset, Size, Flags | ||
| 2 | nvs, data, nvs, 0x9000, 0x6000, | ||
| 3 | phy_init, data, phy, 0xf000, 0x1000, | ||
| 4 | factory, app, factory, 0x10000, 0x3F0000, | ||
| 5 | storage, data, spiffs, 0x410000,0xF0000, | ||
diff --git a/sdkconfig b/sdkconfig new file mode 100644 index 0000000..0b024cd --- /dev/null +++ b/sdkconfig | |||
| @@ -0,0 +1,2262 @@ | |||
| 1 | # | ||
| 2 | # Automatically generated file. DO NOT EDIT. | ||
| 3 | # Espressif IoT Development Framework (ESP-IDF) 5.4.1 Project Configuration | ||
| 4 | # | ||
| 5 | CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 | ||
| 6 | CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 | ||
| 7 | CONFIG_SOC_ADC_SUPPORTED=y | ||
| 8 | CONFIG_SOC_UART_SUPPORTED=y | ||
| 9 | CONFIG_SOC_PCNT_SUPPORTED=y | ||
| 10 | CONFIG_SOC_PHY_SUPPORTED=y | ||
| 11 | CONFIG_SOC_WIFI_SUPPORTED=y | ||
| 12 | CONFIG_SOC_TWAI_SUPPORTED=y | ||
| 13 | CONFIG_SOC_GDMA_SUPPORTED=y | ||
| 14 | CONFIG_SOC_AHB_GDMA_SUPPORTED=y | ||
| 15 | CONFIG_SOC_GPTIMER_SUPPORTED=y | ||
| 16 | CONFIG_SOC_LCDCAM_SUPPORTED=y | ||
| 17 | CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y | ||
| 18 | CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y | ||
| 19 | CONFIG_SOC_MCPWM_SUPPORTED=y | ||
| 20 | CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y | ||
| 21 | CONFIG_SOC_CACHE_SUPPORT_WRAP=y | ||
| 22 | CONFIG_SOC_ULP_SUPPORTED=y | ||
| 23 | CONFIG_SOC_ULP_FSM_SUPPORTED=y | ||
| 24 | CONFIG_SOC_RISCV_COPROC_SUPPORTED=y | ||
| 25 | CONFIG_SOC_BT_SUPPORTED=y | ||
| 26 | CONFIG_SOC_USB_OTG_SUPPORTED=y | ||
| 27 | CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y | ||
| 28 | CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y | ||
| 29 | CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y | ||
| 30 | CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y | ||
| 31 | CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y | ||
| 32 | CONFIG_SOC_EFUSE_SUPPORTED=y | ||
| 33 | CONFIG_SOC_SDMMC_HOST_SUPPORTED=y | ||
| 34 | CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y | ||
| 35 | CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y | ||
| 36 | CONFIG_SOC_RTC_MEM_SUPPORTED=y | ||
| 37 | CONFIG_SOC_PSRAM_DMA_CAPABLE=y | ||
| 38 | CONFIG_SOC_XT_WDT_SUPPORTED=y | ||
| 39 | CONFIG_SOC_I2S_SUPPORTED=y | ||
| 40 | CONFIG_SOC_RMT_SUPPORTED=y | ||
| 41 | CONFIG_SOC_SDM_SUPPORTED=y | ||
| 42 | CONFIG_SOC_GPSPI_SUPPORTED=y | ||
| 43 | CONFIG_SOC_LEDC_SUPPORTED=y | ||
| 44 | CONFIG_SOC_I2C_SUPPORTED=y | ||
| 45 | CONFIG_SOC_SYSTIMER_SUPPORTED=y | ||
| 46 | CONFIG_SOC_SUPPORT_COEXISTENCE=y | ||
| 47 | CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y | ||
| 48 | CONFIG_SOC_AES_SUPPORTED=y | ||
| 49 | CONFIG_SOC_MPI_SUPPORTED=y | ||
| 50 | CONFIG_SOC_SHA_SUPPORTED=y | ||
| 51 | CONFIG_SOC_HMAC_SUPPORTED=y | ||
| 52 | CONFIG_SOC_DIG_SIGN_SUPPORTED=y | ||
| 53 | CONFIG_SOC_FLASH_ENC_SUPPORTED=y | ||
| 54 | CONFIG_SOC_SECURE_BOOT_SUPPORTED=y | ||
| 55 | CONFIG_SOC_MEMPROT_SUPPORTED=y | ||
| 56 | CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y | ||
| 57 | CONFIG_SOC_BOD_SUPPORTED=y | ||
| 58 | CONFIG_SOC_CLK_TREE_SUPPORTED=y | ||
| 59 | CONFIG_SOC_MPU_SUPPORTED=y | ||
| 60 | CONFIG_SOC_WDT_SUPPORTED=y | ||
| 61 | CONFIG_SOC_SPI_FLASH_SUPPORTED=y | ||
| 62 | CONFIG_SOC_RNG_SUPPORTED=y | ||
| 63 | CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y | ||
| 64 | CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y | ||
| 65 | CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y | ||
| 66 | CONFIG_SOC_PM_SUPPORTED=y | ||
| 67 | CONFIG_SOC_SIMD_INSTRUCTION_SUPPORTED=y | ||
| 68 | CONFIG_SOC_XTAL_SUPPORT_40M=y | ||
| 69 | CONFIG_SOC_APPCPU_HAS_CLOCK_GATING_BUG=y | ||
| 70 | CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y | ||
| 71 | CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y | ||
| 72 | CONFIG_SOC_ADC_ARBITER_SUPPORTED=y | ||
| 73 | CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y | ||
| 74 | CONFIG_SOC_ADC_MONITOR_SUPPORTED=y | ||
| 75 | CONFIG_SOC_ADC_DMA_SUPPORTED=y | ||
| 76 | CONFIG_SOC_ADC_PERIPH_NUM=2 | ||
| 77 | CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 | ||
| 78 | CONFIG_SOC_ADC_ATTEN_NUM=4 | ||
| 79 | CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 | ||
| 80 | CONFIG_SOC_ADC_PATT_LEN_MAX=24 | ||
| 81 | CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 | ||
| 82 | CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 | ||
| 83 | CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 | ||
| 84 | CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 | ||
| 85 | CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 | ||
| 86 | CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 | ||
| 87 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 | ||
| 88 | CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 | ||
| 89 | CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 | ||
| 90 | CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 | ||
| 91 | CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y | ||
| 92 | CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y | ||
| 93 | CONFIG_SOC_ADC_SHARED_POWER=y | ||
| 94 | CONFIG_SOC_APB_BACKUP_DMA=y | ||
| 95 | CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y | ||
| 96 | CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y | ||
| 97 | CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y | ||
| 98 | CONFIG_SOC_CPU_CORES_NUM=2 | ||
| 99 | CONFIG_SOC_CPU_INTR_NUM=32 | ||
| 100 | CONFIG_SOC_CPU_HAS_FPU=y | ||
| 101 | CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y | ||
| 102 | CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 | ||
| 103 | CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 | ||
| 104 | CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64 | ||
| 105 | CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16 | ||
| 106 | CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096 | ||
| 107 | CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 | ||
| 108 | CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 | ||
| 109 | CONFIG_SOC_AHB_GDMA_VERSION=1 | ||
| 110 | CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 | ||
| 111 | CONFIG_SOC_GDMA_PAIRS_PER_GROUP=5 | ||
| 112 | CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=5 | ||
| 113 | CONFIG_SOC_AHB_GDMA_SUPPORT_PSRAM=y | ||
| 114 | CONFIG_SOC_GPIO_PORT=1 | ||
| 115 | CONFIG_SOC_GPIO_PIN_COUNT=49 | ||
| 116 | CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y | ||
| 117 | CONFIG_SOC_GPIO_FILTER_CLK_SUPPORT_APB=y | ||
| 118 | CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y | ||
| 119 | CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y | ||
| 120 | CONFIG_SOC_GPIO_VALID_GPIO_MASK=0x1FFFFFFFFFFFF | ||
| 121 | CONFIG_SOC_GPIO_IN_RANGE_MAX=48 | ||
| 122 | CONFIG_SOC_GPIO_OUT_RANGE_MAX=48 | ||
| 123 | CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0001FFFFFC000000 | ||
| 124 | CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y | ||
| 125 | CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 | ||
| 126 | CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y | ||
| 127 | CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 | ||
| 128 | CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 | ||
| 129 | CONFIG_SOC_DEDIC_GPIO_OUT_AUTO_ENABLE=y | ||
| 130 | CONFIG_SOC_I2C_NUM=2 | ||
| 131 | CONFIG_SOC_HP_I2C_NUM=2 | ||
| 132 | CONFIG_SOC_I2C_FIFO_LEN=32 | ||
| 133 | CONFIG_SOC_I2C_CMD_REG_NUM=8 | ||
| 134 | CONFIG_SOC_I2C_SUPPORT_SLAVE=y | ||
| 135 | CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y | ||
| 136 | CONFIG_SOC_I2C_SUPPORT_XTAL=y | ||
| 137 | CONFIG_SOC_I2C_SUPPORT_RTC=y | ||
| 138 | CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y | ||
| 139 | CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y | ||
| 140 | CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y | ||
| 141 | CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y | ||
| 142 | CONFIG_SOC_I2S_NUM=2 | ||
| 143 | CONFIG_SOC_I2S_HW_VERSION_2=y | ||
| 144 | CONFIG_SOC_I2S_SUPPORTS_XTAL=y | ||
| 145 | CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y | ||
| 146 | CONFIG_SOC_I2S_SUPPORTS_PCM=y | ||
| 147 | CONFIG_SOC_I2S_SUPPORTS_PDM=y | ||
| 148 | CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y | ||
| 149 | CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 | ||
| 150 | CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y | ||
| 151 | CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4 | ||
| 152 | CONFIG_SOC_I2S_SUPPORTS_TDM=y | ||
| 153 | CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y | ||
| 154 | CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y | ||
| 155 | CONFIG_SOC_LEDC_TIMER_NUM=4 | ||
| 156 | CONFIG_SOC_LEDC_CHANNEL_NUM=8 | ||
| 157 | CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=14 | ||
| 158 | CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y | ||
| 159 | CONFIG_SOC_MCPWM_GROUPS=2 | ||
| 160 | CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 | ||
| 161 | CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 | ||
| 162 | CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 | ||
| 163 | CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 | ||
| 164 | CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 | ||
| 165 | CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 | ||
| 166 | CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y | ||
| 167 | CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 | ||
| 168 | CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 | ||
| 169 | CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y | ||
| 170 | CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 | ||
| 171 | CONFIG_SOC_MMU_PERIPH_NUM=1 | ||
| 172 | CONFIG_SOC_PCNT_GROUPS=1 | ||
| 173 | CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 | ||
| 174 | CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 | ||
| 175 | CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 | ||
| 176 | CONFIG_SOC_RMT_GROUPS=1 | ||
| 177 | CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=4 | ||
| 178 | CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=4 | ||
| 179 | CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 | ||
| 180 | CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 | ||
| 181 | CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y | ||
| 182 | CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y | ||
| 183 | CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y | ||
| 184 | CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y | ||
| 185 | CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y | ||
| 186 | CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y | ||
| 187 | CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y | ||
| 188 | CONFIG_SOC_RMT_SUPPORT_XTAL=y | ||
| 189 | CONFIG_SOC_RMT_SUPPORT_RC_FAST=y | ||
| 190 | CONFIG_SOC_RMT_SUPPORT_APB=y | ||
| 191 | CONFIG_SOC_RMT_SUPPORT_DMA=y | ||
| 192 | CONFIG_SOC_LCD_I80_SUPPORTED=y | ||
| 193 | CONFIG_SOC_LCD_RGB_SUPPORTED=y | ||
| 194 | CONFIG_SOC_LCD_I80_BUSES=1 | ||
| 195 | CONFIG_SOC_LCD_RGB_PANELS=1 | ||
| 196 | CONFIG_SOC_LCD_I80_BUS_WIDTH=16 | ||
| 197 | CONFIG_SOC_LCD_RGB_DATA_WIDTH=16 | ||
| 198 | CONFIG_SOC_LCD_SUPPORT_RGB_YUV_CONV=y | ||
| 199 | CONFIG_SOC_LCDCAM_I80_NUM_BUSES=1 | ||
| 200 | CONFIG_SOC_LCDCAM_I80_BUS_WIDTH=16 | ||
| 201 | CONFIG_SOC_LCDCAM_RGB_NUM_PANELS=1 | ||
| 202 | CONFIG_SOC_LCDCAM_RGB_DATA_WIDTH=16 | ||
| 203 | CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128 | ||
| 204 | CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=549 | ||
| 205 | CONFIG_SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH=128 | ||
| 206 | CONFIG_SOC_RTCIO_PIN_COUNT=22 | ||
| 207 | CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y | ||
| 208 | CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y | ||
| 209 | CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y | ||
| 210 | CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y | ||
| 211 | CONFIG_SOC_SDM_GROUPS=y | ||
| 212 | CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 | ||
| 213 | CONFIG_SOC_SDM_CLK_SUPPORT_APB=y | ||
| 214 | CONFIG_SOC_SPI_PERIPH_NUM=3 | ||
| 215 | CONFIG_SOC_SPI_MAX_CS_NUM=6 | ||
| 216 | CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 | ||
| 217 | CONFIG_SOC_SPI_SUPPORT_DDRCLK=y | ||
| 218 | CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y | ||
| 219 | CONFIG_SOC_SPI_SUPPORT_CD_SIG=y | ||
| 220 | CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y | ||
| 221 | CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y | ||
| 222 | CONFIG_SOC_SPI_SUPPORT_CLK_APB=y | ||
| 223 | CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y | ||
| 224 | CONFIG_SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT=y | ||
| 225 | CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y | ||
| 226 | CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 | ||
| 227 | CONFIG_SOC_SPI_SUPPORT_OCT=y | ||
| 228 | CONFIG_SOC_SPI_SCT_SUPPORTED=y | ||
| 229 | CONFIG_SOC_SPI_SCT_REG_NUM=14 | ||
| 230 | CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y | ||
| 231 | CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA | ||
| 232 | CONFIG_SOC_MEMSPI_SRC_FREQ_120M=y | ||
| 233 | CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y | ||
| 234 | CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y | ||
| 235 | CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y | ||
| 236 | CONFIG_SOC_SPIRAM_SUPPORTED=y | ||
| 237 | CONFIG_SOC_SPIRAM_XIP_SUPPORTED=y | ||
| 238 | CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 | ||
| 239 | CONFIG_SOC_SYSTIMER_ALARM_NUM=3 | ||
| 240 | CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 | ||
| 241 | CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 | ||
| 242 | CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y | ||
| 243 | CONFIG_SOC_SYSTIMER_INT_LEVEL=y | ||
| 244 | CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y | ||
| 245 | CONFIG_SOC_TIMER_GROUPS=2 | ||
| 246 | CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 | ||
| 247 | CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 | ||
| 248 | CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y | ||
| 249 | CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y | ||
| 250 | CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 | ||
| 251 | CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 | ||
| 252 | CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 | ||
| 253 | CONFIG_SOC_TOUCH_SENSOR_VERSION=2 | ||
| 254 | CONFIG_SOC_TOUCH_SENSOR_NUM=15 | ||
| 255 | CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y | ||
| 256 | CONFIG_SOC_TOUCH_SUPPORT_WATERPROOF=y | ||
| 257 | CONFIG_SOC_TOUCH_SUPPORT_PROX_SENSING=y | ||
| 258 | CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3 | ||
| 259 | CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y | ||
| 260 | CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 | ||
| 261 | CONFIG_SOC_TWAI_CONTROLLER_NUM=1 | ||
| 262 | CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y | ||
| 263 | CONFIG_SOC_TWAI_BRP_MIN=2 | ||
| 264 | CONFIG_SOC_TWAI_BRP_MAX=16384 | ||
| 265 | CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y | ||
| 266 | CONFIG_SOC_UART_NUM=3 | ||
| 267 | CONFIG_SOC_UART_HP_NUM=3 | ||
| 268 | CONFIG_SOC_UART_FIFO_LEN=128 | ||
| 269 | CONFIG_SOC_UART_BITRATE_MAX=5000000 | ||
| 270 | CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y | ||
| 271 | CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y | ||
| 272 | CONFIG_SOC_UART_SUPPORT_APB_CLK=y | ||
| 273 | CONFIG_SOC_UART_SUPPORT_RTC_CLK=y | ||
| 274 | CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y | ||
| 275 | CONFIG_SOC_USB_OTG_PERIPH_NUM=1 | ||
| 276 | CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 | ||
| 277 | CONFIG_SOC_SHA_SUPPORT_DMA=y | ||
| 278 | CONFIG_SOC_SHA_SUPPORT_RESUME=y | ||
| 279 | CONFIG_SOC_SHA_GDMA=y | ||
| 280 | CONFIG_SOC_SHA_SUPPORT_SHA1=y | ||
| 281 | CONFIG_SOC_SHA_SUPPORT_SHA224=y | ||
| 282 | CONFIG_SOC_SHA_SUPPORT_SHA256=y | ||
| 283 | CONFIG_SOC_SHA_SUPPORT_SHA384=y | ||
| 284 | CONFIG_SOC_SHA_SUPPORT_SHA512=y | ||
| 285 | CONFIG_SOC_SHA_SUPPORT_SHA512_224=y | ||
| 286 | CONFIG_SOC_SHA_SUPPORT_SHA512_256=y | ||
| 287 | CONFIG_SOC_SHA_SUPPORT_SHA512_T=y | ||
| 288 | CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 | ||
| 289 | CONFIG_SOC_MPI_OPERATIONS_NUM=3 | ||
| 290 | CONFIG_SOC_RSA_MAX_BIT_LEN=4096 | ||
| 291 | CONFIG_SOC_AES_SUPPORT_DMA=y | ||
| 292 | CONFIG_SOC_AES_GDMA=y | ||
| 293 | CONFIG_SOC_AES_SUPPORT_AES_128=y | ||
| 294 | CONFIG_SOC_AES_SUPPORT_AES_256=y | ||
| 295 | CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y | ||
| 296 | CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y | ||
| 297 | CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y | ||
| 298 | CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y | ||
| 299 | CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y | ||
| 300 | CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y | ||
| 301 | CONFIG_SOC_PM_SUPPORT_CPU_PD=y | ||
| 302 | CONFIG_SOC_PM_SUPPORT_TAGMEM_PD=y | ||
| 303 | CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y | ||
| 304 | CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y | ||
| 305 | CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y | ||
| 306 | CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y | ||
| 307 | CONFIG_SOC_PM_SUPPORT_MODEM_PD=y | ||
| 308 | CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y | ||
| 309 | CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y | ||
| 310 | CONFIG_SOC_PM_CPU_RETENTION_BY_RTCCNTL=y | ||
| 311 | CONFIG_SOC_PM_MODEM_RETENTION_BY_BACKUPDMA=y | ||
| 312 | CONFIG_SOC_PM_MODEM_PD_BY_SW=y | ||
| 313 | CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y | ||
| 314 | CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y | ||
| 315 | CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y | ||
| 316 | CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y | ||
| 317 | CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y | ||
| 318 | CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y | ||
| 319 | CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y | ||
| 320 | CONFIG_SOC_EFUSE_DIS_USB_JTAG=y | ||
| 321 | CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y | ||
| 322 | CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y | ||
| 323 | CONFIG_SOC_EFUSE_DIS_ICACHE=y | ||
| 324 | CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y | ||
| 325 | CONFIG_SOC_SECURE_BOOT_V2_RSA=y | ||
| 326 | CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 | ||
| 327 | CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y | ||
| 328 | CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y | ||
| 329 | CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 | ||
| 330 | CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y | ||
| 331 | CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS=y | ||
| 332 | CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y | ||
| 333 | CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_256=y | ||
| 334 | CONFIG_SOC_MEMPROT_CPU_PREFETCH_PAD_SIZE=16 | ||
| 335 | CONFIG_SOC_MEMPROT_MEM_ALIGN_SIZE=256 | ||
| 336 | CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 | ||
| 337 | CONFIG_SOC_MAC_BB_PD_MEM_SIZE=192 | ||
| 338 | CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 | ||
| 339 | CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y | ||
| 340 | CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y | ||
| 341 | CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y | ||
| 342 | CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y | ||
| 343 | CONFIG_SOC_SPI_MEM_SUPPORT_OPI_MODE=y | ||
| 344 | CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y | ||
| 345 | CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y | ||
| 346 | CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y | ||
| 347 | CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y | ||
| 348 | CONFIG_SOC_MEMSPI_CORE_CLK_SHARED_WITH_PSRAM=y | ||
| 349 | CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y | ||
| 350 | CONFIG_SOC_COEX_HW_PTI=y | ||
| 351 | CONFIG_SOC_EXTERNAL_COEX_LEADER_TX_LINE=y | ||
| 352 | CONFIG_SOC_SDMMC_USE_GPIO_MATRIX=y | ||
| 353 | CONFIG_SOC_SDMMC_NUM_SLOTS=2 | ||
| 354 | CONFIG_SOC_SDMMC_SUPPORT_XTAL_CLOCK=y | ||
| 355 | CONFIG_SOC_SDMMC_DELAY_PHASE_NUM=4 | ||
| 356 | CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y | ||
| 357 | CONFIG_SOC_WIFI_HW_TSF=y | ||
| 358 | CONFIG_SOC_WIFI_FTM_SUPPORT=y | ||
| 359 | CONFIG_SOC_WIFI_GCMP_SUPPORT=y | ||
| 360 | CONFIG_SOC_WIFI_WAPI_SUPPORT=y | ||
| 361 | CONFIG_SOC_WIFI_CSI_SUPPORT=y | ||
| 362 | CONFIG_SOC_WIFI_MESH_SUPPORT=y | ||
| 363 | CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y | ||
| 364 | CONFIG_SOC_WIFI_PHY_NEEDS_USB_WORKAROUND=y | ||
| 365 | CONFIG_SOC_BLE_SUPPORTED=y | ||
| 366 | CONFIG_SOC_BLE_MESH_SUPPORTED=y | ||
| 367 | CONFIG_SOC_BLE_50_SUPPORTED=y | ||
| 368 | CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y | ||
| 369 | CONFIG_SOC_BLUFI_SUPPORTED=y | ||
| 370 | CONFIG_SOC_ULP_HAS_ADC=y | ||
| 371 | CONFIG_SOC_PHY_COMBO_MODULE=y | ||
| 372 | CONFIG_IDF_CMAKE=y | ||
| 373 | CONFIG_IDF_TOOLCHAIN="gcc" | ||
| 374 | CONFIG_IDF_TOOLCHAIN_GCC=y | ||
| 375 | CONFIG_IDF_TARGET_ARCH_XTENSA=y | ||
| 376 | CONFIG_IDF_TARGET_ARCH="xtensa" | ||
| 377 | CONFIG_IDF_TARGET="esp32s3" | ||
| 378 | CONFIG_IDF_INIT_VERSION="5.4.1" | ||
| 379 | CONFIG_IDF_TARGET_ESP32S3=y | ||
| 380 | CONFIG_IDF_FIRMWARE_CHIP_ID=0x0009 | ||
| 381 | |||
| 382 | # | ||
| 383 | # Build type | ||
| 384 | # | ||
| 385 | CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y | ||
| 386 | # CONFIG_APP_BUILD_TYPE_RAM is not set | ||
| 387 | CONFIG_APP_BUILD_GENERATE_BINARIES=y | ||
| 388 | CONFIG_APP_BUILD_BOOTLOADER=y | ||
| 389 | CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y | ||
| 390 | # CONFIG_APP_REPRODUCIBLE_BUILD is not set | ||
| 391 | # CONFIG_APP_NO_BLOBS is not set | ||
| 392 | # end of Build type | ||
| 393 | |||
| 394 | # | ||
| 395 | # Bootloader config | ||
| 396 | # | ||
| 397 | |||
| 398 | # | ||
| 399 | # Bootloader manager | ||
| 400 | # | ||
| 401 | CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y | ||
| 402 | CONFIG_BOOTLOADER_PROJECT_VER=1 | ||
| 403 | # end of Bootloader manager | ||
| 404 | |||
| 405 | CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 | ||
| 406 | CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y | ||
| 407 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set | ||
| 408 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set | ||
| 409 | # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set | ||
| 410 | |||
| 411 | # | ||
| 412 | # Log | ||
| 413 | # | ||
| 414 | # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set | ||
| 415 | # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set | ||
| 416 | # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set | ||
| 417 | CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y | ||
| 418 | # CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set | ||
| 419 | # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set | ||
| 420 | CONFIG_BOOTLOADER_LOG_LEVEL=3 | ||
| 421 | |||
| 422 | # | ||
| 423 | # Format | ||
| 424 | # | ||
| 425 | # CONFIG_BOOTLOADER_LOG_COLORS is not set | ||
| 426 | CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y | ||
| 427 | # end of Format | ||
| 428 | # end of Log | ||
| 429 | |||
| 430 | # | ||
| 431 | # Serial Flash Configurations | ||
| 432 | # | ||
| 433 | # CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set | ||
| 434 | CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y | ||
| 435 | # end of Serial Flash Configurations | ||
| 436 | |||
| 437 | CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y | ||
| 438 | # CONFIG_BOOTLOADER_FACTORY_RESET is not set | ||
| 439 | # CONFIG_BOOTLOADER_APP_TEST is not set | ||
| 440 | CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y | ||
| 441 | CONFIG_BOOTLOADER_WDT_ENABLE=y | ||
| 442 | # CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set | ||
| 443 | CONFIG_BOOTLOADER_WDT_TIME_MS=9000 | ||
| 444 | # CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set | ||
| 445 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set | ||
| 446 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set | ||
| 447 | # CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set | ||
| 448 | CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 | ||
| 449 | # CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set | ||
| 450 | # end of Bootloader config | ||
| 451 | |||
| 452 | # | ||
| 453 | # Security features | ||
| 454 | # | ||
| 455 | CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y | ||
| 456 | CONFIG_SECURE_BOOT_V2_PREFERRED=y | ||
| 457 | # CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set | ||
| 458 | # CONFIG_SECURE_BOOT is not set | ||
| 459 | # CONFIG_SECURE_FLASH_ENC_ENABLED is not set | ||
| 460 | CONFIG_SECURE_ROM_DL_MODE_ENABLED=y | ||
| 461 | # end of Security features | ||
| 462 | |||
| 463 | # | ||
| 464 | # Application manager | ||
| 465 | # | ||
| 466 | CONFIG_APP_COMPILE_TIME_DATE=y | ||
| 467 | # CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set | ||
| 468 | # CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set | ||
| 469 | # CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set | ||
| 470 | CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 | ||
| 471 | # end of Application manager | ||
| 472 | |||
| 473 | CONFIG_ESP_ROM_HAS_CRC_LE=y | ||
| 474 | CONFIG_ESP_ROM_HAS_CRC_BE=y | ||
| 475 | CONFIG_ESP_ROM_HAS_MZ_CRC32=y | ||
| 476 | CONFIG_ESP_ROM_HAS_JPEG_DECODE=y | ||
| 477 | CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y | ||
| 478 | CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y | ||
| 479 | CONFIG_ESP_ROM_USB_OTG_NUM=3 | ||
| 480 | CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=4 | ||
| 481 | CONFIG_ESP_ROM_HAS_ERASE_0_REGION_BUG=y | ||
| 482 | CONFIG_ESP_ROM_HAS_ENCRYPTED_WRITES_USING_LEGACY_DRV=y | ||
| 483 | CONFIG_ESP_ROM_GET_CLK_FREQ=y | ||
| 484 | CONFIG_ESP_ROM_HAS_HAL_WDT=y | ||
| 485 | CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y | ||
| 486 | CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y | ||
| 487 | CONFIG_ESP_ROM_HAS_SPI_FLASH=y | ||
| 488 | CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y | ||
| 489 | CONFIG_ESP_ROM_HAS_NEWLIB=y | ||
| 490 | CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y | ||
| 491 | CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y | ||
| 492 | CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y | ||
| 493 | CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y | ||
| 494 | CONFIG_ESP_ROM_HAS_FLASH_COUNT_PAGES_BUG=y | ||
| 495 | CONFIG_ESP_ROM_HAS_CACHE_SUSPEND_WAITI_BUG=y | ||
| 496 | CONFIG_ESP_ROM_HAS_CACHE_WRITEBACK_BUG=y | ||
| 497 | CONFIG_ESP_ROM_HAS_SW_FLOAT=y | ||
| 498 | CONFIG_ESP_ROM_HAS_VERSION=y | ||
| 499 | CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y | ||
| 500 | CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y | ||
| 501 | |||
| 502 | # | ||
| 503 | # Boot ROM Behavior | ||
| 504 | # | ||
| 505 | CONFIG_BOOT_ROM_LOG_ALWAYS_ON=y | ||
| 506 | # CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set | ||
| 507 | # CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH is not set | ||
| 508 | # CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set | ||
| 509 | # end of Boot ROM Behavior | ||
| 510 | |||
| 511 | # | ||
| 512 | # Serial flasher config | ||
| 513 | # | ||
| 514 | # CONFIG_ESPTOOLPY_NO_STUB is not set | ||
| 515 | # CONFIG_ESPTOOLPY_OCT_FLASH is not set | ||
| 516 | CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT=y | ||
| 517 | # CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set | ||
| 518 | # CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set | ||
| 519 | CONFIG_ESPTOOLPY_FLASHMODE_DIO=y | ||
| 520 | # CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set | ||
| 521 | CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y | ||
| 522 | CONFIG_ESPTOOLPY_FLASHMODE="dio" | ||
| 523 | # CONFIG_ESPTOOLPY_FLASHFREQ_120M is not set | ||
| 524 | CONFIG_ESPTOOLPY_FLASHFREQ_80M=y | ||
| 525 | # CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set | ||
| 526 | # CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set | ||
| 527 | CONFIG_ESPTOOLPY_FLASHFREQ="80m" | ||
| 528 | # CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set | ||
| 529 | # CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set | ||
| 530 | # CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set | ||
| 531 | # CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set | ||
| 532 | CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y | ||
| 533 | # CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set | ||
| 534 | # CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set | ||
| 535 | # CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set | ||
| 536 | CONFIG_ESPTOOLPY_FLASHSIZE="16MB" | ||
| 537 | # CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set | ||
| 538 | CONFIG_ESPTOOLPY_BEFORE_RESET=y | ||
| 539 | # CONFIG_ESPTOOLPY_BEFORE_NORESET is not set | ||
| 540 | CONFIG_ESPTOOLPY_BEFORE="default_reset" | ||
| 541 | CONFIG_ESPTOOLPY_AFTER_RESET=y | ||
| 542 | # CONFIG_ESPTOOLPY_AFTER_NORESET is not set | ||
| 543 | CONFIG_ESPTOOLPY_AFTER="hard_reset" | ||
| 544 | CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 | ||
| 545 | # end of Serial flasher config | ||
| 546 | |||
| 547 | # | ||
| 548 | # Partition Table | ||
| 549 | # | ||
| 550 | # CONFIG_PARTITION_TABLE_SINGLE_APP is not set | ||
| 551 | # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set | ||
| 552 | # CONFIG_PARTITION_TABLE_TWO_OTA is not set | ||
| 553 | # CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set | ||
| 554 | CONFIG_PARTITION_TABLE_CUSTOM=y | ||
| 555 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" | ||
| 556 | CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" | ||
| 557 | CONFIG_PARTITION_TABLE_OFFSET=0x8000 | ||
| 558 | CONFIG_PARTITION_TABLE_MD5=y | ||
| 559 | # end of Partition Table | ||
| 560 | |||
| 561 | # | ||
| 562 | # Compiler options | ||
| 563 | # | ||
| 564 | CONFIG_COMPILER_OPTIMIZATION_DEBUG=y | ||
| 565 | # CONFIG_COMPILER_OPTIMIZATION_SIZE is not set | ||
| 566 | # CONFIG_COMPILER_OPTIMIZATION_PERF is not set | ||
| 567 | # CONFIG_COMPILER_OPTIMIZATION_NONE is not set | ||
| 568 | CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y | ||
| 569 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set | ||
| 570 | # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set | ||
| 571 | CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y | ||
| 572 | CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y | ||
| 573 | CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 | ||
| 574 | # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set | ||
| 575 | CONFIG_COMPILER_HIDE_PATHS_MACROS=y | ||
| 576 | # CONFIG_COMPILER_CXX_EXCEPTIONS is not set | ||
| 577 | # CONFIG_COMPILER_CXX_RTTI is not set | ||
| 578 | CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y | ||
| 579 | # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set | ||
| 580 | # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set | ||
| 581 | # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set | ||
| 582 | # CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set | ||
| 583 | # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set | ||
| 584 | CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y | ||
| 585 | # CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set | ||
| 586 | # CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set | ||
| 587 | # CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set | ||
| 588 | # CONFIG_COMPILER_DUMP_RTL_FILES is not set | ||
| 589 | CONFIG_COMPILER_RT_LIB_GCCLIB=y | ||
| 590 | CONFIG_COMPILER_RT_LIB_NAME="gcc" | ||
| 591 | CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y | ||
| 592 | # CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set | ||
| 593 | # CONFIG_COMPILER_STATIC_ANALYZER is not set | ||
| 594 | # end of Compiler options | ||
| 595 | |||
| 596 | # | ||
| 597 | # Component config | ||
| 598 | # | ||
| 599 | |||
| 600 | # | ||
| 601 | # Application Level Tracing | ||
| 602 | # | ||
| 603 | # CONFIG_APPTRACE_DEST_JTAG is not set | ||
| 604 | CONFIG_APPTRACE_DEST_NONE=y | ||
| 605 | # CONFIG_APPTRACE_DEST_UART1 is not set | ||
| 606 | # CONFIG_APPTRACE_DEST_UART2 is not set | ||
| 607 | # CONFIG_APPTRACE_DEST_USB_CDC is not set | ||
| 608 | CONFIG_APPTRACE_DEST_UART_NONE=y | ||
| 609 | CONFIG_APPTRACE_UART_TASK_PRIO=1 | ||
| 610 | CONFIG_APPTRACE_LOCK_ENABLE=y | ||
| 611 | # end of Application Level Tracing | ||
| 612 | |||
| 613 | # | ||
| 614 | # Bluetooth | ||
| 615 | # | ||
| 616 | # CONFIG_BT_ENABLED is not set | ||
| 617 | CONFIG_BT_ALARM_MAX_NUM=50 | ||
| 618 | # end of Bluetooth | ||
| 619 | |||
| 620 | # | ||
| 621 | # Console Library | ||
| 622 | # | ||
| 623 | # CONFIG_CONSOLE_SORTED_HELP is not set | ||
| 624 | # end of Console Library | ||
| 625 | |||
| 626 | # | ||
| 627 | # Driver Configurations | ||
| 628 | # | ||
| 629 | |||
| 630 | # | ||
| 631 | # TWAI Configuration | ||
| 632 | # | ||
| 633 | # CONFIG_TWAI_ISR_IN_IRAM is not set | ||
| 634 | CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y | ||
| 635 | # end of TWAI Configuration | ||
| 636 | |||
| 637 | # | ||
| 638 | # Legacy ADC Driver Configuration | ||
| 639 | # | ||
| 640 | # CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set | ||
| 641 | # CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 642 | |||
| 643 | # | ||
| 644 | # Legacy ADC Calibration Configuration | ||
| 645 | # | ||
| 646 | # CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set | ||
| 647 | # end of Legacy ADC Calibration Configuration | ||
| 648 | # end of Legacy ADC Driver Configuration | ||
| 649 | |||
| 650 | # | ||
| 651 | # Legacy MCPWM Driver Configurations | ||
| 652 | # | ||
| 653 | # CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set | ||
| 654 | # CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 655 | # end of Legacy MCPWM Driver Configurations | ||
| 656 | |||
| 657 | # | ||
| 658 | # Legacy Timer Group Driver Configurations | ||
| 659 | # | ||
| 660 | # CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set | ||
| 661 | # CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 662 | # end of Legacy Timer Group Driver Configurations | ||
| 663 | |||
| 664 | # | ||
| 665 | # Legacy RMT Driver Configurations | ||
| 666 | # | ||
| 667 | # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set | ||
| 668 | # CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 669 | # end of Legacy RMT Driver Configurations | ||
| 670 | |||
| 671 | # | ||
| 672 | # Legacy I2S Driver Configurations | ||
| 673 | # | ||
| 674 | # CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set | ||
| 675 | # CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 676 | # end of Legacy I2S Driver Configurations | ||
| 677 | |||
| 678 | # | ||
| 679 | # Legacy PCNT Driver Configurations | ||
| 680 | # | ||
| 681 | # CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set | ||
| 682 | # CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 683 | # end of Legacy PCNT Driver Configurations | ||
| 684 | |||
| 685 | # | ||
| 686 | # Legacy SDM Driver Configurations | ||
| 687 | # | ||
| 688 | # CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set | ||
| 689 | # CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 690 | # end of Legacy SDM Driver Configurations | ||
| 691 | |||
| 692 | # | ||
| 693 | # Legacy Temperature Sensor Driver Configurations | ||
| 694 | # | ||
| 695 | # CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set | ||
| 696 | # CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set | ||
| 697 | # end of Legacy Temperature Sensor Driver Configurations | ||
| 698 | # end of Driver Configurations | ||
| 699 | |||
| 700 | # | ||
| 701 | # eFuse Bit Manager | ||
| 702 | # | ||
| 703 | # CONFIG_EFUSE_CUSTOM_TABLE is not set | ||
| 704 | # CONFIG_EFUSE_VIRTUAL is not set | ||
| 705 | CONFIG_EFUSE_MAX_BLK_LEN=256 | ||
| 706 | # end of eFuse Bit Manager | ||
| 707 | |||
| 708 | # | ||
| 709 | # ESP-TLS | ||
| 710 | # | ||
| 711 | CONFIG_ESP_TLS_USING_MBEDTLS=y | ||
| 712 | CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y | ||
| 713 | # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set | ||
| 714 | # CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set | ||
| 715 | # CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set | ||
| 716 | # CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set | ||
| 717 | # CONFIG_ESP_TLS_PSK_VERIFICATION is not set | ||
| 718 | # CONFIG_ESP_TLS_INSECURE is not set | ||
| 719 | # end of ESP-TLS | ||
| 720 | |||
| 721 | # | ||
| 722 | # ADC and ADC Calibration | ||
| 723 | # | ||
| 724 | # CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set | ||
| 725 | # CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set | ||
| 726 | # CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 is not set | ||
| 727 | # CONFIG_ADC_ENABLE_DEBUG_LOG is not set | ||
| 728 | # end of ADC and ADC Calibration | ||
| 729 | |||
| 730 | # | ||
| 731 | # Wireless Coexistence | ||
| 732 | # | ||
| 733 | CONFIG_ESP_COEX_ENABLED=y | ||
| 734 | # CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set | ||
| 735 | # CONFIG_ESP_COEX_GPIO_DEBUG is not set | ||
| 736 | # end of Wireless Coexistence | ||
| 737 | |||
| 738 | # | ||
| 739 | # Common ESP-related | ||
| 740 | # | ||
| 741 | CONFIG_ESP_ERR_TO_NAME_LOOKUP=y | ||
| 742 | # end of Common ESP-related | ||
| 743 | |||
| 744 | # | ||
| 745 | # ESP-Driver:GPIO Configurations | ||
| 746 | # | ||
| 747 | # CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set | ||
| 748 | # end of ESP-Driver:GPIO Configurations | ||
| 749 | |||
| 750 | # | ||
| 751 | # ESP-Driver:GPTimer Configurations | ||
| 752 | # | ||
| 753 | CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y | ||
| 754 | # CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set | ||
| 755 | # CONFIG_GPTIMER_ISR_IRAM_SAFE is not set | ||
| 756 | # CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set | ||
| 757 | # end of ESP-Driver:GPTimer Configurations | ||
| 758 | |||
| 759 | # | ||
| 760 | # ESP-Driver:I2C Configurations | ||
| 761 | # | ||
| 762 | # CONFIG_I2C_ISR_IRAM_SAFE is not set | ||
| 763 | # CONFIG_I2C_ENABLE_DEBUG_LOG is not set | ||
| 764 | # CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set | ||
| 765 | # end of ESP-Driver:I2C Configurations | ||
| 766 | |||
| 767 | # | ||
| 768 | # ESP-Driver:I2S Configurations | ||
| 769 | # | ||
| 770 | # CONFIG_I2S_ISR_IRAM_SAFE is not set | ||
| 771 | # CONFIG_I2S_ENABLE_DEBUG_LOG is not set | ||
| 772 | # end of ESP-Driver:I2S Configurations | ||
| 773 | |||
| 774 | # | ||
| 775 | # ESP-Driver:LEDC Configurations | ||
| 776 | # | ||
| 777 | # CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set | ||
| 778 | # end of ESP-Driver:LEDC Configurations | ||
| 779 | |||
| 780 | # | ||
| 781 | # ESP-Driver:MCPWM Configurations | ||
| 782 | # | ||
| 783 | # CONFIG_MCPWM_ISR_IRAM_SAFE is not set | ||
| 784 | # CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set | ||
| 785 | # CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set | ||
| 786 | # end of ESP-Driver:MCPWM Configurations | ||
| 787 | |||
| 788 | # | ||
| 789 | # ESP-Driver:PCNT Configurations | ||
| 790 | # | ||
| 791 | # CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set | ||
| 792 | # CONFIG_PCNT_ISR_IRAM_SAFE is not set | ||
| 793 | # CONFIG_PCNT_ENABLE_DEBUG_LOG is not set | ||
| 794 | # end of ESP-Driver:PCNT Configurations | ||
| 795 | |||
| 796 | # | ||
| 797 | # ESP-Driver:RMT Configurations | ||
| 798 | # | ||
| 799 | # CONFIG_RMT_ISR_IRAM_SAFE is not set | ||
| 800 | # CONFIG_RMT_RECV_FUNC_IN_IRAM is not set | ||
| 801 | # CONFIG_RMT_ENABLE_DEBUG_LOG is not set | ||
| 802 | # end of ESP-Driver:RMT Configurations | ||
| 803 | |||
| 804 | # | ||
| 805 | # ESP-Driver:Sigma Delta Modulator Configurations | ||
| 806 | # | ||
| 807 | # CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set | ||
| 808 | # CONFIG_SDM_ENABLE_DEBUG_LOG is not set | ||
| 809 | # end of ESP-Driver:Sigma Delta Modulator Configurations | ||
| 810 | |||
| 811 | # | ||
| 812 | # ESP-Driver:SPI Configurations | ||
| 813 | # | ||
| 814 | # CONFIG_SPI_MASTER_IN_IRAM is not set | ||
| 815 | CONFIG_SPI_MASTER_ISR_IN_IRAM=y | ||
| 816 | # CONFIG_SPI_SLAVE_IN_IRAM is not set | ||
| 817 | CONFIG_SPI_SLAVE_ISR_IN_IRAM=y | ||
| 818 | # end of ESP-Driver:SPI Configurations | ||
| 819 | |||
| 820 | # | ||
| 821 | # ESP-Driver:Touch Sensor Configurations | ||
| 822 | # | ||
| 823 | # CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set | ||
| 824 | # CONFIG_TOUCH_ISR_IRAM_SAFE is not set | ||
| 825 | # CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set | ||
| 826 | # end of ESP-Driver:Touch Sensor Configurations | ||
| 827 | |||
| 828 | # | ||
| 829 | # ESP-Driver:Temperature Sensor Configurations | ||
| 830 | # | ||
| 831 | # CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set | ||
| 832 | # end of ESP-Driver:Temperature Sensor Configurations | ||
| 833 | |||
| 834 | # | ||
| 835 | # ESP-Driver:UART Configurations | ||
| 836 | # | ||
| 837 | # CONFIG_UART_ISR_IN_IRAM is not set | ||
| 838 | # end of ESP-Driver:UART Configurations | ||
| 839 | |||
| 840 | # | ||
| 841 | # ESP-Driver:USB Serial/JTAG Configuration | ||
| 842 | # | ||
| 843 | CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y | ||
| 844 | # end of ESP-Driver:USB Serial/JTAG Configuration | ||
| 845 | |||
| 846 | # | ||
| 847 | # Ethernet | ||
| 848 | # | ||
| 849 | CONFIG_ETH_ENABLED=y | ||
| 850 | CONFIG_ETH_USE_SPI_ETHERNET=y | ||
| 851 | # CONFIG_ETH_SPI_ETHERNET_DM9051 is not set | ||
| 852 | # CONFIG_ETH_SPI_ETHERNET_W5500 is not set | ||
| 853 | # CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set | ||
| 854 | # CONFIG_ETH_USE_OPENETH is not set | ||
| 855 | # CONFIG_ETH_TRANSMIT_MUTEX is not set | ||
| 856 | # end of Ethernet | ||
| 857 | |||
| 858 | # | ||
| 859 | # Event Loop Library | ||
| 860 | # | ||
| 861 | # CONFIG_ESP_EVENT_LOOP_PROFILING is not set | ||
| 862 | CONFIG_ESP_EVENT_POST_FROM_ISR=y | ||
| 863 | CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y | ||
| 864 | # end of Event Loop Library | ||
| 865 | |||
| 866 | # | ||
| 867 | # GDB Stub | ||
| 868 | # | ||
| 869 | CONFIG_ESP_GDBSTUB_ENABLED=y | ||
| 870 | # CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set | ||
| 871 | CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y | ||
| 872 | CONFIG_ESP_GDBSTUB_MAX_TASKS=32 | ||
| 873 | # end of GDB Stub | ||
| 874 | |||
| 875 | # | ||
| 876 | # ESP HID | ||
| 877 | # | ||
| 878 | CONFIG_ESPHID_TASK_SIZE_BT=2048 | ||
| 879 | CONFIG_ESPHID_TASK_SIZE_BLE=4096 | ||
| 880 | # end of ESP HID | ||
| 881 | |||
| 882 | # | ||
| 883 | # ESP HTTP client | ||
| 884 | # | ||
| 885 | CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y | ||
| 886 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set | ||
| 887 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set | ||
| 888 | # CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set | ||
| 889 | CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 | ||
| 890 | # end of ESP HTTP client | ||
| 891 | |||
| 892 | # | ||
| 893 | # HTTP Server | ||
| 894 | # | ||
| 895 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 | ||
| 896 | CONFIG_HTTPD_MAX_URI_LEN=512 | ||
| 897 | CONFIG_HTTPD_ERR_RESP_NO_DELAY=y | ||
| 898 | CONFIG_HTTPD_PURGE_BUF_LEN=32 | ||
| 899 | # CONFIG_HTTPD_LOG_PURGE_DATA is not set | ||
| 900 | # CONFIG_HTTPD_WS_SUPPORT is not set | ||
| 901 | # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set | ||
| 902 | CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 | ||
| 903 | # end of HTTP Server | ||
| 904 | |||
| 905 | # | ||
| 906 | # ESP HTTPS OTA | ||
| 907 | # | ||
| 908 | # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set | ||
| 909 | # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set | ||
| 910 | CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 | ||
| 911 | # end of ESP HTTPS OTA | ||
| 912 | |||
| 913 | # | ||
| 914 | # ESP HTTPS server | ||
| 915 | # | ||
| 916 | # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set | ||
| 917 | CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 | ||
| 918 | # end of ESP HTTPS server | ||
| 919 | |||
| 920 | # | ||
| 921 | # Hardware Settings | ||
| 922 | # | ||
| 923 | |||
| 924 | # | ||
| 925 | # Chip revision | ||
| 926 | # | ||
| 927 | CONFIG_ESP32S3_REV_MIN_0=y | ||
| 928 | # CONFIG_ESP32S3_REV_MIN_1 is not set | ||
| 929 | # CONFIG_ESP32S3_REV_MIN_2 is not set | ||
| 930 | CONFIG_ESP32S3_REV_MIN_FULL=0 | ||
| 931 | CONFIG_ESP_REV_MIN_FULL=0 | ||
| 932 | |||
| 933 | # | ||
| 934 | # Maximum Supported ESP32-S3 Revision (Rev v0.99) | ||
| 935 | # | ||
| 936 | CONFIG_ESP32S3_REV_MAX_FULL=99 | ||
| 937 | CONFIG_ESP_REV_MAX_FULL=99 | ||
| 938 | CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 | ||
| 939 | CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 | ||
| 940 | |||
| 941 | # | ||
| 942 | # Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.99) | ||
| 943 | # | ||
| 944 | # end of Chip revision | ||
| 945 | |||
| 946 | # | ||
| 947 | # MAC Config | ||
| 948 | # | ||
| 949 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y | ||
| 950 | CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y | ||
| 951 | CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y | ||
| 952 | CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y | ||
| 953 | CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y | ||
| 954 | CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 | ||
| 955 | # CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_TWO is not set | ||
| 956 | CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR=y | ||
| 957 | CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES=4 | ||
| 958 | # CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set | ||
| 959 | # end of MAC Config | ||
| 960 | |||
| 961 | # | ||
| 962 | # Sleep Config | ||
| 963 | # | ||
| 964 | # CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set | ||
| 965 | CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y | ||
| 966 | CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU=y | ||
| 967 | CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y | ||
| 968 | CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y | ||
| 969 | CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 | ||
| 970 | # CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set | ||
| 971 | # CONFIG_ESP_SLEEP_DEBUG is not set | ||
| 972 | CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y | ||
| 973 | # end of Sleep Config | ||
| 974 | |||
| 975 | # | ||
| 976 | # RTC Clock Config | ||
| 977 | # | ||
| 978 | CONFIG_RTC_CLK_SRC_INT_RC=y | ||
| 979 | # CONFIG_RTC_CLK_SRC_EXT_CRYS is not set | ||
| 980 | # CONFIG_RTC_CLK_SRC_EXT_OSC is not set | ||
| 981 | # CONFIG_RTC_CLK_SRC_INT_8MD256 is not set | ||
| 982 | CONFIG_RTC_CLK_CAL_CYCLES=1024 | ||
| 983 | # end of RTC Clock Config | ||
| 984 | |||
| 985 | # | ||
| 986 | # Peripheral Control | ||
| 987 | # | ||
| 988 | CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y | ||
| 989 | # end of Peripheral Control | ||
| 990 | |||
| 991 | # | ||
| 992 | # GDMA Configurations | ||
| 993 | # | ||
| 994 | CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y | ||
| 995 | # CONFIG_GDMA_ISR_IRAM_SAFE is not set | ||
| 996 | # CONFIG_GDMA_ENABLE_DEBUG_LOG is not set | ||
| 997 | # end of GDMA Configurations | ||
| 998 | |||
| 999 | # | ||
| 1000 | # Main XTAL Config | ||
| 1001 | # | ||
| 1002 | CONFIG_XTAL_FREQ_40=y | ||
| 1003 | CONFIG_XTAL_FREQ=40 | ||
| 1004 | # end of Main XTAL Config | ||
| 1005 | |||
| 1006 | CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y | ||
| 1007 | # end of Hardware Settings | ||
| 1008 | |||
| 1009 | # | ||
| 1010 | # ESP-Driver:LCD Controller Configurations | ||
| 1011 | # | ||
| 1012 | # CONFIG_LCD_ENABLE_DEBUG_LOG is not set | ||
| 1013 | # CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set | ||
| 1014 | # CONFIG_LCD_RGB_RESTART_IN_VSYNC is not set | ||
| 1015 | # end of ESP-Driver:LCD Controller Configurations | ||
| 1016 | |||
| 1017 | # | ||
| 1018 | # ESP-MM: Memory Management Configurations | ||
| 1019 | # | ||
| 1020 | # CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set | ||
| 1021 | # end of ESP-MM: Memory Management Configurations | ||
| 1022 | |||
| 1023 | # | ||
| 1024 | # ESP NETIF Adapter | ||
| 1025 | # | ||
| 1026 | CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 | ||
| 1027 | # CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set | ||
| 1028 | CONFIG_ESP_NETIF_TCPIP_LWIP=y | ||
| 1029 | # CONFIG_ESP_NETIF_LOOPBACK is not set | ||
| 1030 | CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y | ||
| 1031 | CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y | ||
| 1032 | # CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set | ||
| 1033 | # CONFIG_ESP_NETIF_L2_TAP is not set | ||
| 1034 | # CONFIG_ESP_NETIF_BRIDGE_EN is not set | ||
| 1035 | # CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set | ||
| 1036 | # end of ESP NETIF Adapter | ||
| 1037 | |||
| 1038 | # | ||
| 1039 | # Partition API Configuration | ||
| 1040 | # | ||
| 1041 | # end of Partition API Configuration | ||
| 1042 | |||
| 1043 | # | ||
| 1044 | # PHY | ||
| 1045 | # | ||
| 1046 | CONFIG_ESP_PHY_ENABLED=y | ||
| 1047 | CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y | ||
| 1048 | # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set | ||
| 1049 | CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 | ||
| 1050 | CONFIG_ESP_PHY_MAX_TX_POWER=20 | ||
| 1051 | # CONFIG_ESP_PHY_REDUCE_TX_POWER is not set | ||
| 1052 | CONFIG_ESP_PHY_ENABLE_USB=y | ||
| 1053 | # CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set | ||
| 1054 | CONFIG_ESP_PHY_RF_CAL_PARTIAL=y | ||
| 1055 | # CONFIG_ESP_PHY_RF_CAL_NONE is not set | ||
| 1056 | # CONFIG_ESP_PHY_RF_CAL_FULL is not set | ||
| 1057 | CONFIG_ESP_PHY_CALIBRATION_MODE=0 | ||
| 1058 | # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set | ||
| 1059 | # CONFIG_ESP_PHY_RECORD_USED_TIME is not set | ||
| 1060 | # end of PHY | ||
| 1061 | |||
| 1062 | # | ||
| 1063 | # Power Management | ||
| 1064 | # | ||
| 1065 | # CONFIG_PM_ENABLE is not set | ||
| 1066 | # CONFIG_PM_SLP_IRAM_OPT is not set | ||
| 1067 | CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y | ||
| 1068 | CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y | ||
| 1069 | # end of Power Management | ||
| 1070 | |||
| 1071 | # | ||
| 1072 | # ESP PSRAM | ||
| 1073 | # | ||
| 1074 | # CONFIG_SPIRAM is not set | ||
| 1075 | # end of ESP PSRAM | ||
| 1076 | |||
| 1077 | # | ||
| 1078 | # ESP Ringbuf | ||
| 1079 | # | ||
| 1080 | # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set | ||
| 1081 | # end of ESP Ringbuf | ||
| 1082 | |||
| 1083 | # | ||
| 1084 | # ESP Security Specific | ||
| 1085 | # | ||
| 1086 | # end of ESP Security Specific | ||
| 1087 | |||
| 1088 | # | ||
| 1089 | # ESP System Settings | ||
| 1090 | # | ||
| 1091 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set | ||
| 1092 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y | ||
| 1093 | # CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set | ||
| 1094 | CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 | ||
| 1095 | |||
| 1096 | # | ||
| 1097 | # Cache config | ||
| 1098 | # | ||
| 1099 | CONFIG_ESP32S3_INSTRUCTION_CACHE_16KB=y | ||
| 1100 | # CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB is not set | ||
| 1101 | CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x4000 | ||
| 1102 | # CONFIG_ESP32S3_INSTRUCTION_CACHE_4WAYS is not set | ||
| 1103 | CONFIG_ESP32S3_INSTRUCTION_CACHE_8WAYS=y | ||
| 1104 | CONFIG_ESP32S3_ICACHE_ASSOCIATED_WAYS=8 | ||
| 1105 | # CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_16B is not set | ||
| 1106 | CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_32B=y | ||
| 1107 | CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_SIZE=32 | ||
| 1108 | # CONFIG_ESP32S3_DATA_CACHE_16KB is not set | ||
| 1109 | CONFIG_ESP32S3_DATA_CACHE_32KB=y | ||
| 1110 | # CONFIG_ESP32S3_DATA_CACHE_64KB is not set | ||
| 1111 | CONFIG_ESP32S3_DATA_CACHE_SIZE=0x8000 | ||
| 1112 | # CONFIG_ESP32S3_DATA_CACHE_4WAYS is not set | ||
| 1113 | CONFIG_ESP32S3_DATA_CACHE_8WAYS=y | ||
| 1114 | CONFIG_ESP32S3_DCACHE_ASSOCIATED_WAYS=8 | ||
| 1115 | # CONFIG_ESP32S3_DATA_CACHE_LINE_16B is not set | ||
| 1116 | CONFIG_ESP32S3_DATA_CACHE_LINE_32B=y | ||
| 1117 | # CONFIG_ESP32S3_DATA_CACHE_LINE_64B is not set | ||
| 1118 | CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=32 | ||
| 1119 | # end of Cache config | ||
| 1120 | |||
| 1121 | # | ||
| 1122 | # Memory | ||
| 1123 | # | ||
| 1124 | # CONFIG_ESP32S3_RTCDATA_IN_FAST_MEM is not set | ||
| 1125 | # CONFIG_ESP32S3_USE_FIXED_STATIC_RAM_SIZE is not set | ||
| 1126 | # end of Memory | ||
| 1127 | |||
| 1128 | # | ||
| 1129 | # Trace memory | ||
| 1130 | # | ||
| 1131 | # CONFIG_ESP32S3_TRAX is not set | ||
| 1132 | CONFIG_ESP32S3_TRACEMEM_RESERVE_DRAM=0x0 | ||
| 1133 | # end of Trace memory | ||
| 1134 | |||
| 1135 | # CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set | ||
| 1136 | CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y | ||
| 1137 | # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set | ||
| 1138 | # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set | ||
| 1139 | CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 | ||
| 1140 | CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y | ||
| 1141 | CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y | ||
| 1142 | |||
| 1143 | # | ||
| 1144 | # Memory protection | ||
| 1145 | # | ||
| 1146 | CONFIG_ESP_SYSTEM_MEMPROT_FEATURE=y | ||
| 1147 | CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y | ||
| 1148 | # end of Memory protection | ||
| 1149 | |||
| 1150 | CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 | ||
| 1151 | CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 | ||
| 1152 | CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192 | ||
| 1153 | CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y | ||
| 1154 | # CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set | ||
| 1155 | # CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set | ||
| 1156 | CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 | ||
| 1157 | CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 | ||
| 1158 | CONFIG_ESP_CONSOLE_UART_DEFAULT=y | ||
| 1159 | # CONFIG_ESP_CONSOLE_USB_CDC is not set | ||
| 1160 | # CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set | ||
| 1161 | # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set | ||
| 1162 | # CONFIG_ESP_CONSOLE_NONE is not set | ||
| 1163 | # CONFIG_ESP_CONSOLE_SECONDARY_NONE is not set | ||
| 1164 | CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG=y | ||
| 1165 | CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG_ENABLED=y | ||
| 1166 | CONFIG_ESP_CONSOLE_UART=y | ||
| 1167 | CONFIG_ESP_CONSOLE_UART_NUM=0 | ||
| 1168 | CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 | ||
| 1169 | CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 | ||
| 1170 | CONFIG_ESP_INT_WDT=y | ||
| 1171 | CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 | ||
| 1172 | CONFIG_ESP_INT_WDT_CHECK_CPU1=y | ||
| 1173 | CONFIG_ESP_TASK_WDT_EN=y | ||
| 1174 | CONFIG_ESP_TASK_WDT_INIT=y | ||
| 1175 | # CONFIG_ESP_TASK_WDT_PANIC is not set | ||
| 1176 | CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 | ||
| 1177 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y | ||
| 1178 | CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y | ||
| 1179 | # CONFIG_ESP_PANIC_HANDLER_IRAM is not set | ||
| 1180 | # CONFIG_ESP_DEBUG_STUBS_ENABLE is not set | ||
| 1181 | CONFIG_ESP_DEBUG_OCDAWARE=y | ||
| 1182 | CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y | ||
| 1183 | |||
| 1184 | # | ||
| 1185 | # Brownout Detector | ||
| 1186 | # | ||
| 1187 | CONFIG_ESP_BROWNOUT_DET=y | ||
| 1188 | CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y | ||
| 1189 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set | ||
| 1190 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set | ||
| 1191 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set | ||
| 1192 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set | ||
| 1193 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set | ||
| 1194 | # CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set | ||
| 1195 | CONFIG_ESP_BROWNOUT_DET_LVL=7 | ||
| 1196 | # end of Brownout Detector | ||
| 1197 | |||
| 1198 | CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y | ||
| 1199 | CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y | ||
| 1200 | # end of ESP System Settings | ||
| 1201 | |||
| 1202 | # | ||
| 1203 | # IPC (Inter-Processor Call) | ||
| 1204 | # | ||
| 1205 | CONFIG_ESP_IPC_TASK_STACK_SIZE=1280 | ||
| 1206 | CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y | ||
| 1207 | CONFIG_ESP_IPC_ISR_ENABLE=y | ||
| 1208 | # end of IPC (Inter-Processor Call) | ||
| 1209 | |||
| 1210 | # | ||
| 1211 | # ESP Timer (High Resolution Timer) | ||
| 1212 | # | ||
| 1213 | # CONFIG_ESP_TIMER_PROFILING is not set | ||
| 1214 | CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y | ||
| 1215 | CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y | ||
| 1216 | CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 | ||
| 1217 | CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 | ||
| 1218 | # CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set | ||
| 1219 | CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 | ||
| 1220 | CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y | ||
| 1221 | CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y | ||
| 1222 | # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set | ||
| 1223 | CONFIG_ESP_TIMER_IMPL_SYSTIMER=y | ||
| 1224 | # end of ESP Timer (High Resolution Timer) | ||
| 1225 | |||
| 1226 | # | ||
| 1227 | # Wi-Fi | ||
| 1228 | # | ||
| 1229 | CONFIG_ESP_WIFI_ENABLED=y | ||
| 1230 | CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 | ||
| 1231 | CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 | ||
| 1232 | # CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set | ||
| 1233 | CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y | ||
| 1234 | CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 | ||
| 1235 | CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 | ||
| 1236 | CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y | ||
| 1237 | # CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set | ||
| 1238 | CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 | ||
| 1239 | CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 | ||
| 1240 | # CONFIG_ESP_WIFI_CSI_ENABLED is not set | ||
| 1241 | CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y | ||
| 1242 | CONFIG_ESP_WIFI_TX_BA_WIN=6 | ||
| 1243 | CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y | ||
| 1244 | CONFIG_ESP_WIFI_RX_BA_WIN=6 | ||
| 1245 | CONFIG_ESP_WIFI_NVS_ENABLED=y | ||
| 1246 | CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y | ||
| 1247 | # CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set | ||
| 1248 | CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 | ||
| 1249 | CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 | ||
| 1250 | CONFIG_ESP_WIFI_IRAM_OPT=y | ||
| 1251 | # CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set | ||
| 1252 | CONFIG_ESP_WIFI_RX_IRAM_OPT=y | ||
| 1253 | CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y | ||
| 1254 | CONFIG_ESP_WIFI_ENABLE_SAE_PK=y | ||
| 1255 | CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y | ||
| 1256 | CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y | ||
| 1257 | # CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set | ||
| 1258 | CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 | ||
| 1259 | CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 | ||
| 1260 | CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 | ||
| 1261 | # CONFIG_ESP_WIFI_FTM_ENABLE is not set | ||
| 1262 | CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y | ||
| 1263 | # CONFIG_ESP_WIFI_GCMP_SUPPORT is not set | ||
| 1264 | CONFIG_ESP_WIFI_GMAC_SUPPORT=y | ||
| 1265 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y | ||
| 1266 | # CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set | ||
| 1267 | CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 | ||
| 1268 | CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y | ||
| 1269 | CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y | ||
| 1270 | # CONFIG_ESP_WIFI_WAPI_PSK is not set | ||
| 1271 | # CONFIG_ESP_WIFI_SUITE_B_192 is not set | ||
| 1272 | # CONFIG_ESP_WIFI_11KV_SUPPORT is not set | ||
| 1273 | # CONFIG_ESP_WIFI_MBO_SUPPORT is not set | ||
| 1274 | # CONFIG_ESP_WIFI_DPP_SUPPORT is not set | ||
| 1275 | # CONFIG_ESP_WIFI_11R_SUPPORT is not set | ||
| 1276 | # CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set | ||
| 1277 | |||
| 1278 | # | ||
| 1279 | # WPS Configuration Options | ||
| 1280 | # | ||
| 1281 | # CONFIG_ESP_WIFI_WPS_STRICT is not set | ||
| 1282 | # CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set | ||
| 1283 | # end of WPS Configuration Options | ||
| 1284 | |||
| 1285 | # CONFIG_ESP_WIFI_DEBUG_PRINT is not set | ||
| 1286 | # CONFIG_ESP_WIFI_TESTING_OPTIONS is not set | ||
| 1287 | CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y | ||
| 1288 | # CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set | ||
| 1289 | # end of Wi-Fi | ||
| 1290 | |||
| 1291 | # | ||
| 1292 | # Core dump | ||
| 1293 | # | ||
| 1294 | # CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set | ||
| 1295 | # CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set | ||
| 1296 | CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y | ||
| 1297 | # end of Core dump | ||
| 1298 | |||
| 1299 | # | ||
| 1300 | # FAT Filesystem support | ||
| 1301 | # | ||
| 1302 | CONFIG_FATFS_VOLUME_COUNT=2 | ||
| 1303 | CONFIG_FATFS_LFN_NONE=y | ||
| 1304 | # CONFIG_FATFS_LFN_HEAP is not set | ||
| 1305 | # CONFIG_FATFS_LFN_STACK is not set | ||
| 1306 | # CONFIG_FATFS_SECTOR_512 is not set | ||
| 1307 | CONFIG_FATFS_SECTOR_4096=y | ||
| 1308 | # CONFIG_FATFS_CODEPAGE_DYNAMIC is not set | ||
| 1309 | CONFIG_FATFS_CODEPAGE_437=y | ||
| 1310 | # CONFIG_FATFS_CODEPAGE_720 is not set | ||
| 1311 | # CONFIG_FATFS_CODEPAGE_737 is not set | ||
| 1312 | # CONFIG_FATFS_CODEPAGE_771 is not set | ||
| 1313 | # CONFIG_FATFS_CODEPAGE_775 is not set | ||
| 1314 | # CONFIG_FATFS_CODEPAGE_850 is not set | ||
| 1315 | # CONFIG_FATFS_CODEPAGE_852 is not set | ||
| 1316 | # CONFIG_FATFS_CODEPAGE_855 is not set | ||
| 1317 | # CONFIG_FATFS_CODEPAGE_857 is not set | ||
| 1318 | # CONFIG_FATFS_CODEPAGE_860 is not set | ||
| 1319 | # CONFIG_FATFS_CODEPAGE_861 is not set | ||
| 1320 | # CONFIG_FATFS_CODEPAGE_862 is not set | ||
| 1321 | # CONFIG_FATFS_CODEPAGE_863 is not set | ||
| 1322 | # CONFIG_FATFS_CODEPAGE_864 is not set | ||
| 1323 | # CONFIG_FATFS_CODEPAGE_865 is not set | ||
| 1324 | # CONFIG_FATFS_CODEPAGE_866 is not set | ||
| 1325 | # CONFIG_FATFS_CODEPAGE_869 is not set | ||
| 1326 | # CONFIG_FATFS_CODEPAGE_932 is not set | ||
| 1327 | # CONFIG_FATFS_CODEPAGE_936 is not set | ||
| 1328 | # CONFIG_FATFS_CODEPAGE_949 is not set | ||
| 1329 | # CONFIG_FATFS_CODEPAGE_950 is not set | ||
| 1330 | CONFIG_FATFS_CODEPAGE=437 | ||
| 1331 | CONFIG_FATFS_FS_LOCK=0 | ||
| 1332 | CONFIG_FATFS_TIMEOUT_MS=10000 | ||
| 1333 | CONFIG_FATFS_PER_FILE_CACHE=y | ||
| 1334 | # CONFIG_FATFS_USE_FASTSEEK is not set | ||
| 1335 | CONFIG_FATFS_USE_STRFUNC_NONE=y | ||
| 1336 | # CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set | ||
| 1337 | # CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set | ||
| 1338 | CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 | ||
| 1339 | # CONFIG_FATFS_IMMEDIATE_FSYNC is not set | ||
| 1340 | # CONFIG_FATFS_USE_LABEL is not set | ||
| 1341 | CONFIG_FATFS_LINK_LOCK=y | ||
| 1342 | # end of FAT Filesystem support | ||
| 1343 | |||
| 1344 | # | ||
| 1345 | # FreeRTOS | ||
| 1346 | # | ||
| 1347 | |||
| 1348 | # | ||
| 1349 | # Kernel | ||
| 1350 | # | ||
| 1351 | # CONFIG_FREERTOS_SMP is not set | ||
| 1352 | # CONFIG_FREERTOS_UNICORE is not set | ||
| 1353 | CONFIG_FREERTOS_HZ=1000 | ||
| 1354 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set | ||
| 1355 | # CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set | ||
| 1356 | CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y | ||
| 1357 | CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 | ||
| 1358 | CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 | ||
| 1359 | # CONFIG_FREERTOS_USE_IDLE_HOOK is not set | ||
| 1360 | # CONFIG_FREERTOS_USE_TICK_HOOK is not set | ||
| 1361 | CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 | ||
| 1362 | # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set | ||
| 1363 | CONFIG_FREERTOS_USE_TIMERS=y | ||
| 1364 | CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" | ||
| 1365 | # CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set | ||
| 1366 | # CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set | ||
| 1367 | CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y | ||
| 1368 | CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF | ||
| 1369 | CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 | ||
| 1370 | CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 | ||
| 1371 | CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 | ||
| 1372 | CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 | ||
| 1373 | CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 | ||
| 1374 | # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set | ||
| 1375 | # CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set | ||
| 1376 | # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set | ||
| 1377 | # CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set | ||
| 1378 | # end of Kernel | ||
| 1379 | |||
| 1380 | # | ||
| 1381 | # Port | ||
| 1382 | # | ||
| 1383 | CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y | ||
| 1384 | # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set | ||
| 1385 | CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y | ||
| 1386 | # CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set | ||
| 1387 | # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set | ||
| 1388 | CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y | ||
| 1389 | CONFIG_FREERTOS_ISR_STACKSIZE=1536 | ||
| 1390 | CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y | ||
| 1391 | # CONFIG_FREERTOS_FPU_IN_ISR is not set | ||
| 1392 | CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y | ||
| 1393 | CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y | ||
| 1394 | # CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set | ||
| 1395 | CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y | ||
| 1396 | # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set | ||
| 1397 | # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set | ||
| 1398 | # end of Port | ||
| 1399 | |||
| 1400 | # | ||
| 1401 | # Extra | ||
| 1402 | # | ||
| 1403 | # end of Extra | ||
| 1404 | |||
| 1405 | CONFIG_FREERTOS_PORT=y | ||
| 1406 | CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF | ||
| 1407 | CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y | ||
| 1408 | CONFIG_FREERTOS_DEBUG_OCDAWARE=y | ||
| 1409 | CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y | ||
| 1410 | CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y | ||
| 1411 | CONFIG_FREERTOS_NUMBER_OF_CORES=2 | ||
| 1412 | # end of FreeRTOS | ||
| 1413 | |||
| 1414 | # | ||
| 1415 | # Hardware Abstraction Layer (HAL) and Low Level (LL) | ||
| 1416 | # | ||
| 1417 | CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y | ||
| 1418 | # CONFIG_HAL_ASSERTION_DISABLE is not set | ||
| 1419 | # CONFIG_HAL_ASSERTION_SILENT is not set | ||
| 1420 | # CONFIG_HAL_ASSERTION_ENABLE is not set | ||
| 1421 | CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 | ||
| 1422 | CONFIG_HAL_WDT_USE_ROM_IMPL=y | ||
| 1423 | CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y | ||
| 1424 | CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y | ||
| 1425 | # end of Hardware Abstraction Layer (HAL) and Low Level (LL) | ||
| 1426 | |||
| 1427 | # | ||
| 1428 | # Heap memory debugging | ||
| 1429 | # | ||
| 1430 | CONFIG_HEAP_POISONING_DISABLED=y | ||
| 1431 | # CONFIG_HEAP_POISONING_LIGHT is not set | ||
| 1432 | # CONFIG_HEAP_POISONING_COMPREHENSIVE is not set | ||
| 1433 | CONFIG_HEAP_TRACING_OFF=y | ||
| 1434 | # CONFIG_HEAP_TRACING_STANDALONE is not set | ||
| 1435 | # CONFIG_HEAP_TRACING_TOHOST is not set | ||
| 1436 | # CONFIG_HEAP_USE_HOOKS is not set | ||
| 1437 | # CONFIG_HEAP_TASK_TRACKING is not set | ||
| 1438 | # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set | ||
| 1439 | # CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set | ||
| 1440 | # end of Heap memory debugging | ||
| 1441 | |||
| 1442 | # | ||
| 1443 | # Log | ||
| 1444 | # | ||
| 1445 | |||
| 1446 | # | ||
| 1447 | # Log Level | ||
| 1448 | # | ||
| 1449 | # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set | ||
| 1450 | # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set | ||
| 1451 | # CONFIG_LOG_DEFAULT_LEVEL_WARN is not set | ||
| 1452 | CONFIG_LOG_DEFAULT_LEVEL_INFO=y | ||
| 1453 | # CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set | ||
| 1454 | # CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set | ||
| 1455 | CONFIG_LOG_DEFAULT_LEVEL=3 | ||
| 1456 | CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y | ||
| 1457 | # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set | ||
| 1458 | # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set | ||
| 1459 | CONFIG_LOG_MAXIMUM_LEVEL=3 | ||
| 1460 | |||
| 1461 | # | ||
| 1462 | # Level Settings | ||
| 1463 | # | ||
| 1464 | # CONFIG_LOG_MASTER_LEVEL is not set | ||
| 1465 | CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y | ||
| 1466 | # CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set | ||
| 1467 | # CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set | ||
| 1468 | CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y | ||
| 1469 | # CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set | ||
| 1470 | CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y | ||
| 1471 | CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 | ||
| 1472 | # end of Level Settings | ||
| 1473 | # end of Log Level | ||
| 1474 | |||
| 1475 | # | ||
| 1476 | # Format | ||
| 1477 | # | ||
| 1478 | # CONFIG_LOG_COLORS is not set | ||
| 1479 | CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y | ||
| 1480 | # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set | ||
| 1481 | # end of Format | ||
| 1482 | # end of Log | ||
| 1483 | |||
| 1484 | # | ||
| 1485 | # LWIP | ||
| 1486 | # | ||
| 1487 | CONFIG_LWIP_ENABLE=y | ||
| 1488 | CONFIG_LWIP_LOCAL_HOSTNAME="espressif" | ||
| 1489 | # CONFIG_LWIP_NETIF_API is not set | ||
| 1490 | CONFIG_LWIP_TCPIP_TASK_PRIO=18 | ||
| 1491 | # CONFIG_LWIP_TCPIP_CORE_LOCKING is not set | ||
| 1492 | # CONFIG_LWIP_CHECK_THREAD_SAFETY is not set | ||
| 1493 | CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y | ||
| 1494 | # CONFIG_LWIP_L2_TO_L3_COPY is not set | ||
| 1495 | # CONFIG_LWIP_IRAM_OPTIMIZATION is not set | ||
| 1496 | # CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set | ||
| 1497 | CONFIG_LWIP_TIMERS_ONDEMAND=y | ||
| 1498 | CONFIG_LWIP_MAX_SOCKETS=10 | ||
| 1499 | # CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set | ||
| 1500 | # CONFIG_LWIP_SO_LINGER is not set | ||
| 1501 | CONFIG_LWIP_SO_REUSE=y | ||
| 1502 | CONFIG_LWIP_SO_REUSE_RXTOALL=y | ||
| 1503 | # CONFIG_LWIP_SO_RCVBUF is not set | ||
| 1504 | # CONFIG_LWIP_NETBUF_RECVINFO is not set | ||
| 1505 | CONFIG_LWIP_IP_DEFAULT_TTL=64 | ||
| 1506 | CONFIG_LWIP_IP4_FRAG=y | ||
| 1507 | # CONFIG_LWIP_IP4_REASSEMBLY is not set | ||
| 1508 | CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 | ||
| 1509 | CONFIG_LWIP_IP_FORWARD=y | ||
| 1510 | CONFIG_LWIP_IPV4_NAPT=y | ||
| 1511 | CONFIG_LWIP_IPV4_NAPT_PORTMAP=y | ||
| 1512 | # CONFIG_LWIP_STATS is not set | ||
| 1513 | CONFIG_LWIP_ESP_GRATUITOUS_ARP=y | ||
| 1514 | CONFIG_LWIP_GARP_TMR_INTERVAL=60 | ||
| 1515 | CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 | ||
| 1516 | CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y | ||
| 1517 | # CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set | ||
| 1518 | # CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set | ||
| 1519 | # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set | ||
| 1520 | CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y | ||
| 1521 | # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set | ||
| 1522 | CONFIG_LWIP_DHCP_OPTIONS_LEN=68 | ||
| 1523 | CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 | ||
| 1524 | CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 | ||
| 1525 | |||
| 1526 | # | ||
| 1527 | # DHCP server | ||
| 1528 | # | ||
| 1529 | CONFIG_LWIP_DHCPS=y | ||
| 1530 | CONFIG_LWIP_DHCPS_LEASE_UNIT=60 | ||
| 1531 | CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 | ||
| 1532 | CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y | ||
| 1533 | CONFIG_LWIP_DHCPS_ADD_DNS=y | ||
| 1534 | # end of DHCP server | ||
| 1535 | |||
| 1536 | # CONFIG_LWIP_AUTOIP is not set | ||
| 1537 | CONFIG_LWIP_IPV4=y | ||
| 1538 | # CONFIG_LWIP_IPV6 is not set | ||
| 1539 | # CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set | ||
| 1540 | CONFIG_LWIP_NETIF_LOOPBACK=y | ||
| 1541 | CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 | ||
| 1542 | |||
| 1543 | # | ||
| 1544 | # TCP | ||
| 1545 | # | ||
| 1546 | CONFIG_LWIP_MAX_ACTIVE_TCP=16 | ||
| 1547 | CONFIG_LWIP_MAX_LISTENING_TCP=16 | ||
| 1548 | CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y | ||
| 1549 | CONFIG_LWIP_TCP_MAXRTX=12 | ||
| 1550 | CONFIG_LWIP_TCP_SYNMAXRTX=12 | ||
| 1551 | CONFIG_LWIP_TCP_MSS=1440 | ||
| 1552 | CONFIG_LWIP_TCP_TMR_INTERVAL=250 | ||
| 1553 | CONFIG_LWIP_TCP_MSL=60000 | ||
| 1554 | CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 | ||
| 1555 | CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 | ||
| 1556 | CONFIG_LWIP_TCP_WND_DEFAULT=5760 | ||
| 1557 | CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 | ||
| 1558 | CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 | ||
| 1559 | CONFIG_LWIP_TCP_QUEUE_OOSEQ=y | ||
| 1560 | CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 | ||
| 1561 | CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 | ||
| 1562 | # CONFIG_LWIP_TCP_SACK_OUT is not set | ||
| 1563 | CONFIG_LWIP_TCP_OVERSIZE_MSS=y | ||
| 1564 | # CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set | ||
| 1565 | # CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set | ||
| 1566 | CONFIG_LWIP_TCP_RTO_TIME=1500 | ||
| 1567 | # end of TCP | ||
| 1568 | |||
| 1569 | # | ||
| 1570 | # UDP | ||
| 1571 | # | ||
| 1572 | CONFIG_LWIP_MAX_UDP_PCBS=16 | ||
| 1573 | CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 | ||
| 1574 | # end of UDP | ||
| 1575 | |||
| 1576 | # | ||
| 1577 | # Checksums | ||
| 1578 | # | ||
| 1579 | # CONFIG_LWIP_CHECKSUM_CHECK_IP is not set | ||
| 1580 | # CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set | ||
| 1581 | CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y | ||
| 1582 | # end of Checksums | ||
| 1583 | |||
| 1584 | CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 | ||
| 1585 | CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y | ||
| 1586 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set | ||
| 1587 | # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set | ||
| 1588 | CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF | ||
| 1589 | # CONFIG_LWIP_PPP_SUPPORT is not set | ||
| 1590 | # CONFIG_LWIP_SLIP_SUPPORT is not set | ||
| 1591 | |||
| 1592 | # | ||
| 1593 | # ICMP | ||
| 1594 | # | ||
| 1595 | CONFIG_LWIP_ICMP=y | ||
| 1596 | # CONFIG_LWIP_MULTICAST_PING is not set | ||
| 1597 | # CONFIG_LWIP_BROADCAST_PING is not set | ||
| 1598 | # end of ICMP | ||
| 1599 | |||
| 1600 | # | ||
| 1601 | # LWIP RAW API | ||
| 1602 | # | ||
| 1603 | CONFIG_LWIP_MAX_RAW_PCBS=16 | ||
| 1604 | # end of LWIP RAW API | ||
| 1605 | |||
| 1606 | # | ||
| 1607 | # SNTP | ||
| 1608 | # | ||
| 1609 | CONFIG_LWIP_SNTP_MAX_SERVERS=1 | ||
| 1610 | # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set | ||
| 1611 | CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 | ||
| 1612 | CONFIG_LWIP_SNTP_STARTUP_DELAY=y | ||
| 1613 | CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 | ||
| 1614 | # end of SNTP | ||
| 1615 | |||
| 1616 | # | ||
| 1617 | # DNS | ||
| 1618 | # | ||
| 1619 | CONFIG_LWIP_DNS_MAX_HOST_IP=1 | ||
| 1620 | CONFIG_LWIP_DNS_MAX_SERVERS=3 | ||
| 1621 | # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set | ||
| 1622 | # CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set | ||
| 1623 | # end of DNS | ||
| 1624 | |||
| 1625 | CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 | ||
| 1626 | CONFIG_LWIP_ESP_LWIP_ASSERT=y | ||
| 1627 | |||
| 1628 | # | ||
| 1629 | # Hooks | ||
| 1630 | # | ||
| 1631 | # CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set | ||
| 1632 | CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y | ||
| 1633 | # CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set | ||
| 1634 | CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y | ||
| 1635 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set | ||
| 1636 | # CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set | ||
| 1637 | CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y | ||
| 1638 | # CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set | ||
| 1639 | # end of Hooks | ||
| 1640 | |||
| 1641 | # CONFIG_LWIP_DEBUG is not set | ||
| 1642 | # end of LWIP | ||
| 1643 | |||
| 1644 | # | ||
| 1645 | # mbedTLS | ||
| 1646 | # | ||
| 1647 | CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y | ||
| 1648 | # CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set | ||
| 1649 | # CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set | ||
| 1650 | CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y | ||
| 1651 | CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 | ||
| 1652 | CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 | ||
| 1653 | # CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set | ||
| 1654 | # CONFIG_MBEDTLS_DEBUG is not set | ||
| 1655 | |||
| 1656 | # | ||
| 1657 | # mbedTLS v3.x related | ||
| 1658 | # | ||
| 1659 | # CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set | ||
| 1660 | # CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set | ||
| 1661 | # CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set | ||
| 1662 | # CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set | ||
| 1663 | CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y | ||
| 1664 | CONFIG_MBEDTLS_PKCS7_C=y | ||
| 1665 | # end of mbedTLS v3.x related | ||
| 1666 | |||
| 1667 | # | ||
| 1668 | # Certificate Bundle | ||
| 1669 | # | ||
| 1670 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y | ||
| 1671 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y | ||
| 1672 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set | ||
| 1673 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set | ||
| 1674 | # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set | ||
| 1675 | # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set | ||
| 1676 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 | ||
| 1677 | # end of Certificate Bundle | ||
| 1678 | |||
| 1679 | # CONFIG_MBEDTLS_ECP_RESTARTABLE is not set | ||
| 1680 | CONFIG_MBEDTLS_CMAC_C=y | ||
| 1681 | CONFIG_MBEDTLS_HARDWARE_AES=y | ||
| 1682 | CONFIG_MBEDTLS_AES_USE_INTERRUPT=y | ||
| 1683 | CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 | ||
| 1684 | CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y | ||
| 1685 | CONFIG_MBEDTLS_HARDWARE_MPI=y | ||
| 1686 | # CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set | ||
| 1687 | CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y | ||
| 1688 | CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 | ||
| 1689 | CONFIG_MBEDTLS_HARDWARE_SHA=y | ||
| 1690 | CONFIG_MBEDTLS_ROM_MD5=y | ||
| 1691 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set | ||
| 1692 | # CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set | ||
| 1693 | CONFIG_MBEDTLS_HAVE_TIME=y | ||
| 1694 | # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set | ||
| 1695 | # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set | ||
| 1696 | CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y | ||
| 1697 | CONFIG_MBEDTLS_SHA512_C=y | ||
| 1698 | # CONFIG_MBEDTLS_SHA3_C is not set | ||
| 1699 | CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y | ||
| 1700 | # CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set | ||
| 1701 | # CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set | ||
| 1702 | # CONFIG_MBEDTLS_TLS_DISABLED is not set | ||
| 1703 | CONFIG_MBEDTLS_TLS_SERVER=y | ||
| 1704 | CONFIG_MBEDTLS_TLS_CLIENT=y | ||
| 1705 | CONFIG_MBEDTLS_TLS_ENABLED=y | ||
| 1706 | |||
| 1707 | # | ||
| 1708 | # TLS Key Exchange Methods | ||
| 1709 | # | ||
| 1710 | # CONFIG_MBEDTLS_PSK_MODES is not set | ||
| 1711 | CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y | ||
| 1712 | CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y | ||
| 1713 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y | ||
| 1714 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y | ||
| 1715 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y | ||
| 1716 | CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y | ||
| 1717 | # end of TLS Key Exchange Methods | ||
| 1718 | |||
| 1719 | CONFIG_MBEDTLS_SSL_RENEGOTIATION=y | ||
| 1720 | CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y | ||
| 1721 | # CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set | ||
| 1722 | # CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set | ||
| 1723 | CONFIG_MBEDTLS_SSL_ALPN=y | ||
| 1724 | CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y | ||
| 1725 | CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y | ||
| 1726 | |||
| 1727 | # | ||
| 1728 | # Symmetric Ciphers | ||
| 1729 | # | ||
| 1730 | CONFIG_MBEDTLS_AES_C=y | ||
| 1731 | # CONFIG_MBEDTLS_CAMELLIA_C is not set | ||
| 1732 | # CONFIG_MBEDTLS_DES_C is not set | ||
| 1733 | # CONFIG_MBEDTLS_BLOWFISH_C is not set | ||
| 1734 | # CONFIG_MBEDTLS_XTEA_C is not set | ||
| 1735 | CONFIG_MBEDTLS_CCM_C=y | ||
| 1736 | CONFIG_MBEDTLS_GCM_C=y | ||
| 1737 | # CONFIG_MBEDTLS_NIST_KW_C is not set | ||
| 1738 | # end of Symmetric Ciphers | ||
| 1739 | |||
| 1740 | # CONFIG_MBEDTLS_RIPEMD160_C is not set | ||
| 1741 | |||
| 1742 | # | ||
| 1743 | # Certificates | ||
| 1744 | # | ||
| 1745 | CONFIG_MBEDTLS_PEM_PARSE_C=y | ||
| 1746 | CONFIG_MBEDTLS_PEM_WRITE_C=y | ||
| 1747 | CONFIG_MBEDTLS_X509_CRL_PARSE_C=y | ||
| 1748 | CONFIG_MBEDTLS_X509_CSR_PARSE_C=y | ||
| 1749 | # end of Certificates | ||
| 1750 | |||
| 1751 | CONFIG_MBEDTLS_ECP_C=y | ||
| 1752 | CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y | ||
| 1753 | CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y | ||
| 1754 | # CONFIG_MBEDTLS_DHM_C is not set | ||
| 1755 | CONFIG_MBEDTLS_ECDH_C=y | ||
| 1756 | CONFIG_MBEDTLS_ECDSA_C=y | ||
| 1757 | # CONFIG_MBEDTLS_ECJPAKE_C is not set | ||
| 1758 | CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y | ||
| 1759 | CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y | ||
| 1760 | CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y | ||
| 1761 | CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y | ||
| 1762 | CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y | ||
| 1763 | CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y | ||
| 1764 | CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y | ||
| 1765 | CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y | ||
| 1766 | CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y | ||
| 1767 | CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y | ||
| 1768 | CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y | ||
| 1769 | CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y | ||
| 1770 | CONFIG_MBEDTLS_ECP_NIST_OPTIM=y | ||
| 1771 | # CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM is not set | ||
| 1772 | # CONFIG_MBEDTLS_POLY1305_C is not set | ||
| 1773 | # CONFIG_MBEDTLS_CHACHA20_C is not set | ||
| 1774 | # CONFIG_MBEDTLS_HKDF_C is not set | ||
| 1775 | # CONFIG_MBEDTLS_THREADING_C is not set | ||
| 1776 | CONFIG_MBEDTLS_ERROR_STRINGS=y | ||
| 1777 | CONFIG_MBEDTLS_FS_IO=y | ||
| 1778 | # end of mbedTLS | ||
| 1779 | |||
| 1780 | # | ||
| 1781 | # ESP-MQTT Configurations | ||
| 1782 | # | ||
| 1783 | CONFIG_MQTT_PROTOCOL_311=y | ||
| 1784 | # CONFIG_MQTT_PROTOCOL_5 is not set | ||
| 1785 | CONFIG_MQTT_TRANSPORT_SSL=y | ||
| 1786 | CONFIG_MQTT_TRANSPORT_WEBSOCKET=y | ||
| 1787 | CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y | ||
| 1788 | # CONFIG_MQTT_MSG_ID_INCREMENTAL is not set | ||
| 1789 | # CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set | ||
| 1790 | # CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set | ||
| 1791 | # CONFIG_MQTT_USE_CUSTOM_CONFIG is not set | ||
| 1792 | # CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set | ||
| 1793 | # CONFIG_MQTT_CUSTOM_OUTBOX is not set | ||
| 1794 | # end of ESP-MQTT Configurations | ||
| 1795 | |||
| 1796 | # | ||
| 1797 | # Newlib | ||
| 1798 | # | ||
| 1799 | CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y | ||
| 1800 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set | ||
| 1801 | # CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set | ||
| 1802 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set | ||
| 1803 | # CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set | ||
| 1804 | CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y | ||
| 1805 | # CONFIG_NEWLIB_NANO_FORMAT is not set | ||
| 1806 | CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y | ||
| 1807 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set | ||
| 1808 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set | ||
| 1809 | # CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set | ||
| 1810 | # end of Newlib | ||
| 1811 | |||
| 1812 | # | ||
| 1813 | # NVS | ||
| 1814 | # | ||
| 1815 | # CONFIG_NVS_ENCRYPTION is not set | ||
| 1816 | # CONFIG_NVS_ASSERT_ERROR_CHECK is not set | ||
| 1817 | # CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set | ||
| 1818 | # end of NVS | ||
| 1819 | |||
| 1820 | # | ||
| 1821 | # OpenThread | ||
| 1822 | # | ||
| 1823 | # CONFIG_OPENTHREAD_ENABLED is not set | ||
| 1824 | |||
| 1825 | # | ||
| 1826 | # OpenThread Spinel | ||
| 1827 | # | ||
| 1828 | # CONFIG_OPENTHREAD_SPINEL_ONLY is not set | ||
| 1829 | # end of OpenThread Spinel | ||
| 1830 | # end of OpenThread | ||
| 1831 | |||
| 1832 | # | ||
| 1833 | # Protocomm | ||
| 1834 | # | ||
| 1835 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y | ||
| 1836 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y | ||
| 1837 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y | ||
| 1838 | CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y | ||
| 1839 | # end of Protocomm | ||
| 1840 | |||
| 1841 | # | ||
| 1842 | # PThreads | ||
| 1843 | # | ||
| 1844 | CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 | ||
| 1845 | CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 | ||
| 1846 | CONFIG_PTHREAD_STACK_MIN=768 | ||
| 1847 | CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y | ||
| 1848 | # CONFIG_PTHREAD_DEFAULT_CORE_0 is not set | ||
| 1849 | # CONFIG_PTHREAD_DEFAULT_CORE_1 is not set | ||
| 1850 | CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 | ||
| 1851 | CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" | ||
| 1852 | # end of PThreads | ||
| 1853 | |||
| 1854 | # | ||
| 1855 | # MMU Config | ||
| 1856 | # | ||
| 1857 | CONFIG_MMU_PAGE_SIZE_64KB=y | ||
| 1858 | CONFIG_MMU_PAGE_MODE="64KB" | ||
| 1859 | CONFIG_MMU_PAGE_SIZE=0x10000 | ||
| 1860 | # end of MMU Config | ||
| 1861 | |||
| 1862 | # | ||
| 1863 | # Main Flash configuration | ||
| 1864 | # | ||
| 1865 | |||
| 1866 | # | ||
| 1867 | # SPI Flash behavior when brownout | ||
| 1868 | # | ||
| 1869 | CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y | ||
| 1870 | CONFIG_SPI_FLASH_BROWNOUT_RESET=y | ||
| 1871 | # end of SPI Flash behavior when brownout | ||
| 1872 | |||
| 1873 | # | ||
| 1874 | # Optional and Experimental Features (READ DOCS FIRST) | ||
| 1875 | # | ||
| 1876 | |||
| 1877 | # | ||
| 1878 | # Features here require specific hardware (READ DOCS FIRST!) | ||
| 1879 | # | ||
| 1880 | # CONFIG_SPI_FLASH_HPM_ENA is not set | ||
| 1881 | CONFIG_SPI_FLASH_HPM_AUTO=y | ||
| 1882 | # CONFIG_SPI_FLASH_HPM_DIS is not set | ||
| 1883 | CONFIG_SPI_FLASH_HPM_ON=y | ||
| 1884 | CONFIG_SPI_FLASH_HPM_DC_AUTO=y | ||
| 1885 | # CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set | ||
| 1886 | # CONFIG_SPI_FLASH_AUTO_SUSPEND is not set | ||
| 1887 | CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 | ||
| 1888 | # CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set | ||
| 1889 | # end of Optional and Experimental Features (READ DOCS FIRST) | ||
| 1890 | # end of Main Flash configuration | ||
| 1891 | |||
| 1892 | # | ||
| 1893 | # SPI Flash driver | ||
| 1894 | # | ||
| 1895 | # CONFIG_SPI_FLASH_VERIFY_WRITE is not set | ||
| 1896 | # CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set | ||
| 1897 | CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y | ||
| 1898 | # CONFIG_SPI_FLASH_ROM_IMPL is not set | ||
| 1899 | CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y | ||
| 1900 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set | ||
| 1901 | # CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set | ||
| 1902 | # CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set | ||
| 1903 | CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y | ||
| 1904 | CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 | ||
| 1905 | CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 | ||
| 1906 | CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 | ||
| 1907 | # CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set | ||
| 1908 | # CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set | ||
| 1909 | # CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set | ||
| 1910 | |||
| 1911 | # | ||
| 1912 | # Auto-detect flash chips | ||
| 1913 | # | ||
| 1914 | CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y | ||
| 1915 | CONFIG_SPI_FLASH_VENDOR_GD_SUPPORTED=y | ||
| 1916 | CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORTED=y | ||
| 1917 | CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORTED=y | ||
| 1918 | CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORTED=y | ||
| 1919 | CONFIG_SPI_FLASH_VENDOR_BOYA_SUPPORTED=y | ||
| 1920 | CONFIG_SPI_FLASH_VENDOR_TH_SUPPORTED=y | ||
| 1921 | CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y | ||
| 1922 | CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y | ||
| 1923 | CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y | ||
| 1924 | CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y | ||
| 1925 | CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y | ||
| 1926 | CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=y | ||
| 1927 | CONFIG_SPI_FLASH_SUPPORT_MXIC_OPI_CHIP=y | ||
| 1928 | # end of Auto-detect flash chips | ||
| 1929 | |||
| 1930 | CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y | ||
| 1931 | # end of SPI Flash driver | ||
| 1932 | |||
| 1933 | # | ||
| 1934 | # SPIFFS Configuration | ||
| 1935 | # | ||
| 1936 | CONFIG_SPIFFS_MAX_PARTITIONS=3 | ||
| 1937 | |||
| 1938 | # | ||
| 1939 | # SPIFFS Cache Configuration | ||
| 1940 | # | ||
| 1941 | CONFIG_SPIFFS_CACHE=y | ||
| 1942 | CONFIG_SPIFFS_CACHE_WR=y | ||
| 1943 | # CONFIG_SPIFFS_CACHE_STATS is not set | ||
| 1944 | # end of SPIFFS Cache Configuration | ||
| 1945 | |||
| 1946 | CONFIG_SPIFFS_PAGE_CHECK=y | ||
| 1947 | CONFIG_SPIFFS_GC_MAX_RUNS=10 | ||
| 1948 | # CONFIG_SPIFFS_GC_STATS is not set | ||
| 1949 | CONFIG_SPIFFS_PAGE_SIZE=256 | ||
| 1950 | CONFIG_SPIFFS_OBJ_NAME_LEN=32 | ||
| 1951 | # CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set | ||
| 1952 | CONFIG_SPIFFS_USE_MAGIC=y | ||
| 1953 | CONFIG_SPIFFS_USE_MAGIC_LENGTH=y | ||
| 1954 | CONFIG_SPIFFS_META_LENGTH=4 | ||
| 1955 | CONFIG_SPIFFS_USE_MTIME=y | ||
| 1956 | |||
| 1957 | # | ||
| 1958 | # Debug Configuration | ||
| 1959 | # | ||
| 1960 | # CONFIG_SPIFFS_DBG is not set | ||
| 1961 | # CONFIG_SPIFFS_API_DBG is not set | ||
| 1962 | # CONFIG_SPIFFS_GC_DBG is not set | ||
| 1963 | # CONFIG_SPIFFS_CACHE_DBG is not set | ||
| 1964 | # CONFIG_SPIFFS_CHECK_DBG is not set | ||
| 1965 | # CONFIG_SPIFFS_TEST_VISUALISATION is not set | ||
| 1966 | # end of Debug Configuration | ||
| 1967 | # end of SPIFFS Configuration | ||
| 1968 | |||
| 1969 | # | ||
| 1970 | # TCP Transport | ||
| 1971 | # | ||
| 1972 | |||
| 1973 | # | ||
| 1974 | # Websocket | ||
| 1975 | # | ||
| 1976 | CONFIG_WS_TRANSPORT=y | ||
| 1977 | CONFIG_WS_BUFFER_SIZE=1024 | ||
| 1978 | # CONFIG_WS_DYNAMIC_BUFFER is not set | ||
| 1979 | # end of Websocket | ||
| 1980 | # end of TCP Transport | ||
| 1981 | |||
| 1982 | # | ||
| 1983 | # Ultra Low Power (ULP) Co-processor | ||
| 1984 | # | ||
| 1985 | # CONFIG_ULP_COPROC_ENABLED is not set | ||
| 1986 | |||
| 1987 | # | ||
| 1988 | # ULP Debugging Options | ||
| 1989 | # | ||
| 1990 | # end of ULP Debugging Options | ||
| 1991 | # end of Ultra Low Power (ULP) Co-processor | ||
| 1992 | |||
| 1993 | # | ||
| 1994 | # Unity unit testing library | ||
| 1995 | # | ||
| 1996 | CONFIG_UNITY_ENABLE_FLOAT=y | ||
| 1997 | CONFIG_UNITY_ENABLE_DOUBLE=y | ||
| 1998 | # CONFIG_UNITY_ENABLE_64BIT is not set | ||
| 1999 | # CONFIG_UNITY_ENABLE_COLOR is not set | ||
| 2000 | CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y | ||
| 2001 | # CONFIG_UNITY_ENABLE_FIXTURE is not set | ||
| 2002 | # CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set | ||
| 2003 | # end of Unity unit testing library | ||
| 2004 | |||
| 2005 | # | ||
| 2006 | # USB-OTG | ||
| 2007 | # | ||
| 2008 | CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=256 | ||
| 2009 | CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y | ||
| 2010 | # CONFIG_USB_HOST_HW_BUFFER_BIAS_IN is not set | ||
| 2011 | # CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set | ||
| 2012 | |||
| 2013 | # | ||
| 2014 | # Hub Driver Configuration | ||
| 2015 | # | ||
| 2016 | |||
| 2017 | # | ||
| 2018 | # Root Port configuration | ||
| 2019 | # | ||
| 2020 | CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250 | ||
| 2021 | CONFIG_USB_HOST_RESET_HOLD_MS=30 | ||
| 2022 | CONFIG_USB_HOST_RESET_RECOVERY_MS=30 | ||
| 2023 | CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10 | ||
| 2024 | # end of Root Port configuration | ||
| 2025 | |||
| 2026 | # CONFIG_USB_HOST_HUBS_SUPPORTED is not set | ||
| 2027 | # end of Hub Driver Configuration | ||
| 2028 | |||
| 2029 | # CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set | ||
| 2030 | CONFIG_USB_OTG_SUPPORTED=y | ||
| 2031 | # end of USB-OTG | ||
| 2032 | |||
| 2033 | # | ||
| 2034 | # Virtual file system | ||
| 2035 | # | ||
| 2036 | CONFIG_VFS_SUPPORT_IO=y | ||
| 2037 | CONFIG_VFS_SUPPORT_DIR=y | ||
| 2038 | CONFIG_VFS_SUPPORT_SELECT=y | ||
| 2039 | CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y | ||
| 2040 | # CONFIG_VFS_SELECT_IN_RAM is not set | ||
| 2041 | CONFIG_VFS_SUPPORT_TERMIOS=y | ||
| 2042 | CONFIG_VFS_MAX_COUNT=8 | ||
| 2043 | |||
| 2044 | # | ||
| 2045 | # Host File System I/O (Semihosting) | ||
| 2046 | # | ||
| 2047 | CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 | ||
| 2048 | # end of Host File System I/O (Semihosting) | ||
| 2049 | |||
| 2050 | CONFIG_VFS_INITIALIZE_DEV_NULL=y | ||
| 2051 | # end of Virtual file system | ||
| 2052 | |||
| 2053 | # | ||
| 2054 | # Wear Levelling | ||
| 2055 | # | ||
| 2056 | # CONFIG_WL_SECTOR_SIZE_512 is not set | ||
| 2057 | CONFIG_WL_SECTOR_SIZE_4096=y | ||
| 2058 | CONFIG_WL_SECTOR_SIZE=4096 | ||
| 2059 | # end of Wear Levelling | ||
| 2060 | |||
| 2061 | # | ||
| 2062 | # Wi-Fi Provisioning Manager | ||
| 2063 | # | ||
| 2064 | CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 | ||
| 2065 | CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 | ||
| 2066 | CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y | ||
| 2067 | # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set | ||
| 2068 | # end of Wi-Fi Provisioning Manager | ||
| 2069 | # end of Component config | ||
| 2070 | |||
| 2071 | # CONFIG_IDF_EXPERIMENTAL_FEATURES is not set | ||
| 2072 | |||
| 2073 | # Deprecated options for backward compatibility | ||
| 2074 | # CONFIG_APP_BUILD_TYPE_ELF_RAM is not set | ||
| 2075 | # CONFIG_NO_BLOBS is not set | ||
| 2076 | # CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set | ||
| 2077 | # CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set | ||
| 2078 | # CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set | ||
| 2079 | CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y | ||
| 2080 | # CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set | ||
| 2081 | # CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set | ||
| 2082 | CONFIG_LOG_BOOTLOADER_LEVEL=3 | ||
| 2083 | # CONFIG_APP_ROLLBACK_ENABLE is not set | ||
| 2084 | # CONFIG_FLASH_ENCRYPTION_ENABLED is not set | ||
| 2085 | # CONFIG_FLASHMODE_QIO is not set | ||
| 2086 | # CONFIG_FLASHMODE_QOUT is not set | ||
| 2087 | CONFIG_FLASHMODE_DIO=y | ||
| 2088 | # CONFIG_FLASHMODE_DOUT is not set | ||
| 2089 | CONFIG_MONITOR_BAUD=115200 | ||
| 2090 | CONFIG_OPTIMIZATION_LEVEL_DEBUG=y | ||
| 2091 | CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y | ||
| 2092 | CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y | ||
| 2093 | # CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set | ||
| 2094 | # CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set | ||
| 2095 | CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y | ||
| 2096 | # CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set | ||
| 2097 | # CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set | ||
| 2098 | CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 | ||
| 2099 | # CONFIG_CXX_EXCEPTIONS is not set | ||
| 2100 | CONFIG_STACK_CHECK_NONE=y | ||
| 2101 | # CONFIG_STACK_CHECK_NORM is not set | ||
| 2102 | # CONFIG_STACK_CHECK_STRONG is not set | ||
| 2103 | # CONFIG_STACK_CHECK_ALL is not set | ||
| 2104 | # CONFIG_WARN_WRITE_STRINGS is not set | ||
| 2105 | # CONFIG_ESP32_APPTRACE_DEST_TRAX is not set | ||
| 2106 | CONFIG_ESP32_APPTRACE_DEST_NONE=y | ||
| 2107 | CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y | ||
| 2108 | # CONFIG_EXTERNAL_COEX_ENABLE is not set | ||
| 2109 | # CONFIG_ESP_WIFI_EXTERNAL_COEXIST_ENABLE is not set | ||
| 2110 | # CONFIG_MCPWM_ISR_IN_IRAM is not set | ||
| 2111 | # CONFIG_EVENT_LOOP_PROFILING is not set | ||
| 2112 | CONFIG_POST_EVENTS_FROM_ISR=y | ||
| 2113 | CONFIG_POST_EVENTS_FROM_IRAM_ISR=y | ||
| 2114 | CONFIG_GDBSTUB_SUPPORT_TASKS=y | ||
| 2115 | CONFIG_GDBSTUB_MAX_TASKS=32 | ||
| 2116 | # CONFIG_OTA_ALLOW_HTTP is not set | ||
| 2117 | # CONFIG_ESP_SYSTEM_PD_FLASH is not set | ||
| 2118 | CONFIG_ESP32S3_DEEP_SLEEP_WAKEUP_DELAY=2000 | ||
| 2119 | CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 | ||
| 2120 | CONFIG_ESP32S3_RTC_CLK_SRC_INT_RC=y | ||
| 2121 | # CONFIG_ESP32S3_RTC_CLK_SRC_EXT_CRYS is not set | ||
| 2122 | # CONFIG_ESP32S3_RTC_CLK_SRC_EXT_OSC is not set | ||
| 2123 | # CONFIG_ESP32S3_RTC_CLK_SRC_INT_8MD256 is not set | ||
| 2124 | CONFIG_ESP32S3_RTC_CLK_CAL_CYCLES=1024 | ||
| 2125 | CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y | ||
| 2126 | # CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set | ||
| 2127 | CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 | ||
| 2128 | CONFIG_ESP32_PHY_MAX_TX_POWER=20 | ||
| 2129 | # CONFIG_REDUCE_PHY_TX_POWER is not set | ||
| 2130 | # CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set | ||
| 2131 | CONFIG_ESP_SYSTEM_PM_POWER_DOWN_CPU=y | ||
| 2132 | CONFIG_PM_POWER_DOWN_TAGMEM_IN_LIGHT_SLEEP=y | ||
| 2133 | # CONFIG_ESP32S3_SPIRAM_SUPPORT is not set | ||
| 2134 | # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_80 is not set | ||
| 2135 | CONFIG_ESP32S3_DEFAULT_CPU_FREQ_160=y | ||
| 2136 | # CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240 is not set | ||
| 2137 | CONFIG_ESP32S3_DEFAULT_CPU_FREQ_MHZ=160 | ||
| 2138 | CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 | ||
| 2139 | CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 | ||
| 2140 | CONFIG_MAIN_TASK_STACK_SIZE=8192 | ||
| 2141 | CONFIG_CONSOLE_UART_DEFAULT=y | ||
| 2142 | # CONFIG_CONSOLE_UART_CUSTOM is not set | ||
| 2143 | # CONFIG_CONSOLE_UART_NONE is not set | ||
| 2144 | # CONFIG_ESP_CONSOLE_UART_NONE is not set | ||
| 2145 | CONFIG_CONSOLE_UART=y | ||
| 2146 | CONFIG_CONSOLE_UART_NUM=0 | ||
| 2147 | CONFIG_CONSOLE_UART_BAUDRATE=115200 | ||
| 2148 | CONFIG_INT_WDT=y | ||
| 2149 | CONFIG_INT_WDT_TIMEOUT_MS=300 | ||
| 2150 | CONFIG_INT_WDT_CHECK_CPU1=y | ||
| 2151 | CONFIG_TASK_WDT=y | ||
| 2152 | CONFIG_ESP_TASK_WDT=y | ||
| 2153 | # CONFIG_TASK_WDT_PANIC is not set | ||
| 2154 | CONFIG_TASK_WDT_TIMEOUT_S=5 | ||
| 2155 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y | ||
| 2156 | CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y | ||
| 2157 | # CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set | ||
| 2158 | CONFIG_ESP32S3_DEBUG_OCDAWARE=y | ||
| 2159 | CONFIG_BROWNOUT_DET=y | ||
| 2160 | CONFIG_ESP32S3_BROWNOUT_DET=y | ||
| 2161 | CONFIG_BROWNOUT_DET_LVL_SEL_7=y | ||
| 2162 | CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_7=y | ||
| 2163 | # CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set | ||
| 2164 | # CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_6 is not set | ||
| 2165 | # CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set | ||
| 2166 | # CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_5 is not set | ||
| 2167 | # CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set | ||
| 2168 | # CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_4 is not set | ||
| 2169 | # CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set | ||
| 2170 | # CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_3 is not set | ||
| 2171 | # CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set | ||
| 2172 | # CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_2 is not set | ||
| 2173 | # CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set | ||
| 2174 | # CONFIG_ESP32S3_BROWNOUT_DET_LVL_SEL_1 is not set | ||
| 2175 | CONFIG_BROWNOUT_DET_LVL=7 | ||
| 2176 | CONFIG_ESP32S3_BROWNOUT_DET_LVL=7 | ||
| 2177 | CONFIG_IPC_TASK_STACK_SIZE=1280 | ||
| 2178 | CONFIG_TIMER_TASK_STACK_SIZE=3584 | ||
| 2179 | CONFIG_ESP32_WIFI_ENABLED=y | ||
| 2180 | CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 | ||
| 2181 | CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 | ||
| 2182 | # CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set | ||
| 2183 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y | ||
| 2184 | CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 | ||
| 2185 | CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 | ||
| 2186 | # CONFIG_ESP32_WIFI_CSI_ENABLED is not set | ||
| 2187 | CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y | ||
| 2188 | CONFIG_ESP32_WIFI_TX_BA_WIN=6 | ||
| 2189 | CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y | ||
| 2190 | CONFIG_ESP32_WIFI_RX_BA_WIN=6 | ||
| 2191 | CONFIG_ESP32_WIFI_NVS_ENABLED=y | ||
| 2192 | CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y | ||
| 2193 | # CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set | ||
| 2194 | CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 | ||
| 2195 | CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 | ||
| 2196 | CONFIG_ESP32_WIFI_IRAM_OPT=y | ||
| 2197 | CONFIG_ESP32_WIFI_RX_IRAM_OPT=y | ||
| 2198 | CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y | ||
| 2199 | CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y | ||
| 2200 | CONFIG_WPA_MBEDTLS_CRYPTO=y | ||
| 2201 | CONFIG_WPA_MBEDTLS_TLS_CLIENT=y | ||
| 2202 | # CONFIG_WPA_WAPI_PSK is not set | ||
| 2203 | # CONFIG_WPA_SUITE_B_192 is not set | ||
| 2204 | # CONFIG_WPA_11KV_SUPPORT is not set | ||
| 2205 | # CONFIG_WPA_MBO_SUPPORT is not set | ||
| 2206 | # CONFIG_WPA_DPP_SUPPORT is not set | ||
| 2207 | # CONFIG_WPA_11R_SUPPORT is not set | ||
| 2208 | # CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set | ||
| 2209 | # CONFIG_WPA_WPS_STRICT is not set | ||
| 2210 | # CONFIG_WPA_DEBUG_PRINT is not set | ||
| 2211 | # CONFIG_WPA_TESTING_OPTIONS is not set | ||
| 2212 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set | ||
| 2213 | # CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set | ||
| 2214 | CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y | ||
| 2215 | CONFIG_TIMER_TASK_PRIORITY=1 | ||
| 2216 | CONFIG_TIMER_TASK_STACK_DEPTH=2048 | ||
| 2217 | CONFIG_TIMER_QUEUE_LENGTH=10 | ||
| 2218 | # CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set | ||
| 2219 | # CONFIG_HAL_ASSERTION_SILIENT is not set | ||
| 2220 | # CONFIG_L2_TO_L3_COPY is not set | ||
| 2221 | CONFIG_ESP_GRATUITOUS_ARP=y | ||
| 2222 | CONFIG_GARP_TMR_INTERVAL=60 | ||
| 2223 | CONFIG_TCPIP_RECVMBOX_SIZE=32 | ||
| 2224 | CONFIG_TCP_MAXRTX=12 | ||
| 2225 | CONFIG_TCP_SYNMAXRTX=12 | ||
| 2226 | CONFIG_TCP_MSS=1440 | ||
| 2227 | CONFIG_TCP_MSL=60000 | ||
| 2228 | CONFIG_TCP_SND_BUF_DEFAULT=5760 | ||
| 2229 | CONFIG_TCP_WND_DEFAULT=5760 | ||
| 2230 | CONFIG_TCP_RECVMBOX_SIZE=6 | ||
| 2231 | CONFIG_TCP_QUEUE_OOSEQ=y | ||
| 2232 | CONFIG_TCP_OVERSIZE_MSS=y | ||
| 2233 | # CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set | ||
| 2234 | # CONFIG_TCP_OVERSIZE_DISABLE is not set | ||
| 2235 | CONFIG_UDP_RECVMBOX_SIZE=6 | ||
| 2236 | CONFIG_TCPIP_TASK_STACK_SIZE=3072 | ||
| 2237 | CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y | ||
| 2238 | # CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set | ||
| 2239 | # CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set | ||
| 2240 | CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF | ||
| 2241 | # CONFIG_PPP_SUPPORT is not set | ||
| 2242 | CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_SYSTIMER=y | ||
| 2243 | CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC_FRC1=y | ||
| 2244 | # CONFIG_ESP32S3_TIME_SYSCALL_USE_RTC is not set | ||
| 2245 | # CONFIG_ESP32S3_TIME_SYSCALL_USE_SYSTIMER is not set | ||
| 2246 | # CONFIG_ESP32S3_TIME_SYSCALL_USE_FRC1 is not set | ||
| 2247 | # CONFIG_ESP32S3_TIME_SYSCALL_USE_NONE is not set | ||
| 2248 | CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 | ||
| 2249 | CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 | ||
| 2250 | CONFIG_ESP32_PTHREAD_STACK_MIN=768 | ||
| 2251 | CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y | ||
| 2252 | # CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set | ||
| 2253 | # CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set | ||
| 2254 | CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 | ||
| 2255 | CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" | ||
| 2256 | CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y | ||
| 2257 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set | ||
| 2258 | # CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set | ||
| 2259 | CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y | ||
| 2260 | CONFIG_SUPPORT_TERMIOS=y | ||
| 2261 | CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 | ||
| 2262 | # End of deprecated options | ||
diff --git a/sdkconfig.defaults b/sdkconfig.defaults index fdbf0da..5a80e87 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults | |||
| @@ -2,6 +2,10 @@ | |||
| 2 | CONFIG_ESP_WIFI_ENABLED=y | 2 | CONFIG_ESP_WIFI_ENABLED=y |
| 3 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y | 3 | CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y |
| 4 | 4 | ||
| 5 | # Flash size (boards have 16MB) | ||
| 6 | CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y | ||
| 7 | CONFIG_ESPTOOLPY_FLASHSIZE="16MB" | ||
| 8 | |||
| 5 | # NAPT | 9 | # NAPT |
| 6 | CONFIG_LWIP_IP_FORWARD=y | 10 | CONFIG_LWIP_IP_FORWARD=y |
| 7 | CONFIG_LWIP_IPV4_NAPT=y | 11 | CONFIG_LWIP_IPV4_NAPT=y |
| @@ -22,5 +26,10 @@ CONFIG_LOG_DEFAULT_LEVEL_INFO=y | |||
| 22 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 | 26 | CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 |
| 23 | CONFIG_HTTPD_MAX_URI_LEN=512 | 27 | CONFIG_HTTPD_MAX_URI_LEN=512 |
| 24 | 28 | ||
| 29 | # Partition table | ||
| 30 | CONFIG_PARTITION_TABLE_CUSTOM=y | ||
| 31 | CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" | ||
| 32 | CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" | ||
| 33 | |||
| 25 | # mbedTLS (needed for HTTPS to mint) | 34 | # mbedTLS (needed for HTTPS to mint) |
| 26 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y | 35 | CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y |
diff --git a/tests/api.mjs b/tests/api.mjs new file mode 100644 index 0000000..5218d7b --- /dev/null +++ b/tests/api.mjs | |||
| @@ -0,0 +1,79 @@ | |||
| 1 | import { curl, curlBody, getPortalIP, canPing, canResolve, dnsResolvesToSelf } from './helpers/network.mjs'; | ||
| 2 | |||
| 3 | const IP = getPortalIP(); | ||
| 4 | let passed = 0, failed = 0; | ||
| 5 | |||
| 6 | function assert(condition, test) { | ||
| 7 | if (condition) { console.log(` ✓ ${test}`); passed++; } | ||
| 8 | else { console.log(` ✗ ${test}`); failed++; } | ||
| 9 | } | ||
| 10 | |||
| 11 | async function sleep(ms) { return new Promise(r => setTimeout(r, ms)); } | ||
| 12 | |||
| 13 | console.log(`\n=== API Tests (target: ${IP}) ===\n`); | ||
| 14 | |||
| 15 | // Test 3: Captive portal serves HTML | ||
| 16 | console.log('Test 3: GET / returns portal HTML'); | ||
| 17 | const body3 = curlBody(`http://${IP}/`); | ||
| 18 | assert(body3 && body3.includes('TollGate'), 'Portal HTML contains "TollGate"'); | ||
| 19 | assert(body3 && body3.includes('Grant Free Access'), 'Portal has Grant Access button'); | ||
| 20 | |||
| 21 | // Test 4: Captive detection URIs | ||
| 22 | console.log('\nTest 4: Captive detection URIs'); | ||
| 23 | for (const uri of ['/generate_204', '/hotspot-detect.html', '/canonical.html', '/success.txt', '/ncsi.txt', '/connecttest.txt', '/wpad.dat', '/redirect']) { | ||
| 24 | const code = curl(`http://${IP}${uri}`); | ||
| 25 | assert(code === '200', `${uri} → 200`); | ||
| 26 | } | ||
| 27 | |||
| 28 | // Test 7: /whoami returns MAC | ||
| 29 | console.log('\nTest 7: GET /whoami'); | ||
| 30 | const body7 = curlBody(`http://${IP}/whoami`); | ||
| 31 | assert(body7 && body7.startsWith('mac='), '/whoami returns mac=...'); | ||
| 32 | |||
| 33 | // Test 8: /usage returns no session | ||
| 34 | console.log('\nTest 8: GET /usage'); | ||
| 35 | const body8 = curlBody(`http://${IP}/usage`); | ||
| 36 | assert(body8 && body8.includes('-1/-1'), '/usage returns -1/-1 before auth'); | ||
| 37 | |||
| 38 | // Test 5: DNS hijack before auth | ||
| 39 | console.log('\nTest 5: DNS hijack before auth'); | ||
| 40 | assert(dnsResolvesToSelf('google.com'), 'DNS resolves google.com to AP IP'); | ||
| 41 | |||
| 42 | // Test 6: No internet before auth | ||
| 43 | console.log('\nTest 6: No internet before auth'); | ||
| 44 | assert(!canPing('8.8.8.8', 1), 'ping 8.8.8.8 fails before auth'); | ||
| 45 | |||
| 46 | // Test 9: Grant access | ||
| 47 | console.log('\nTest 9: GET /grant_access'); | ||
| 48 | const body9 = curlBody(`http://${IP}/grant_access`); | ||
| 49 | assert(body9 && body9.includes('"granted"'), 'Grant access returns {"status":"granted"}'); | ||
| 50 | |||
| 51 | await sleep(2000); | ||
| 52 | |||
| 53 | // Test 10: DNS forward after auth | ||
| 54 | console.log('\nTest 10: DNS forward after auth'); | ||
| 55 | assert(canResolve('google.com'), 'DNS resolves normally after auth'); | ||
| 56 | |||
| 57 | // Test 11: Internet after auth | ||
| 58 | console.log('\nTest 11: Internet after auth'); | ||
| 59 | assert(canPing('8.8.8.8'), 'ping 8.8.8.8 succeeds after auth'); | ||
| 60 | |||
| 61 | // Test 12: HTTP browsing works | ||
| 62 | console.log('\nTest 12: HTTP browsing'); | ||
| 63 | const body12 = curlBody('http://example.com/'); | ||
| 64 | assert(body12 && (body12.includes('Example Domain') || body12.includes('example')), 'HTTP page loads'); | ||
| 65 | |||
| 66 | // Test 13: Reset auth | ||
| 67 | console.log('\nTest 13: GET /reset_authentication'); | ||
| 68 | const body13 = curlBody(`http://${IP}/reset_authentication`); | ||
| 69 | assert(body13 && body13.includes('"reset"'), 'Reset returns {"status":"reset"}'); | ||
| 70 | |||
| 71 | await sleep(2000); | ||
| 72 | |||
| 73 | // Test 14: Internet blocked after reset | ||
| 74 | console.log('\nTest 14: Internet blocked after reset'); | ||
| 75 | assert(!canPing('8.8.8.8', 1), 'ping fails after auth reset'); | ||
| 76 | |||
| 77 | // Summary | ||
| 78 | console.log(`\n=== Results: ${passed} passed, ${failed} failed ===\n`); | ||
| 79 | process.exit(failed > 0 ? 1 : 0); | ||
diff --git a/tests/captive-portal.spec.mjs b/tests/captive-portal.spec.mjs new file mode 100644 index 0000000..b6ad96b --- /dev/null +++ b/tests/captive-portal.spec.mjs | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | import { test, expect } from '@playwright/test'; | ||
| 2 | |||
| 3 | const PORTAL_IP = process.env.TOLLGATE_IP || '192.168.4.1'; | ||
| 4 | const PORTAL_URL = `http://${PORTAL_IP}`; | ||
| 5 | |||
| 6 | test.describe('Captive Portal - Phase 1', () => { | ||
| 7 | |||
| 8 | test('portal page loads with TollGate branding', async ({ page }) => { | ||
| 9 | await page.goto(PORTAL_URL); | ||
| 10 | await expect(page.locator('h1')).toHaveText('TollGate'); | ||
| 11 | await expect(page.locator('.subtitle')).toContainText('internet access'); | ||
| 12 | }); | ||
| 13 | |||
| 14 | test('portal shows price', async ({ page }) => { | ||
| 15 | await page.goto(PORTAL_URL); | ||
| 16 | const priceEl = page.locator('.price-amount'); | ||
| 17 | await expect(priceEl).not.toBeEmpty({ timeout: 5000 }); | ||
| 18 | }); | ||
| 19 | |||
| 20 | test('grant access button exists', async ({ page }) => { | ||
| 21 | await page.goto(PORTAL_URL); | ||
| 22 | const btn = page.locator('#grantBtn'); | ||
| 23 | await expect(btn).toBeVisible(); | ||
| 24 | await expect(btn).toHaveText(/Grant Free Access/i); | ||
| 25 | }); | ||
| 26 | |||
| 27 | test('click grant access shows connected', async ({ page }) => { | ||
| 28 | await page.goto(PORTAL_URL); | ||
| 29 | const btn = page.locator('#grantBtn'); | ||
| 30 | await btn.click(); | ||
| 31 | const status = page.locator('#status.success'); | ||
| 32 | await expect(status).toBeVisible({ timeout: 10000 }); | ||
| 33 | await expect(status).toContainText(/Connected/i); | ||
| 34 | }); | ||
| 35 | |||
| 36 | test('captive detection URIs return portal', async ({ page }) => { | ||
| 37 | const uris = ['/generate_204', '/hotspot-detect.html', '/canonical.html', '/success.txt']; | ||
| 38 | for (const uri of uris) { | ||
| 39 | const resp = await page.goto(`${PORTAL_URL}${uri}`); | ||
| 40 | expect(resp.status()).toBe(200); | ||
| 41 | const body = await resp.text(); | ||
| 42 | expect(body).toContain('TollGate'); | ||
| 43 | } | ||
| 44 | }); | ||
| 45 | |||
| 46 | test('/api/status returns JSON with price', async ({ page }) => { | ||
| 47 | const resp = await page.goto(`${PORTAL_URL}/api/status`); | ||
| 48 | expect(resp.status()).toBe(200); | ||
| 49 | const data = await resp.json(); | ||
| 50 | expect(data).toHaveProperty('connected'); | ||
| 51 | expect(data).toHaveProperty('price'); | ||
| 52 | expect(typeof data.price).toBe('number'); | ||
| 53 | }); | ||
| 54 | |||
| 55 | test('/whoami returns mac address', async ({ page }) => { | ||
| 56 | const resp = await page.goto(`${PORTAL_URL}/whoami`); | ||
| 57 | expect(resp.status()).toBe(200); | ||
| 58 | const text = await resp.text(); | ||
| 59 | expect(text).toMatch(/^mac=/); | ||
| 60 | }); | ||
| 61 | |||
| 62 | test('/usage returns -1/-1 before auth', async ({ page }) => { | ||
| 63 | const resp = await page.goto(`${PORTAL_URL}/usage`); | ||
| 64 | expect(resp.status()).toBe(200); | ||
| 65 | const text = await resp.text(); | ||
| 66 | expect(text).toBe('-1/-1'); | ||
| 67 | }); | ||
| 68 | |||
| 69 | test('/reset_authentication works', async ({ page }) => { | ||
| 70 | const resp = await page.goto(`${PORTAL_URL}/reset_authentication`); | ||
| 71 | expect(resp.status()).toBe(200); | ||
| 72 | const data = await resp.json(); | ||
| 73 | expect(data.status).toBe('reset'); | ||
| 74 | }); | ||
| 75 | }); | ||
diff --git a/tests/helpers/network.mjs b/tests/helpers/network.mjs new file mode 100644 index 0000000..e4d5086 --- /dev/null +++ b/tests/helpers/network.mjs | |||
| @@ -0,0 +1,89 @@ | |||
| 1 | import { execSync } from 'child_process'; | ||
| 2 | |||
| 3 | const ESP32_IP = process.env.TOLLGATE_IP || '192.168.4.1'; | ||
| 4 | const TIMEOUT = 5000; | ||
| 5 | |||
| 6 | export function curl(args, expectStatus = null) { | ||
| 7 | const cmd = `curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 --max-time ${TIMEOUT/1000} ${args}`; | ||
| 8 | try { | ||
| 9 | const result = execSync(cmd, { encoding: 'utf8', timeout: TIMEOUT + 2000 }).trim(); | ||
| 10 | if (expectStatus && result !== String(expectStatus)) { | ||
| 11 | throw new Error(`Expected HTTP ${expectStatus}, got ${result}`); | ||
| 12 | } | ||
| 13 | return result; | ||
| 14 | } catch (e) { | ||
| 15 | if (e.status === 'ETIMEDOUT' || e.killed) return 'TIMEOUT'; | ||
| 16 | throw e; | ||
| 17 | } | ||
| 18 | } | ||
| 19 | |||
| 20 | export function curlBody(url) { | ||
| 21 | const cmd = `curl -s --connect-timeout 5 --max-time ${TIMEOUT/1000} "${url}"`; | ||
| 22 | try { | ||
| 23 | return execSync(cmd, { encoding: 'utf8', timeout: TIMEOUT + 2000 }); | ||
| 24 | } catch { | ||
| 25 | return null; | ||
| 26 | } | ||
| 27 | } | ||
| 28 | |||
| 29 | export function getPortalIP() { return ESP32_IP; } | ||
| 30 | |||
| 31 | export function canPing(host = '8.8.8.8', count = 2) { | ||
| 32 | try { | ||
| 33 | const result = execSync(`ping -c ${count} -W 2 -I wlp59s0 ${host}`, { encoding: 'utf8', timeout: 10000 }); | ||
| 34 | return result.includes('0% packet loss') || result.includes('1 packets transmitted'); | ||
| 35 | } catch { | ||
| 36 | return false; | ||
| 37 | } | ||
| 38 | } | ||
| 39 | |||
| 40 | export function canResolve(domain = 'google.com') { | ||
| 41 | try { | ||
| 42 | const result = execSync(`nslookup ${domain} ${ESP32_IP}`, { encoding: 'utf8', timeout: 10000 }); | ||
| 43 | return result.includes('Address') && !result.includes('NXDOMAIN'); | ||
| 44 | } catch (e) { | ||
| 45 | const result = e.stdout || ''; | ||
| 46 | return result.includes('Address') && !result.includes('NXDOMAIN'); | ||
| 47 | } | ||
| 48 | } | ||
| 49 | |||
| 50 | export function dnsResolvesToSelf(domain = 'google.com') { | ||
| 51 | try { | ||
| 52 | const result = execSync(`nslookup ${domain} ${ESP32_IP}`, { encoding: 'utf8', timeout: 10000 }); | ||
| 53 | return result.includes(ESP32_IP); | ||
| 54 | } catch (e) { | ||
| 55 | return e.stdout && e.stdout.includes(ESP32_IP); | ||
| 56 | } | ||
| 57 | } | ||
| 58 | |||
| 59 | export function connectToAP(ssid, password = '') { | ||
| 60 | try { | ||
| 61 | if (password) { | ||
| 62 | execSync(`nmcli dev wifi connect "${ssid}" password "${password}" ifname wlan0`, { timeout: 30000 }); | ||
| 63 | } else { | ||
| 64 | execSync(`nmcli dev wifi connect "${ssid}" ifname wlan0`, { timeout: 30000 }); | ||
| 65 | } | ||
| 66 | return true; | ||
| 67 | } catch { | ||
| 68 | return false; | ||
| 69 | } | ||
| 70 | } | ||
| 71 | |||
| 72 | export function disconnectAP() { | ||
| 73 | try { | ||
| 74 | execSync('nmcli dev disconnect wlan0 2>/dev/null || true', { timeout: 10000 }); | ||
| 75 | return true; | ||
| 76 | } catch { | ||
| 77 | return false; | ||
| 78 | } | ||
| 79 | } | ||
| 80 | |||
| 81 | export function getWifiInterface() { | ||
| 82 | try { | ||
| 83 | const result = execSync('nmcli -t -f DEVICE,TYPE dev status', { encoding: 'utf8' }); | ||
| 84 | const line = result.split('\n').find(l => l.includes('wifi')); | ||
| 85 | return line ? line.split(':')[0] : null; | ||
| 86 | } catch { | ||
| 87 | return null; | ||
| 88 | } | ||
| 89 | } | ||
diff --git a/tests/helpers/serial.mjs b/tests/helpers/serial.mjs new file mode 100644 index 0000000..306b552 --- /dev/null +++ b/tests/helpers/serial.mjs | |||
| @@ -0,0 +1,82 @@ | |||
| 1 | import { SerialPort } from 'serialport'; | ||
| 2 | import { ReadlineParser } from '@serialport/parser-readline'; | ||
| 3 | import { execSync } from 'child_process'; | ||
| 4 | |||
| 5 | const DEFAULT_BAUD = 115200; | ||
| 6 | const BOOT_TIMEOUT = 30000; | ||
| 7 | |||
| 8 | export async function execSerial(portPath, command, timeoutMs = 5000) { | ||
| 9 | return new Promise((resolve, reject) => { | ||
| 10 | const port = new SerialPort({ path: portPath, baudRate: DEFAULT_BAUD }); | ||
| 11 | const parser = port.pipe(new ReadlineParser()); | ||
| 12 | const lines = []; | ||
| 13 | let resolved = false; | ||
| 14 | |||
| 15 | const timer = setTimeout(() => { | ||
| 16 | if (!resolved) { resolved = true; port.close(); resolve(lines.join('\n')); } | ||
| 17 | }, timeoutMs); | ||
| 18 | |||
| 19 | parser.on('data', (line) => { | ||
| 20 | lines.push(line); | ||
| 21 | if (line.includes('___END___') && !resolved) { | ||
| 22 | resolved = true; | ||
| 23 | clearTimeout(timer); | ||
| 24 | port.close(); | ||
| 25 | resolve(lines.join('\n')); | ||
| 26 | } | ||
| 27 | }); | ||
| 28 | |||
| 29 | port.on('open', () => { | ||
| 30 | port.write(command + '\n'); | ||
| 31 | }); | ||
| 32 | |||
| 33 | port.on('error', (err) => { | ||
| 34 | if (!resolved) { resolved = true; clearTimeout(timer); reject(err); } | ||
| 35 | }); | ||
| 36 | }); | ||
| 37 | } | ||
| 38 | |||
| 39 | export async function waitForBoot(portPath, timeoutMs = BOOT_TIMEOUT) { | ||
| 40 | return new Promise((resolve, reject) => { | ||
| 41 | const port = new SerialPort({ path: portPath, baudRate: DEFAULT_BAUD }); | ||
| 42 | const parser = port.pipe(new ReadlineParser()); | ||
| 43 | const timer = setTimeout(() => { | ||
| 44 | port.close(); | ||
| 45 | reject(new Error('Boot timeout')); | ||
| 46 | }, timeoutMs); | ||
| 47 | |||
| 48 | parser.on('data', (line) => { | ||
| 49 | if (line.includes('TollGate services started') || line.includes('WiFi AP+STA started')) { | ||
| 50 | clearTimeout(timer); | ||
| 51 | setTimeout(() => { port.close(); resolve(true); }, 500); | ||
| 52 | } | ||
| 53 | }); | ||
| 54 | |||
| 55 | port.on('error', (err) => { | ||
| 56 | clearTimeout(timer); | ||
| 57 | reject(err); | ||
| 58 | }); | ||
| 59 | }); | ||
| 60 | } | ||
| 61 | |||
| 62 | export async function readSerial(portPath, durationMs = 3000) { | ||
| 63 | return new Promise((resolve, reject) => { | ||
| 64 | const port = new SerialPort({ path: portPath, baudRate: DEFAULT_BAUD }); | ||
| 65 | const parser = port.pipe(new ReadlineParser()); | ||
| 66 | const lines = []; | ||
| 67 | |||
| 68 | const timer = setTimeout(() => { | ||
| 69 | port.close(); | ||
| 70 | resolve(lines.join('\n')); | ||
| 71 | }, durationMs); | ||
| 72 | |||
| 73 | parser.on('data', (line) => lines.push(line)); | ||
| 74 | port.on('error', (err) => { clearTimeout(timer); reject(err); }); | ||
| 75 | }); | ||
| 76 | } | ||
| 77 | |||
| 78 | export function resetDevice(portPath) { | ||
| 79 | try { | ||
| 80 | execSync(`python3 -m esptool --port ${portPath} run 2>/dev/null`, { timeout: 5000 }); | ||
| 81 | } catch {} | ||
| 82 | } | ||
diff --git a/tests/network.mjs b/tests/network.mjs new file mode 100644 index 0000000..2d302ef --- /dev/null +++ b/tests/network.mjs | |||
| @@ -0,0 +1,66 @@ | |||
| 1 | import { execSync } from 'child_process'; | ||
| 2 | |||
| 3 | const IP = process.env.TOLLGATE_IP || '192.168.4.1'; | ||
| 4 | let passed = 0, failed = 0; | ||
| 5 | |||
| 6 | function assert(condition, test) { | ||
| 7 | if (condition) { console.log(` ✓ ${test}`); passed++; } | ||
| 8 | else { console.log(` ✗ ${test}`); failed++; } | ||
| 9 | } | ||
| 10 | |||
| 11 | function run(cmd) { | ||
| 12 | try { return execSync(cmd, { encoding: 'utf8', timeout: 15000 }); } | ||
| 13 | catch { return null; } | ||
| 14 | } | ||
| 15 | |||
| 16 | console.log(`\n=== Network Tests (target: ${IP}) ===\n`); | ||
| 17 | |||
| 18 | // Test 1: AP visible in scan | ||
| 19 | console.log('Test 1: AP visible in scan'); | ||
| 20 | const scan = run('nmcli -t -f SSID dev wifi list 2>/dev/null'); | ||
| 21 | assert(scan && scan.includes('TollGate'), 'TollGate SSID visible in WiFi scan'); | ||
| 22 | |||
| 23 | // Test 2: DHCP lease | ||
| 24 | console.log('\nTest 2: DHCP lease / connectivity'); | ||
| 25 | const ip_show = run(`ip addr show | grep "inet ${IP.split('.').slice(0,3).join('.')}"`); | ||
| 26 | assert(ip_show !== null, `Has IP in ${IP.split('.').slice(0,3).join('.')}.* subnet`); | ||
| 27 | |||
| 28 | // Test 5: DNS hijack | ||
| 29 | console.log('\nTest 5: DNS hijack before auth'); | ||
| 30 | const ns1 = run(`nslookup random-test.example.com ${IP} 2>/dev/null`); | ||
| 31 | assert(ns1 && ns1.includes(IP), 'DNS resolves arbitrary domain to AP IP'); | ||
| 32 | |||
| 33 | // Test 6: No internet | ||
| 34 | console.log('\nTest 6: No internet before auth'); | ||
| 35 | const ping1 = run('ping -c 1 -W 3 1.1.1.1 2>/dev/null'); | ||
| 36 | assert(ping1 === null || ping1.includes('100% packet loss'), 'Internet blocked before auth'); | ||
| 37 | |||
| 38 | // Grant access for further tests | ||
| 39 | console.log('\nGranting access...'); | ||
| 40 | run(`curl -s http://${IP}/grant_access`); | ||
| 41 | |||
| 42 | import { execSync as exec } from 'child_process'; | ||
| 43 | await new Promise(r => setTimeout(r, 2000)); | ||
| 44 | |||
| 45 | // Test 10: DNS forward | ||
| 46 | console.log('Test 10: DNS forward after auth'); | ||
| 47 | const ns2 = run(`nslookup google.com ${IP} 2>/dev/null`); | ||
| 48 | assert(ns2 && !ns2.includes(IP) && ns2.includes('Address'), 'DNS resolves to real IPs'); | ||
| 49 | |||
| 50 | // Test 11: Internet | ||
| 51 | console.log('\nTest 11: Internet after auth'); | ||
| 52 | const ping2 = run('ping -c 2 -W 3 8.8.8.8'); | ||
| 53 | assert(ping2 && !ping2.includes('100% packet loss'), 'ping succeeds after auth'); | ||
| 54 | |||
| 55 | // Reset | ||
| 56 | console.log('\nResetting auth...'); | ||
| 57 | run(`curl -s http://${IP}/reset_authentication`); | ||
| 58 | await new Promise(r => setTimeout(r, 2000)); | ||
| 59 | |||
| 60 | // Test 14 | ||
| 61 | console.log('Test 14: Internet blocked after reset'); | ||
| 62 | const ping3 = run('ping -c 1 -W 3 8.8.8.8 2>/dev/null'); | ||
| 63 | assert(ping3 === null || ping3.includes('100% packet loss'), 'Internet blocked after reset'); | ||
| 64 | |||
| 65 | console.log(`\n=== Results: ${passed} passed, ${failed} failed ===\n`); | ||
| 66 | process.exit(failed > 0 ? 1 : 0); | ||
diff --git a/tests/playwright.config.mjs b/tests/playwright.config.mjs new file mode 100644 index 0000000..fee0815 --- /dev/null +++ b/tests/playwright.config.mjs | |||
| @@ -0,0 +1,16 @@ | |||
| 1 | import { defineConfig } from '@playwright/test'; | ||
| 2 | |||
| 3 | export default defineConfig({ | ||
| 4 | testDir: '.', | ||
| 5 | testMatch: '*.spec.mjs', | ||
| 6 | timeout: 60000, | ||
| 7 | retries: 0, | ||
| 8 | use: { | ||
| 9 | headless: true, | ||
| 10 | viewport: { width: 1280, height: 900 }, | ||
| 11 | screenshot: 'only-on-failure', | ||
| 12 | trace: 'on-first-retry', | ||
| 13 | }, | ||
| 14 | reporter: [['list'], ['html', { open: 'never' }]], | ||
| 15 | workers: 1, | ||
| 16 | }); | ||
diff --git a/tests/smoke.mjs b/tests/smoke.mjs new file mode 100644 index 0000000..19f96de --- /dev/null +++ b/tests/smoke.mjs | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | import { execSync } from 'child_process'; | ||
| 2 | |||
| 3 | const PORT = process.argv[2] || '/dev/ttyACM0'; | ||
| 4 | const IP = process.env.TOLLGATE_IP || '192.168.4.1'; | ||
| 5 | const SSID = process.env.AP_SSID || 'TollGate'; | ||
| 6 | |||
| 7 | console.log(`\n=== Smoke Test (30s) ===`); | ||
| 8 | console.log(`Port: ${PORT}, Portal IP: ${IP}, SSID: ${SSID}\n`); | ||
| 9 | |||
| 10 | let passed = 0, failed = 0; | ||
| 11 | function assert(cond, msg) { | ||
| 12 | if (cond) { console.log(` ✓ ${msg}`); passed++; } | ||
| 13 | else { console.log(` ✗ ${msg}`); failed++; } | ||
| 14 | } | ||
| 15 | |||
| 16 | function run(cmd) { | ||
| 17 | try { return execSync(cmd, { encoding: 'utf8', timeout: 10000 }); } | ||
| 18 | catch { return null; } | ||
| 19 | } | ||
| 20 | |||
| 21 | // 1. Check AP visible | ||
| 22 | const scan = run('nmcli -t -f SSID dev wifi list 2>/dev/null'); | ||
| 23 | assert(scan && scan.includes(SSID), `SSID "${SSID}" visible`); | ||
| 24 | |||
| 25 | // 2. Check we can reach portal | ||
| 26 | const portal = run(`curl -s --connect-timeout 5 http://${IP}/`); | ||
| 27 | assert(portal && portal.includes('TollGate'), 'Portal HTML loads'); | ||
| 28 | |||
| 29 | // 3. Grant access | ||
| 30 | const grant = run(`curl -s http://${IP}/grant_access`); | ||
| 31 | assert(grant && grant.includes('granted'), 'Grant access works'); | ||
| 32 | |||
| 33 | // Wait for DNS | ||
| 34 | const sleep = ms => new Promise(r => setTimeout(r, ms)); | ||
| 35 | await sleep(2000); | ||
| 36 | |||
| 37 | // 4. Internet works | ||
| 38 | const ping = run('ping -c 1 -W 3 -I wlp59s0 1.1.1.1 2>/dev/null'); | ||
| 39 | assert(ping && !ping.includes('100% packet loss'), 'Internet works after grant'); | ||
| 40 | |||
| 41 | // 5. Reset | ||
| 42 | const reset = run(`curl -s http://${IP}/reset_authentication`); | ||
| 43 | assert(reset && reset.includes('reset'), 'Reset auth works'); | ||
| 44 | |||
| 45 | await sleep(2000); | ||
| 46 | |||
| 47 | // 6. Internet blocked | ||
| 48 | const ping2 = run('ping -c 1 -W 3 -I wlp59s0 1.1.1.1 2>/dev/null'); | ||
| 49 | assert(!ping2 || ping2.includes('100% packet loss'), 'Internet blocked after reset'); | ||
| 50 | |||
| 51 | console.log(`\n=== Smoke: ${passed} passed, ${failed} failed ===\n`); | ||
| 52 | process.exit(failed > 0 ? 1 : 0); | ||