[platformio]
#if you want a pio run to only build
#your special environments you can set this here
#by uncommenting the next line

default_envs = 
    obp60_s3
    obp40_s3

[env:obp60_s3]
platform = espressif32@6.8.1
board_build.variants_dir = variants
#board = obp60_s3_n8     #ESP32-S3 N8, 8MB flash, no PSRAM
#board = obp60_s3_n16    #ESP32-S3 N16,16MB flash, no PSRAM, zero series
#board = obp60_s3_n8r8   #ESP32-S3 N8R8, 8MB flash, 8MB PSRAM
board = obp60_s3_n16r8  #ESP32-S3 N16R8, 16MB flash, 8MB PSRAM, production series
#board_build.partitions = default_8MB.csv #ESP32-S3 N8, 8MB flash
board_build.partitions = default_16MB.csv #ESP32-S3 N16, 16MB flash
custom_config = lib/obp60task/config_obp60.json
custom_script = lib/obp60task/extra_task.py
framework = arduino
lib_deps = 
    ${basedeps.lib_deps}
    Wire
    SPI
    ESP32time
    HTTPClient
    WiFiClientSecure
    esphome/AsyncTCP-esphome@2.0.1
    robtillaart/PCF8574@0.3.9
    adafruit/Adafruit Unified Sensor @ 1.1.13
    blemasle/MCP23017@2.0.0
    adafruit/Adafruit BusIO@1.5.0
    adafruit/Adafruit GFX Library@1.11.9
    #zinggjm/GxEPD2@1.5.8
    #https://github.com/ZinggJM/GxEPD2
    https://github.com/thooge/GxEPD2
    sstaub/Ticker@4.4.0
    adafruit/Adafruit BMP280 Library@2.6.2
    adafruit/Adafruit BME280 Library@2.2.2
    adafruit/Adafruit BMP085 Library@1.2.1
    enjoyneering/HTU21D@1.2.1
    robtillaart/INA226@0.2.0
    paulstoffregen/OneWire@2.3.8
    milesburton/DallasTemperature@3.11.0
    signetica/SunRise@2.0.2
    adafruit/Adafruit FRAM I2C@2.0.3
build_flags=
    #https://thingpulse.com/usb-settings-for-logging-with-the-esp32-s3-in-platformio/?srsltid=AfmBOopGskbkr4GoeVkNlFaZXe_zXkLceKF6Rn-tmoXABCeAR2vWsdHL
#    -D CORE_DEBUG_LEVEL=1           #Debug level for CPU core via CDC (serial device)
#    -D TIME=$UNIX_TIME              #Set PC time for RTC (only settable via VSC)
    -D DISABLE_DIAGNOSTIC_OUTPUT    #Disable diagnostic output for GxEPD2 lib
    -D BOARD_OBP60S3                #Board OBP60 V2.1 with ESP32S3
#    -D HARDWARE_V20                 #OBP60 hardware revision V2.0
    -D HARDWARE_V21                 #OBP60 hardware revision V2.1
#    -D DISPLAY_GDEW042T2            #old E-Ink display from GoodDisplay (Waveshare), R10 0.47 ohm - very good
    -D DISPLAY_GDEY042T81           #new E-Ink display from GoodDisplay (Waveshare), R10 2.2 ohm - good (contast lost by shunshine)
#    -D DISPLAY_GYE042A87            #alternativ E-Ink display from Genyo Optical, R10 2.2 ohm - medium 
#    -D DISPLAY_SE0420NQ04           #alternativ E-Ink display from SID Technology, R10 2.2 ohm - bad (burn in effects)
#    -D DISPLAY_ZJY400300-042CAAMFGN #alternativ E-Ink display from ZZE Technology, R10 2.2 ohm - very good
    ${env.build_flags}
#CONFIG_ESP_TASK_WDT_TIMEOUT_S = 10 #Task Watchdog timeout period (seconds) [1...60] 5 default
upload_port = /dev/ttyACM0          #OBP60 download via USB-C direct
upload_protocol = esptool           #firmware upload via USB OTG seriell, by first upload need to set the ESP32-S3 in the upload mode with shortcut GND to Pin27 
upload_speed = 230400
monitor_speed = 115200

[env:obp40_s3]
platform = espressif32@6.8.1
board_build.variants_dir = variants
board = obp40_s3_n8r8   #ESP32-S3 N8R8, 8MB flash, 8MB PSRAM, OBP60 clone (CrowPanel 4.2)
board_build.partitions = default_8MB.csv #ESP32-S3 N8, 8MB flash
custom_config = lib/obp60task/config_obp40.json
custom_script = lib/obp60task/extra_task.py
framework = arduino
lib_deps =
    ${basedeps.lib_deps}
    Wire
    SPI
    SD
    ESP32time
    HTTPClient
    WiFiClientSecure
    esphome/AsyncTCP-esphome@2.0.1
    robtillaart/PCF8574@0.3.9
    adafruit/Adafruit Unified Sensor @ 1.1.13
    blemasle/MCP23017@2.0.0
    adafruit/Adafruit BusIO@1.5.0
    adafruit/Adafruit GFX Library@1.11.9
    #zinggjm/GxEPD2@1.5.8
    #https://github.com/ZinggJM/GxEPD2
    https://github.com/thooge/GxEPD2
    sstaub/Ticker@4.4.0
    adafruit/Adafruit BMP280 Library@2.6.2
    adafruit/Adafruit BME280 Library@2.2.2
    adafruit/Adafruit BMP085 Library@1.2.1
    enjoyneering/HTU21D@1.2.1
    robtillaart/INA226@0.2.0
    paulstoffregen/OneWire@2.3.8
    milesburton/DallasTemperature@3.11.0
    signetica/SunRise@2.0.2
    adafruit/Adafruit FRAM I2C@2.0.3
build_flags=
    -D DISABLE_DIAGNOSTIC_OUTPUT    #Disable diagnostic output for GxEPD2 lib
    -D BOARD_OBP40S3                #Board OBP40 with ESP32S3
    -D HARDWARE_V10                 #OBP40 hardware revision V1.0 SKU:DIE07300S V1.1 (CrowPanel 4.2)
    -D DISPLAY_GDEY042T81           #new E-Ink display from Good Display (Waveshare), R10 2.2 ohm - good (contast lost by shunshine)
    #-D DISPLAY_ZJY400300-042CAAMFGN #alternativ E-Ink display from ZZE Technology, R10 2.2 ohm - very good   
    -D LIPO_ACCU_1200               #Hardware extension, LiPo accu 3,7V 1200mAh
    -D VOLTAGE_SENSOR               #Hardware extension, LiPo voltage sensor with two resistors
    ${env.build_flags}
upload_port = /dev/ttyUSB0          #OBP40 download via external USB/Serail converter
upload_protocol = esptool           #firmware upload via USB OTG seriell, by first upload need to set the ESP32-S3 in the upload mode with shortcut GND to Pin27
upload_speed = 230400
monitor_speed = 115200
