#
# Marlin Firmware
# PlatformIO Configuration File
#

#################################
#
# STM32G0 Architecture
#
# Naming Example: STM32G0B1RET6
#
#   G : Foundation
#   0 : Cortex M0+ core (0:M0, 1-2:M3, 3-4:M4, 7:M7)
#  B1 : Line/Features
#   R : 64 pins  (R:64 or 66, F:20)
#   E : 512KB Flash-memory  (B:128KB C:256KB, D:384KB, E:512KB, G:1024KB)
#   T : LQFP package
#   6 : -40...85°C   (7: ...105°C)
#
#################################

#
# This I2C2(PB3:I2C2_SCL PB4:I2C2_SDA) is used by EBB42 V1.1
#
[stm32g0_I2C2]
build_flags = -DPIN_WIRE_SCL=PB3 -DPIN_WIRE_SDA=PB4

#
# BigTreeTech EBB42 V1.1 (STM32G0B1CBT6 ARM Cortex-M0+)
# This board is being used to control Filament extruders. This is not supported for 3D printing, as it has no kinematics control
#
[env:BTT_EBB42_V1_1_filament_extruder]
extends                     = stm32_variant
platform                    = ststm32@~14.1.0
platform_packages           = framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/main.zip
board                       = marlin_BTT_EBB42_V1_1
board_build.offset          = 0x0000
board_upload.offset_address = 0x08000000
build_flags                 = ${stm32_variant.build_flags} ${stm32g0_I2C2.build_flags}
upload_protocol             = stlink
debug_tool                  = stlink

#
# BigTreeTech SKR mini E3 V3.0 (STM32G0B1RET6 ARM Cortex-M0+)
#
[env:STM32G0B1RE_btt]
extends                     = stm32_variant
platform                    = ststm32@~14.1.0
platform_packages           = framework-arduinoststm32@https://github.com/stm32duino/Arduino_Core_STM32/archive/main.zip
board                       = marlin_STM32G0B1RE
board_build.offset          = 0x2000
board_upload.offset_address = 0x08002000
build_flags                 = ${stm32_variant.build_flags}
                            -DPIN_SERIAL4_RX=PC_11 -DPIN_SERIAL4_TX=PC_10
                            -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
                            -DTIMER_SERVO=TIM3 -DTIMER_TONE=TIM4
                            -DSTEP_TIMER_IRQ_PRIO=0
upload_protocol             = stlink
debug_tool                  = stlink

#
# Custom upload to SD via Marlin with Binary Protocol
#
[env:STM32G0B1RE_btt_xfer]
extends         = env:STM32G0B1RE_btt
build_flags     = ${env:STM32G0B1RE_btt.build_flags} -DXFER_BUILD
extra_scripts   = ${env:STM32G0B1RE_btt.extra_scripts}
                  pre:buildroot/share/scripts/upload.py
upload_protocol = custom