Server: Frame.panel_type (new column + migration) is auto-derived from the device's reported board (X-Frame-Board), never user-set -- the panel is a property of the hardware, not a picker in the UI. image_pipeline's packing/render pipeline is parameterized by panel geometry instead of hardcoded 800x480 globals, with the real confirmed 13.3in geometry (1600x1200) registered alongside the original 7.3in panel. Existing 7.3in frames are unaffected (column default + board mapping both resolve to the original panel). Board identifiers are also renamed (devkit/xiao -> devkit_esp32c6/ xiao_esp32c6, plus new "ee02") since the EE02 board also carries a XIAO module -- "xiao" alone stopped disambiguating hardware. The server keeps accepting the legacy bare names indefinitely for already-flashed devices. Firmware: scaffolds a third build target (ee02, ESP32-S3 -- a real chip-target change, not just a same-chip Kconfig variant like xiao) and a new epd13in3e driver component skeleton. The actual panel init/LUT/ refresh register sequence isn't ported from vendor demo code yet (none was available), so that component deliberately fails to compile (#error) rather than risk sending unverified register values to real hardware -- devkit/xiao are unaffected and build identically to before. CI's ee02 build step is continue-on-error for the same reason.
16 lines
1.3 KiB
CMake
16 lines
1.3 KiB
CMake
# Both EPD driver components are always REQUIRED (REQUIRES/PRIV_REQUIRES
|
|
# can't itself depend on a Kconfig value -- ESP-IDF resolves the
|
|
# component dependency graph in an early pass that runs BEFORE Kconfig
|
|
# is generated, so a CONFIG_* check here would silently see an empty
|
|
# value every time; confirmed the hard way, see git history if this
|
|
# comment ever seems suspicious). Which one actually compiles anything
|
|
# is decided inside each component's own CMakeLists.txt (conditional
|
|
# SRCS, evaluated in the later, Kconfig-aware pass -- that's fine, it's
|
|
# only REQUIRES itself that has the early-pass restriction), keyed off
|
|
# the same CONFIG_FRAME_PANEL_EE02_13IN3 that main/epd_board.h uses to
|
|
# pick which header every source file sees -- exactly one of the two
|
|
# ever contributes actual object files/symbols to a given build.
|
|
idf_component_register(SRCS main.c wifi_provisioning.c frame_client.c qr_onboarding.c status_screen.c epd_draw.c next_button.c back_button.c combo_button.c battery.c ota_update.c board_antenna.c
|
|
PRIV_REQUIRES esp_event nvs_flash esp_wifi esp_netif esp_http_server esp_http_client mbedtls dns_server epd7in3e epd13in3e qrcode epaper_fonts esp_driver_gpio esp_adc esp_https_ota app_update esp_app_format
|
|
EMBED_FILES root.html)
|