; example custom platformio ini file for EMS-ESP

[common]
; custom build flags to use in my_build_flags
;  -DEMSESP_UART_DEBUG ; debugging UART
;  -DEMSESP_DEBUG ; enables DEBUG to the log. Will generate a lot of extra traffic on Console and Syslog
;  -DEMSESP_DEFAULT_BOARD_PROFILE=\"NODEMCU\" ; hard code the default board name
;  -DEMSESP_DEBUG_SENSOR ; additional debug for the sensors
;  -DCORE_DEBUG_LEVEL=5 ; verbose core level debugging 5=verbose, 4=debug, 3=info
;  -DEMSESP_TEST ; enable the tests. EN language only
;  -DEMSESP_DE_ONLY ; only DE translated entity names
;  -DEMSESP_EN_ONLY ; only EN translated entity names
;  -DEMSESP_PINGTEST ; send log message every 1/2 second

; my_build_flags = -DEMSESP_TEST -DEMSESP_DEBUG
; my_build_flags = -DEMSESP_DEBUG -DEMSESP_TEST -DEMSESP_PINGTEST
; my_build_flags = -DEMSESP_DEBUG -DCORE_DEBUG_LEVEL=5
my_build_flags =

[platformio]
default_envs = s_16M_P ; BBQKees E32V2
; default_envs = s3_16M_P ; BBQKees S3
; default_envs = s_4M ; BBQKees older S32, 4MB no psram
; default_envs = s_16M ; BBQKees newer S32 V2, 16MB no psram

[env]

; uncomment this section to enable extra debug
; build_type = debug
; monitor_filters = colorize, esp32_exception_decoder

; uncomment if you want to upload the firmware via OTA (must have upload_protocol = custom)
extra_scripts =
;  pre:scripts/build_interface.py ; builds the WebUI (unless NO_BUILD_WEBUI is set) - comment out if you don't want to build each time
 scripts/rename_fw.py ; renames the firmware .bin file - comment out if not needed
 scripts/upload.py ; optionally upload the firmware via OTA (must have upload_protocol = custom)

; set the username and password for the admin account (default password is admin)
custom_username = admin
custom_password = admin

; ** upload settings **
; for direct USB, which is the default you can set an optional port for example:
;  upload_port = /dev/ttyUSB0 or COM3
;
; for direct via HTTP (OTA) set:
;  upload_protocol = custom
;  custom_emsesp_ip = <ip address> or ems-esp.local

upload_protocol = custom
; custom_emsesp_ip = 10.10.10.93 ; S3
custom_emsesp_ip = 192.168.1.223 ; E32V2
; custom_emsesp_ip = 192.168.1.173 ; S32
; custom_emsesp_ip = 192.168.1.59 ; S32 (old) 4MB blue board

lib_deps =
  bblanchon/ArduinoJson @ 7.4.2
  ESP32Async/AsyncTCP @ 3.4.7
  ESP32Async/ESPAsyncWebServer @ 3.7.10
  file://${PROJECT_DIR}/../modules/EMS-ESP-Modules
;   ; https://github.com/emsesp/EMS-ESP-Modules.git @ 1.0.8

[espressif32_base_16M]
framework = arduino
board_build.partitions = partitions/esp32_partition_16M.csv
board_upload.flash_size = 16MB
board_build.app_partition_name = app0
; platform = espressif32@6.11.0 ; Arduino Core v2.0.17 / IDF v4.4.7
; platform = https://github.com/pioarduino/platform-espressif32/releases/download/54.03.20/platform-espressif32.zip ; Arduino Core v3.2.0 / ESP-IDF v5.4.1
platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30/platform-espressif32.zip ; Arduino Core 3.3.0, IDF 5.5.0

; ** debug settings **
; to be used with esp-prog/JTAG hardware device like https://docs.espressif.com/projects/esp-dev-kits/en/latest/other/esp-prog/user_guide.html   
; pio run -e debug
; add to build_flags these additional options: EMSESP_DEBUG EMSESP_UART_DEBUG EMSESP_DEBUG_SENSOR
[env:debug]
board = esp32dev
framework = arduino
platform = espressif32
board_build.partitions = partitions/esp32_partition_debug.csv
board_upload.flash_size = 4MB
board_build.filesystem = littlefs
upload_protocol = esptool
build_type = debug
monitor_raw = no
monitor_filters = esp32_exception_decoder
debug_tool = esp-prog
debug_init_break = tbreak setup
build_flags = ${factory_settings.build_flags} -DEMSESP_EN_ONLY -DCORE_DEBUG_LEVEL=5 -DONEWIRE_CRC16=0 -DNO_GLOBAL_ARDUINOOTA -DARDUINOJSON_ENABLE_STD_STRING=1 -DESP32=1 -DARDUINO_ARCH_ESP32=1
upload_port = /dev/ttyUSB0
extra_scripts =
  scripts/rename_fw.py
  post:scripts/app-tls-size.py
