#
# Marlin Firmware
# PlatformIO Configuration File
#
# For detailed documentation with EXAMPLES:
#
# http://docs.platformio.org/en/latest/projectconf.html
#

# Automatic targets - enable auto-uploading
# targets = upload

#
# By default platformio build will abort after 5 errors.
# Remove '-fmax-errors=5' from build_flags below to see all.
#

[platformio]
src_dir     = Marlin
build_dir   = .pioenvs
lib_dir     = .piolib
libdeps_dir = .piolibdeps
default_envs = megaatmega2560

[common]
build_flags = -fmax-errors=5
  -g
  -ggdb
lib_deps =
  https://github.com/MarlinFirmware/U8glib-HAL/archive/dev.zip
  LiquidCrystal_I2C@1.1.2
  TMC2130Stepper
  https://github.com/teemuatlut/TMC2208Stepper/archive/v0.1.1.zip
  Adafruit NeoPixel@1.1.3
  https://github.com/lincomatic/LiquidTWI2/archive/30aa480.zip
  https://github.com/ameyer/Arduino-L6470/archive/master.zip
  https://github.com/MarlinFirmware/TMC26XStepper/archive/refs/tags/0.1.1.zip

#################################
#                               #
#   Unique Core Architectures   #
#                               #
#  Add a new "env" below if no  #
# entry has values suitable to  #
#   build for a given board.    #
#                               #
#################################

#
# ATmega2560
#
[env:megaatmega2560]
platform          = atmelavr
framework         = arduino
board             = megaatmega2560
build_flags       = ${common.build_flags}
board_build.f_cpu = 16000000L
lib_deps          = ${common.lib_deps}
monitor_speed     = 250000

#
# ATmega1280
#
[env:megaatmega1280]
platform          = atmelavr
framework         = arduino
board             = megaatmega1280
build_flags       = ${common.build_flags}
board_build.f_cpu = 16000000L
lib_deps          = ${common.lib_deps}
monitor_speed     = 250000

#
# AT90USB1286 boards using CDC bootloader
# - BRAINWAVE
# - BRAINWAVE_PRO
# - SAV_MKI
# - TEENSYLU
#
[env:at90USB1286_CDC]
platform      = teensy
framework     = arduino
board         = at90USB1286
build_flags   = ${common.build_flags}
lib_deps      = ${common.lib_deps}
lib_ldf_mode  = deep+
extra_scripts = pre:buildroot/share/atom/create_custom_upload_command_CDC.py

#
# AT90USB1286 boards using DFU bootloader
# - PrintrBoard
# - PrintrBoard Rev.F
# - ? 5DPRINT ?
#
[env:at90USB1286_DFU]
platform      = teensy
framework     = arduino
board         = at90USB1286
build_flags   = ${common.build_flags}
lib_deps      = ${common.lib_deps}
lib_ldf_mode  = deep+
extra_scripts = pre:buildroot/share/atom/create_custom_upload_command_DFU.py

#
# Melzi and clones (ATmega1284p)
#
[env:melzi]
platform      = atmelavr
framework     = arduino
board         = sanguino_atmega1284p
build_flags   = ${common.build_flags}
upload_speed  = 57600
lib_deps      = ${common.lib_deps}
monitor_speed = 250000

#
# Melzi and clones (Optiboot bootloader)
#
[env:melzi_optiboot]
platform      = atmelavr
framework     = arduino
board         = sanguino_atmega1284p
build_flags   = ${common.build_flags}
upload_speed  = 115200
lib_deps      = ${common.lib_deps}
monitor_speed = 250000

#
# RAMBo
#
[env:rambo]
platform          = atmelavr
framework         = arduino
board             = reprap_rambo
build_flags       = ${common.build_flags}
board_build.f_cpu = 16000000L
lib_deps          = ${common.lib_deps}
monitor_speed     = 250000

#
# Sanguinololu (ATmega644p)
#
[env:sanguino_atmega644p]
platform      = atmelavr
framework     = arduino
board         = sanguino_atmega644p
build_flags   = ${common.build_flags}
lib_deps      = ${common.lib_deps}
monitor_speed = 250000

#
# Sanguinololu (ATmega1284p)
#
[env:sanguino_atmega1284p]
platform      = atmelavr
framework     = arduino
board         = sanguino_atmega1284p
build_flags   = ${common.build_flags}
lib_deps      = ${common.lib_deps}
monitor_speed = 250000

#
# Teensy++ 2.0
#
[env:teensy20]
platform          = teensy
framework         = arduino
board             = teensy20pp
build_flags       = ${common.build_flags}
#board_build.f_cpu = 20000000L     ; Bug in Arduino framework disallows boards running at 20Mhz
lib_deps          = ${common.lib_deps}
lib_ldf_mode      = deep+
monitor_speed     = 250000
