[env:tasmota-rangeextender]
build_flags                 = ${env.build_flags}
                              -D FIRMWARE_RANGE_EXTENDER
                              -D PIO_FRAMEWORK_ARDUINO_LWIP2_HIGHER_BANDWIDTH
                              -D USE_WIFI_RANGE_EXTENDER
                              -D USE_WIFI_RANGE_EXTENDER_NAPT

[env:tasmota32-rangeextender]
extends                     = env:tasmota32_base
build_flags                 = ${env:tasmota32_base.build_flags}
                              -D FIRMWARE_TASMOTA32
                              -D USE_WIFI_RANGE_EXTENDER
                              -D USE_WIFI_RANGE_EXTENDER_NAPT

[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} -D FIRMWARE_TASMOTA32
; !!! Real flash size needed, avoid autoresize since it is formating FS !!!
board_upload.flash_size     = 8MB
board_upload.maximum_size   = 8388608
; Without autoresize a partition scheme is needed which does fit to flash size
board_build.partitions      = partitions/esp32_partition_app2944k_fs2M.csv
; Dont use safeboot, not used in this partition scheme -> an empty entry needed to overwrite the default setting
board_upload.arduino.flash_extra_images =
; 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


[env:tasmota32c3-bluetooth]
extends                     = env:tasmota32c3
build_flags                 = ${env:tasmota32c3.build_flags}
                              -D USE_BLE_ESP32
                              -D USE_MI_ESP32
;                              -D USE_EQ3_ESP32
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
build_flags                 = ${env:tasmota32_base.build_flags} -D FIRMWARE_BLUETOOTH
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
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

[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
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

[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
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

; *** 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

[env:tasmota32-debug]
extends                     = env:tasmota32_base
build_type                  = debug
build_unflags               = ${env:tasmota32_base.build_unflags}
build_flags                 = ${env:tasmota32_base.build_flags}
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}
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}
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}
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}
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}
monitor_filters         = esp32_exception_decoder