Firmware: OTA client, dual-board build (devkit/XIAO), version reporting, XIAO fixes
Build and push server image / build-and-push (push) Successful in 36s
Build and push server image / build-and-push (push) Successful in 36s
- version.txt + esp_app_desc_t version reporting (X-Frame-Version header); new ota_update.c checks the server's advertised version against the running one and streams+applies an update via esp_https_ota, gated by bootloader rollback (marks the image valid only after a full successful cycle, so a bad update can't brick a wall-mounted frame). - Dual-OTA partition tables: partitions.csv (8MB dev board, 2MB slots) and new partitions_xiao.csv (4MB XIAO, 1.875MB slots -- the dev board's table doesn't fit the XIAO's flash). New build_for_board.sh gives each board its own build dir + generated sdkconfig via SDKCONFIG_DEFAULTS layering, so switching boards never clobbers the other's config. - fetch_photo_info()/fetch_face_labels() were using the short reachability-check timeout even though the manage-menu path can be the first (cold, TLS-handshake-paying) request of a wake cycle -- switched to the longer fetch timeout to stop spurious ESP_ERR_HTTP_CONNECT failures. - XIAO: the RF switch that selects onboard vs. external antenna (GPIO3/14) isn't initialized by plain ESP-IDF the way Seeed's Arduino package does it, leaving WiFi unable to reliably reach the antenna at all -- new board_antenna.c powers the switch and selects the onboard antenna, gated behind FRAME_XIAO_ANTENNA_INIT (on by default in sdkconfig.xiao). Also remaps the EPD DC/RST/BUSY pins, since the dev board's defaults (GPIO9/10/11) aren't physically exposed on the XIAO.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Board-specific overrides for the Seeed XIAO ESP32-C6, layered on top
|
||||
# of sdkconfig.defaults (which targets the 8MB ESP32-C6-DevKitC-1 dev
|
||||
# board) via SDKCONFIG_DEFAULTS -- see build_for_board.sh, which is the
|
||||
# supported way to build with this file. Don't set this via a plain
|
||||
# `idf.py menuconfig` on the default build; that writes straight into
|
||||
# the shared sdkconfig, not this file.
|
||||
CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
|
||||
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_xiao.csv"
|
||||
CONFIG_PARTITION_TABLE_FILENAME="partitions_xiao.csv"
|
||||
|
||||
# Powers the XIAO's RF switch and selects its onboard antenna -- without
|
||||
# this the softAP/STA radio doesn't reliably reach the antenna at all.
|
||||
# See the Kconfig help text (FRAME_XIAO_ANTENNA_INIT) for why.
|
||||
CONFIG_FRAME_XIAO_ANTENNA_INIT=y
|
||||
|
||||
# EPD wiring: the dev-board defaults (DC=9, RST=10, BUSY=11) aren't
|
||||
# physically exposed on the XIAO -- only GPIO 0,1,2,16,17,18,19,20,21,
|
||||
# 22,23 are broken out, and 18/19/20 are already the panel's SPI pins
|
||||
# (CS/MOSI/CLK) while 0/1/2 are the buttons. Remapped to three of the
|
||||
# remaining free pins; see docs/hardware.md for the full XIAO wiring
|
||||
# table.
|
||||
CONFIG_EPD_PIN_DC=16
|
||||
CONFIG_EPD_PIN_RST=17
|
||||
CONFIG_EPD_PIN_BUSY=21
|
||||
Reference in New Issue
Block a user