; -- Platform specific build flags
[esp32s2]
extends = esp32
board_build.mcu = esp32s2

build_flags =
    ${env.build_flags}
    -D HASP_TARGET_ARDUINO=1
    -D HTTP_UPLOAD_BUFLEN=512      ; lower http upload buffer
    -D MQTT_MAX_PACKET_SIZE=2048    ; longer PubSubClient messages
    -D HASP_CONSOLE_BUFFER=256      ; maximum length of a console/telnet command
    -D NO_GLOBAL_HTTPUPDATE         ; dont instantiate httpUpdate
    ;-D CONFIG_NEWLIB_NANO_FORMAT
; -- lvgl build options -----------------------------
    -D LV_ATTRIBUTE_FAST_MEM=
    -D LV_ATTRIBUTE_TASK_HANDLER=IRAM_ATTR
    -D LV_USE_FS_IF=1
    ;-D LV_FS_PC_PATH="//littlefs"   ; this needs to match the vfs mount pount
; -- ArduinoJson build options ----------------------------
    -D ARDUINOJSON_ENABLE_PROGMEM=1 ; for PROGMEM arguments
; -- tft_espi build options ------------------------
    ;-D USE_DMA_TO_TFT
; -- openHASP build options ------------------------
    -D HASP_ATTRIBUTE_FAST_MEM=IRAM_ATTR
    -D HASP_USE_TELNET=1
    ;-D HASP_USE_SPIFFS=1
    -D HASP_USE_LITTLEFS=1
    ;-D HASP_USE_EEPROM=1
    -D HASP_USE_CONFIG=1            ; Native application, not library
    -D LV_LOG_TRACE_TIMER=1
    -D HASP_USE_PNGDECODE=1
    -D HASP_USE_BMPDECODE=1
    -D HASP_USE_JPGDECODE=0
    -D HASP_USE_GIFDECODE=0
; -- LittleFS build options ------------------------
	;-D CONFIG_LITTLEFS_FOR_IDF_3_2  ; obsolete in IDF 3.3
; -- FreeType build options ------------------------
    -D LV_FREETYPE_SBIT_CACHE=1             ; use small bitmap cache
    -D LV_FREETYPE_CACHE_SIZE=1             ; cache freetype font sizes
    -D LV_USE_FT_CACHE_MANAGER=1            ; crashes without cache
    -D LVGL_FREETYPE_MAX_FACES=8           ; max number of FreeType faces in cache
    -D LVGL_FREETYPE_MAX_SIZES=8           ; max number of sizes in cache
    -D LVGL_FREETYPE_MAX_BYTES=2048         ; max bytes in bitcache per font
    -D LVGL_FREETYPE_MAX_BYTES_PSRAM=65536  ; max bytes in bitcache per font when using PSRAM
; -- SimpleFTpServer build options -----------------
    -D HASP_USE_FTP=1
    -D FTP_SERVER_DEBUG
    -D FTP_SERVER_NETWORK_TYPE=NETWORK_ESP32 ;// NETWORK_ESP32
    -D STORAGE_TYPE=STORAGE_LITTLEFS ;//  STORAGE_LITTLEFS
    -D STORAGE_SD_FORCE_DISABLE
    -D STORAGE_SPIFFS_FORCE_DISABLE
    

ps_ram =
    -DBOARD_HAS_PSRAM
    -D HASP_USE_FREETYPE=1
    -D LV_USE_FREETYPE=1
no_ps_ram =
    -D HASP_USE_FREETYPE=1
    -D LV_USE_FREETYPE=1



; -- The ESP32S2 has 2 SPI Hardware Busses available to use:
hspi =
    -D TFT_MISO=37
    -D TFT_MOSI=35
    -D TFT_SCLK=36
fspi =
    -D TFT_MISO=12
    -D TFT_MOSI=13
    -D TFT_SCLK=14

; -- The Arduino ESP32 v2.0.2 with 3 available flash sizes:
[arduino_esp32s2_v2]
extends = esp32s2
framework = arduino
;platform = https://github.com/tasmota/platform-espressif32/releases/download/v2.0.4.1/platform-espressif32-2.0.4.1.zip
platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.07.00/platform-espressif32.zip

; =========================== SOLO ==============================================

; -- The Arduino ESP32S2-solo v2.0.2 with 3 available flash sizes:
[arduino_esp32s2-solo_v2]
framework = arduino
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.01.01/platform-espressif32.zip
; platform = https://github.com/tasmota/platform-espressif32/releases/download/2023.10.03/platform-espressif32.zip
platform = https://github.com/Jason2866/platform-espressif32/releases/download/2023.10.02/platform-espressif32-2023.10.02.zip
board_build.embed_files = ${esp32.board_build.embed_files}
board_build.filesystem = littlefs
; ----- crash reporter
monitor_filters = esp32_exception_decoder
extra_scripts =
    ${esp32s2.extra_scripts}
