[env:tasmota-rangeextender]
build_flags                 = ${env.build_flags}
                              -DFIRMWARE_RANGE_EXTENDER
                              -DPIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
                              -DUSE_WIFI_RANGE_EXTENDER
                              -DUSE_WIFI_RANGE_EXTENDER_NAPT
                              -DOTA_URL='""'

[env:tasmota32-rangeextender]
extends                     = env:tasmota32_base
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DFIRMWARE_TASMOTA32
                              -DUSE_WIFI_RANGE_EXTENDER
                              -DUSE_WIFI_RANGE_EXTENDER_NAPT
                              -DOTA_URL='""'

[env:tasmota32s3-file]
extends                     = env:tasmota32_base
board                       = esp32s3-qio_qspi
board_build.f_cpu           = 240000000L
board_build.f_flash         = 80000000L
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DFIRMWARE_TASMOTA32
                              -DOTA_URL='"http://ota.tasmota.com/tasmota32/release/tasmota32s3.bin"'
; Example for custom file upload in Tasmota Filesystem
custom_files_upload         = ${env:tasmota32_base.custom_files_upload}
                              tasmota/berry/modules/Partition_Wizard.tapp
                              https://github.com/tasmota/autoconf/raw/main/esp32s3/DevKitC-1.autoconf

[env:tasmota32s3-qio_opi-all]
extends                     = env:tasmota32_base
board                       = esp32s3-qio_opi
board_build.f_cpu           = 240000000L
board_build.f_flash         = 80000000L
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DUSE_WEBCAM
                              -DUSE_BERRY_ULP
                              -DFIRMWARE_LVGL
                              -DUSE_LVGL_OPENHASP
                              -DOTA_URL='""'

;*** Tasmota ESP32-C3 version before ROM revision 3
;*** Actual used Arduino/IDF does not support this old revisions
;*** This build env is without any support, unexpected issues can happen
;*** Includes only basic drivers to fit in smaller app partition
[env:tasmota32c3-old]
extends                 = env:tasmota32c3
platform_packages       = framework-arduinoespressif32 @ https://github.com/tasmota/arduino-esp32/releases/download/2.0.9.20230531/framework-arduinoespressif32.zip
build_flags             = ${env:tasmota32_base.build_flags}
                          -DOTA_URL='""'
; *** Do not use safe boot scheme, since safeboot is build with new core!!
board_build.partitions  = partitions/esp32_partition_app1856k_fs320k.csv
; Safeboot not used in this partition scheme -> an empty entry needed to overwrite the default setting
board_upload.arduino.flash_extra_images =

[env:tasmota32c3-bluetooth]
extends                     = env:tasmota32c3
build_flags                 = ${env:tasmota32c3.build_flags}
                              -DUSE_BLE_ESP32
                              -DUSE_MI_ESP32
;                              -DUSE_EQ3_ESP32
                              -DOTA_URL='""'
lib_extra_dirs              = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_i2c, lib/lib_rf, lib/lib_div, lib/lib_ssl, lib/lib_display, lib/lib_audio

[env:tasmota32s3-bluetooth]
extends                     = env:tasmota32_base
board                       = esp32s3-qio_qspi
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DFIRMWARE_BLUETOOTH
                              -DOTA_URL='""'
lib_extra_dirs              = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_ssl, lib/lib_i2c
lib_ignore                  = TTGO TWatch Library
                              Micro-RTSP
                              epdiy

[env:tasmota32-mi32-homebridge]
extends                     = env:tasmota32_base
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DFIRMWARE_BLUETOOTH
                              -DUSE_MI_EXT_GUI
                              -DUSE_MI_HOMEKIT=1    ; 1 to enable; 0 to disable
                              -DOTA_URL='""'
lib_extra_dirs              = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_i2c, lib/lib_div, lib/lib_ssl
lib_ignore                  = ESP8266Audio
                              ESP8266SAM
                              TTGO TWatch Library
                              Micro-RTSP
                              epdiy
                              NimBLE-Arduino

[env:tasmota32c3-mi32-homebridge]
extends                     = env:tasmota32c3
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DFIRMWARE_BLUETOOTH
                              -DUSE_MI_EXT_GUI
                              -DUSE_MI_HOMEKIT=1    ; 1 to enable; 0 to disable
                              -DOTA_URL='""'
