#
# Marlin Firmware
# PlatformIO Configuration File
#

#################################
#
# STM32H7 Architecture
#
# Naming Example: STM32H743IIT6
#
#   H : High Performance
#   7 : Cortex M7 core (0:M0, 1-2:M3, 3-4:M4, 7:M7)
#  43 : Line/Features
#   I : 176 pins (T:36, C:48 or 49, M:81, V:100, Z:144, I:176)
#   I : 2048KB Flash-memory (C:256KB, D:384KB, E:512KB, G:1024KB, I:2048KB)
#   T : LQFP package
#   6 : -40...85°C   (7: ...105°C)
#
#################################

#
# BigTreeTech SKR SE BX V2.0 / V3.0 (STM32H743IIT6 ARM Cortex-M7)
#
[env:BTT_SKR_SE_BX]
extends            = stm32_variant
# framework-arduinoststm32 uses biqu-bx-workaround branch
platform_packages  = framework-arduinoststm32@https://github.com/thisiskeithb/Arduino_Core_STM32/archive/8b3522051a.zip
board              = marlin_BTT_SKR_SE_BX
board_build.offset = 0x20000
build_flags        = ${stm32_variant.build_flags} ${stm_flash_drive.build_flags}
                     -DUSE_USBHOST_HS
                     -DUSE_USB_HS_IN_FS
                     -DHAL_DMA2D_MODULE_ENABLED
                     -DHAL_LTDC_MODULE_ENABLED
                     -DHAL_SDRAM_MODULE_ENABLED
                     -DHAL_QSPI_MODULE_ENABLED
                     -DHAL_MDMA_MODULE_ENABLED
                     -DHAL_SD_MODULE_ENABLED
upload_protocol    = cmsis-dap
debug_tool         = cmsis-dap

#
# BigTreeTech STM32H743Vx ARM Cortex-M7 Common
#
[STM32H743Vx_btt]
extends                     = stm32_variant
platform                    = ststm32@15.4.1
platform_packages           = framework-arduinoststm32@~4.20200.220530
board_build.offset          = 0x20000
board_upload.offset_address = 0x08020000
build_flags                 = ${stm32_variant.build_flags}
                              -DPIN_SERIAL1_TX=PA_9 -DPIN_SERIAL1_RX=PA_10
                              -DPIN_SERIAL3_TX=PD_8 -DPIN_SERIAL3_RX=PD_9
                              -DPIN_SERIAL4_TX=PA_0 -DPIN_SERIAL4_RX=PA_1
                              -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
                              -DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
                              -DSTEP_TIMER_IRQ_PRIO=0
                              -DD_CACHE_DISABLED
upload_protocol             = cmsis-dap
debug_tool                  = cmsis-dap

#
# BigTreeTech SKR V3.0 / V3.0 EZ (STM32H743VIT6 ARM Cortex-M7)
#
[env:STM32H743VI_btt]
extends                     = STM32H743Vx_btt
board                       = marlin_STM32H743VI

#
# BigTreeTech STM32H723Vx ARM Cortex-M7 Common
#
[STM32H723Vx_btt]
extends                     = stm32_variant
platform                    = ststm32@15.4.1
platform_packages           = framework-arduinoststm32@~4.20200.220530
board_build.offset          = 0x20000
board_upload.offset_address = 0x08020000
build_flags                 = ${stm32_variant.build_flags}
                              -DPIN_SERIAL1_TX=PA_9 -DPIN_SERIAL1_RX=PA_10
                              -DPIN_SERIAL2_TX=PD_5 -DPIN_SERIAL2_RX=PD_6
                              -DPIN_SERIAL3_TX=PD_8 -DPIN_SERIAL3_RX=PD_9
                              -DPIN_SERIAL4_TX=PA_0 -DPIN_SERIAL4_RX=PA_1
                              -DPIN_SERIAL7_TX=PE_8 -DPIN_SERIAL7_RX=PE_7
                              -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
                              -DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
                              -DSTEP_TIMER_IRQ_PRIO=0
                              -DRCC_PERIPHCLK_I2C35=RCC_PERIPHCLK_I2C5
                              -DUSE_USB_HS -DUSE_USB_HS_IN_FS
                              -DD_CACHE_DISABLED
                              -UI2C5_BASE
upload_protocol             = cmsis-dap
debug_tool                  = cmsis-dap

#
# BigTreeTech SKR V3.0 / SKR V3.0 EZ (STM32H723VGT6 ARM Cortex-M7)
#
[env:STM32H723VG_btt]
extends                     = STM32H723Vx_btt
board                       = marlin_STM32H723VG

#
# BigTreeTech STM32H723Zx ARM Cortex-M7 Common
#
[STM32H723Zx_btt]
extends                     = stm32_variant
platform                    = ststm32@15.4.1
platform_packages           = framework-arduinoststm32@~4.20200.220530
board_build.offset          = 0x20000
board_upload.offset_address = 0x08020000
build_flags                 = ${stm32_variant.build_flags}
                              -DPIN_SERIAL1_TX=PA_9 -DPIN_SERIAL1_RX=PA_10
                              -DPIN_SERIAL2_TX=PD_5 -DPIN_SERIAL2_RX=PD_6
                              -DPIN_SERIAL3_TX=PD_8 -DPIN_SERIAL3_RX=PD_9
                              -DPIN_SERIAL4_TX=PA_0 -DPIN_SERIAL4_RX=PA_1
                              -DPIN_SERIAL7_TX=PE_8 -DPIN_SERIAL7_RX=PE_7
                              -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
                              -DTIMER_SERVO=TIM5 -DTIMER_TONE=TIM2
                              -DSTEP_TIMER_IRQ_PRIO=0
                              -DRCC_PERIPHCLK_I2C35=RCC_PERIPHCLK_I2C5
                              -DUSE_USB_HS -DUSE_USB_HS_IN_FS
                              -DD_CACHE_DISABLED
                              -UI2C5_BASE
upload_protocol             = cmsis-dap
debug_tool                  = cmsis-dap

#
# BigTreeTech Octopus Pro V1.0.1/1.1 / Octopus Max EZ V1.0 / Manta M8P V2.0 (STM32H723ZET6 ARM Cortex-M7)
#
[env:STM32H723ZE_btt]
extends                     = STM32H723Zx_btt
board                       = marlin_STM32H723ZE

#
# BigTreeTech Kraken V1.0 (STM32H723ZGT6 ARM Cortex-M7)
#
[env:STM32H723ZG_btt]
extends                     = STM32H723Zx_btt
board                       = marlin_STM32H723ZG