123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511 |
- #
- # Marlin Firmware
- # PlatformIO Configuration File
- #
- #################################
- #
- # STM32F1 Architecture
- #
- # 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
- build_src_filter = ${common.default_src_filter} +<src/HAL/STM32> +<src/HAL/shared/backtrace>
- #
- # HAL/STM32F1 Common Environment values
- #
- [common_stm32f1]
- platform = ststm32@~12.1
- board_build.core = maple
- build_flags = !python Marlin/src/HAL/STM32F1/build_flags.py
- ${common.build_flags}
- -DARDUINO_ARCH_STM32
- build_unflags = -std=gnu11 -std=gnu++11
- build_src_filter = ${common.default_src_filter} +<src/HAL/STM32F1>
- lib_ignore = SPI, FreeRTOS701, FreeRTOS821
- lib_deps = ${common.lib_deps}
- SoftwareSerialM
- platform_packages = tool-stm32duino
- extra_scripts = ${common.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/fix_framework_weakness.py
- #
- # STM32F103RC
- #
- [env:STM32F103RC]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103RC
- monitor_speed = 115200
- #
- # MEEB_3DP (STM32F103RCT6 with 512K)
- #
- [env:STM32F103RC_meeb]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = marlin_MEEB_3DP
- build_flags = ${common_stm32f1.build_flags}
- -DDEBUG_LEVEL=0
- -DSS_TIMER=4
- -DSTM32_FLASH_SIZE=512
- -DHSE_VALUE=12000000U
- -DUSE_USB_COMPOSITE
- -DVECT_TAB_OFFSET=0x2000
- -DGENERIC_BOOTLOADER
- extra_scripts = ${common_stm32f1.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
- buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
- lib_deps = ${common.lib_deps}
- SoftwareSerialM
- USBComposite for STM32F1@0.91
- custom_marlin.NEOPIXEL_LED = Adafruit NeoPixel=https://github.com/ccccmagicboy/Adafruit_NeoPixel#meeb_3dp_use
- debug_tool = stlink
- upload_protocol = dfu
- #
- # STM32F103RC_fysetc
- #
- [env:STM32F103RC_fysetc]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RC
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py
- build_flags = ${common_stm32f1.build_flags} -DDEBUG_LEVEL=0
- lib_ldf_mode = chain
- debug_tool = stlink
- upload_protocol = serial
- #
- # BigTree SKR Mini V1.1 / SKR mini E3 / SKR E3 DIP (STM32F103RCT6 ARM Cortex-M3)
- #
- # STM32F103RC_btt ............. RCT6 with 256K
- # STM32F103RC_btt_USB ......... RCT6 with 256K (USB mass storage)
- # STM32F103RC_btt_512K ........ RCT6 with 512K
- # STM32F103RC_btt_512K_USB .... RCT6 with 512K (USB mass storage)
- #
- # WARNING! If you have an SKR Mini v1.1 or an SKR Mini E3 1.0 / 1.2 / 2.0 / DIP
- # and experience a printer freeze, re-flash Marlin using the regular (non-512K)
- # build option. 256K chips may be re-branded 512K chips, but this means the
- # upper 256K is sketchy, and failure is very likely.
- #
- [env:STM32F103RC_btt]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RC
- board_build.address = 0x08007000
- board_build.ldscript = STM32F103RC_SKR_MINI_256K.ld
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/custom_board.py
- build_flags = ${common_stm32f1.build_flags}
- -DDEBUG_LEVEL=0 -DSS_TIMER=4
- monitor_speed = 115200
- [env:STM32F103RC_btt_USB]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RC_btt
- build_flags = ${env:STM32F103RC_btt.build_flags} -DUSE_USB_COMPOSITE
- lib_deps = ${env:STM32F103RC_btt.lib_deps}
- USBComposite for STM32F1@0.91
- [env:STM32F103RC_btt_512K]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RC_btt
- board_build.ldscript = STM32F103RC_SKR_MINI_512K.ld
- board_upload.maximum_size=524288
- build_flags = ${env:STM32F103RC_btt.build_flags} -DSTM32_FLASH_SIZE=512
- [env:STM32F103RC_btt_512K_USB]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RC_btt_512K
- build_flags = ${env:STM32F103RC_btt_512K.build_flags} -DUSE_USB_COMPOSITE
- lib_deps = ${env:STM32F103RC_btt_512K.lib_deps}
- USBComposite for STM32F1@0.91
- #
- # STM32 HAL version of STM32F103RC_btt envs
- #
- [env:STM32F103RC_stm32]
- platform = ${common_stm32.platform}
- extends = common_stm32
- board = genericSTM32F103RC
- monitor_speed = 115200
- board_build.core = stm32
- board_build.variant = MARLIN_F103Rx
- board_build.ldscript = ldscript.ld
- extra_scripts = ${common.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
- buildroot/share/PlatformIO/scripts/stm32_bootloader.py
- [env:STM32F103RC_btt_stm32]
- platform = ${common_stm32.platform}
- extends = env:STM32F103RC_stm32
- build_flags = ${common_stm32.build_flags} -DDEBUG_LEVEL=0 -DTIMER_SERVO=TIM5
- board_build.offset = 0x7000
- board_build.encrypt = No
- board_build.firmware = firmware.bin
- board_upload.offset_address = 0x08007000
- [env:STM32F103RC_btt_USB_stm32]
- extends = env:STM32F103RC_btt_stm32
- platform = ${common_stm32.platform}
- platform_packages = framework-arduinoststm32@https://github.com/rhapsodyv/Arduino_Core_STM32/archive/39f37d6d6a.zip
- build_unflags = ${common_stm32.build_unflags} -DUSBD_USE_CDC
- build_flags = ${env:STM32F103RC_btt_stm32.build_flags} ${env:stm32_flash_drive.build_flags}
- -DUSBCON
- -DUSE_USBHOST_HS
- -DUSBD_IRQ_PRIO=5
- -DUSBD_IRQ_SUBPRIO=6
- -DUSE_USB_HS_IN_FS
- -DUSBD_USE_CDC_MSC
- [env:STM32F103RC_btt_512K_stm32]
- platform = ${common_stm32.platform}
- extends = env:STM32F103RC_btt_stm32
- board_upload.maximum_size = 524288
- build_flags = ${env:STM32F103RC_btt_stm32.build_flags} -DLD_MAX_DATA_SIZE=524288 -DSTM32_FLASH_SIZE=512
- [env:STM32F103RC_btt_512K_USB_stm32]
- platform = ${common_stm32.platform}
- extends = env:STM32F103RC_btt_USB_stm32
- board_upload.maximum_size = 524288
- build_flags = ${env:STM32F103RC_btt_USB_stm32.build_flags} -DLD_MAX_DATA_SIZE=524288 -DSTM32_FLASH_SIZE=512
- #
- # STM32F103RE
- #
- [env:STM32F103RE]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103RE
- monitor_speed = 115200
- #
- # STM32F103RE_btt ............. RET6
- # STM32F103RE_btt_USB ......... RET6 (USB mass storage)
- #
- [env:STM32F103RE_btt]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RE
- board_build.address = 0x08007000
- board_build.ldscript = STM32F103RE_SKR_E3_DIP.ld
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/custom_board.py
- build_flags = ${common_stm32f1.build_flags} -DDEBUG_LEVEL=0 -DSS_TIMER=4
- debug_tool = stlink
- upload_protocol = stlink
- [env:STM32F103RE_btt_USB]
- platform = ${common_stm32f1.platform}
- extends = env:STM32F103RE_btt
- build_flags = ${env:STM32F103RE_btt.build_flags} -DUSE_USB_COMPOSITE
- lib_deps = ${common_stm32f1.lib_deps}
- USBComposite for STM32F1@0.91
- #
- # Geeetech GTM32 (STM32F103VET6)
- #
- [env:STM32F103VE_GTM32]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103VE
- build_flags = ${common_stm32f1.build_flags}
- -ffunction-sections -fdata-sections -nostdlib -MMD
- -DMCU_STM32F103VE -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1 -DBOARD_generic_stm32f103v
- -DDEBUG_LEVEL=DEBUG_NONE -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DVECT_TAB_ADDR=0x8000000
- -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
- upload_protocol = serial
- #
- # Longer 3D board in Alfawise U20 (STM32F103VET6)
- #
- [env:STM32F103VE_longer]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103VE
- board_build.address = 0x08010000
- board_build.ldscript = STM32F103VE_longer.ld
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/custom_board.py
- buildroot/share/PlatformIO/scripts/STM32F103VE_longer.py
- build_flags = ${common_stm32f1.build_flags}
- -DMCU_STM32F103VE -DSTM32F1xx -USERIAL_USB -DU20 -DTS_V12
- build_unflags = ${common_stm32f1.build_unflags}
- -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1 -DERROR_LED_PORT=GPIOE -DERROR_LED_PIN=6
- #
- # MKS Robin Mini (STM32F103VET6)
- #
- [env:mks_robin_mini]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103VE
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_mini.py
- build_flags = ${common_stm32f1.build_flags}
- -DMCU_STM32F103VE
- #
- # MKS Robin Nano (STM32F103VET6)
- #
- [env:mks_robin_nano35]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103VE
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
- build_flags = ${common_stm32f1.build_flags}
- -DMCU_STM32F103VE -DSS_TIMER=4
- debug_tool = jlink
- upload_protocol = jlink
- #
- # MKS Robin (STM32F103ZET6)
- #
- [env:mks_robin]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103ZE
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin.py
- build_flags = ${common_stm32f1.build_flags}
- -DSS_TIMER=4 -DSTM32_XL_DENSITY
- # MKS Robin (STM32F103ZET6)
- # Uses HAL STM32 to support Marlin UI for TFT screen with optional touch panel
- #
- [env:mks_robin_stm32]
- platform = ${common_stm32.platform}
- extends = common_stm32
- board = genericSTM32F103ZE
- board_build.core = stm32
- board_build.variant = MARLIN_F103Zx
- board_build.ldscript = ldscript.ld
- board_build.offset = 0x7000
- board_build.encrypt = Yes
- board_build.firmware = 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 = ${common.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
- buildroot/share/PlatformIO/scripts/stm32_bootloader.py
- buildroot/share/PlatformIO/scripts/mks_encrypt.py
- lib_deps =
- #
- # MKS Robin Pro (STM32F103ZET6)
- #
- [env:mks_robin_pro]
- platform = ${common_stm32f1.platform}
- extends = env:mks_robin
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_pro.py
- #
- # TRIGORILLA PRO (STM32F103ZET6)
- #
- [env:trigorilla_pro]
- platform = ${common_stm32f1.platform}
- extends = env:mks_robin
- extra_scripts = ${common_stm32f1.extra_scripts}
- #
- # MKS Robin E3D (STM32F103RCT6) and
- # MKS Robin E3 with TMC2209
- #
- [env:mks_robin_e3]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103RC
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_e3.py
- build_flags = ${common_stm32f1.build_flags}
- -DDEBUG_LEVEL=0 -DSS_TIMER=4
- #
- # MKS Robin E3p (STM32F103VET6)
- # - LVGL UI
- #
- [env:mks_robin_e3p]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103VE
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_e3p.py
- build_flags = ${common_stm32f1.build_flags}
- -DMCU_STM32F103VE -DSS_TIMER=4
- debug_tool = jlink
- upload_protocol = jlink
- #
- # MKS Robin Lite/Lite2 (STM32F103RCT6)
- #
- [env:mks_robin_lite]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103RC
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_lite.py
- #
- # MKS ROBIN LITE3 (STM32F103RCT6)
- #
- [env:mks_robin_lite3]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103RC
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
- #
- # JGAurora A5S A1 (STM32F103ZET6)
- #
- [env:jgaurora_a5s_a1]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = genericSTM32F103ZE
- board_build.address = 0x0800A000
- board_build.ldscript = jgaurora_a5s_a1.ld
- extra_scripts = ${common_stm32f1.extra_scripts}
- buildroot/share/PlatformIO/scripts/custom_board.py
- buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
- build_flags = ${common_stm32f1.build_flags}
- -DSTM32F1xx -DSTM32_XL_DENSITY
- #
- # Malyan M200 (STM32F103CB)
- #
- [env:STM32F103CB_malyan]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = marlin_malyanM200
- build_flags = ${common_stm32f1.build_flags}
- -DMCU_STM32F103CB -D__STM32F1__=1 -std=c++1y -DSERIAL_USB -ffunction-sections -fdata-sections
- -Wl,--gc-sections -DDEBUG_LEVEL=0 -D__MARLIN_FIRMWARE__
- lib_ignore = ${common_stm32f1.lib_ignore}
- SoftwareSerialM
- #
- # Chitu boards like Tronxy X5s (STM32F103ZET6)
- #
- [env:chitu_f103]
- platform = ${common_stm32f1.platform}
- extends = common_stm32f1
- board = marlin_CHITU_F103
- extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-dependencies.py
- pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
- buildroot/share/PlatformIO/scripts/chitu_crypt.py
- build_flags = ${common_stm32f1.build_flags}
- -DSTM32F1xx -DSTM32_XL_DENSITY
- build_unflags = ${common_stm32f1.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_stm32f1.platform}
- extends = env:chitu_f103
- build_flags = ${env:chitu_f103.build_flags} -DCHITU_V5_Z_MIN_BUGFIX
- #
- # Creality (STM32F103RET6)
- #
- [env:STM32F103RET6_creality]
- platform = ${env:STM32F103RE.platform}
- extends = env:STM32F103RE
- build_flags = ${env:STM32F103RE.build_flags} -DTEMP_TIMER_CHAN=4
- board_build.address = 0x08007000
- board_build.ldscript = creality.ld
- extra_scripts = ${env:STM32F103RE.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/random-bin.py
- buildroot/share/PlatformIO/scripts/custom_board.py
- debug_tool = jlink
- upload_protocol = jlink
- #
- # FLSUN QQS Pro (STM32F103VET6) using hal STM32
- # 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
- board = genericSTM32F103VE
- board_build.core = stm32
- board_build.variant = MARLIN_F103Vx
- board_build.ldscript = ldscript.ld
- board_build.offset = 0x7000
- board_build.firmware = Robin_mini.bin
- board_build.encrypt = Yes
- board_upload.offset_address = 0x08007000
- build_unflags = ${common_stm32.build_unflags} -DUSBCON -DUSBD_USE_CDC
- extra_scripts = ${common.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
- buildroot/share/PlatformIO/scripts/stm32_bootloader.py
- buildroot/share/PlatformIO/scripts/mks_encrypt.py
- #
- # MKS Robin Nano V1.2 and V2 using hal STM32
- #
- [env:mks_robin_nano35_stm32]
- platform = ${common_stm32.platform}
- extends = common_stm32
- build_flags = ${common_stm32.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
- board = genericSTM32F103VE
- board_build.core = stm32
- board_build.variant = MARLIN_F103Vx
- board_build.ldscript = ldscript.ld
- board_build.offset = 0x7000
- board_build.encrypt = Yes
- board_build.firmware = 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 = ${common.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
- buildroot/share/PlatformIO/scripts/stm32_bootloader.py
- buildroot/share/PlatformIO/scripts/mks_encrypt.py
- #
- # 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.ldscript = ldscript.ld
- 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 = ${common.extra_scripts}
- pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
- buildroot/share/PlatformIO/scripts/stm32_bootloader.py
|