#
# Marlin Firmware
# PlatformIO Configuration File
#

#################################
#                               #
#       AVR Architecture        #
#                               #
#################################

#
# AVR (8-bit) Common Environment values
#
[common_avr8]
platform          = atmelavr@~3.4
build_flags       = ${common.build_flags} -Wl,--relax
board_build.f_cpu = 16000000L
build_src_filter  = ${common.default_src_filter} +<src/HAL/AVR>

#
# ATmega2560
#
[env:mega2560]
extends  = common_avr8
board    = megaatmega2560

#
# ATmega2560 with extended pins 70-85 defined
# BOARD_BQ_ZUM_MEGA_3D
# BOARD_ULTIMAIN_2
# BOARD_MIGHTYBOARD_REVE
# BOARD_EINSTART_S
#
[env:mega2560ext]
extends             = env:mega2560
board_build.variant = MARLIN_MEGA_EXTENDED
extra_scripts       = ${common.extra_scripts}
                      pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py

#
# ATmega1280
#
[env:mega1280]
extends  = common_avr8
board    = megaatmega1280

#
# MightyBoard AVR with extended pins
#
[mega_extended_optimized]
extends             = common_avr8
board_build.variant = MARLIN_MEGA_EXTENDED
extra_scripts       = ${env:mega2560ext.extra_scripts}
upload_speed        = 57600
build_flags         = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues

#
# MightyBoard ATmega1280
#
[env:MightyBoard1280]
extends  = mega_extended_optimized
board    = megaatmega1280

#
# MightyBoard ATmega2560
#
[env:MightyBoard2560]
extends  = mega_extended_optimized
board    = megaatmega2560

#
# RAMBo
#
[env:rambo]
extends  = common_avr8
board    = reprap_rambo

#
# FYSETC F6 V1.3 / V1.4
#
[env:FYSETC_F6]
extends  = common_avr8
board    = fysetc_f6_13

#
# Sanguinololu (ATmega644p)
#
[env:sanguino644p]
extends  = common_avr8
board    = sanguino_atmega644p

#
# Sanguinololu (ATmega1284p)
#
[env:sanguino1284p]
extends                   = common_avr8
board                     = sanguino_atmega1284p
board_upload.maximum_size = 126976

#
# Sanguinololu (ATmega1284p stock bootloader with tuned flags)
#

[tuned_1284p]
build_flags = ${common.build_flags} -fno-tree-scev-cprop -fno-split-wide-types -Wl,--relax -mcall-prologues

[env:sanguino1284p_optimized]
extends     = env:sanguino1284p
build_flags = ${tuned_1284p.build_flags}

#
# Melzi and clones (ATmega1284p)
#
[env:melzi]
extends      = env:sanguino1284p
upload_speed = 57600

[env:melzi_optimized]
extends      = env:sanguino1284p_optimized
upload_speed = 57600

#
# Melzi and clones (Optiboot bootloader)
#
[env:melzi_optiboot]
extends      = common_avr8
board        = sanguino_atmega1284p
upload_speed = 115200
board_upload.maximum_size = 130048

#
# Melzi and clones (Zonestar Melzi2 with tuned flags)
#
[env:melzi_optiboot_optimized]
extends     = env:melzi_optiboot
build_flags = ${tuned_1284p.build_flags}