stm32f4.ini 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965
  1. #
  2. # Marlin Firmware
  3. # PlatformIO Configuration File
  4. #
  5. #################################
  6. #
  7. # STM32F4 Architecture
  8. #
  9. # Naming Example: STM32F401RGT6
  10. #
  11. # F : Foundation (sometimes High Performance F2/F4)
  12. # 4 : Cortex M4 core (0:M0, 1-2:M3, 3-4:M4, 7:M7)
  13. # 01 : Line/Features
  14. # R : 64 or 66 pins (T:36, C:48 or 49, M:81, V:100, Z:144, I:176)
  15. # G : 1024KB Flash-memory (B:128KB, C:256KB, D:384KB, E:512KB)
  16. # T : LQFP package
  17. # 6 : -40...85°C (7: ...105°C)
  18. #
  19. #################################
  20. #
  21. # ARMED (STM32)
  22. #
  23. [env:ARMED]
  24. extends = common_stm32
  25. board = armed_v1
  26. build_flags = ${common_stm32.build_flags}
  27. -O2 -ffreestanding -fsigned-char -fno-move-loop-invariants -fno-strict-aliasing
  28. #
  29. # STM32F401RC
  30. #
  31. [env:FYSETC_CHEETAH_V20]
  32. extends = stm32_variant
  33. platform_packages = platformio/tool-dfuutil@~1.11.0
  34. board = marlin_FYSETC_CHEETAH_V20
  35. board_build.offset = 0x8000
  36. board_build.offset_address = 0x08008000
  37. build_flags = ${stm32_variant.build_flags} -DSTM32F401xC
  38. upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE"
  39. #
  40. # STM32F446RC nobootloader
  41. #
  42. [env:FYSETC_CHEETAH_V30]
  43. extends = stm32_variant
  44. platform_packages = platformio/tool-dfuutil@~1.11.0
  45. board = marlin_FYSETC_CHEETAH_V30
  46. build_flags = ${stm32_variant.build_flags} -DHAL_PCD_MODULE_ENABLED
  47. debug_tool = stlink
  48. upload_protocol = dfu
  49. upload_command = dfu-util -a 0 -s 0x08000000:leave -D "$SOURCE"
  50. #
  51. # FLYF407ZG
  52. #
  53. [env:FLYF407ZG]
  54. extends = stm32_variant
  55. platform_packages = platformio/tool-dfuutil@~1.11.0
  56. board = marlin_STM32F407ZGT6
  57. board_build.variant = MARLIN_FLY_F407ZG
  58. board_build.offset = 0x8000
  59. board_build.offset_address = 0x08008000
  60. upload_protocol = dfu
  61. #
  62. # FYSETC S6 (STM32F446RET6 ARM Cortex-M4)
  63. #
  64. [env:FYSETC_S6]
  65. extends = stm32_variant
  66. platform_packages = platformio/tool-dfuutil@~1.11.0
  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
  71. debug_tool = stlink
  72. upload_protocol = dfu
  73. upload_command = dfu-util -a 0 -s 0x08010000:leave -D "$SOURCE"
  74. #
  75. # FYSETC S6 new bootloader
  76. #
  77. [env:FYSETC_S6_8000]
  78. extends = env:FYSETC_S6
  79. board = marlin_fysetc_s6
  80. board_build.offset = 0x8000
  81. board_upload.offset_address = 0x08008000
  82. upload_command = dfu-util -a 0 -s 0x08008000:leave -D "$SOURCE"
  83. #
  84. # FYSETC SPIDER KING407 (STM32F407ZGT6 ARM Cortex-M4)
  85. #
  86. [env:FYSETC_SPIDER_KING407]
  87. extends = stm32_variant
  88. platform_packages = platformio/tool-dfuutil@~1.11.0
  89. board = marlin_STM32F407ZGT6
  90. board_build.variant = MARLIN_FYSETC_SPIDER_KING407
  91. board_build.offset = 0x8000
  92. board_build.offset_address = 0x08008000
  93. upload_protocol = dfu
  94. #
  95. # STM32F407VET6 with RAMPS-like shield
  96. # 'Black' STM32F407VET6 board - https://wiki.stm32duino.com/index.php?title=STM32F407
  97. # Shield - https://github.com/jmz52/Hardware
  98. #
  99. [env:STM32F407VE_black]
  100. extends = stm32_variant
  101. board = marlin_blackSTM32F407VET6
  102. build_flags = ${stm32_variant.build_flags}
  103. -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
  104. #
  105. # STM32F407VET6 Opulo Lumen REV3
  106. #
  107. [env:Opulo_Lumen_REV3]
  108. extends = stm32_variant
  109. board = marlin_opulo_lumen_rev3
  110. build_flags = ${stm32_variant.build_flags}
  111. -DARDUINO_BLACK_F407VE
  112. -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS -DHAS_STM32_UID
  113. extra_scripts = ${stm32_variant.extra_scripts}
  114. #
  115. # STM32F407VET6 Opulo Lumen REV4
  116. #
  117. [env:Opulo_Lumen_REV4]
  118. extends = stm32_variant
  119. board = marlin_opulo_lumen_rev4
  120. build_flags = ${stm32_variant.build_flags}
  121. -DARDUINO_BLACK_F407VE
  122. -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS -DHAS_STM32_UID
  123. extra_scripts = ${stm32_variant.extra_scripts}
  124. #
  125. # Anet ET4-MB_V1.x/ET4P-MB_V1.x (STM32F407VGT6 ARM Cortex-M4)
  126. #
  127. [Anet_ET4]
  128. extends = stm32_variant
  129. board = marlin_STM32F407VGT6_CCM
  130. board_build.variant = MARLIN_F4x7Vx
  131. build_flags = ${stm32_variant.build_flags}
  132. -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
  133. build_unflags = ${stm32_variant.build_unflags}
  134. -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483
  135. #
  136. # Anet ET4 directly flashed via ST-Link
  137. #
  138. [env:Anet_ET4_no_bootloader]
  139. extends = Anet_ET4
  140. debug_tool = stlink
  141. upload_protocol = stlink
  142. #
  143. # Anet ET4 with OpenBLT from https://github.com/davidtgbe/openblt/releases
  144. #
  145. [env:Anet_ET4_OpenBLT]
  146. extends = Anet_ET4
  147. board_build.encode = firmware.srec
  148. board_build.offset = 0x10000
  149. board_upload.offset_address = 0x08010000
  150. extra_scripts = ${Anet_ET4.extra_scripts}
  151. buildroot/share/PlatformIO/scripts/openblt.py
  152. #
  153. # BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4)
  154. #
  155. [env:BTT_SKR_PRO]
  156. extends = stm32_variant
  157. board = marlin_BTT_SKR_Pro
  158. board_build.offset = 0x8000
  159. board_build.offset_address = 0x08008000
  160. build_flags = ${stm32_variant.build_flags} -DSTM32F407_5ZX
  161. debug_tool = stlink
  162. upload_protocol = stlink
  163. #
  164. # BigTreeTech SKR Pro (STM32F407ZGT6 ARM Cortex-M4) with USB Flash Drive Support
  165. #
  166. [env:BTT_SKR_PRO_usb_flash_drive]
  167. extends = env:BTT_SKR_PRO
  168. platform_packages = ${stm_flash_drive.platform_packages}
  169. build_flags = ${stm_flash_drive.build_flags} -DSTM32F407_5ZX
  170. build_unflags = ${env:BTT_SKR_PRO.build_unflags} -DUSBCON -DUSBD_USE_CDC
  171. #
  172. # BigTreeTech E3 RRF (STM32F407VGT6 ARM Cortex-M4)
  173. #
  174. [env:BTT_E3_RRF]
  175. extends = stm32_variant
  176. board = marlin_STM32F407VGT6_CCM
  177. board_build.variant = MARLIN_BTT_E3_RRF
  178. board_build.offset = 0x8000
  179. board_build.offset_address = 0x08008000
  180. build_flags = ${stm32_variant.build_flags}
  181. -DSTM32F407_5VX
  182. -DMF_RX_BUFFER_SIZE=255
  183. -DMF_TX_BUFFER_SIZE=255
  184. #
  185. # Mellow/Fly RRF E3 V1 (STM32F407VGT6 ARM Cortex-M4)
  186. #
  187. [env:FLY_RRF_E3_V1]
  188. extends = stm32_variant
  189. board = marlin_STM32F407VGT6_CCM
  190. #board_build.variant = MARLIN_BTT_E3_RRF
  191. board_build.offset = 0x8000
  192. board_build.offset_address = 0x08008000
  193. build_flags = ${stm32_variant.build_flags}
  194. -DSTM32F407_5VX
  195. -DMF_RX_BUFFER_SIZE=255
  196. -DMF_TX_BUFFER_SIZE=255
  197. #
  198. # Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4)
  199. #
  200. [env:BTT_GTR_V1_0]
  201. extends = stm32_variant
  202. board = marlin_BTT_GTR_v1
  203. board_build.offset = 0x8000
  204. board_build.offset_address = 0x08008000
  205. build_flags = ${stm32_variant.build_flags} -DSTM32F407IX
  206. #
  207. # Bigtreetech GTR V1.0 (STM32F407IGT6 ARM Cortex-M4) with USB Flash Drive Support
  208. #
  209. [env:BTT_GTR_V1_0_usb_flash_drive]
  210. extends = env:BTT_GTR_V1_0
  211. platform_packages = ${stm_flash_drive.platform_packages}
  212. build_flags = ${stm_flash_drive.build_flags} -DSTM32F407IX
  213. build_unflags = ${env:BTT_GTR_V1_0.build_unflags} -DUSBCON -DUSBD_USE_CDC
  214. #
  215. # BigTreeTech BTT002 V1.0 (STM32F407VGT6 ARM Cortex-M4)
  216. #
  217. [env:BTT_BTT002]
  218. extends = stm32_variant
  219. board = marlin_BTT_BTT002
  220. board_build.offset = 0x8000
  221. board_build.offset_address = 0x08008000
  222. build_flags = ${stm32_variant.build_flags}
  223. -DSTM32F407_5VX
  224. -DHAVE_HWSERIAL2
  225. -DHAVE_HWSERIAL3
  226. -DPIN_SERIAL2_RX=PD_6
  227. -DPIN_SERIAL2_TX=PD_5
  228. #
  229. # BigTreeTech BTT002 V1.x with 512k of flash (STM32F407VET6 ARM Cortex-M4)
  230. #
  231. [env:BTT_BTT002_VET6]
  232. extends = env:BTT_BTT002
  233. board = marlin_BTT_BTT002_VET6
  234. [USB_HS_IN_FS]
  235. build_flags = -DUSE_USBHOST_HS -DUSE_USB_HS_IN_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6
  236. #
  237. # BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Flash Drive Support
  238. #
  239. [env:STM32F407VG_btt]
  240. extends = stm32_variant
  241. platform_packages = ${stm_flash_drive.platform_packages}
  242. board = marlin_STM32F407VGT6_CCM
  243. board_build.variant = MARLIN_F4x7Vx
  244. board_build.offset = 0x8000
  245. board_upload.offset_address = 0x08008000
  246. build_flags = ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
  247. -DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED
  248. -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
  249. upload_protocol = stlink
  250. #
  251. # BigTreeTech SKR V2.0 (STM32F407VGT6 ARM Cortex-M4) with USB Media Share Support
  252. #
  253. [env:STM32F407VG_btt_USB]
  254. extends = env:STM32F407VG_btt
  255. build_flags = ${env:STM32F407VG_btt.build_flags} -DUSBD_USE_CDC_MSC
  256. build_unflags = ${env:STM32F407VG_btt.build_unflags} -DUSBD_USE_CDC
  257. [env:STM32F407VG_btt_USB_debug]
  258. extends = env:STM32F407VG_btt_USB
  259. build_flags = ${env:STM32F407VG_btt_USB.build_flags} -O0
  260. build_unflags = ${env:STM32F407VG_btt_USB.build_unflags} -Os -NDEBUG
  261. #
  262. # Bigtreetech SKR V2.0 (STM32F429VGT6 ARM Cortex-M4) with USB Flash Drive Support
  263. #
  264. [env:STM32F429VG_btt]
  265. extends = env:STM32F407VG_btt
  266. board = marlin_STM32F429VGT6
  267. #
  268. # BigTreeTech SKR V2.0 (STM32F429VGT6 ARM Cortex-M4) with USB Media Share Support
  269. #
  270. [env:STM32F429VG_btt_USB]
  271. extends = env:STM32F429VG_btt
  272. build_flags = ${env:STM32F429VG_btt.build_flags} -DUSBD_USE_CDC_MSC
  273. build_unflags = ${env:STM32F429VG_btt.build_unflags} -DUSBD_USE_CDC
  274. [env:STM32F429VG_btt_USB_debug]
  275. extends = env:STM32F429VG_btt_USB
  276. build_flags = ${env:STM32F429VG_btt_USB.build_flags} -O0
  277. build_unflags = ${env:STM32F429VG_btt_USB.build_unflags} -Os -NDEBUG
  278. #
  279. # BigTreeTech Octopus V1.0/1.1 / Octopus Pro V1.0 (STM32F446ZET6 ARM Cortex-M4)
  280. #
  281. [env:STM32F446ZE_btt]
  282. extends = stm32_variant
  283. board = marlin_BTT_Octopus_v1
  284. board_build.offset = 0x8000
  285. board_upload.offset_address = 0x08008000
  286. debug_tool = stlink
  287. upload_protocol = stlink
  288. build_flags = ${stm32_variant.build_flags}
  289. -DSTM32F446_5VX -DUSE_USB_HS_IN_FS
  290. #
  291. # BigTreeTech Octopus V1.0/1.1 / Octopus Pro V1.0 (STM32F446ZET6 ARM Cortex-M4) with USB Flash Drive Support
  292. #
  293. [env:STM32F446ZE_btt_usb_flash_drive]
  294. extends = env:STM32F446ZE_btt
  295. platform_packages = ${stm_flash_drive.platform_packages}
  296. build_unflags = -DUSBD_USE_CDC
  297. build_flags = ${stm_flash_drive.build_flags} -DSTM32F446_5VX
  298. ${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
  299. #
  300. # BigTreeTech Octopus V1.1 / Octopus Pro V1.0 (STM32F429ZGT6 ARM Cortex-M4)
  301. #
  302. [env:STM32F429ZG_btt]
  303. extends = stm32_variant
  304. board = marlin_BTT_Octopus_Pro_v1_F429
  305. board_build.offset = 0x8000
  306. board_upload.offset_address = 0x08008000
  307. debug_tool = stlink
  308. upload_protocol = stlink
  309. build_flags = ${stm32_variant.build_flags}
  310. -DUSE_USB_HS_IN_FS
  311. #
  312. # BigTreeTech Octopus V1.1 / Octopus Pro V1.0 (STM32F429ZGT6 ARM Cortex-M4) with USB Flash Drive Support
  313. #
  314. [env:STM32F429ZG_btt_usb_flash_drive]
  315. extends = env:STM32F429ZG_btt
  316. platform_packages = ${stm_flash_drive.platform_packages}
  317. build_unflags = -DUSBD_USE_CDC
  318. build_flags = ${stm_flash_drive.build_flags}
  319. ${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
  320. #
  321. # BigTreeTech Octopus / Octopus Pro (STM32F407ZET6 ARM Cortex-M4)
  322. #
  323. [env:STM32F407ZE_btt]
  324. extends = stm32_variant
  325. board = marlin_STM32F407ZE
  326. board_build.offset = 0x8000
  327. board_build.offset_address = 0x08008000
  328. build_flags = ${stm32_variant.build_flags}
  329. -DUSE_USB_HS_IN_FS
  330. #
  331. # BigTreeTech Octopus / Octopus Pro (STM32F407ZET6 ARM Cortex-M4) with USB Flash Drive Support
  332. #
  333. [env:STM32F407ZE_btt_usb_flash_drive]
  334. extends = env:STM32F407ZE_btt
  335. platform_packages = ${stm_flash_drive.platform_packages}
  336. build_unflags = -DUSBD_USE_CDC
  337. build_flags = ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags} -DUSBD_USE_CDC_MSC
  338. #
  339. # Lerdge base
  340. #
  341. [lerdge_common]
  342. extends = stm32_variant
  343. board = marlin_STM32F407ZGT6
  344. board_build.variant = MARLIN_LERDGE
  345. board_build.crypt_lerdge = firmware.bin
  346. board_build.offset = 0x10000
  347. board_build.offset_address = 0x08010000
  348. build_flags = ${stm32_variant.build_flags}
  349. -DSTM32F4 -DSTM32F4xx -DTARGET_STM32F4
  350. -DDISABLE_GENERIC_SERIALUSB -DARDUINO_ARCH_STM32 -DLERDGE_TFT35
  351. build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483
  352. extra_scripts = ${stm32_variant.extra_scripts}
  353. buildroot/share/PlatformIO/scripts/lerdge.py
  354. #
  355. # Lerdge X (STM32F407VE)
  356. #
  357. [env:LERDGEX]
  358. extends = lerdge_common
  359. board_build.crypt_lerdge = Lerdge_X_firmware_force.bin
  360. #
  361. # Lerdge X with USB Flash Drive Support
  362. #
  363. [env:LERDGEX_usb_flash_drive]
  364. extends = env:LERDGEX
  365. platform_packages = ${stm_flash_drive.platform_packages}
  366. build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
  367. #
  368. # Lerdge S (STM32F407ZG)
  369. #
  370. [env:LERDGES]
  371. extends = lerdge_common
  372. board_build.crypt_lerdge = Lerdge_firmware_force.bin
  373. #
  374. # Lerdge S with USB Flash Drive Support
  375. #
  376. [env:LERDGES_usb_flash_drive]
  377. extends = env:LERDGES
  378. platform_packages = ${stm_flash_drive.platform_packages}
  379. build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
  380. #
  381. # Lerdge K (STM32F407ZG)
  382. #
  383. [env:LERDGEK]
  384. extends = lerdge_common
  385. board_build.crypt_lerdge = Lerdge_K_firmware_force.bin
  386. build_flags = ${lerdge_common.build_flags} -DLERDGEK
  387. #
  388. # Lerdge K with USB Flash Drive Support
  389. #
  390. [env:LERDGEK_usb_flash_drive]
  391. extends = env:LERDGEK
  392. platform_packages = ${stm_flash_drive.platform_packages}
  393. build_flags = ${stm_flash_drive.build_flags} ${lerdge_common.build_flags}
  394. #
  395. # RUMBA32
  396. #
  397. [env:rumba32]
  398. extends = stm32_variant
  399. platform_packages = platformio/tool-dfuutil@~1.11.0
  400. board = rumba32_f446ve
  401. board_build.variant = MARLIN_F446VE
  402. board_build.offset = 0x0000
  403. board_build.offset_address = 0x08000000
  404. build_flags = ${stm32_variant.build_flags}
  405. -Os -DHAL_PCD_MODULE_ENABLED
  406. -DDISABLE_GENERIC_SERIALUSB
  407. -DHAL_UART_MODULE_ENABLED
  408. -DTIMER_SERIAL=TIM9
  409. monitor_speed = 500000
  410. upload_protocol = dfu
  411. #
  412. # STM32F407ZET6 ARM Cortex-M4
  413. #
  414. [env:mks_robin2]
  415. extends = stm32_variant
  416. board = marlin_MKS_ROBIN2
  417. board_build.offset = 0xC000
  418. board_upload.offset_address = 0x0800C000
  419. board_build.encrypt_mks = Robin2.bin
  420. build_flags = ${stm32_variant.build_flags}
  421. -DTARGET_STM32F4 -DSTM32F407_5ZX
  422. -DUSBCON -DUSBD_USE_CDC -DUSBD_VID=0x0483 -DUSBD_PID=0x3748 -DUSB_PRODUCT=\"MKS_Robin2\"
  423. #
  424. # MKS Robin Pro V2 (No bootloader!)
  425. #
  426. [env:mks_robin_pro2]
  427. extends = stm32_variant
  428. platform_packages = ${stm_flash_drive.platform_packages}
  429. board = genericSTM32F407VET6
  430. board_build.variant = MARLIN_F4x7Vx
  431. board_build.offset = 0x0000
  432. board_upload.offset_address = 0x08000000
  433. build_flags = ${stm_flash_drive.build_flags}
  434. build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
  435. debug_tool = jlink
  436. upload_protocol = jlink
  437. #
  438. # This I2C1(PB6:I2C1_SCL PB7:I2C1_SDA) is used by Robin Nano V3
  439. #
  440. [stm32f4_I2C1]
  441. build_flags = -DPIN_WIRE_SCL=PB6 -DPIN_WIRE_SDA=PB7
  442. #
  443. # MKS Robin Nano V3
  444. #
  445. [env:mks_robin_nano_v3]
  446. extends = stm32_variant
  447. board = marlin_STM32F407VGT6_CCM
  448. board_build.variant = MARLIN_F4x7Vx
  449. board_build.offset = 0xC000
  450. board_upload.offset_address = 0x0800C000
  451. board_build.rename = Robin_nano_v3.bin
  452. build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags}
  453. -DHAL_PCD_MODULE_ENABLED
  454. debug_tool = jlink
  455. upload_protocol = jlink
  456. #
  457. # MKS Robin Nano V3 with USB Flash Drive Support
  458. #
  459. [env:mks_robin_nano_v3_usb_flash_drive]
  460. extends = env:mks_robin_nano_v3
  461. platform_packages = ${stm_flash_drive.platform_packages}
  462. build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
  463. #
  464. # MKS Robin Nano V3 with USB Flash Drive Support and Shared Media
  465. #
  466. [env:mks_robin_nano_v3_usb_flash_drive_msc]
  467. extends = env:mks_robin_nano_v3_usb_flash_drive
  468. build_flags = ${env:mks_robin_nano_v3_usb_flash_drive.build_flags}
  469. -DUSBD_USE_CDC_MSC
  470. build_unflags = ${env:mks_robin_nano_v3_usb_flash_drive.build_unflags}
  471. -DUSBD_USE_CDC
  472. #
  473. # MKS Robin Nano V3_1
  474. #
  475. [env:mks_robin_nano_v3_1]
  476. extends = env:mks_robin_nano_v3
  477. board = marlin_STM32F407VET6_CCM
  478. #
  479. # MKS Robin Nano V3.1 with USB Flash Drive Support
  480. #
  481. [env:mks_robin_nano_v3_1_usb_flash_drive]
  482. extends = env:mks_robin_nano_v3_usb_flash_drive
  483. board = marlin_STM32F407VET6_CCM
  484. #
  485. # MKS Robin Nano V3.1 with USB Flash Drive Support and Shared Media
  486. #
  487. [env:mks_robin_nano_v3_1_usb_flash_drive_msc]
  488. extends = env:mks_robin_nano_v3_usb_flash_drive_msc
  489. board = marlin_STM32F407VET6_CCM
  490. #
  491. # MKS Eagle
  492. # 5 TMC2209 uart mode on board
  493. #
  494. [env:mks_eagle]
  495. extends = stm32_variant
  496. board = marlin_STM32F407VGT6_CCM
  497. board_build.variant = MARLIN_F4x7Vx
  498. board_build.offset = 0xC000
  499. board_upload.offset_address = 0x0800C000
  500. board_build.rename = mks_eagle.bin
  501. build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags}
  502. -DHAL_PCD_MODULE_ENABLED
  503. -DSTM32_FLASH_SIZE=512
  504. debug_tool = jlink
  505. upload_protocol = jlink
  506. #
  507. # MKS Eagle with USB Flash Drive Support
  508. #
  509. [env:mks_eagle_usb_flash_drive]
  510. extends = env:mks_eagle
  511. platform_packages = ${stm_flash_drive.platform_packages}
  512. build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1.build_flags} ${USB_HS_IN_FS.build_flags}
  513. #
  514. # MKS Eagle with USB Flash Drive Support and Shared Media
  515. #
  516. [env:mks_eagle_usb_flash_drive_msc]
  517. extends = env:mks_eagle_usb_flash_drive
  518. build_flags = ${env:mks_eagle_usb_flash_drive.build_flags}
  519. -DUSBD_USE_CDC_MSC
  520. build_unflags = -DUSBD_USE_CDC
  521. #
  522. # This I2C1(PB8:I2C1_SCL PB9:I2C1_SDA) is used by MKS Monster8
  523. #
  524. [stm32f4_I2C1_CAN]
  525. build_flags = -DPIN_WIRE_SCL=PB8 -DPIN_WIRE_SDA=PB9
  526. #
  527. # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4)
  528. #
  529. [env:mks_monster8]
  530. extends = stm32_variant
  531. board = marlin_STM32F407VGT6_CCM
  532. board_build.variant = MARLIN_F4x7Vx
  533. board_build.offset = 0xC000
  534. board_upload.offset_address = 0x0800C000
  535. board_build.rename = mks_monster8.bin
  536. build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1_CAN.build_flags}
  537. -DHAL_PCD_MODULE_ENABLED -DTIMER_SERIAL=TIM4
  538. -DSTM32_FLASH_SIZE=512
  539. debug_tool = jlink
  540. upload_protocol = jlink
  541. #
  542. # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) with USB Flash Drive Support
  543. #
  544. [env:mks_monster8_usb_flash_drive]
  545. extends = env:mks_monster8
  546. platform_packages = ${stm_flash_drive.platform_packages}
  547. build_flags = ${stm_flash_drive.build_flags} ${stm32f4_I2C1_CAN.build_flags} ${USB_HS_IN_FS.build_flags}
  548. #
  549. # MKS Monster8 V1 / V2 (STM32F407VET6 ARM Cortex-M4) with USB Flash Drive Support and Shared Media
  550. #
  551. [env:mks_monster8_usb_flash_drive_msc]
  552. extends = env:mks_monster8_usb_flash_drive
  553. build_flags = ${env:mks_monster8_usb_flash_drive.build_flags}
  554. -DUSBD_USE_CDC_MSC
  555. build_unflags = -DUSBD_USE_CDC
  556. #
  557. # TH3D EZBoard v2.0 (STM32F405RGT6 ARM Cortex-M4)
  558. #
  559. [TH3D_EZBoard_V2]
  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
  564. #
  565. # TH3D EZBoard v2.0 directly flashed via ST-Link
  566. #
  567. [env:TH3D_EZBoard_V2_no_bootloader]
  568. extends = TH3D_EZBoard_V2
  569. debug_tool = stlink
  570. upload_protocol = stlink
  571. #
  572. # TH3D EZBoard v2.0 with OpenBLT from https://github.com/rhapsodyv/OpenBLT-STM32
  573. #
  574. [env:TH3D_EZBoard_V2_OpenBLT]
  575. extends = TH3D_EZBoard_V2
  576. board_build.encode = firmware.bin
  577. board_build.offset = 0xC000
  578. board_upload.offset_address = 0x0800C000
  579. extra_scripts = ${TH3D_EZBoard_V2.extra_scripts}
  580. buildroot/share/PlatformIO/scripts/openblt.py
  581. [mks_robin_nano_v1_3_f4_common]
  582. extends = stm32_variant
  583. board = marlin_STM32F407VGT6_CCM
  584. board_build.variant = MARLIN_F4x7Vx
  585. board_build.offset = 0x8000
  586. board_upload.offset_address = 0x08008000
  587. board_build.rename = Robin_nano35.bin
  588. debug_tool = jlink
  589. upload_protocol = jlink
  590. #
  591. # MKS Neptune X
  592. #
  593. [env:mks_neptune_x]
  594. extends = stm32_variant
  595. board = marlin_STM32F407VGT6_CCM
  596. board_build.variant = MARLIN_F4x7Vx
  597. board_build.offset = 0xC000
  598. board_upload.offset_address = 0x0800C000
  599. board_build.rename = elegoo.bin
  600. platform_packages = ${stm_flash_drive.platform_packages}
  601. build_flags = ${stm32_variant.build_flags} ${stm32f4_I2C1.build_flags}
  602. ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
  603. -DHAL_PCD_MODULE_ENABLED -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
  604. -DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
  605. -DSTM32_FLASH_SIZE=512
  606. -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2
  607. debug_tool = jlink
  608. upload_protocol = jlink
  609. #
  610. # MKS Neptune 3
  611. #
  612. [env:mks_neptune_3]
  613. extends = stm32_variant
  614. board = marlin_STM32F407VGT6_CCM
  615. board_build.variant = MARLIN_F4x7Vx
  616. board_build.offset = 0xC000
  617. board_upload.offset_address = 0x0800C000
  618. board_build.rename = ZNP_ROBIN_NANO.bin
  619. platform_packages = ${stm_flash_drive.platform_packages}
  620. build_flags = ${stm32_variant.build_flags}
  621. -DMCU_STM32F407VE -DSS_TIMER=4 -DENABLE_HWSERIAL3
  622. -DSTM32_FLASH_SIZE=512
  623. -DTIMER_TONE=TIM3 -DTIMER_SERVO=TIM2
  624. -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
  625. build_unflags = ${stm32_variant.build_unflags}
  626. -DUSBCON -DUSBD_USE_CDC
  627. debug_tool = jlink
  628. upload_protocol = jlink
  629. #
  630. # BOARD_MKS_ROBIN_NANO_V1_3_F4
  631. # - MKS Robin Nano V1.3 (STM32F407VET6, 5 Pololu Plug)
  632. # - MKS Robin Nano-S V1.3 (STM32F407VET6, 4 TMC2225, 1 Pololu Plug)
  633. # - ZNP Robin Nano V1.3 (STM32F407VET6, 2 TMC2208, 2 A4988, 1x Polulu plug)
  634. #
  635. [env:mks_robin_nano_v1_3_f4]
  636. extends = mks_robin_nano_v1_3_f4_common
  637. build_flags = ${mks_robin_nano_v1_3_f4_common.build_flags}
  638. -DMCU_STM32F407VE -DENABLE_HWSERIAL3 -DSTM32_FLASH_SIZE=512
  639. -DTIMER_SERVO=TIM2 -DTIMER_TONE=TIM3 -DSS_TIMER=4
  640. -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
  641. build_unflags = ${mks_robin_nano_v1_3_f4_common.build_unflags}
  642. -DUSBCON -DUSBD_USE_CDC
  643. #
  644. # MKS/ZNP Robin Nano V1.3 with native USB mod
  645. #
  646. [env:mks_robin_nano_v1_3_f4_usbmod]
  647. extends = mks_robin_nano_v1_3_f4_common
  648. build_flags = ${mks_robin_nano_v1_3_f4_common.build_flags}
  649. -DMCU_STM32F407VE -DSTM32_FLASH_SIZE=512
  650. -DTIMER_SERVO=TIM2 -DTIMER_TONE=TIM3 -DSS_TIMER=4
  651. -DHAL_SD_MODULE_ENABLED -DHAL_SRAM_MODULE_ENABLED
  652. #
  653. # Elegoo Neptune 2
  654. #
  655. [env:znp_robin_nano_v1_3]
  656. extends = mks_robin_nano_v1_3_f4
  657. board_build.rename = elegoo.bin
  658. #
  659. # Artillery Ruby
  660. #
  661. [env:Artillery_Ruby]
  662. extends = common_stm32
  663. board = marlin_Artillery_Ruby
  664. build_flags = ${common_stm32.build_flags}
  665. -DSTM32F401xC -DTARGET_STM32F4 -DDISABLE_GENERIC_SERIALUSB -DARDUINO_ARCH_STM32
  666. -DUSBD_USE_CDC_COMPOSITE -DUSE_USB_FS
  667. -DUSB_PRODUCT=\"Artillery_3D_Printer\"
  668. -DFLASH_DATA_SECTOR=1U -DFLASH_BASE_ADDRESS=0x08004000
  669. extra_scripts = ${common_stm32.extra_scripts}
  670. pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
  671. #
  672. # Ender-3 S1 STM32F401RC_creality
  673. #
  674. [STM32F401RC_creality_base]
  675. extends = stm32_variant
  676. board = genericSTM32F401RC
  677. board_build.variant = MARLIN_F401RC_CREALITY
  678. build_flags = ${stm32_variant.build_flags} -DMCU_STM32F401RC -DSTM32F4
  679. -DSS_TIMER=4 -DTIMER_SERVO=TIM5
  680. -DENABLE_HWSERIAL3 -DTRANSFER_CLOCK_DIV=8
  681. build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
  682. monitor_speed = 115200
  683. [env:STM32F401RC_creality]
  684. extends = STM32F401RC_creality_base
  685. board_build.offset = 0x10000
  686. board_upload.offset_address = 0x08010000
  687. board_build.rename = firmware-{date}-{time}.bin
  688. [env:STM32F401RC_creality_nobootloader]
  689. extends = STM32F401RC_creality_base
  690. board_build.offset = 0x0000
  691. board_upload.offset_address = 0x08000000
  692. debug_tool = stlink
  693. upload_protocol = stlink
  694. [env:STM32F401RC_creality_jlink]
  695. extends = env:STM32F401RC_creality
  696. debug_tool = jlink
  697. upload_protocol = jlink
  698. [env:STM32F401RC_creality_stlink]
  699. extends = env:STM32F401RC_creality
  700. debug_tool = stlink
  701. upload_protocol = stlink
  702. #
  703. # Ender-5 S1 STM32F401RE_creality (CR4NS200141C13 with STM32F401RET6)
  704. #
  705. [env:STM32F401RE_creality]
  706. extends = stm32_variant
  707. board = marlin_STM32F401RE_creality
  708. board_build.offset = 0x10000
  709. board_upload.offset_address = 0x08010000
  710. board_build.rename = firmware-{date}-{time}.bin
  711. build_flags = ${stm32_variant.build_flags} -DSTM32F401xE -DSTM32F4 -DSTM32F4_UPDATE_FOLDER
  712. build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
  713. monitor_speed = 115200
  714. [env:STM32F401RE_creality_jlink]
  715. extends = env:STM32F401RE_creality
  716. debug_tool = jlink
  717. upload_protocol = jlink
  718. [env:STM32F401RE_creality_stlink]
  719. extends = env:STM32F401RE_creality
  720. debug_tool = stlink
  721. upload_protocol = stlink
  722. #
  723. # STM32F401RE_freeruns Creality E3 Free-runs Silent Motherboard
  724. #
  725. [env:STM32F401RE_freeruns]
  726. extends = stm32_variant
  727. board = marlin_STM32F401RE_freeruns
  728. board_build.offset = 0x10000
  729. board_upload.offset_address = 0x08010000
  730. board_build.rename = firmware-{date}-{time}.bin
  731. build_flags = ${stm32_variant.build_flags} -DSTM32F401xE
  732. -DSS_TIMER=4 -DTIMER_SERVO=TIM5
  733. -DTRANSFER_CLOCK_DIV=8
  734. build_unflags = ${stm32_variant.build_unflags} -DUSBCON -DUSBD_USE_CDC
  735. monitor_speed = 115200
  736. [env:STM32F401RE_freeruns_jlink]
  737. extends = env:STM32F401RE_freeruns
  738. debug_tool = jlink
  739. upload_protocol = jlink
  740. [env:STM32F401RE_freeruns_stlink]
  741. extends = env:STM32F401RE_freeruns
  742. debug_tool = stlink
  743. upload_protocol = stlink
  744. #
  745. # BigTree SKR mini E3 V3.0.1 (STM32F401RCT6 ARM Cortex-M4)
  746. #
  747. [env:STM32F401RC_btt]
  748. extends = stm32_variant
  749. platform = ststm32@~14.1.0
  750. platform_packages = framework-arduinoststm32@~4.20600.231001
  751. toolchain-gccarmnoneeabi@1.100301.220327
  752. board = marlin_STM32F401RC
  753. board_build.offset = 0x4000
  754. board_upload.offset_address = 0x08004000
  755. build_flags = ${stm32_variant.build_flags}
  756. -DPIN_SERIAL6_RX=PC_7 -DPIN_SERIAL6_TX=PC_6
  757. -DSERIAL_RX_BUFFER_SIZE=1024 -DSERIAL_TX_BUFFER_SIZE=1024
  758. -DTIMER_SERVO=TIM3 -DTIMER_TONE=TIM4
  759. -DSTEP_TIMER_IRQ_PRIO=0
  760. upload_protocol = stlink
  761. debug_tool = stlink
  762. #
  763. # BigTreeTech SKR Mini E3 V3.0.1 (STM32F401RCT6 ARM Cortex-M0+)
  764. # Custom upload to SD via Marlin with Binary Protocol
  765. # Requires Marlin with BINARY_FILE_TRANSFER already installed on the target board.
  766. # If CUSTOM_FIRMWARE_UPLOAD is also installed, Marlin will reboot the board to install the firmware.
  767. # Currently CUSTOM_FIRMWARE_UPLOAD must also be enabled to use 'xfer' build envs.
  768. #
  769. [env:STM32F401RC_btt_xfer]
  770. extends = env:STM32F401RC_btt
  771. build_flags = ${env:STM32F401RC_btt.build_flags} -DXFER_BUILD
  772. extra_scripts = ${env:STM32F401RC_btt.extra_scripts}
  773. pre:buildroot/share/scripts/upload.py
  774. upload_protocol = custom
  775. #
  776. # MKS SKIPR v1.0 all-in-one board (STM32F407VE)
  777. #
  778. [env:mks_skipr_v1]
  779. extends = stm32_variant
  780. board = marlin_MKS_SKIPR_V1
  781. board_build.rename = mks_skipr.bin
  782. [env:mks_skipr_v1_nobootloader]
  783. extends = env:mks_skipr_v1
  784. platform_packages = platformio/tool-dfuutil@~1.11.0
  785. board_build.rename = firmware.bin
  786. board_build.offset = 0x0000
  787. board_upload.offset_address = 0x08000000
  788. upload_protocol = dfu
  789. upload_command = dfu-util -a 0 -s 0x08000000:leave -D "$SOURCE"
  790. #
  791. # TRONXY_CXY_446_V10 (STM32F446ZET6 ARM Cortex-M4)
  792. #
  793. [env:TRONXY_CXY_446_V10]
  794. extends = stm32_variant
  795. board = marlin_STM32F446ZET_tronxy
  796. board_build.ldscript = buildroot/share/PlatformIO/variants/MARLIN_F446Zx_TRONXY/ldscript.ld
  797. board_build.offset = 0x10000
  798. board_build.offset_address = 0x08010000
  799. build_flags = ${stm32_variant.build_flags} -DSTM32F4xx
  800. -DUSE_USB_HS -DUSE_USB_HS_IN_FS
  801. build_unflags = ${stm32_variant.build_unflags} -fno-rtti
  802. -fno-threadsafe-statics -fno-exceptions
  803. -DUSBD_USE_CDC -DUSBCON
  804. extra_scripts = ${stm32_variant.extra_scripts}
  805. buildroot/share/PlatformIO/scripts/tronxy_cxy_446_v10.py
  806. #
  807. # TRONXY_CXY_446_V10 (STM32F446ZET6 ARM Cortex-M4) with USB Flash Drive Support
  808. #
  809. [env:TRONXY_CXY_446_V10_usb_flash_drive]
  810. extends = env:TRONXY_CXY_446_V10
  811. platform_packages = ${stm_flash_drive.platform_packages}
  812. #
  813. # Blackpill
  814. #
  815. [env:STM32F401CD_blackpill_stlink]
  816. platform = ${common_stm32.platform}
  817. extends = common_stm32
  818. board = blackpill_f401cc
  819. upload_protocol = stlink
  820. monitor_speed = 115200
  821. #
  822. # I3Dbeez9 (STM32F407ZGT6 ARM Cortex-M4)
  823. #
  824. [env:I3DBEEZ9_V1]
  825. extends = stm32_variant
  826. board = marlin_I3DBEEZ9
  827. board_build.offset = 0x8000
  828. board_build.offset_address = 0x08008000
  829. build_flags = ${stm32_variant.build_flags} -DSTM32F407_5ZX
  830. debug_tool = stlink
  831. upload_protocol = stlink
  832. #
  833. # BlackBeezMini (blackpill_f401cc)
  834. #
  835. [env:BLACKBEEZMINI_V1]
  836. extends = common_stm32
  837. platform_packages = platformio/tool-dfuutil@~1.11.0
  838. board = blackpill_f401cc
  839. board_build.offset = 0x0000
  840. board_build.offset_address = 0x08000000
  841. build_flags = ${common_stm32.build_flags}
  842. -Os -DHAL_PCD_MODULE_ENABLED
  843. -DHAL_UART_MODULE_ENABLED
  844. monitor_speed = 250000
  845. upload_protocol = dfu
  846. #
  847. # Mellow Fly E3 V2 (STM32F407VGT6 ARM Cortex-M4)
  848. #
  849. [env:FLY_E3_V2]
  850. extends = stm32_variant
  851. board = marlin_STM32F407VGT6_CCM
  852. board_build.variant = MARLIN_F4x7Vx
  853. board_build.offset = 0x8000
  854. board_upload.offset_address = 0x08008000
  855. build_flags = ${stm32_variant.build_flags} ${USB_HS_IN_FS.build_flags}
  856. -DHAVE_HWSERIAL1 -DHAVE_HWSERIAL3
  857. -DPIN_SERIAL1_RX=PA_10 -DPIN_SERIAL1_TX=PA_9
  858. -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8
  859. -DHAL_SD_MODULE_ENABLED
  860. -DHSE_VALUE=8000000U
  861. upload_protocol = stlink
  862. #
  863. # XTLW3D Climber-8th-F4 (STM32F407VGT6 ARM Cortex-M4)
  864. #
  865. [env:XTLW_CLIMBER_8TH]
  866. extends = stm32_variant
  867. platform_packages = ${stm_flash_drive.platform_packages}
  868. board = marlin_STM32F407VGT6_CCM
  869. board_build.variant = MARLIN_F4x7Vx
  870. board_build.offset = 0x8000
  871. board_upload.offset_address = 0x08008000
  872. build_flags = ${stm_flash_drive.build_flags} ${USB_HS_IN_FS.build_flags}
  873. -DHSE_VALUE=8000000U -DHAL_SD_MODULE_ENABLED
  874. -DPIN_SERIAL3_RX=PD_9 -DPIN_SERIAL3_TX=PD_8