; 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]
default_envs = 
	mega2560
	uno
	mega328
	unowifiR2
	nano
	samd21-dev-usb
	samd21-zero-usb
	ESP32
	Nucleo-F411RE
	Nucleo-F446RE
	Teensy3_2
	Teensy3_5
	Teensy3_6
	Teensy4_0
	Teensy4_1
src_dir = .
include_dir = .

[env]
build_flags = -Wall -Wextra
monitor_filters = time
; lib_deps = adafruit/Adafruit ST7735 and ST7789 Library @ ^1.10.0

[env:samd21-dev-usb]
platform = atmelsam
board = sparkfun_samd21_dev_usb
framework = arduino
upload_protocol = sam-ba
lib_deps = ${env.lib_deps}
monitor_speed = 115200
monitor_echo = yes
build_flags = -std=c++17

[env:samd21-zero-usb]
platform = atmelsam
board = zeroUSB
framework = arduino
upload_protocol = sam-ba
lib_deps = ${env.lib_deps}
monitor_speed = 115200
monitor_echo = yes
build_flags = -std=c++17

[env:Arduino-M0]
platform = atmelsam
board = mzeroUSB
framework = arduino
lib_deps = ${env.lib_deps}
monitor_speed = 115200
monitor_echo = yes
build_flags = -std=c++17 ; -DI2C_USE_WIRE  -DDIAG_LOOPTIMES -DDIAG_IO

[env:mega2560-debug]
platform = atmelavr
board = megaatmega2560
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
build_flags =  -DDIAG_IO=2 -DDIAG_LOOPTIMES

[env:mega2560-no-HAL]
platform = atmelavr
board = megaatmega2560
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
build_flags = -DIO_NO_HAL 

[env:mega2560-I2C-wire]
platform = atmelavr
board = megaatmega2560
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
build_flags = -DI2C_USE_WIRE

[env:mega2560]
platform = atmelavr
board = megaatmega2560
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
build_flags =     ; -DDIAG_LOOPTIMES

[env:mega328]
platform = atmelavr
board = uno
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes

[env:unowifiR2]
platform = atmelmegaavr
board = uno_wifi_rev2
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
build_flags = "-DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO_WIFI_DEV_ED -DARDUINO_ARCH_AVR -DESP_CH_UART -DESP_CH_UART_BR=19200"

[env:nanoevery]
platform = atmelmegaavr
board = nano_every
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
upload_speed = 19200
build_flags = 

[env:uno]
platform = atmelavr
board = uno
framework = arduino
lib_deps = 
	${env.lib_deps}
	arduino-libraries/Ethernet
	SPI
monitor_speed = 115200
monitor_echo = yes
build_flags = -mcall-prologues

[env:nano]
platform = atmelavr
board = nanoatmega328new
board_upload.maximum_size = 32256
framework = arduino
lib_deps = ${env.lib_deps}
monitor_speed = 115200
monitor_echo = yes

[env:ESP32]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps = ${env.lib_deps}
build_flags = -std=c++17
monitor_speed = 115200
monitor_echo = yes

[env:Nucleo-F411RE]
platform = ststm32
board = nucleo_f411re
framework = arduino
lib_deps = ${env.lib_deps}
build_flags = -std=c++17  -Os -g2 -Wunused-variable
monitor_speed = 115200
monitor_echo = yes

[env:Nucleo-F446RE]
platform = ststm32
board = nucleo_f446re
framework = arduino
lib_deps = ${env.lib_deps}
build_flags = -std=c++17  -Os -g2 -Wunused-variable ; -DDIAG_LOOPTIMES ; -DDIAG_IO 
monitor_speed = 115200
monitor_echo = yes

[env:Teensy3_2]
platform = teensy
board = teensy31
framework = arduino
build_flags = -std=c++17  -Os -g2
lib_deps = ${env.lib_deps}
lib_ignore = NativeEthernet

[env:Teensy3_5]
platform = teensy
board = teensy35
framework = arduino
build_flags = -std=c++17  -Os -g2
lib_deps = ${env.lib_deps}
lib_ignore = NativeEthernet

[env:Teensy3_6]
platform = teensy
board = teensy36
framework = arduino
build_flags = -std=c++17  -Os -g2
lib_deps = ${env.lib_deps}
lib_ignore = NativeEthernet

[env:Teensy4_0]
platform = teensy
board = teensy40
framework = arduino
build_flags = -std=c++17  -Os -g2
lib_deps = ${env.lib_deps}
lib_ignore = NativeEthernet

[env:Teensy4_1]
platform = teensy
board = teensy41
framework = arduino
build_flags = -std=c++17  -Os -g2
lib_deps = ${env.lib_deps}
lib_ignore =