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.
682 B
682 B
| 1 | # Name, Type, SubType, Offset, Size, Flags |
|---|---|
| 2 | # Same OTA layout as partitions.csv, resized for the Seeed XIAO |
| 3 | # ESP32-C6's 4MB flash (the dev board's 8MB table's 2x 2MB app slots |
| 4 | # don't fit). App slots are 0x1e0000 (1.875MB) each -- current firmware |
| 5 | # runs at ~1.2MB, so this leaves ~38% headroom per slot, same margin as |
| 6 | # the 8MB table's 2MB slots give today. nvs/phy offsets match the 8MB |
| 7 | # table so provisioning data is byte-compatible between the two. |
| 8 | nvs, data, nvs, 0x9000, 0x6000, |
| 9 | phy_init, data, phy, 0xf000, 0x1000, |
| 10 | otadata, data, ota, 0x10000, 0x2000, |
| 11 | ota_0, app, ota_0, 0x20000, 0x1e0000, |
| 12 | ota_1, app, ota_1, 0x200000, 0x1e0000, |