# # Marlin Firmware # PlatformIO Configuration File # ################################# # # STM32F1 Architecture with unified STM32 HAL # # Naming Example: STM32F103RCT6 # # F : Foundation (sometimes High Performance F2/F4) # 1 : Cortex M1 core # 03 : Line/Features # R : 64 or 66 pins (V:100, Z:144, I:176) # C : 256KB Flash-memory (D:384KB, E:512KB, G:1024KB) # T : LQFP package # 6 : -40...85°C (7: ...105°C) # ################################# # # HAL/STM32 Base Environment values # [common_stm32] platform = ststm32@~12.1 build_flags = ${common.build_flags} -std=gnu++14 -DUSBCON -DUSBD_USE_CDC -DTIM_IRQ_PRIO=13 -DADC_RESOLUTION=12 build_unflags = -std=gnu++11 src_filter = ${common.default_src_filter} + + extra_scripts = ${common.extra_scripts} pre:buildroot/share/PlatformIO/scripts/stm32_serialbuffer.py [stm32f1_variant] extra_scripts = ${common_stm32.extra_scripts} pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py buildroot/share/PlatformIO/scripts/offset_and_rename.py [common_STM32F103RC] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103RC monitor_speed = 115200 board_build.core = stm32 board_build.variant = MARLIN_F103Rx extra_scripts = ${stm32f1_variant.extra_scripts} # # STM32F103RE # [env:STM32F103RE] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103RE monitor_speed = 115200 # # STM32F103VE # [env:STM32F103VE] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103VE monitor_speed = 115200 # # STM32F103ZE # [env:STM32F103ZE] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103ZE monitor_speed = 115200 # # BigTree SKR Mini V1.1 / SKR Mini E3 & MZ (STM32F103RCT6 ARM Cortex-M3) # # STM32F103RC_btt ............. RCT6 with 256K # STM32F103RC_btt_USB ......... RCT6 with 256K (USB mass storage) # [env:STM32F103RC_btt] platform = ${common_stm32.platform} extends = common_STM32F103RC build_flags = ${common_stm32.build_flags} -DDEBUG_LEVEL=0 -DTIMER_SERVO=TIM5 board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 [env:STM32F103RC_btt_USB] extends = env:STM32F103RC_btt platform = ${common_stm32.platform} platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/usb-host-msc-cdc-msc-3.zip build_unflags = ${common_stm32.build_unflags} -DUSBD_USE_CDC build_flags = ${env:STM32F103RC_btt.build_flags} ${env:stm32_flash_drive.build_flags} -DUSBCON -DUSE_USB_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC # # MKS Robin (STM32F103ZET6) # Uses HAL STM32 to support Marlin UI for TFT screen with optional touch panel # [env:mks_robin] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103ZE board_build.core = stm32 board_build.variant = MARLIN_F103Zx board_build.offset = 0x7000 board_build.encrypt = Robin.bin build_flags = ${common_stm32.build_flags} -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5 build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC extra_scripts = ${stm32f1_variant.extra_scripts} lib_deps = # # MKS Robin E3/E3D (STM32F103RCT6) with TMC2209 # [env:mks_robin_e3] platform = ${common_stm32.platform} extends = common_STM32F103RC build_flags = ${common_stm32.build_flags} -DDEBUG_LEVEL=0 -DTIMER_SERVO=TIM5 -DDEFAULT_SPI=3 build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC monitor_speed = 115200 board_build.offset = 0x5000 board_build.encrypt = Robin_e3.bin board_upload.offset_address = 0x08005000 debug_tool = stlink extra_scripts = ${common_STM32F103RC.extra_scripts} # # Creality (STM32F103RET6) # [env:STM32F103RET6_creality] platform = ${common_stm32.platform} extends = common_stm32 build_flags = ${common_stm32.build_flags} -DMCU_STM32F103RE -DHAL_SD_MODULE_ENABLED -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 board = genericSTM32F103RE monitor_speed = 115200 board_build.core = stm32 board_build.variant = MARLIN_F103Rx board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC extra_scripts = ${stm32f1_variant.extra_scripts} pre:buildroot/share/PlatformIO/scripts/random-bin.py debug_tool = jlink upload_protocol = jlink # # BigTree SKR Mini E3 V2.0 & DIP / SKR CR6 (STM32F103RET6 ARM Cortex-M3) # # STM32F103RE_btt ............. RET6 # STM32F103RE_btt_USB ......... RET6 (USB mass storage) # [env:STM32F103RE_btt] platform = ${common_stm32.platform} extends = common_stm32 build_flags = ${common_stm32.build_flags} -DMCU_STM32F103RE -DHAL_SD_MODULE_ENABLED -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8 board = genericSTM32F103RE monitor_speed = 115200 board_build.core = stm32 board_build.variant = MARLIN_F103Rx board_build.offset = 0x7000 board_upload.offset_address = 0x08007000 build_unflags = ${common_stm32.build_unflags} extra_scripts = ${stm32f1_variant.extra_scripts} debug_tool = jlink upload_protocol = jlink [env:STM32F103RE_btt_USB] extends = env:STM32F103RE_btt platform = ${common_stm32.platform} platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/usb-host-msc-cdc-msc-3.zip build_unflags = ${common_stm32.build_unflags} -DUSBD_USE_CDC build_flags = ${env:STM32F103RE_btt.build_flags} ${env:stm32_flash_drive.build_flags} -DUSBCON -DUSE_USB_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC # # FLSUN QQS Pro (STM32F103VET6) # board Hispeedv1 # [env:flsun_hispeedv1] platform = ${common_stm32.platform} extends = common_stm32 build_flags = ${common_stm32.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4 -DENABLE_HWSERIAL3 -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2 board = genericSTM32F103VE board_build.core = stm32 board_build.variant = MARLIN_F103Vx board_build.offset = 0x7000 board_build.encrypt = Robin_mini.bin board_upload.offset_address = 0x08007000 build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC extra_scripts = ${stm32f1_variant.extra_scripts} # # MKS Robin Nano V1.2 and V2 # [env:mks_robin_nano35] platform = ${common_stm32.platform} extends = common_stm32 build_flags = ${common_stm32.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4 -DENABLE_HWSERIAL3 -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2 board = genericSTM32F103VE board_build.core = stm32 board_build.variant = MARLIN_F103Vx board_build.offset = 0x7000 board_build.encrypt = Robin_nano35.bin board_upload.offset_address = 0x08007000 build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC debug_tool = jlink upload_protocol = jlink extra_scripts = ${stm32f1_variant.extra_scripts} # # Mingda MPX_ARM_MINI # [env:mingda_mpx_arm_mini] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103ZE board_build.core = stm32 board_build.variant = MARLIN_F103Zx board_build.offset = 0x10000 build_flags = ${common_stm32.build_flags} -DENABLE_HWSERIAL3 -DTIMER_SERIAL=TIM5 build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC extra_scripts = ${stm32f1_variant.extra_scripts} # # Malyan M200 (STM32F103CB) # [env:STM32F103CB_malyan] platform = ${common_stm32.platform} extends = common_stm32 board = malyanm200_f103cb build_flags = ${common_stm32.build_flags} -DHAL_PCD_MODULE_ENABLED -DDISABLE_GENERIC_SERIALUSB -DHAL_UART_MODULE_ENABLED src_filter = ${common.default_src_filter} + # # FLYmaker FLY Mini (STM32F103RCT6) # [env:FLY_MINI] platform = ${common_stm32.platform} extends = common_stm32 build_flags = ${common_stm32.build_flags} -DSS_TIMER=4 board = genericSTM32F103RC board_build.core = stm32 board_build.variant = MARLIN_F103Rx board_build.offset = 0x5000 board_upload.offset_address = 0x08005000 extra_scripts = ${stm32f1_variant.extra_scripts} # # MKS Robin Mini (STM32F103VET6) # [env:mks_robin_mini] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103VE board_build.core = stm32 board_build.variant = MARLIN_F103Vx board_build.offset = 0x7000 board_build.encrypt = Robin_mini.bin build_flags = ${common_stm32.build_flags} -DMCU_STM32F103VE -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2 board_upload.offset_address = 0x08007000 extra_scripts = ${stm32f1_variant.extra_scripts} # # MKS Robin Lite/Lite2 (STM32F103RCT6) # [env:mks_robin_lite] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103RC board_build.core = stm32 board_build.variant = MARLIN_F103Rx board_build.offset = 0x5000 board_build.encrypt = mksLite.bin build_flags = ${common_stm32.build_flags} board_upload.offset_address = 0x08005000 extra_scripts = ${stm32f1_variant.extra_scripts} # # MKS ROBIN LITE3 (STM32F103RCT6) # [env:mks_robin_lite3] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103RC board_build.core = stm32 board_build.variant = MARLIN_F103Rx board_build.offset = 0x5000 board_build.encrypt = mksLite3.bin build_flags = ${common_stm32.build_flags} board_upload.offset_address = 0x08005000 extra_scripts = ${stm32f1_variant.extra_scripts} # # MKS Robin Pro (STM32F103ZET6) # [env:mks_robin_pro] platform = ${common_stm32.platform} extends = env:mks_robin board_build.encrypt = Robin_pro.bin # # MKS Robin E3p (STM32F103VET6) # - LVGL UI # [env:mks_robin_e3p] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103VE board_build.core = stm32 board_build.variant = MARLIN_F103Vx board_build.offset = 0x7000 board_build.encrypt = Robin_e3p.bin build_flags = ${common_stm32.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4 -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2 board_upload.offset_address = 0x08007000 extra_scripts = ${stm32f1_variant.extra_scripts} debug_tool = jlink upload_protocol = jlink # # JGAurora A5S A1 (STM32F103ZET6) # [env:jgaurora_a5s_a1] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103ZE board_build.core = stm32 board_build.variant = MARLIN_F103Zx board_build.offset = 0xA000 board_build.rename = firmware_for_sd_upload.bin build_flags = ${common_stm32.build_flags} -DSTM32F1xx -DSTM32_XL_DENSITY board_build.address = 0x0800A000 extra_scripts = ${stm32f1_variant.extra_scripts} buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py # # FYSETC STM32F103RC # [env:STM32F103RC_fysetc] platform = ${common_stm32.platform} extends = common_STM32F103RC extra_scripts = ${stm32f1_variant.extra_scripts} buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py build_flags = ${common_stm32.build_flags} -DDEBUG_LEVEL=0 lib_ldf_mode = chain debug_tool = stlink upload_protocol = serial # # Longer 3D board in Alfawise U20 (STM32F103VET6) # [env:STM32F103VE_longer] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103VE board_build.core = stm32 board_build.variant = MARLIN_F103Vx board_build.offset = 0x10000 board_build.address = 0x08010000 build_flags = ${common_stm32.build_flags} -DMCU_STM32F103VE -DU20 -DTS_V12 -DLED_BUILTIN=PC2 -UPIN_WIRE_SDA -UPIN_WIRE_SCL -DPIN_WIRE_SDA=PB11 -DPIN_WIRE_SCL=PB10 -DHAL_DAC_MODULE_DISABLED -DHAL_I2S_MODULE_DISABLED build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC -DHAL_PCD_MODULE_ENABLED extra_scripts = ${stm32f1_variant.extra_scripts} buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py # # TRIGORILLA PRO (STM32F103ZET6) # [env:trigorilla_pro] platform = ${common_stm32.platform} extends = env:mks_robin extra_scripts = ${common_stm32.extra_scripts} # # Chitu boards like Tronxy X5s (STM32F103ZET6) # [env:chitu_f103] platform = ${common_stm32.platform} extends = common_stm32 board = genericSTM32F103ZE board_build.core = stm32 board_build.variant = MARLIN_F103Zx extra_scripts = ${stm32f1_variant.extra_scripts} buildroot/share/PlatformIO/scripts/chitu_crypt.py build_flags = ${common_stm32.build_flags} -DSTM32_XL_DENSITY build_unflags = ${common_stm32.build_unflags} -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG= -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6 # # 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] platform = ${common_stm32.platform} extends = env:chitu_f103 build_flags = ${env:chitu_f103.build_flags} -DCHITU_V5_Z_MIN_BUGFIX