frame_client_run() now does what it was always meant to: probe the tools server, GET /frame/image and stream the response straight into the panel via epd_display_stream() (esp_http_client's manual open/fetch_headers/read API pulls in exactly the shape epd_display_stream()'s read_fn expects, so the ~192KB frame never sits in RAM at once), then epd_sleep() and esp_deep_sleep_start() for an hour. Skips the WiFi/server status checklist screen on the happy path now that there's a real photo to show instead -- three full refreshes every single hour (status-pending, status-final, photo) wasn't worth it once bring-up was actually working. Still shows it (status FAILED) when the server isn't reachable, since nothing's been drawn yet that cycle and it's the cheapest useful diagnostic. A mid-fetch failure after the panel's already started refreshing just logs and retries sooner, rather than compounding with a second refresh. New Kconfig knobs: FRAME_FETCH_TIMEOUT_MS, FRAME_SLEEP_INTERVAL_S (default 3600s), FRAME_RETRY_INTERVAL_S (default 300s on failure).
80 lines
3.2 KiB
Plaintext
80 lines
3.2 KiB
Plaintext
menu "ESPresso Frame Configuration"
|
|
|
|
config ESP_AP_SSID
|
|
string "Provisioning softAP SSID prefix"
|
|
default "ESPRESSO"
|
|
help
|
|
SSID prefix of the softAP the device brings up when it needs
|
|
provisioning; the device appends "_XXXXXX" (last 3 bytes of its
|
|
WiFi MAC) so multiple frames never collide on the same SSID.
|
|
The password is generated randomly per device on first boot and
|
|
shown on the e-ink panel both as a WiFi-join QR code and as
|
|
plaintext underneath it, so it can be typed in by hand on a
|
|
desktop/laptop that can't scan the QR.
|
|
|
|
config ESP_MAX_STA_CONN
|
|
int "Maximal STA connections"
|
|
default 4
|
|
range 1 4 if IDF_TARGET_ESP32C2
|
|
range 1 15
|
|
help
|
|
Maximum number of STAs allowed to connect to the soft-AP (wifi_config_t.ap.max_connection).
|
|
Upper bound matches ESP_WIFI_MAX_CONN_NUM in esp_wifi_types_native.h:
|
|
1-4 on ESP32-C2, 1-15 on other Wi-Fi chips.
|
|
Soft-AP and ESP-NOW share encryption keys; see Wi-Fi driver documentation
|
|
if ESP-NOW is enabled.
|
|
|
|
config ESP_ENABLE_DHCP_CAPTIVEPORTAL
|
|
bool "DHCP Captive portal"
|
|
default y
|
|
help
|
|
Enables more modern DHCP-based Option 114 to provide clients with the captive portal URI
|
|
|
|
config FRAME_STA_CONNECT_MAX_RETRIES
|
|
int "Home WiFi connect max retries before falling back to provisioning"
|
|
default 3
|
|
help
|
|
Number of failed connection attempts to the stored home WiFi network
|
|
before the device gives up and re-enters provisioning (softAP) mode.
|
|
|
|
config FRAME_STA_CONNECT_TIMEOUT_MS
|
|
int "Home WiFi connect timeout per attempt (ms)"
|
|
default 15000
|
|
help
|
|
How long to wait for an IP address on each connection attempt to the
|
|
stored home WiFi network before counting it as a failed retry.
|
|
|
|
config FRAME_SERVER_CHECK_TIMEOUT_MS
|
|
int "Tools server reachability check timeout (ms)"
|
|
default 3000
|
|
help
|
|
How long to wait for an HTTP response from the tools server
|
|
when checking reachability on the post-connect status screen.
|
|
|
|
config FRAME_FETCH_TIMEOUT_MS
|
|
int "Image fetch HTTP timeout (ms)"
|
|
default 15000
|
|
help
|
|
How long to wait on the GET /frame/image request before giving
|
|
up. The server does real work per request (Immich download +
|
|
resize + dither), so this is longer than the reachability
|
|
check's timeout.
|
|
|
|
config FRAME_SLEEP_INTERVAL_S
|
|
int "Deep sleep interval between refreshes (seconds)"
|
|
default 3600
|
|
help
|
|
How long the device deep-sleeps between successful
|
|
fetch-and-display cycles. Lower this for bench testing so you
|
|
don't have to wait an hour per iteration.
|
|
|
|
config FRAME_RETRY_INTERVAL_S
|
|
int "Deep sleep interval after a failed cycle (seconds)"
|
|
default 300
|
|
help
|
|
How long the device deep-sleeps before retrying after the
|
|
server was unreachable or the fetch/display failed, instead of
|
|
waiting the full FRAME_SLEEP_INTERVAL_S.
|
|
|
|
endmenu
|