# # Marlin Firmware # PlatformIO Configuration File # ################################# # # STM32F1 Architecture with unified STM32 HAL # # Naming Example: STM32F103RCT6 # # F : Foundation (sometimes High Performance F2/F4) # 1 : Cortex M3 core (0:M0, 1-2:M3, 3-4:M4, 7:M7) # 03 : Line/Features # R : 64 or 66 pins (T:36, C:48, V:100, Z:144, I:176) # C : 256KB Flash-memory (B: 128KB, D:384KB, E:512KB, G:1024KB) # T : LQFP package # 6 : -40...85°C (7: ...105°C) # ################################# [common_STM32F103RC_variant] extends = stm32_variant board = genericSTM32F103RC board_build.variant = MARLIN_F103Rx build_flags = ${stm32_variant.build_flags} -DDEBUG_LEVEL=0 monitor_speed = 115200 # # STM32F103RE # [env:STM32F103RE] extends = common_stm32 board = genericSTM32F103RE monitor_speed = 115200 # # STM32F103VE # [env:STM32F103VE] extends = common_stm32 board = genericSTM32F103VE monitor_speed = 115200 # # STM32F103ZE # [env:STM32F103ZE] extends = common_stm32 board = genericSTM32F103ZE monitor_speed = 115200 # # BigTreeTech SKR Mini V1.1 / SKR Mini E3 & MZ (STM32F103RCT6 ARM Cortex-M3) # # STM32F103RC_btt ............. RCT6 with 256K # STM32F103RC_btt_USB ......... RCT6 with 256K with USB Media Share Support # [env:STM32F103RC_btt] extends = common_STM32F103RC_variant build_flags = ${common_STM32F103RC_variant.build_flags} -DTIMER_SERVO=TIM5 board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 [env:STM32F103RC_btt_USB] extends = env:STM32F103RC_btt platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${env:STM32F103RC_btt.build_flags} -DUSE_USB_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC build_unflags = ${env:STM32F103RC_btt.build_unflags} -DUSBD_USE_CDC # # Panda Pi V2.9 - Standalone (STM32F103RC) # Headless, without direct Pi control, but potentially hosting OctoPrint, stepdaemon, etc. # [env:PANDA_PI_V29] extends = common_STM32F103RC_variant build_flags = ${common_STM32F103RC_variant.build_flags} -DTIMER_SERVO=TIM1 board_build.offset = 0x5000 board_upload.offset_address = 0x08005000 lib_deps = markyue/Panda_SoftMasterI2C@1.0.3 # # MKS Robin (STM32F103ZET6) # Uses HAL STM32 to support Marlin UI for TFT screen with optional touch panel # [env:mks_robin] extends = stm32_variant board = genericSTM32F103ZE board_build.variant = MARLIN_F103Zx board_build.encrypt_mks = Robin.bin board_build.offset = 0x7000 board_build.offset_address = 0x08007000 build_flags = ${stm32_variant.build_flags} -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC # # MKS Robin E3/E3D (STM32F103RCT6) with TMC2209 # [env:mks_robin_e3] extends = common_STM32F103RC_variant board_build.encrypt_mks = Robin_e3.bin board_build.offset = 0x5000 board_upload.offset_address = 0x08005000 build_flags = ${common_STM32F103RC_variant.build_flags} -DTIMER_SERVO=TIM5 -DDEFAULT_SPI=3 build_unflags = ${common_STM32F103RC_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC debug_tool = stlink # # Creality (STM32F103Rx) # [STM32F103Rx_creality] extends = stm32_variant board_build.variant = MARLIN_F103Rx board_build.offset = 0x7000 board_build.rename = firmware-{date}-{time}.bin board_upload.offset_address = 0x08007000 build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103RE -DHAL_SD_MODULE_ENABLED -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC monitor_speed = 115200 debug_tool = jlink upload_protocol = jlink # # Creality (STM32F103Rx) # With custom upload to SD via Marlin with binary protocol. # Requires Marlin with BINARY_FILE_TRANSFER already installed on the target board. # If CUSTOM_FIRMWARE_UPLOAD is also installed, Marlin will reboot the board to install the firmware. # Currently CUSTOM_FIRMWARE_UPLOAD must also be enabled to use 'xfer' build envs. # [STM32F103Rx_creality_xfer] extends = STM32F103Rx_creality build_flags = ${STM32F103Rx_creality.build_flags} -DXFER_BUILD extra_scripts = ${STM32F103Rx_creality.extra_scripts} pre:buildroot/share/scripts/upload.py upload_protocol = custom # # Creality 512K (STM32F103RE) # [env:STM32F103RE_creality] extends = STM32F103Rx_creality board = genericSTM32F103RE # # Creality 512K (STM32F103RE) with custom binary upload to SD (see above). # [env:STM32F103RE_creality_xfer] extends = STM32F103Rx_creality_xfer board = genericSTM32F103RE # # Creality 512K (STM32F103RE) for new 64KiB bootloader (CR-10 Smart Pro printer) # [env:STM32F103RE_creality_smartPro] extends = env:STM32F103RE_creality board_build.offset = 0x10000 board_upload.offset_address = 0x08010000 # # Trigorilla V0.0.6 (GD32F103) # modified version of env:STM32F103RE_creality # [env:trigorilla_v006] extends = env:STM32F103RE_creality board_build.offset = 0x8000 board_upload.offset_address = 0x08008000 board_build.rename = main_board_{date}_{time}.bin # # Creality 256K (STM32F103RC) # [env:STM32F103RC_creality] extends = STM32F103Rx_creality board = genericSTM32F103RC # # Creality 256K (STM32F103RC) with custom binary upload to SD (see above). # [env:STM32F103RC_creality_xfer] extends = STM32F103Rx_creality_xfer board = genericSTM32F103RC # # Creality 512K (STM32F103VE) # [env:STM32F103VE_creality] extends = STM32F103Rx_creality board = genericSTM32F103VE board_build.variant = MARLIN_F103Vx build_flags = ${STM32F103Rx_creality.build_flags} -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 # # BigTreeTech SKR Mini E3 V2.0 & DIP / SKR CR6 (STM32F103RET6 ARM Cortex-M3) # # STM32F103RE_btt ............. RET6 # STM32F103RE_btt_USB ......... RET6 with USB Media Share Support # [env:STM32F103RE_btt] extends = stm32_variant board = genericSTM32F103RE board_build.variant = MARLIN_F103Rx board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103RE -DHAL_SD_MODULE_ENABLED -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 monitor_speed = 115200 debug_tool = jlink upload_protocol = jlink [env:STM32F103RE_btt_USB] extends = env:STM32F103RE_btt platform_packages = ${stm_flash_drive.platform_packages} build_flags = ${env:STM32F103RE_btt.build_flags} -DUSE_USB_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC build_unflags = ${env:STM32F103RE_btt.build_unflags} -DUSBD_USE_CDC # # Mingda MPX_ARM_MINI # [env:mingda_mpx_arm_mini] extends = stm32_variant board = genericSTM32F103ZE board_build.variant = MARLIN_F103Zx board_build.offset = 0x10000 board_build.offset_address = 0x08010000 build_flags = ${stm32_variant.build_flags} -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC # # Malyan M200 (STM32F103CB) # [env:STM32F103CB_malyan] extends = common_stm32 board = malyanm200_f103cb build_flags = ${common_stm32.build_flags} -DHAL_PCD_MODULE_ENABLED -DDISABLE_GENERIC_SERIALUSB -DHAL_UART_MODULE_ENABLED build_src_filter = ${common_stm32.build_src_filter} + - # # FLYmaker FLY Mini (STM32F103RCT6) # [env:FLY_MINI] extends = stm32_variant board = genericSTM32F103RC board_build.variant = MARLIN_F103Rx board_build.offset = 0x5000 board_upload.offset_address = 0x08005000 build_flags = ${stm32_variant.build_flags} -DSS_TIMER=4 # # (STM32F103VE_robin) # [STM32F103VE_robin] extends = stm32_variant board = genericSTM32F103VE board_build.variant = MARLIN_F103Vx board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103VE -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2 -DSS_TIMER=4 [mks_robin_nano_v1v2_common] extends = STM32F103VE_robin board_build.encrypt_mks = Robin_nano35.bin debug_tool = stlink upload_protocol = stlink # # MKS/ZNP Robin Nano V1.2 and V2 with native USB modification # [env:mks_robin_nano_v1v2_usbmod] extends = mks_robin_nano_v1v2_common # # MKS Robin Nano V1.2 and V2 # [env:mks_robin_nano_v1v2] extends = mks_robin_nano_v1v2_common build_flags = ${mks_robin_nano_v1v2_common.build_flags} -DENABLE_HWSERIAL3 build_unflags = ${mks_robin_nano_v1v2_common.build_unflags} -DUSBCON -DUSBD_USE_CDC # # MKS Robin Mini (STM32F103VET6) # [env:mks_robin_mini] extends = STM32F103VE_robin board_build.encrypt_mks = Robin_mini.bin build_unflags = ${STM32F103VE_robin.build_unflags} -DSS_TIMER=4 -DTIMER_SERVO=TIM2 build_flags = ${STM32F103VE_robin.build_flags} -DTIMER_SERVO=TIM1 # # MKS Robin E3p (STM32F103VET6) # - LVGL UI # [env:mks_robin_e3p] extends = STM32F103VE_robin board_build.encrypt_mks = Robin_e3p.bin debug_tool = jlink upload_protocol = jlink # # FLSUN QQS Pro (STM32F103VET6) # Hispeedv1 Robin mini variant # [env:flsun_hispeedv1] extends = STM32F103VE_robin board_build.encrypt_mks = Robin_mini.bin build_flags = ${STM32F103VE_robin.build_flags} -DENABLE_HWSERIAL3 build_unflags = ${STM32F103VE_robin.build_unflags} -DUSBCON -DUSBD_USE_CDC # # MKS Robin Lite/Lite2 (STM32F103RCT6) # [env:mks_robin_lite] extends = stm32_variant board = genericSTM32F103RC board_build.variant = MARLIN_F103Rx board_build.encrypt_mks = mksLite.bin board_build.offset = 0x5000 board_upload.offset_address = 0x08005000 # # MKS ROBIN LITE3 (STM32F103RCT6) # [env:mks_robin_lite3] extends = env:mks_robin_lite board_build.encrypt_mks = mksLite3.bin # # MKS Robin Pro (STM32F103ZET6) # [env:mks_robin_pro] extends = env:mks_robin board_build.encrypt_mks = Robin_pro.bin # # JGAurora A5S A1 (STM32F103ZET6) # [env:jgaurora_a5s_a1] extends = stm32_variant board = genericSTM32F103ZE board_build.variant = MARLIN_F103Zx board_build.offset = 0xA000 board_upload.offset_address = 0x0800A000 build_flags = ${stm32_variant.build_flags} -DSTM32F1xx -DSTM32_XL_DENSITY extra_scripts = ${stm32_variant.extra_scripts} buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py # # FYSETC STM32F103RC # [env:STM32F103RC_fysetc] extends = common_STM32F103RC_variant extra_scripts = ${common_STM32F103RC_variant.extra_scripts} buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py build_flags = ${common_STM32F103RC_variant.build_flags} -DTIMER_SERVO=TIM1 lib_ldf_mode = chain debug_tool = stlink upload_protocol = serial # # Longer 3D board in Alfawise U20 (STM32F103VET6) # [env:STM32F103VE_longer] extends = stm32_variant lib_deps = ${common.lib_deps} https://github.com/tpruvot/STM32_Servo_OpenDrain/archive/2.0.zip board = genericSTM32F103VE board_build.variant = MARLIN_F103VE_LONGER board_build.rename = project.bin board_build.offset = 0x10000 board_upload.offset_address = 0x08010000 build_flags = ${stm32_variant.build_flags} -DMCU_STM32F103VE -DU20 -DTS_V12 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED extra_scripts = ${stm32_variant.extra_scripts} monitor_speed = 250000 debug_tool = stlink # # TRIGORILLA PRO (STM32F103ZET6) # [env:trigorilla_pro] extends = stm32_variant board = genericSTM32F103ZE board_build.variant = MARLIN_F103Zx build_flags = ${stm32_variant.build_flags} -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC # # TRIGORILLA PRO DISK BASED (STM32F103ZET6) # Builds for Trigorilla to update from SD # [env:trigorilla_pro_disk] extends = stm32_variant board = genericSTM32F103ZE board_build.crypt_chitu = update.zw board_build.variant = MARLIN_F103Zx board_build.offset = 0x8800 board_build.offset_address = 0x08008800 build_flags = ${stm32_variant.build_flags} -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC extra_scripts = ${stm32_variant.extra_scripts} buildroot/share/PlatformIO/scripts/chitu_crypt.py # # Chitu boards like Tronxy X5s (STM32F103ZET6) # [env:chitu_f103] extends = stm32_variant board = genericSTM32F103ZE board_build.crypt_chitu = update.cbd board_build.variant = MARLIN_F103Zx board_build.offset = 0x8800 board_build.offset_address = 0x08008800 build_flags = ${stm32_variant.build_flags} -DSTM32F1xx build_unflags = ${stm32_variant.build_unflags} extra_scripts = ${stm32_variant.extra_scripts} buildroot/share/PlatformIO/scripts/chitu_crypt.py # # Some Chitu V5 boards have a problem with GPIO init. # Use this target if G28 or G29 are always failing. # [env:chitu_v5_gpio_init] extends = env:chitu_f103 build_flags = ${env:chitu_f103.build_flags} -DCHITU_V5_Z_MIN_BUGFIX # # Zonestar ZM3E2 V1.0 / ZM3E4 V1.0 / ZM3E4 V2.0 # # STM32F103RC_ZM3E2_USB ........... RCT6 with 256K # STM32F103VC_ZM3E4_USB ........... VCT6 with 256K # STM32F103VE_ZM3E4V2_USB ......... VET6 with 512K # [ZONESTAR_ZM3E] extends = stm32_variant platform_packages = ${stm_flash_drive.platform_packages} board_upload.offset_address = 0x08005000 board_build.offset = 0x5000 board_upload.maximum_size = 237568 extra_scripts = ${stm32_variant.extra_scripts} build_flags = ${stm32_variant.build_flags} -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DUSE_USB_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC build_unflags = ${stm32_variant.build_unflags} -DUSBD_USE_CDC [env:STM32F103RC_ZM3E2_USB] extends = ZONESTAR_ZM3E board = genericSTM32F103RC board_build.variant = MARLIN_F103Rx [env:STM32F103VC_ZM3E4_USB] extends = ZONESTAR_ZM3E board = genericSTM32F103VC board_build.variant = MARLIN_F103Vx build_flags = ${ZONESTAR_ZM3E.build_flags} -DTIMER_TONE=TIM1 [env:STM32F103VE_ZM3E4V2_USB] extends = ZONESTAR_ZM3E board = genericSTM32F103VE board_build.variant = MARLIN_F103Vx build_flags = ${ZONESTAR_ZM3E.build_flags} -DTIMER_TONE=TIM1 board_upload.maximum_size = 499712 # # Mingda D2 DZ301 V1.0 (STM32F103ZE) # [env:mingda_d301] extends = stm32_variant board = genericSTM32F103ZE board_build.variant = MARLIN_F103Zx board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 build_flags = ${stm32_variant.build_flags} -DSTM32F1xx # # ORCA 3D SPRINGER Modular Controller (STM32F103VCT6) # [env:STM32F103VC_orca3d] extends = stm32_variant board = genericSTM32F103VC board_build.variant = MARLIN_F103Vx build_flags = ${stm32_variant.build_flags} -DDEBUG_LEVEL=0 monitor_speed = 115200 board_build.offset = 0x8000 board_upload.offset_address = 0x08008000