# # Marlin Firmware # PlatformIO Configuration File # ################################# # # STM32F4 Architecture # # Naming Example: STM32F401RGT6 # # F : Foundation (sometimes High Performance F2/F4) # 4 : Cortex M4 core (0:M0, 1-2:M3, 3-4:M4, 7:M7) # 01 : Line/Features # R : 64 or 66 pins (T:36, C:48 or 49, M:81, V:100, Z:144, I:176) # G : 1024KB Flash-memory (B:128KB, C:256KB, D:384KB, E:512KB) # T : LQFP package # 6 : -40...85°C (7: ...105°C) # ################################# # # ARMED (STM32) # [env:ARMED] extends = common_stm32 board = armed_v1 build_flags = ${common_stm32.build_flags} -O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing # # STM32F401VE # 'STEVAL-3DP001V1' STM32F401VE board - https://www.st.com/en/evaluation-tools/steval-3dp001v1.html # [env:STM32F401VE_STEVAL] extends = stm32_variant board = marlin_STEVAL_STM32F401VE build_flags = ${stm32_variant.build_flags} -DSTM32F401xE -DDISABLE_GENERIC_SERIALUSB -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS # # STM32F401RC # [env:FYSETC_CHEETAH_V20] extends = stm32_variant board = marlin_FYSETC_CHEETAH_V20 board_build.offset = 0x8000 build_flags = ${stm32_variant.build_flags} -DSTM32F401xC upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE" # # FLYF407ZG # [env:FLYF407ZG] extends = stm32_variant board = marlin_STM32F407ZGT6 board_build.variant = MARLIN_FLY_F407ZG board_build.offset = 0x8000 upload_protocol = dfu # # FYSETC S6 (STM32F446RET6 ARM Cortex-M4) # [env:FYSETC_S6] extends = stm32_variant board = marlin_fysetc_s6 board_build.offset = 0x10000 board_upload.offset_address = 0x08010000 build_flags = ${stm32_variant.build_flags} -DHAL_PCD_MODULE_ENABLED debug_tool = stlink upload_protocol = dfu upload_command = dfu-util -a 0 -s 0x08010000:leave -D "$SOURCE" # # FYSETC S6 new bootloader # [env:FYSETC_S6_8000] extends = env:FYSETC_S6 board = marlin_fysetc_s6 board_build.offset = 0x8000 board_upload.offset_address = 0x08008000 upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE" # # STM32F407VET6 with RAMPS-like shield # 'Black' STM32F407VET6 board - https://wiki.stm32duino.com/index.php?title=STM32F407 # Shield - https://github.com/jmz52/Hardware # [env:STM32F407VE_black] extends = stm32_variant board = marlin_blackSTM32F407VET6 build_flags = ${stm32_variant.build_flags} -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS # # STM32F407VET6 Opulo Lumen REV3 # [env:Opulo_Lumen_REV3] extends = stm32_variant board = marlin_opulo_lumen_rev3 build_flags = ${stm32_variant.build_flags} -DARDUINO_BLACK_F407VE -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS extra_scripts = ${stm32_variant.extra_scripts} # # Anet ET4-MB_V1.x/ET4P-MB_V1.x (STM32F407VGT6 ARM Cortex-M4) # For use with with davidtgbe's OpenBLT bootloader https://github.com/davidtgbe/openblt/releases # Comment out board_build.offset = 0x10000 if you don't plan to use OpenBLT/flashing directly to 0x08000000. # [env:Anet_ET4_OpenBLT] extends = stm32_variant board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_F4x7Vx board_build.encrypt_mks = firmware.srec board_build.offset = 0x10000 board_upload.offset_address = 0x08010000 build_flags = ${stm32_variant.build_flags} -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 extra_scripts = ${stm32_variant.extra_scripts} buildroot/share/PlatformIO/scripts/openblt.py debug_tool = jlink upload_protocol = jlink # # BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4) # [env:BIGTREE_SKR_PRO] extends = stm32_variant board = marlin_BigTree_SKR_Pro board_build.offset = 0x8000 build_flags = ${stm32_variant.build_flags} -DSTM32F407_5ZX debug_tool = stlink upload_protocol = stlink # # BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4) with USB Flash Drive Support # [env:BIGTREE_SKR_PRO_usb_flash_drive] extends = env:BIGTREE_SKR_PRO platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} -DSTM32F407_5ZX build_unflags = ${env:BIGTREE_SKR_PRO.build_unflags} -DUSBCON -DUSBD_USE_CDC # # BigTreeTech E3 RRF (STM32F407VGT6 ARM Cortex-M4) # [env:BIGTREE_E3_RRF] extends = stm32_variant board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_BIGTREE_E3_RRF board_build.offset = 0x8000 build_flags = ${stm32_variant.build_flags} -DSTM32F407_5VX -DMF_RX_BUFFER_SIZE=255 -DMF_TX_BUFFER_SIZE=255 # # Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4) # [env:BIGTREE_GTR_V1_0] extends = stm32_variant board = marlin_BigTree_GTR_v1 board_build.offset = 0x8000 build_flags = ${stm32_variant.build_flags} -DSTM32F407IX # # Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4) with USB Flash Drive Support # [env:BIGTREE_GTR_V1_0_usb_flash_drive] extends = env:BIGTREE_GTR_V1_0 platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} -DSTM32F407IX build_unflags = ${env:BIGTREE_GTR_V1_0.build_unflags} -DUSBCON -DUSBD_USE_CDC # # BigTreeTech BTT002 V1.0 (STM32F407VGT6 ARM Cortex-M4) # [env:BIGTREE_BTT002] extends = stm32_variant board = marlin_BigTree_BTT002 board_build.offset = 0x8000 build_flags = ${stm32_variant.build_flags} -DSTM32F407_5VX -DHAVE_HWSERIAL2 -DHAVE_HWSERIAL3 -DPIN_SERIAL2_RX=PD_6 -DPIN_SERIAL2_TX=PD_5 # # BigTreeTech BTT002 V1.x with 512k of flash (STM32F407VET6 ARM Cortex-M4) # [env:BIGTREE_BTT002_VET6] extends = env:BIGTREE_BTT002 board = marlin_BigTree_BTT002_VET6 # # BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Flash Drive Support # [env:BIGTREE_SKR_2] extends = stm32_variant platform_packages = ${stm_flash_drive.platform_packages} board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_F4x7Vx board_build.offset = 0x8000 board_upload.offset_address = 0x08008000 build_flags = ${stm_flash_drive.build_flags} -DUSE_USBHOST_HS -DUSE_USB_HS_IN_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8 upload_protocol = stlink # # BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Media Share Support # [env:BIGTREE_SKR_2_USB] extends = env:BIGTREE_SKR_2 build_flags = ${env:BIGTREE_SKR_2.build_flags} -DUSBD_USE_CDC_MSC build_unflags = ${env:BIGTREE_SKR_2.build_unflags} -DUSBD_USE_CDC [env:BIGTREE_SKR_2_USB_debug] extends = env:BIGTREE_SKR_2_USB build_flags = ${env:BIGTREE_SKR_2_USB.build_flags} -O0 build_unflags = ${env:BIGTREE_SKR_2_USB.build_unflags} -Os -NDEBUG # # Bigtreetech SKR V2.0 F429 (STM32F429VGT6 ARM Cortex-M4) with USB Flash Drive Support # [env:BIGTREE_SKR_2_F429] extends = env:BIGTREE_SKR_2 board = marlin_STM32F429VGT6 # # BigTreeTech SKR V2.0 F429 (STM32F429VGT6 ARM Cortex-M4) with USB Media Share Support # [env:BIGTREE_SKR_2_F429_USB] extends = env:BIGTREE_SKR_2_F429 build_flags = ${env:BIGTREE_SKR_2_F429.build_flags} -DUSBD_USE_CDC_MSC build_unflags = ${env:BIGTREE_SKR_2_F429.build_unflags} -DUSBD_USE_CDC [env:BIGTREE_SKR_2_F429_USB_debug] extends = env:BIGTREE_SKR_2_F429_USB build_flags = ${env:BIGTREE_SKR_2_F429_USB.build_flags} -O0 build_unflags = ${env:BIGTREE_SKR_2_F429_USB.build_unflags} -Os -NDEBUG # # BigTreeTech Octopus V1.0/1.1 / Octopus Pro V1.0 (STM32F446ZET6 ARM Cortex-M4) # [env:BIGTREE_OCTOPUS_V1] extends = stm32_variant board = marlin_BigTree_Octopus_v1 board_build.offset = 0x8000 board_upload.offset_address = 0x08008000 debug_tool = stlink upload_protocol = stlink build_flags = ${stm32_variant.build_flags} -DSTM32F446_5VX -DUSE_USB_HS_IN_FS # # BigTreeTech Octopus V1.0/1.1 / Octopus Pro V1.0 (STM32F446ZET6 ARM Cortex-M4) with USB Flash Drive Support # [env:BIGTREE_OCTOPUS_V1_USB] extends = env:BIGTREE_OCTOPUS_V1 platform_packages = ${stm_flash_drive.platform_packages} build_unflags = -DUSBD_USE_CDC build_flags = ${stm_flash_drive.build_flags} -DSTM32F446_5VX -DUSE_USB_HS_IN_FS -DUSE_USBHOST_HS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC # # BigTreeTech Octopus Pro V1.0 (STM32F429ZGT6 ARM Cortex-M4) # [env:BIGTREE_OCTOPUS_PRO_V1_F429] extends = stm32_variant board = marlin_BigTree_Octopus_Pro_v1_F429 board_build.offset = 0x8000 board_upload.offset_address = 0x08008000 debug_tool = stlink upload_protocol = stlink build_flags = ${stm32_variant.build_flags} -DUSE_USB_HS_IN_FS # # BigTreeTech Octopus Pro V1.0 (STM32F429ZGT6 ARM Cortex-M4) with USB Flash Drive Support # [env:BIGTREE_OCTOPUS_PRO_V1_F429_USB] extends = env:BIGTREE_OCTOPUS_PRO_V1_F429 platform_packages = ${stm_flash_drive.platform_packages} build_unflags = -DUSBD_USE_CDC build_flags = ${stm_flash_drive.build_flags} -DUSE_USB_HS_IN_FS -DUSE_USBHOST_HS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC # # Lerdge base # [lerdge_common] extends = stm32_variant board = marlin_STM32F407ZGT6 board_build.variant = MARLIN_LERDGE board_build.crypt_lerdge = firmware.bin board_build.offset = 0x10000 build_flags = ${stm32_variant.build_flags} -DSTM32F4 -DSTM32F4xx -DTARGET_STM32F4 -DDISABLE_GENERIC_SERIALUSB -DARDUINO_ARCH_STM32 -DLERDGE_TFT35 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 extra_scripts = ${stm32_variant.extra_scripts} buildroot/share/PlatformIO/scripts/lerdge.py # # Lerdge X (STM32F407VE) # [env:LERDGEX] extends = lerdge_common board_build.crypt_lerdge = Lerdge_X_firmware_force.bin # # Lerdge X with USB Flash Drive Support # [env:LERDGEX_usb_flash_drive] extends = env:LERDGEX platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags} # # Lerdge S (STM32F407ZG) # [env:LERDGES] extends = lerdge_common board_build.crypt_lerdge = Lerdge_firmware_force.bin # # Lerdge S with USB Flash Drive Support # [env:LERDGES_usb_flash_drive] extends = env:LERDGES platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags} # # Lerdge K (STM32F407ZG) # [env:LERDGEK] extends = lerdge_common board_build.crypt_lerdge = Lerdge_K_firmware_force.bin build_flags = ${lerdge_common.build_flags} -DLERDGEK # # Lerdge K with USB Flash Drive Support # [env:LERDGEK_usb_flash_drive] extends = env:LERDGEK platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags} # # RUMBA32 # [env:rumba32] extends = stm32_variant board = rumba32_f446ve board_build.variant = MARLIN_F446VE board_build.offset = 0x0000 build_flags = ${stm32_variant.build_flags} -Os -DHAL_PCD_MODULE_ENABLED -DDISABLE_GENERIC_SERIALUSB -DHAL_UART_MODULE_ENABLED -DTIMER_SERIAL=TIM9 monitor_speed = 500000 upload_protocol = dfu # # MKS Robin Pro V2 # [env:mks_robin_pro2] extends = stm32_variant platform_packages = ${stm_flash_drive.platform_packages} board = genericSTM32F407VET6 board_build.variant = MARLIN_F4x7Vx board_build.offset = 0x0000 board_upload.offset_address = 0x08000000 build_flags = ${stm_flash_drive.build_flags} build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC debug_tool = jlink upload_protocol = jlink # # This I2C1(PB6:I2C1_SCL PB7:I2C1_SDA) is used by Robin Nano V3 # [stm32f4_I2C1] build_flags = -DPIN_WIRE_SCL=PB6 -DPIN_WIRE_SDA=PB7 # # MKS Robin Nano V3 # [env:mks_robin_nano_v3] extends = stm32_variant board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_F4x7Vx board_build.offset = 0xC000 board_upload.offset_address = 0x0800C000 board_build.rename = Robin_nano_v3.bin build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags} -DHAL_PCD_MODULE_ENABLED debug_tool = jlink upload_protocol = jlink # # MKS Robin Nano V3 with USB Flash Drive Support # Currently, using a STM32duino fork, until USB Host get merged # [env:mks_robin_nano_v3_usb_flash_drive] extends = env:mks_robin_nano_v3 platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} -DUSE_USBHOST_HS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSE_USB_HS_IN_FS # # MKS Robin Nano V3 with USB Flash Drive Support and Shared Media # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged # [env:mks_robin_nano_v3_usb_flash_drive_msc] extends = env:mks_robin_nano_v3_usb_flash_drive build_flags = ${env:mks_robin_nano_v3_usb_flash_drive.build_flags} -DUSBD_USE_CDC_MSC build_unflags = -DUSBD_USE_CDC # # MKS Robin Nano V3_1 # [env:mks_robin_nano_v3_1] extends = env:mks_robin_nano_v3 board = marlin_STM32F407VET6_CCM # # MKS Robin Nano V3.1 with USB Flash Drive Support # Currently, using a STM32duino fork, until USB Host get merged # [env:mks_robin_nano_v3_1_usb_flash_drive] extends = env:mks_robin_nano_v3_usb_flash_drive board = marlin_STM32F407VET6_CCM # # MKS Robin Nano V3.1 with USB Flash Drive Support and Shared Media # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged # [env:mks_robin_nano_v3_1_usb_flash_drive_msc] extends = env:mks_robin_nano_v3_usb_flash_drive_msc board = marlin_STM32F407VET6_CCM # # MKS Eagle # 5 TMC2209 uart mode on board # [env:mks_eagle] extends = stm32_variant board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_F4x7Vx board_build.offset = 0xC000 board_upload.offset_address = 0x0800C000 board_build.rename = mks_eagle.bin build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags} -DHAL_PCD_MODULE_ENABLED -DSTM32_FLASH_SIZE=512 debug_tool = jlink upload_protocol = jlink # # MKS Eagle with USB Flash Drive Support # Currently, using a STM32duino fork, until USB Host get merged # [env:mks_eagle_usb_flash_drive] extends = env:mks_eagle platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} -DUSE_USBHOST_HS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSE_USB_HS_IN_FS # # MKS Eagle with USB Flash Drive Support and Shared Media # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged # [env:mks_eagle_usb_flash_drive_msc] extends = env:mks_eagle_usb_flash_drive build_flags = ${env:mks_eagle_usb_flash_drive.build_flags} -DUSBD_USE_CDC_MSC build_unflags = -DUSBD_USE_CDC # # This I2C1(PB8:I2C1_SCL PB9:I2C1_SDA) is used by MKS Monster8 # [stm32f4_I2C1_CAN] build_flags = -DPIN_WIRE_SCL=PB8 -DPIN_WIRE_SDA=PB9 # # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) # [env:mks_monster8] extends = stm32_variant board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_F4x7Vx board_build.offset = 0xC000 board_upload.offset_address = 0x0800C000 board_build.rename = mks_monster8.bin build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1_CAN.build_flags} -DHAL_PCD_MODULE_ENABLED -DTIMER_SERIAL=TIM4 -DSTM32_FLASH_SIZE=512 debug_tool = jlink upload_protocol = jlink # # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) with USB Flash Drive Support # Currently, using a STM32duino fork, until USB Host get merged # [env:mks_monster8_usb_flash_drive] extends = env:mks_monster8 platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1_CAN.build_flags} -DUSE_USBHOST_HS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSE_USB_HS_IN_FS # # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) with USB Flash Drive Support and Shared Media # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged # [env:mks_monster8_usb_flash_drive_msc] extends = env:mks_monster8_usb_flash_drive build_flags = ${env:mks_monster8_usb_flash_drive.build_flags} -DUSBD_USE_CDC_MSC build_unflags = -DUSBD_USE_CDC # # TH3D EZBoard v2.0 (STM32F405RGT6 ARM Cortex-M4) # [env:TH3D_EZBoard_V2] extends = stm32_variant board = genericSTM32F405RG board_build.variant = MARLIN_TH3D_EZBOARD_V2 board_build.encrypt_mks = firmware.bin board_build.offset = 0xC000 board_upload.offset_address = 0x0800C000 build_flags = ${stm32_variant.build_flags} -DHSE_VALUE=12000000U -O0 debug_tool = stlink upload_protocol = stlink extra_scripts = ${stm32_variant.extra_scripts} buildroot/share/PlatformIO/scripts/openblt.py # # BOARD_MKS_ROBIN_NANO_V1_3_F4 # - MKS Robin Nano V1.3 (STM32F407VET6) 5 Pololu Plug # - MKS Robin Nano-S V1.3 (STM32F407VET6) 4 TMC2225 + 1 Pololu Plug # [env:mks_robin_nano_v1_3_f4] extends = stm32_variant board = marlin_STM32F407VGT6_CCM board_build.variant = MARLIN_F4x7Vx board_build.offset = 0x8000 board_upload.offset_address = 0x08008000 board_build.rename = Robin_nano35.bin build_flags = ${stm32_variant.build_flags} -DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3 -DSTM32_FLASH_SIZE=512 -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2 -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC debug_tool = jlink upload_protocol = jlink # # Artillery Ruby # [env:Artillery_Ruby] extends = common_stm32 board = marlin_Artillery_Ruby build_flags = ${common_stm32.build_flags} -DSTM32F401xC -DTARGET_STM32F4 -DDISABLE_GENERIC_SERIALUSB -DARDUINO_ARCH_STM32 -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS -DUSB_PRODUCT=\"Artillery_3D_Printer\" -DFLASH_DATA_SECTOR=1U -DFLASH_BASE_ADDRESS=0x08004000 extra_scripts = ${common_stm32.extra_scripts} pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py # # Ender-3 S1 STM32F401RC_creality # [env:STM32F401RC_creality] extends = stm32_variant board = genericSTM32F401RC board_build.variant = MARLIN_CREALITY_STM32F401RC board_build.offset = 0x10000 board_upload.offset_address = 0x08010000 build_flags = ${stm32_variant.build_flags} -DMCU_STM32F401RC -DSTM32F4 -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC extra_scripts = ${stm32_variant.extra_scripts} pre:buildroot/share/PlatformIO/scripts/random-bin.py monitor_speed = 115200 [env:STM32F401RC_creality_jlink] extends = env:STM32F401RC_creality debug_tool = jlink upload_protocol = jlink [env:STM32F401RC_creality_stlink] extends = env:STM32F401RC_creality debug_tool = stlink upload_protocol = stlink