lib_extra_dirs              = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_i2c, lib/lib_div, lib/lib_ssl
lib_ignore                  = ESP8266Audio
                              ESP8266SAM
                              TTGO TWatch Library
                              Micro-RTSP
                              epdiy
                              NimBLE-Arduino

[env:tasmota32s3-mi32-homebridge]
extends                     = env:tasmota32s3
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DFIRMWARE_BLUETOOTH
                              -DUSE_MI_EXT_GUI
                              -DUSE_MI_HOMEKIT=1    ; 1 to enable; 0 to disable
                              -DOTA_URL='""'
lib_extra_dirs              = lib/libesp32, lib/libesp32_div, lib/lib_basic, lib/lib_i2c, lib/lib_div, lib/lib_ssl
lib_ignore                  = ESP8266Audio
                              ESP8266SAM
                              TTGO TWatch Library
                              Micro-RTSP
                              epdiy
                              NimBLE-Arduino

; *** Debug version used for PlatformIO Home Project Inspection
[env:tasmota-debug]
build_type                  = debug
build_unflags               = ${env.build_unflags}
check_tool                  = cppcheck
                              ;clangtidy
check_skip_packages         = yes
build_flags                 = ${env.build_flags}
;                              -Wstack-usage=300
                              -DOTA_URL='""'

[env:tasmota32-debug]
extends                     = env:tasmota32_base
build_type                  = debug
build_unflags               = ${env:tasmota32_base.build_unflags}
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DOTA_URL='""'
check_tool                  = cppcheck
                              ;clangtidy
check_skip_packages         = yes
monitor_filters             = esp32_exception_decoder
;                              -Wstack-usage=300


; *** JTAG Debug version, needs esp-prog or FT2232H or FT232H
; *** Install howto for Windows https://community.platformio.org/t/esp32-pio-unified-debugger/4541/20

[env:tasmota32-ocd]
build_type                  = debug
extends                     = env:tasmota32_base
board                       = esp32
debug_tool                  = esp-prog
upload_protocol             = esp-prog
debug_init_break            = tbreak setup
build_unflags               = ${env:tasmota32_base.build_unflags}
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DOTA_URL='""'
monitor_filters             = esp32_exception_decoder

[env:tasmota32solo1-ocd]
build_type                  = debug
extends                     = env:tasmota32solo1
board                       = esp32_solo1
debug_tool                  = esp-prog
upload_protocol             = esp-prog
debug_init_break            = tbreak setup
build_unflags               = ${env:tasmota32_base.build_unflags}
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DOTA_URL='""'
monitor_filters             = esp32_exception_decoder

[env:tasmota32s2-ocd]
build_type                  = debug
extends                     = env:tasmota32_base
board                       = esp32s2
debug_tool                  = esp-prog
upload_protocol             = esp-prog
debug_init_break            = tbreak setup
build_unflags               = ${env:tasmota32_base.build_unflags}
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DOTA_URL='""'
monitor_filters             = esp32_exception_decoder

; *** JTAG Debug versions (only C3/S3), uses inbuilt CDC/jtag. No extra jtag hardware required!

[env:tasmota32s3cdc-ocd]
build_type                  = debug
extends                     = env:tasmota32s3
board                       = esp32s3cdc-qio_opi
debug_tool                  = esp-builtin
upload_protocol             = esp-builtin
debug_init_break            = tbreak setup
build_unflags               = ${env:tasmota32_base.build_unflags}
build_flags                 = ${env:tasmota32_base.build_flags}
                              -DOTA_URL='""'
monitor_filters             = esp32_exception_decoder

[env:tasmota32c3cdc-ocd]
build_type                  = debug
extends                     = env:tasmota32c3
board                       = esp32c3cdc
debug_tool                  = esp-builtin
upload_protocol             = esp-builtin
debug_init_break            = tbreak setup
build_unflags               = ${env:tasmota32c3.build_unflags}
build_flags                 = ${env:tasmota32c3.build_flags}
                              -DOTA_URL='""'
monitor_filters             = esp32_exception_decoder