; PlatformIO Project Configuration File
; Please visit documentation: https://docs.platformio.org/page/projectconf.html

[platformio]
src_dir = ./wled00
data_dir = ./wled00/data
lib_extra_dirs = ./wled00/src
; Please uncomment one of the 5 lines below to select your board
; env_default = nodemcuv2
; env_default = esp01
; env_default = esp01_1m
; env_default = d1_mini
; env_default = esp32dev


[common]
framework = arduino
monitor_speed = 115200
board_build.flash_mode = dout
upload_speed = 115200
upload_speed_fast = 921600
build_flags =
  -w ; supresses all C/C++ warnings
  ; -D VERSION=0.8.5
  ; -D DEBUG
# TODO replace libs in /lib with managed libs in here if possible.
# If they are not changed it's just a matter of setting the correct version and change the import statement
lib_deps_external =
  #Blynk@0.5.4(changed)
  #E131@1.0.0(changed)
  FastLED@3.3.2
  NeoPixelBus@2.5.1
  ESPAsyncTCP@1.2.0
  AsyncTCP@1.0.3
  Esp Async WebServer@1.2.0
  #ArduinoJson@5.13.5
  IRremoteESP8266@2.5.5
  #Time@1.5
  #Timezone@1.2.1

[common:esp8266]
# ------------------------------------------------------------------------------
# PLATFORM:
#   !! DO NOT confuse platformio's ESP8266 development platform with Arduino core for ESP8266
#   We use Arduino Core 2.5.0 (platformIO 2.0.4) as default
#
#   arduino core 2.3.0 = platformIO 1.5.0
#   arduino core 2.4.0 = platformIO 1.6.0
#   arduino core 2.4.1 = platformIO 1.7.3
#   arduino core 2.4.2 = platformIO 1.8.0
#   arduino core 2.5.0 = platformIO 2.0.4
#   arduino core stage = platformIO feature#stage
# ------------------------------------------------------------------------------
arduino_core_2_3_0 = espressif8266@1.5.0
arduino_core_2_4_0 = espressif8266@1.6.0
arduino_core_2_4_1 = espressif8266@1.7.3
arduino_core_2_4_2 = espressif8266@1.8.0
arduino_core_2_5_0 = espressif8266@2.0.4
arduino_core_2_5_2 = espressif8266@2.2.3
arduino_core_stage = https://github.com/platformio/platform-espressif8266.git#feature/stage
platform = ${common:esp8266.arduino_core_2_5_2}
build_flags =
  -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
  -Wl,-Teagle.flash.4m1m.ld  ;;;; Required for core > v2.5.0 or staging version 4MB Flash 3MB SPIFFs

[common:esp8266_1M]
platform = espressif8266@1.8.0
build_flags =
  -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
  -Wl,-Teagle.flash.1m0.ld  ;;;; Compile with no SPIFFS to leave space for OTA
  ; -D WLED_DISABLE_MOBILE_UI
  ; -D WLED_DISABLE_OTA
  ; -D WLED_DISABLE_ALEXA
  -D WLED_DISABLE_BLYNK
  -D WLED_DISABLE_CRONIXIE
  ; -D WLED_DISABLE_HUESYNC
  -D WLED_DISABLE_INFRARED

[common:esp8266_512k]
platform = espressif8266@1.8.0
build_flags =
  -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH_LOW_FLASH
  -Wl,-Teagle.flash.512k0.ld  ;;;; Compile with no SPIFFS
  ; -D WLED_DISABLE_MOBILE_UI
  -D WLED_DISABLE_OTA
  ; -D WLED_DISABLE_ALEXA
  -D WLED_DISABLE_BLYNK
  -D WLED_DISABLE_CRONIXIE
  ; -D WLED_DISABLE_HUESYNC
  -D WLED_DISABLE_INFRARED

[common:esp32]
platform = espressif32@1.7.0
build_flags =
  -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
  -D ARDUINO_ARCH_ESP32
  -D WLED_DISABLE_INFRARED

# see: http://docs.platformio.org/en/latest/platforms/espressif8266.html
[env:nodemcuv2]
board = nodemcuv2
platform = ${common:esp8266.platform}
monitor_speed = ${common.monitor_speed}
upload_speed = ${common.upload_speed}
framework = ${common.framework}
build_flags =
  ${common.build_flags}
  ${common:esp8266.build_flags}
lib_deps =
  ${common.lib_deps_external}

[env:d1_mini]
board = d1_mini
platform = ${common:esp8266.platform}
monitor_speed = ${common.monitor_speed}
upload_speed = ${common.upload_speed}
framework = ${common.framework}
build_flags =
  ${common.build_flags}
  ${common:esp8266.build_flags}
lib_deps =
  ${common.lib_deps_external}

[env:esp01_1m]
board = esp01_1m
platform = ${common:esp8266_1M.platform}
monitor_speed = ${common.monitor_speed}
upload_speed = ${common.upload_speed}
framework = ${common.framework}
build_flags =
  ${common.build_flags}
  ${common:esp8266_1M.build_flags}
  # disable IR because there is no pin for it
  -D WLED_DISABLE_INFRARED
lib_deps =
  ${common.lib_deps_external}

[env:esp01]
board = esp01
platform = ${common:esp8266_512k.platform}
monitor_speed = ${common.monitor_speed}
upload_speed = ${common.upload_speed}
framework = ${common.framework}
build_flags =
  ${common.build_flags}
  ${common:esp8266_512k.build_flags}
lib_deps =
  ${common.lib_deps_external}

# see: http://docs.platformio.org/en/latest/platforms/espressif32.html
[env:esp32dev]
board = esp32dev
platform = ${common:esp32.platform}
monitor_speed = ${common.monitor_speed}
upload_speed = ${common.upload_speed_fast}
framework = ${common.framework}
build_flags =
  ${common.build_flags}
  ${common:esp32.build_flags}
lib_deps =
  ${common.lib_deps_external}
lib_ignore =
  IRremoteESP8266