; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[platformio]
data_dir = data/build_gz
default_envs = lolin_s3_mini_213epd, lolin_s3_mini_29epd, btclock_rev_b_213epd

[env]


[btclock_base]
platform = espressif32 @ ^6.6.0
framework =  arduino, espidf
monitor_speed = 115200
monitor_filters = esp32_exception_decoder, colorize
board_build.filesystem = littlefs
extra_scripts = post:scripts/extra_script.py
build_flags =
  !python scripts/git_rev.py
  -DLAST_BUILD_TIME=$UNIX_TIME
  -DARDUINO_USB_CDC_ON_BOOT
  -DCORE_DEBUG_LEVEL=0
  -fexceptions
build_unflags = 
  -Werror=all
  -fno-exceptions
lib_deps = 
    https://github.com/joltwallet/esp_littlefs.git
    bblanchon/ArduinoJson@^7.0.4
    esphome/Improv@^1.2.3
    mathieucarbou/ESP Async WebServer
    adafruit/Adafruit BusIO@^1.16.0
    adafruit/Adafruit MCP23017 Arduino Library@^2.3.2
    adafruit/Adafruit NeoPixel@^1.12.0
    https://github.com/dsbaars/universal_pin
    https://github.com/dsbaars/GxEPD2#universal_pin
    https://github.com/tzapu/WiFiManager.git#v2.0.17

[env:lolin_s3_mini]
extends = btclock_base
board = lolin_s3_mini
board_build.partitions = partition.csv
build_flags =
    ${btclock_base.build_flags}
    -D MCP_INT_PIN=8
    -D NEOPIXEL_PIN=34
    -D NEOPIXEL_COUNT=4
    -D NUM_SCREENS=7
    -D I2C_SDA_PIN=35
    -D I2C_SCK_PIN=36
build_unflags = 
  ${btclock_base.build_unflags}


[env:btclock_rev_b]
extends = btclock_base
board = btclock_rev_b
board_build.partitions = partition.csv
build_flags =
    ${btclock_base.build_flags}
    -D MCP_INT_PIN=8
    -D NEOPIXEL_PIN=15
    -D NEOPIXEL_COUNT=4
    -D NUM_SCREENS=7
    -D I2C_SDA_PIN=35
    -D I2C_SCK_PIN=36
    -D HAS_FRONTLIGHT
    -D PCA_OE_PIN=45
    -D PCA_I2C_ADDR=0x42
lib_deps = 
  ${btclock_base.lib_deps}
  robtillaart/PCA9685@^0.7.1
build_unflags = 
  ${btclock_base.build_unflags}

[env:lolin_s3_mini_213epd]
extends = env:lolin_s3_mini
test_framework = unity
build_flags =
    ${env:lolin_s3_mini.build_flags}
    -D USE_QR
    -D VERSION_EPD_2_13


[env:btclock_rev_b_213epd]
extends = env:btclock_rev_b
test_framework = unity
build_flags =
    ${env:btclock_rev_b.build_flags}
    -D USE_QR
    -D VERSION_EPD_2_13

[env:lolin_s3_mini_29epd]
extends = env:lolin_s3_mini
test_framework = unity
build_flags =
    ${env:lolin_s3_mini.build_flags}
    -D USE_QR
    -D VERSION_EPD_2_9

[env:btclock_rev_b_29epd]
extends = env:btclock_rev_b
test_framework = unity
build_flags =
    ${env:btclock_rev_b.build_flags}
    -D USE_QR
    -D VERSION_EPD_2_9

[env:btclock_s3]
extends = btclock_base
board = btclock
board_build.partitions = partition_16mb.csv
test_framework = unity
build_flags =
    ${btclock_base.build_flags}
    -D MCP_INT_PIN=4
    -D NEOPIXEL_PIN=5
    -D NEOPIXEL_COUNT=4
    -D NUM_SCREENS=8
    -D SPI_SDA_PIN=11
    -D SPI_SCK_PIN=12
    -D I2C_SDA_PIN=1
    -D I2C_SCK_PIN=2
    -D MCP_RESET_PIN=21
    -D MCP1_A0_PIN=6
    -D MCP1_A1_PIN=7
    -D MCP1_A2_PIN=8
    -D MCP2_A0_PIN=9
    -D MCP2_A1_PIN=10
    -D MCP2_A2_PIN=14
build_unflags = 
  ${btclock_base.build_unflags}

[env:native_test_only]
platform = native
test_framework = unity
build_flags =
    ${btclock_base.build_flags}
    -D MCP_INT_PIN=8
    -D NEOPIXEL_PIN=34
    -D NEOPIXEL_COUNT=4
    -D NUM_SCREENS=7