3 # PlatformIO Configuration File
6 #################################
10 # Naming Example: STM32F401RGT6
12 # F : Foundation (sometimes High Performance F2/F4)
13 # 4 : Cortex M4 core (0:M0, 1-2:M3, 3-4:M4, 7:M7)
15 # R : 64 or 66 pins (T:36, C:48 or 49, M:81, V:100, Z:144, I:176)
16 # G : 1024KB Flash-memory (B:128KB, C:256KB, D:384KB, E:512KB)
18 # 6 : -40...85°C (7: ...105°C)
20 #################################
26 extends = common_stm32
28 build_flags = ${common_stm32.build_flags}
29 -O2
-ffreestanding
-fsigned
-char
-fno
-move
-loop
-invariants
-fno
-strict
-aliasing
33 # 'STEVAL-3DP001V1' STM32F401VE board - https://www.st.com/en/evaluation-tools/steval-3dp001v1.html
35 [env:STM32F401VE_STEVAL]
36 extends = stm32_variant
37 board = marlin_STEVAL_STM32F401VE
38 build_flags = ${stm32_variant.build_flags}
39 -DSTM32F401xE
-DDISABLE_GENERIC_SERIALUSB
40 -DUSBD_USE_CDC_COMPOSITE
-DUSE_USB_FS
45 [env:FYSETC_CHEETAH_V20]
46 extends = stm32_variant
47 board = marlin_FYSETC_CHEETAH_V20
48 board_build.offset = 0x8000
49 build_flags = ${stm32_variant.build_flags} -DSTM32F401xC
50 upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE"
56 extends = stm32_variant
57 board = marlin_STM32F407ZGT6
58 board_build.variant = MARLIN_FLY_F407ZG
59 board_build.offset = 0x8000
63 # FYSETC S6 (STM32F446RET6 ARM Cortex-M4)
66 extends = stm32_variant
67 board = marlin_fysetc_s6
68 board_build.offset = 0x10000
69 board_upload.offset_address = 0x08010000
70 build_flags = ${stm32_variant.build_flags} -DHAL_PCD_MODULE_ENABLED
73 upload_command = dfu-util -a 0 -s 0x08010000:leave -D "$SOURCE"
76 # FYSETC S6 new bootloader
79 extends = env:FYSETC_S6
80 board = marlin_fysetc_s6
81 board_build.offset = 0x8000
82 board_upload.offset_address = 0x08008000
83 upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE"
86 # STM32F407VET6 with RAMPS-like shield
87 # 'Black' STM32F407VET6 board - https://wiki.stm32duino.com/index.php?title=STM32F407
88 # Shield - https://github.com/jmz52/Hardware
90 [env:STM32F407VE_black]
91 extends = stm32_variant
92 board = marlin_blackSTM32F407VET6
93 build_flags = ${stm32_variant.build_flags}
94 -DUSBD_USE_CDC_COMPOSITE
-DUSE_USB_FS
97 # STM32F407VET6 Opulo Lumen REV3
99 [env:Opulo_Lumen_REV3]
100 extends = stm32_variant
101 board = marlin_opulo_lumen_rev3
102 build_flags = ${stm32_variant.build_flags}
103 -DARDUINO_BLACK_F407VE
104 -DUSBD_USE_CDC_COMPOSITE
-DUSE_USB_FS
105 extra_scripts = ${stm32_variant.extra_scripts}
108 # Anet ET4-MB_V1.x/ET4P-MB_V1.x (STM32F407VGT6 ARM Cortex-M4)
111 extends = stm32_variant
112 board = marlin_STM32F407VGT6_CCM
113 board_build.variant = MARLIN_F4x7Vx
114 build_flags = ${stm32_variant.build_flags}
115 -DHAL_SD_MODULE_ENABLED
-DHAL_SRAM_MODULE_ENABLED
116 build_unflags = ${stm32_variant.build_unflags}
117 -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483
120 # Anet ET4 directly flashed via ST-Link
122 [env:Anet_ET4_no_bootloader]
125 upload_protocol = stlink
128 # Anet ET4 with OpenBLT from https://github.com/davidtgbe/openblt/releases
130 [env:Anet_ET4_OpenBLT]
132 board_build.encode = firmware.srec
133 board_build.offset = 0x10000
134 board_upload.offset_address = 0x08010000
135 extra_scripts = ${stm32_variant.extra_scripts}
136 buildroot
/share
/PlatformIO
/scripts
/openblt.py
139 # BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
141 [env:BIGTREE_SKR_PRO]
142 extends = stm32_variant
143 board = marlin_BigTree_SKR_Pro
144 board_build.offset = 0x8000
145 build_flags = ${stm32_variant.build_flags} -DSTM32F407_5ZX
147 upload_protocol = stlink
150 # BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4) with USB Flash Drive Support
152 [env:BIGTREE_SKR_PRO_usb_flash_drive]
153 extends = env:BIGTREE_SKR_PRO
154 platform_packages = ${stm_flash_drive.platform_packages}
155 build_flags = ${stm_flash_drive.build_flags} -DSTM32F407_5ZX
156 build_unflags = ${env:BIGTREE_SKR_PRO.build_unflags} -DUSBCON -DUSBD_USE_CDC
159 # BigTreeTech E3 RRF (STM32F407VGT6 ARM Cortex-M4)
162 extends = stm32_variant
163 board = marlin_STM32F407VGT6_CCM
164 board_build.variant = MARLIN_BIGTREE_E3_RRF
165 board_build.offset = 0x8000
166 build_flags = ${stm32_variant.build_flags}
168 -DMF_RX_BUFFER_SIZE=255
169 -DMF_TX_BUFFER_SIZE=255
172 # Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
174 [env:BIGTREE_GTR_V1_0]
175 extends = stm32_variant
176 board = marlin_BigTree_GTR_v1
177 board_build.offset = 0x8000
178 build_flags = ${stm32_variant.build_flags} -DSTM32F407IX
181 # Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4) with USB Flash Drive Support
183 [env:BIGTREE_GTR_V1_0_usb_flash_drive]
184 extends = env:BIGTREE_GTR_V1_0
185 platform_packages = ${stm_flash_drive.platform_packages}
186 build_flags = ${stm_flash_drive.build_flags} -DSTM32F407IX
187 build_unflags = ${env:BIGTREE_GTR_V1_0.build_unflags} -DUSBCON -DUSBD_USE_CDC
190 # BigTreeTech BTT002 V1.0 (STM32F407VGT6 ARM Cortex-M4)
193 extends = stm32_variant
194 board = marlin_BigTree_BTT002
195 board_build.offset = 0x8000
196 build_flags = ${stm32_variant.build_flags}
200 -DPIN_SERIAL2_RX=PD_6
201 -DPIN_SERIAL2_TX=PD_5
204 # BigTreeTech BTT002 V1.x with 512k of flash (STM32F407VET6 ARM Cortex-M4)
206 [env:BIGTREE_BTT002_VET6]
207 extends = env:BIGTREE_BTT002
208 board = marlin_BigTree_BTT002_VET6
211 # BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Flash Drive Support
214 extends = stm32_variant
215 platform_packages = ${stm_flash_drive.platform_packages}
216 board = marlin_STM32F407VGT6_CCM
217 board_build.variant = MARLIN_F4x7Vx
218 board_build.offset = 0x8000
219 board_upload.offset_address = 0x08008000
220 build_flags = ${stm_flash_drive.build_flags}
221 -DUSE_USBHOST_HS
-DUSE_USB_HS_IN_FS
222 -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6
223 -DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED
224 -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
225 upload_protocol = stlink
228 # BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Media Share Support
230 [env:BIGTREE_SKR_2_USB]
231 extends = env:BIGTREE_SKR_2
232 build_flags = ${env:BIGTREE_SKR_2.build_flags} -DUSBD_USE_CDC_MSC
233 build_unflags = ${env:BIGTREE_SKR_2.build_unflags} -DUSBD_USE_CDC
235 [env:BIGTREE_SKR_2_USB_debug]
236 extends = env:BIGTREE_SKR_2_USB
237 build_flags = ${env:BIGTREE_SKR_2_USB.build_flags} -O0
238 build_unflags = ${env:BIGTREE_SKR_2_USB.build_unflags} -Os -NDEBUG
241 # Bigtreetech SKR V2.0 F429 (STM32F429VGT6 ARM Cortex-M4) with USB Flash Drive Support
243 [env:BIGTREE_SKR_2_F429]
244 extends = env:BIGTREE_SKR_2
245 board = marlin_STM32F429VGT6
248 # BigTreeTech SKR V2.0 F429 (STM32F429VGT6 ARM Cortex-M4) with USB Media Share Support
250 [env:BIGTREE_SKR_2_F429_USB]
251 extends = env:BIGTREE_SKR_2_F429
252 build_flags = ${env:BIGTREE_SKR_2_F429.build_flags} -DUSBD_USE_CDC_MSC
253 build_unflags = ${env:BIGTREE_SKR_2_F429.build_unflags} -DUSBD_USE_CDC
255 [env:BIGTREE_SKR_2_F429_USB_debug]
256 extends = env:BIGTREE_SKR_2_F429_USB
257 build_flags = ${env:BIGTREE_SKR_2_F429_USB.build_flags} -O0
258 build_unflags = ${env:BIGTREE_SKR_2_F429_USB.build_unflags} -Os -NDEBUG
261 # BigTreeTech Octopus V1.0/1.1 / Octopus Pro V1.0 (STM32F446ZET6 ARM Cortex-M4)
263 [env:BIGTREE_OCTOPUS_V1]
264 extends = stm32_variant
265 board = marlin_BigTree_Octopus_v1
266 board_build.offset = 0x8000
267 board_upload.offset_address = 0x08008000
269 upload_protocol = stlink
270 build_flags = ${stm32_variant.build_flags}
271 -DSTM32F446_5VX
-DUSE_USB_HS_IN_FS
274 # BigTreeTech Octopus V1.0/1.1 / Octopus Pro V1.0 (STM32F446ZET6 ARM Cortex-M4) with USB Flash Drive Support
276 [env:BIGTREE_OCTOPUS_V1_USB]
277 extends = env:BIGTREE_OCTOPUS_V1
278 platform_packages = ${stm_flash_drive.platform_packages}
279 build_unflags = -DUSBD_USE_CDC
280 build_flags = ${stm_flash_drive.build_flags}
281 -DSTM32F446_5VX
-DUSE_USB_HS_IN_FS
282 -DUSE_USBHOST_HS -DUSBD_IRQ_PRIO=5
287 # BigTreeTech Octopus Pro V1.0 (STM32F429ZGT6 ARM Cortex-M4)
289 [env:BIGTREE_OCTOPUS_PRO_V1_F429]
290 extends = stm32_variant
291 board = marlin_BigTree_Octopus_Pro_v1_F429
292 board_build.offset = 0x8000
293 board_upload.offset_address = 0x08008000
295 upload_protocol = stlink
296 build_flags = ${stm32_variant.build_flags}
300 # BigTreeTech Octopus Pro V1.0 (STM32F429ZGT6 ARM Cortex-M4) with USB Flash Drive Support
302 [env:BIGTREE_OCTOPUS_PRO_V1_F429_USB]
303 extends = env:BIGTREE_OCTOPUS_PRO_V1_F429
304 platform_packages = ${stm_flash_drive.platform_packages}
305 build_unflags = -DUSBD_USE_CDC
306 build_flags = ${stm_flash_drive.build_flags}
307 -DUSE_USB_HS_IN_FS
-DUSE_USBHOST_HS
308 -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6
315 extends = stm32_variant
316 board = marlin_STM32F407ZGT6
317 board_build.variant = MARLIN_LERDGE
318 board_build.crypt_lerdge = firmware.bin
319 board_build.offset = 0x10000
320 build_flags = ${stm32_variant.build_flags}
321 -DSTM32F4
-DSTM32F4xx
-DTARGET_STM32F4
322 -DDISABLE_GENERIC_SERIALUSB
-DARDUINO_ARCH_STM32
-DLERDGE_TFT35
323 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483
324 extra_scripts = ${stm32_variant.extra_scripts}
325 buildroot
/share
/PlatformIO
/scripts
/lerdge.py
328 # Lerdge X (STM32F407VE)
331 extends = lerdge_common
332 board_build.crypt_lerdge = Lerdge_X_firmware_force.bin
335 # Lerdge X with USB Flash Drive Support
337 [env:LERDGEX_usb_flash_drive]
338 extends = env:LERDGEX
339 platform_packages = ${stm_flash_drive.platform_packages}
340 build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
343 # Lerdge S (STM32F407ZG)
346 extends = lerdge_common
347 board_build.crypt_lerdge = Lerdge_firmware_force.bin
350 # Lerdge S with USB Flash Drive Support
352 [env:LERDGES_usb_flash_drive]
353 extends = env:LERDGES
354 platform_packages = ${stm_flash_drive.platform_packages}
355 build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
358 # Lerdge K (STM32F407ZG)
361 extends = lerdge_common
362 board_build.crypt_lerdge = Lerdge_K_firmware_force.bin
363 build_flags = ${lerdge_common.build_flags} -DLERDGEK
366 # Lerdge K with USB Flash Drive Support
368 [env:LERDGEK_usb_flash_drive]
369 extends = env:LERDGEK
370 platform_packages = ${stm_flash_drive.platform_packages}
371 build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
377 extends = stm32_variant
378 board = rumba32_f446ve
379 board_build.variant = MARLIN_F446VE
380 board_build.offset = 0x0000
381 build_flags = ${stm32_variant.build_flags}
382 -Os
-DHAL_PCD_MODULE_ENABLED
383 -DDISABLE_GENERIC_SERIALUSB
384 -DHAL_UART_MODULE_ENABLED
386 monitor_speed = 500000
387 upload_protocol = dfu
393 extends = stm32_variant
394 platform_packages = ${stm_flash_drive.platform_packages}
395 board = genericSTM32F407VET6
396 board_build.variant = MARLIN_F4x7Vx
397 board_build.offset = 0x0000
398 board_upload.offset_address = 0x08000000
399 build_flags = ${stm_flash_drive.build_flags}
400 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
402 upload_protocol = jlink
405 # This I2C1(PB6:I2C1_SCL PB7:I2C1_SDA) is used by Robin Nano V3
408 build_flags = -DPIN_WIRE_SCL=PB6 -DPIN_WIRE_SDA=PB7
413 [env:mks_robin_nano_v3]
414 extends = stm32_variant
415 board = marlin_STM32F407VGT6_CCM
416 board_build.variant = MARLIN_F4x7Vx
417 board_build.offset = 0xC000
418 board_upload.offset_address = 0x0800C000
419 board_build.rename = Robin_nano_v3.bin
420 build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags}
421 -DHAL_PCD_MODULE_ENABLED
423 upload_protocol = jlink
426 # MKS Robin Nano V3 with USB Flash Drive Support
427 # Currently, using a STM32duino fork, until USB Host get merged
429 [env:mks_robin_nano_v3_usb_flash_drive]
430 extends = env:mks_robin_nano_v3
431 platform_packages = ${stm_flash_drive.platform_packages}
432 build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags}
439 # MKS Robin Nano V3 with USB Flash Drive Support and Shared Media
440 # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged
442 [env:mks_robin_nano_v3_usb_flash_drive_msc]
443 extends = env:mks_robin_nano_v3_usb_flash_drive
444 build_flags = ${env:mks_robin_nano_v3_usb_flash_drive.build_flags}
446 build_unflags = -DUSBD_USE_CDC
449 # MKS Robin Nano V3_1
451 [env:mks_robin_nano_v3_1]
452 extends = env:mks_robin_nano_v3
453 board = marlin_STM32F407VET6_CCM
456 # MKS Robin Nano V3.1 with USB Flash Drive Support
457 # Currently, using a STM32duino fork, until USB Host get merged
459 [env:mks_robin_nano_v3_1_usb_flash_drive]
460 extends = env:mks_robin_nano_v3_usb_flash_drive
461 board = marlin_STM32F407VET6_CCM
464 # MKS Robin Nano V3.1 with USB Flash Drive Support and Shared Media
465 # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged
467 [env:mks_robin_nano_v3_1_usb_flash_drive_msc]
468 extends = env:mks_robin_nano_v3_usb_flash_drive_msc
469 board = marlin_STM32F407VET6_CCM
473 # 5 TMC2209 uart mode on board
476 extends = stm32_variant
477 board = marlin_STM32F407VGT6_CCM
478 board_build.variant = MARLIN_F4x7Vx
479 board_build.offset = 0xC000
480 board_upload.offset_address = 0x0800C000
481 board_build.rename = mks_eagle.bin
482 build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags}
483 -DHAL_PCD_MODULE_ENABLED
484 -DSTM32_FLASH_SIZE=512
486 upload_protocol = jlink
489 # MKS Eagle with USB Flash Drive Support
490 # Currently, using a STM32duino fork, until USB Host get merged
492 [env:mks_eagle_usb_flash_drive]
493 extends = env:mks_eagle
494 platform_packages = ${stm_flash_drive.platform_packages}
495 build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags}
502 # MKS Eagle with USB Flash Drive Support and Shared Media
503 # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged
505 [env:mks_eagle_usb_flash_drive_msc]
506 extends = env:mks_eagle_usb_flash_drive
507 build_flags = ${env:mks_eagle_usb_flash_drive.build_flags}
509 build_unflags = -DUSBD_USE_CDC
512 # This I2C1(PB8:I2C1_SCL PB9:I2C1_SDA) is used by MKS Monster8
515 build_flags = -DPIN_WIRE_SCL=PB8 -DPIN_WIRE_SDA=PB9
518 # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4)
521 extends = stm32_variant
522 board = marlin_STM32F407VGT6_CCM
523 board_build.variant = MARLIN_F4x7Vx
524 board_build.offset = 0xC000
525 board_upload.offset_address = 0x0800C000
526 board_build.rename = mks_monster8.bin
527 build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1_CAN.build_flags}
528 -DHAL_PCD_MODULE_ENABLED -DTIMER_SERIAL=TIM4
529 -DSTM32_FLASH_SIZE=512
531 upload_protocol = jlink
534 # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) with USB Flash Drive Support
535 # Currently, using a STM32duino fork, until USB Host get merged
537 [env:mks_monster8_usb_flash_drive]
538 extends = env:mks_monster8
539 platform_packages = ${stm_flash_drive.platform_packages}
540 build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1_CAN.build_flags}
547 # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) with USB Flash Drive Support and Shared Media
548 # Currently, using a STM32duino fork, until USB Host and USB Device MSC get merged
550 [env:mks_monster8_usb_flash_drive_msc]
551 extends = env:mks_monster8_usb_flash_drive
552 build_flags = ${env:mks_monster8_usb_flash_drive.build_flags}
554 build_unflags = -DUSBD_USE_CDC
557 # TH3D EZBoard v2.0 (STM32F405RGT6 ARM Cortex-M4)
560 extends = stm32_variant
561 board = genericSTM32F405RG
562 board_build.variant = MARLIN_TH3D_EZBOARD_V2
563 build_flags = ${stm32_variant.build_flags} -DHSE_VALUE=12000000U -O0
566 # TH3D EZBoard v2.0 directly flashed via ST-Link
568 [env:TH3D_EZBoard_V2_no_bootloader]
569 extends = TH3D_EZBoard_V2
571 upload_protocol = stlink
574 # TH3D EZBoard v2.0 with OpenBLT from https://github.com/rhapsodyv/OpenBLT-STM32
576 [env:TH3D_EZBoard_V2_OpenBLT]
577 extends = TH3D_EZBoard_V2
578 board_build.encode = firmware.bin
579 board_build.offset = 0xC000
580 board_upload.offset_address = 0x0800C000
581 extra_scripts = ${stm32_variant.extra_scripts}
582 buildroot
/share
/PlatformIO
/scripts
/openblt.py
585 # BOARD_MKS_ROBIN_NANO_V1_3_F4
586 # - MKS Robin Nano V1.3 (STM32F407VET6) 5 Pololu Plug
587 # - MKS Robin Nano-S V1.3 (STM32F407VET6) 4 TMC2225 + 1 Pololu Plug
589 [env:mks_robin_nano_v1_3_f4]
590 extends = stm32_variant
591 board = marlin_STM32F407VGT6_CCM
592 board_build.variant = MARLIN_F4x7Vx
593 board_build.offset = 0x8000
594 board_upload.offset_address = 0x08008000
595 board_build.rename = Robin_nano35.bin
596 build_flags = ${stm32_variant.build_flags}
597 -DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
598 -DSTM32_FLASH_SIZE=512
599 -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2
600 -DHAL_SD_MODULE_ENABLED
601 -DHAL_SRAM_MODULE_ENABLED
602 build_unflags = ${stm32_variant.build_unflags}
603 -DUSBCON
-DUSBD_USE_CDC
605 upload_protocol = jlink
611 extends = common_stm32
612 board = marlin_Artillery_Ruby
613 build_flags = ${common_stm32.build_flags}
614 -DSTM32F401xC
-DTARGET_STM32F4
-DDISABLE_GENERIC_SERIALUSB
-DARDUINO_ARCH_STM32
615 -DUSBD_USE_CDC_COMPOSITE
-DUSE_USB_FS
616 -DUSB_PRODUCT=\"Artillery_3D_Printer\"
617 -DFLASH_DATA_SECTOR=1U -DFLASH_BASE_ADDRESS=0x08004000
618 extra_scripts = ${common_stm32.extra_scripts}
619 pre
:buildroot
/share
/PlatformIO
/scripts
/generic_create_variant.py
622 # Ender-3 S1 STM32F401RC_creality
624 [env:STM32F401RC_creality]
625 extends = stm32_variant
626 board = genericSTM32F401RC
627 board_build.variant = MARLIN_CREALITY_STM32F401RC
628 board_build.offset = 0x10000
629 board_upload.offset_address = 0x08010000
630 build_flags = ${stm32_variant.build_flags} -DMCU_STM32F401RC -DSTM32F4
631 -DSS_TIMER=4 -DTIMER_SERVO=TIM5
632 -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8
633 build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
634 extra_scripts = ${stm32_variant.extra_scripts}
635 pre
:buildroot
/share
/PlatformIO
/scripts
/random
-bin.py
636 monitor_speed = 115200
638 [env:STM32F401RC_creality_jlink]
639 extends = env:STM32F401RC_creality
641 upload_protocol = jlink
643 [env:STM32F401RC_creality_stlink]
644 extends = env:STM32F401RC_creality
646 upload_protocol = stlink