Firmware build check / build-check (push) Successful in 2m44s
esp_sleep_enable_gpio_wakeup_on_hp_periph_powerdown() only exists on
ESP32-C6 (SOC_GPIO_SUPPORT_HP_PERIPH_PD_SLEEP_WAKEUP), so the ee02
(ESP32-S3) build failed with implicit-declaration errors in
{back,next,combo}_button.c once the epd13in3e driver's #error stopped
masking it.
Each button file now branches on that capability macro: the C6 path
(devkit/xiao) is untouched, and ESP32-S3 uses
esp_sleep_enable_ext1_wakeup_io() instead. The earlier ext1 attempt was
rejected on C6 hardware because its pull resistor didn't hold across
RTC_PERIPH power-down -- tracing the same path in ESP-IDF source shows
gpio_config()'s pull_up_en already delegates to rtc_gpio_pullup_en()
for RTC-capable pins on every non-original-ESP32 target, so the pull-up
should already survive the same power-down on S3. The _io() variant is
additive, so the three button files don't need cross-file mask
coordination. Also widens the button GPIO Kconfig range for
IDF_TARGET_ESP32S3 (0-21, matching its RTC-IO set) instead of the
C6-shaped 0-7.
Verified: ee02, devkit, and xiao all build clean end-to-end locally
(native ESP-IDF v6.0, no Docker in this sandbox). NOT verified: whether
this actually avoids the spurious-instant-wakeup bug on real EE02
hardware -- that failure mode was only ever confirmed empirically, not
root-caused in a way a compile can check. continue-on-error stays on
in CI's ee02 build step until that's confirmed.
51 lines
2.8 KiB
Plaintext
51 lines
2.8 KiB
Plaintext
# Board-specific overrides for Seeed's EE02 (XIAO ESP32-S3 Plus + 13.3"
|
|
# Spectra 6 panel), layered on top of sdkconfig.defaults 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.
|
|
#
|
|
# Unlike xiao (a same-chip Kconfig-only variant of the ESP32-C6 dev
|
|
# board), EE02 is a genuinely different chip target (ESP32-S3) --
|
|
# build_for_board.sh runs `set-target esp32s3` for this board before
|
|
# building, same as it runs `set-target esp32c6` for devkit/xiao.
|
|
CONFIG_FRAME_BOARD_NAME="ee02"
|
|
|
|
# Selects the epd13in3e driver component (13.3", 1600x1200) instead of
|
|
# epd7in3e -- see main/Kconfig.projbuild and main/CMakeLists.txt.
|
|
CONFIG_FRAME_PANEL_EE02_13IN3=y
|
|
|
|
# XIAO ESP32-S3 Plus: 16MB flash, 8MB PSRAM (vs. the plain XIAO ESP32-S3's
|
|
# 8MB/8MB) -- see partitions_ee02.csv, sized generously against this,
|
|
# not yet trimmed/tuned against a real build's actual footprint.
|
|
CONFIG_ESPTOOLPY_FLASHSIZE_16MB=y
|
|
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_ee02.csv"
|
|
CONFIG_PARTITION_TABLE_FILENAME="partitions_ee02.csv"
|
|
|
|
# EE02's e-paper interface pin defaults live in
|
|
# firmware/components/epd13in3e/Kconfig instead of being overridden here
|
|
# (mirrors how epd7in3e's Kconfig defaults are devkit-shaped and
|
|
# sdkconfig.xiao only overrides the ones that actually differ) -- EE02's
|
|
# pins are a different Kconfig menu entirely (EPD_PIN_CS_MASTER/CS_SLAVE/
|
|
# POWER_EN don't exist on epd7in3e's board at all), not a same-menu
|
|
# override, so there's nothing to set here beyond selecting the component
|
|
# above.
|
|
#
|
|
# Deliberately NOT overriding FRAME_NEXT_BUTTON_GPIO/FRAME_BACK_BUTTON_
|
|
# GPIO/FRAME_COMBO_BUTTON_GPIO/FRAME_BATTERY_ADC_GPIO here, even though
|
|
# the same community source that gave the epd13in3e pinout also reports
|
|
# EE02 has 3 user buttons at GPIO2/3/5: which physical button maps to
|
|
# which logical role (next/back/combo) still isn't confirmed. The
|
|
# button GPIOs' `range -1 7` constraint (main/Kconfig.projbuild) -- which
|
|
# used to be hardcoded to the ESP32-C6's deep-sleep-wakeup-capable GPIO
|
|
# set -- now widens to `range -1 21` under IDF_TARGET_ESP32S3 (the
|
|
# ESP32-S3's own ext1-wakeup-capable RTC-IO range), so GPIO2/3/5 fit
|
|
# either way and nothing here needs adjusting on that front. What's
|
|
# still unconfirmed: (1) the button-to-role mapping above, and (2)
|
|
# whether the S3 button-wakeup path itself (ext1 + RTC pull-up, see
|
|
# main/next_button.c) actually avoids the spurious-instant-wakeup bug
|
|
# that ruled out ext1 on the ESP32-C6 -- that needs real EE02 hardware,
|
|
# not just a clean compile. FRAME_BATTERY_ADC_GPIO's `range -1 6` is a
|
|
# separate, still-unwidened concern -- it's the ESP32-C6's ADC-capable
|
|
# pin set, not a deep-sleep-wakeup range, and out of scope here.
|