; Seeed Studio SenseCAP Indicator
[env:seeed-sensecap-indicator]
custom_meshtastic_hw_model = 70
custom_meshtastic_hw_model_slug = SENSECAP_INDICATOR
custom_meshtastic_architecture = esp32-s3
custom_meshtastic_actively_supported = true
custom_meshtastic_support_level = 1
custom_meshtastic_display_name = Seeed SenseCAP Indicator
custom_meshtastic_images = seeed-sensecap-indicator.svg
custom_meshtastic_tags = Seeed
custom_meshtastic_partition_scheme = 8MB
custom_meshtastic_has_mui = true

extends = esp32s3_base
platform_packages =
  ; Version needs to match the pioarduino version used in esp32_common.ini
  platformio/framework-arduinoespressif32 @ https://github.com/mverch67/arduino-esp32#82aee17619ea2940de03b0db4d082d5def657771

board = seeed-sensecap-indicator
board_check = true
board_build.partitions = partition-table-8MB.csv
upload_protocol = esptool

build_flags = ${esp32s3_base.build_flags}
  -Ivariants/esp32s3/seeed-sensecap-indicator
  -DSENSECAP_INDICATOR
  -DUSE_ARDUINO_HAL_GPIO ; patch for lovyanGFX to use digitalWrite instead of direct register access for GPIO control, which is necessary for the IO expander to work correctly
  -DRADIOLIB_DEBUG_SPI=0
  -DRADIOLIB_DEBUG_PROTOCOL=0
  -DRADIOLIB_DEBUG_BASIC=0
  -DRADIOLIB_VERBOSE_ASSERT=0
  -DRADIOLIB_SPI_PARANOID=0
  -DIO_EXPANDER=0x40
  -DIO_EXPANDER_IRQ=42
  ;-DIO_EXPANDER_DEBUG

lib_deps = ${esp32s3_base.lib_deps}
  https://github.com/mverch67/LovyanGFX/archive/9abe502add013f392a1898d7dc48d65ddc112754.zip
  # renovate: datasource=git-refs depName=ESP8266Audio packageName=https://github.com/meshtastic/ESP8266Audio gitBranch=meshtastic-2.0.0-dacfix
  https://github.com/meshtastic/ESP8266Audio/archive/343024632ee78d6216907b2353fc943a62422d80.zip
  # renovate: datasource=custom.pio depName=ESP8266SAM packageName=earlephilhower/library/ESP8266SAM
  earlephilhower/ESP8266SAM@1.1.0

custom_sdkconfig =
    ${esp32s3_base.custom_sdkconfig}
    CONFIG_AUTOSTART_ARDUINO=y
    CONFIG_LOG_DEFAULT_LEVEL_INFO=y
    CONFIG_LOG_MAXIMUM_LEVEL_DEBUG=y
    CONFIG_SPIRAM_MODE_OCT=y
;    CONFIG_SPIRAM_SPEED_120M=y
;    CONFIG_SPIRAM_SPEED=120
    CONFIG_SPIRAM_SPEED_80M=y
    CONFIG_SPIRAM_SPEED=80
    CONFIG_SPIRAM_XIP_FROM_PSRAM=y
    CONFIG_LCD_RGB_ISR_IRAM_SAFE=y
    CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y
    CONFIG_I2S_ISR_IRAM_SAFE=y
    CONFIG_GDMA_ISR_IRAM_SAFE=y
    CONFIG_ESP32S3_DEFAULT_CPU_FREQ_240=y
    CONFIG_ESP32S3_DATA_CACHE_64KB=y
    CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y
    CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK=y
    CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=0
    CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
    CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
;    CONFIG_ESPTOOLPY_FLASHFREQ_120M=y
;    CONFIG_ESPTOOLPY_FLASHFREQ="120m"
  '# CONFIG_ESPTOOLPY_FLASHFREQ_120M is not set'
    CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
    CONFIG_ESPTOOLPY_FLASHFREQ="80m"
    CONFIG_COMPILER_OPTIMIZATION_PERF=y
    CONFIG_BOOTLOADER_LOG_LEVEL_NONE=n
    CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y

[env:seeed-sensecap-indicator-tft]
extends = env:seeed-sensecap-indicator
board_check = true
upload_speed = 460800

build_flags =
  ${env:seeed-sensecap-indicator.build_flags}
  -D INPUTDRIVER_BUTTON_TYPE=38
  -D CONFIG_DISABLE_HAL_LOCKS=1
  -D HAS_SCREEN=1
  -D HAS_TFT=1
  -D DISPLAY_SET_RESOLUTION
  -D RAM_SIZE=3072
  -D LV_LVGL_H_INCLUDE_SIMPLE
  -D LV_CONF_INCLUDE_SIMPLE
  -D LV_COMP_CONF_INCLUDE_SIMPLE
  -D LV_USE_SYSMON=0
  -D LV_USE_PROFILER=0
  -D LV_USE_PERF_MONITOR=0
  -D LV_USE_MEM_MONITOR=0
  -D LV_USE_LOG=0
  -D USE_LOG_DEBUG
  -D LOG_DEBUG_INC=\"DebugConfiguration.h\"
  -D CUSTOM_TOUCH_DRIVER
  -D LGFX_SCREEN_WIDTH=480
  -D LGFX_SCREEN_HEIGHT=480
  -D DISPLAY_SIZE=480x480
  -D LGFX_DRIVER=LGFX_INDICATOR
  -D GFX_DRIVER_INC=\"graphics/LGFX/LGFX_INDICATOR.h\"
  -D VIEW_320x240
  -D USE_PACKET_API

lib_deps =
  ${env:seeed-sensecap-indicator.lib_deps}
  ${device-ui_base.lib_deps}
  ;# renovate: datasource=github-tags depName=bb_captouch packageName=bitbank2/bb_captouch
  ;https://github.com/bitbank2/bb_captouch/archive/refs/tags/1.3.1.zip ; not working
  https://github.com/mverch67/bb_captouch/archive/8626412fe650d808a267791c0eae6e5860c85a5d.zip ; alternative touch library supporting FT6x36
