diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml
index 2d94b000c68..498cfc1d1f5 100644
--- a/.github/workflows/test-builds.yml
+++ b/.github/workflows/test-builds.yml
@@ -59,7 +59,7 @@ jobs:
         #- STM32F103RC_btt_maple
         - STM32F103RC_btt_USB_maple
         - STM32F103RC_fysetc_maple
-        - STM32F103RC_meeb
+        - STM32F103RC_meeb_maple
         - jgaurora_a5s_a1_maple
         - STM32F103VE_longer_maple
         #- mks_robin_maple
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 5db9f71d10c..82c91290c24 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -492,15 +492,15 @@
 #elif MB(STM3R_MINI)
   #include "stm32f1/pins_STM3R_MINI.h"          // STM32F103VE?                           env:STM32F103VE env:STM32F103RE_maple
 #elif MB(GTM32_PRO_VB)
-  #include "stm32f1/pins_GTM32_PRO_VB.h"        // STM32F103VE                            env:STM32F103VE env:STM32F103RE_maple
+  #include "stm32f1/pins_GTM32_PRO_VB.h"        // STM32F103VE                            env:STM32F103VE env:STM32F103VE_GTM32_maple
 #elif MB(GTM32_PRO_VD)
-  #include "stm32f1/pins_GTM32_PRO_VD.h"        // STM32F103VE                            env:STM32F103VE env:STM32F103RE_maple
+  #include "stm32f1/pins_GTM32_PRO_VD.h"        // STM32F103VE                            env:STM32F103VE env:STM32F103VE_GTM32_maple
 #elif MB(GTM32_MINI)
-  #include "stm32f1/pins_GTM32_MINI.h"          // STM32F103VE                            env:STM32F103VE env:STM32F103RE_maple
+  #include "stm32f1/pins_GTM32_MINI.h"          // STM32F103VE                            env:STM32F103VE env:STM32F103VE_GTM32_maple
 #elif MB(GTM32_MINI_A30)
-  #include "stm32f1/pins_GTM32_MINI_A30.h"      // STM32F103VE                            env:STM32F103VE env:STM32F103RE_maple
+  #include "stm32f1/pins_GTM32_MINI_A30.h"      // STM32F103VE                            env:STM32F103VE env:STM32F103VE_GTM32_maple
 #elif MB(GTM32_REV_B)
-  #include "stm32f1/pins_GTM32_REV_B.h"         // STM32F103VE                            env:STM32F103VE env:STM32F103RE_maple
+  #include "stm32f1/pins_GTM32_REV_B.h"         // STM32F103VE                            env:STM32F103VE env:STM32F103VE_GTM32_maple
 #elif MB(MORPHEUS)
   #include "stm32f1/pins_MORPHEUS.h"            // STM32F103RE                            env:STM32F103RE env:STM32F103RE_maple
 #elif MB(CHITU3D)
@@ -556,7 +556,7 @@
 #elif MB(LONGER3D_LK)
   #include "stm32f1/pins_LONGER3D_LK.h"         // STM32F1                                env:STM32F103VE_longer env:STM32F103VE_longer_maple
 #elif MB(CCROBOT_MEEB_3DP)
-  #include "stm32f1/pins_CCROBOT_MEEB_3DP.h"    // STM32F1                                env:STM32F103RC_meeb
+  #include "stm32f1/pins_CCROBOT_MEEB_3DP.h"    // STM32F1                                env:STM32F103RC_meeb_maple
 #elif MB(CHITU3D_V5)
   #include "stm32f1/pins_CHITU3D_V5.h"          // STM32F1                                env:chitu_f103 env:chitu_f103_maple env:chitu_v5_gpio_init env:chitu_v5_gpio_init_maple
 #elif MB(CHITU3D_V6)
diff --git a/buildroot/share/PlatformIO/boards/marlin_CHITU_F103.json b/buildroot/share/PlatformIO/boards/marlin_maple_CHITU_F103.json
similarity index 95%
rename from buildroot/share/PlatformIO/boards/marlin_CHITU_F103.json
rename to buildroot/share/PlatformIO/boards/marlin_maple_CHITU_F103.json
index dbfbc21cb27..45c80b3ec03 100644
--- a/buildroot/share/PlatformIO/boards/marlin_CHITU_F103.json
+++ b/buildroot/share/PlatformIO/boards/marlin_maple_CHITU_F103.json
@@ -15,7 +15,7 @@
       ]
     ],
     "mcu": "stm32f103zet6",
-    "variant": "marlin_CHITU_F103"
+    "variant": "marlin_maple_CHITU_F103"
   },
   "debug": {
     "jlink_device": "STM32F103ZE",
diff --git a/buildroot/share/PlatformIO/boards/marlin_MEEB_3DP.json b/buildroot/share/PlatformIO/boards/marlin_maple_MEEB_3DP.json
similarity index 96%
rename from buildroot/share/PlatformIO/boards/marlin_MEEB_3DP.json
rename to buildroot/share/PlatformIO/boards/marlin_maple_MEEB_3DP.json
index 73ec9aaf48e..54fd5fbed95 100644
--- a/buildroot/share/PlatformIO/boards/marlin_MEEB_3DP.json
+++ b/buildroot/share/PlatformIO/boards/marlin_maple_MEEB_3DP.json
@@ -18,7 +18,7 @@
       "ldscript": "stm32f103xc.ld"
     },
     "mcu": "stm32f103rct6",
-    "variant": "marlin_MEEB_3DP"
+    "variant": "marlin_maple_MEEB_3DP"
   },
   "debug": {
     "jlink_device": "STM32F103RC",
diff --git a/buildroot/share/PlatformIO/ldscripts/fysetc_stm32f103rc.ld b/buildroot/share/PlatformIO/ldscripts/fysetc_stm32f103rc.ld
deleted file mode 100644
index 6777e591826..00000000000
--- a/buildroot/share/PlatformIO/ldscripts/fysetc_stm32f103rc.ld
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Linker script for Generic STM32F103RC boards, using the generic bootloader (which takes the lower 8k of memory)
- */
-
-MEMORY
-{
-	ram (rwx) : ORIGIN = 0x20000000, LENGTH = 48K
-	rom (rx)  : ORIGIN = 0x08008000, LENGTH = 256K - 32K
-}
-
-/* Provide memory region aliases for common.inc */
-REGION_ALIAS("REGION_TEXT", rom);
-REGION_ALIAS("REGION_DATA", ram);
-REGION_ALIAS("REGION_BSS", ram);
-REGION_ALIAS("REGION_RODATA", rom);
-
-/* Let common.inc handle the real work. */
-INCLUDE common.inc
diff --git a/buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py b/buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
index eccee760680..551f4c63160 100644
--- a/buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
+++ b/buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
@@ -4,29 +4,9 @@
 import pioutil
 if pioutil.is_pio_build():
 
-	try:
-		import configparser
-	except ImportError:
-		import ConfigParser as configparser
-
 	import os
 	Import("env", "projenv")
 
-	config = configparser.ConfigParser()
-	config.read("platformio.ini")
-
-	#
-	# Upload actions
-	#
-	def before_upload(source, target, env):
-		env.Execute("pwd")
-
-	def after_upload(source, target, env):
-		env.Execute("pwd")
-
-	env.AddPreAction("upload", before_upload)
-	env.AddPostAction("upload", after_upload)
-
 	flash_size = 0
 	vect_tab_addr = 0
 
@@ -38,6 +18,3 @@ if pioutil.is_pio_build():
 
 	print('Use the {0:s} address as the marlin app entry point.'.format(vect_tab_addr))
 	print('Use the {0:d}KB flash version of stm32f103rct6 chip.'.format(flash_size))
-
-	import marlin
-	marlin.custom_ld_script("STM32F103RC_MEEB_3DP.ld")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin.py b/buildroot/share/PlatformIO/scripts/mks_robin.py
deleted file mode 100644
index 7b423bedabc..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin.py
-#
-import robin
-robin.prepare("0x08007000", "mks_robin.ld", "Robin.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_e3.py b/buildroot/share/PlatformIO/scripts/mks_robin_e3.py
deleted file mode 100644
index 645230c625c..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_e3.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_e3.py
-#
-import robin
-robin.prepare("0x08005000", "mks_robin_e3.ld", "Robin_e3.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_e3p.py b/buildroot/share/PlatformIO/scripts/mks_robin_e3p.py
deleted file mode 100644
index bb15cb5a70f..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_e3p.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_e3p.py
-#
-import robin
-robin.prepare("0x08007000", "mks_robin_e3p.ld", "Robin_e3p.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_lite.py b/buildroot/share/PlatformIO/scripts/mks_robin_lite.py
deleted file mode 100644
index 123b043f7cf..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_lite.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_lite.py
-#
-import robin
-robin.prepare("0x08005000", "mks_robin_lite.ld", "mksLite.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_lite3.py b/buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
deleted file mode 100644
index 092231eae81..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_lite3.py
-#
-import robin
-robin.prepare("0x08005000", "mks_robin_lite.ld", "mksLite3.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_mini.py b/buildroot/share/PlatformIO/scripts/mks_robin_mini.py
deleted file mode 100644
index d1d175dd1c1..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_mini.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_mini.py
-#
-import robin
-robin.prepare("0x08007000", "mks_robin_mini.ld", "Robin_mini.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_nano.py b/buildroot/share/PlatformIO/scripts/mks_robin_nano.py
deleted file mode 100644
index 32d1af23662..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_nano.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_nano.py
-#
-import robin
-robin.prepare("0x08007000", "mks_robin_nano.ld", "Robin_nano.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_nano35.py b/buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
deleted file mode 100644
index 7e635bd6ecf..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_nano35.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_nano35.py
-#
-import robin
-robin.prepare("0x08007000", "mks_robin_nano.ld", "Robin_nano35.bin")
diff --git a/buildroot/share/PlatformIO/scripts/mks_robin_pro.py b/buildroot/share/PlatformIO/scripts/mks_robin_pro.py
deleted file mode 100644
index 54526aeaef5..00000000000
--- a/buildroot/share/PlatformIO/scripts/mks_robin_pro.py
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# mks_robin_pro.py
-#
-import robin
-robin.prepare("0x08007000", "mks_robin_pro.ld", "Robin_pro.bin")
diff --git a/buildroot/share/PlatformIO/scripts/robin.py b/buildroot/share/PlatformIO/scripts/robin.py
deleted file mode 100644
index ffc9a43b900..00000000000
--- a/buildroot/share/PlatformIO/scripts/robin.py
+++ /dev/null
@@ -1,14 +0,0 @@
-#
-# robin.py
-#
-
-# Apply customizations for a MKS Robin
-def prepare(address, ldname, fwname):
-	import pioutil
-	if pioutil.is_pio_build():
-		import marlin
-		def encrypt(source, target, env):
-			marlin.encrypt_mks(source, target, env, fwname)
-		marlin.relocate_firmware(address)
-		marlin.custom_ld_script(ldname)
-		marlin.add_post_action(encrypt);
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/board.cpp b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/board.cpp
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/board.cpp
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/board.cpp
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/board/board.h b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/board/board.h
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/board/board.h
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/board/board.h
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/common.inc b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/common.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/common.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/common.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/extra_libs.inc b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/extra_libs.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/extra_libs.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/extra_libs.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/flash.ld b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/flash.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/flash.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/flash.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103z_dfu.ld b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103z_dfu.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103z_dfu.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103z_dfu.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103zc.ld b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103zc.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103zc.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103zc.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103zd.ld b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103zd.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103zd.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103zd.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103ze.ld b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103ze.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/stm32f103ze.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/stm32f103ze.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/vector_symbols.inc b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/vector_symbols.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/ld/vector_symbols.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/ld/vector_symbols.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/pins_arduino.h b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/pins_arduino.h
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/pins_arduino.h
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/pins_arduino.h
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/variant.h b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/variant.h
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/variant.h
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/variant.h
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards.cpp b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/boards.cpp
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards.cpp
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/boards.cpp
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards_setup.cpp b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/boards_setup.cpp
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/boards_setup.cpp
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/boards_setup.cpp
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/start.S b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/start.S
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/start.S
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/start.S
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/start_c.c b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/start_c.c
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/start_c.c
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/start_c.c
diff --git a/buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/syscalls.c b/buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/syscalls.c
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_CHITU_F103/wirish/syscalls.c
rename to buildroot/share/PlatformIO/variants/marlin_maple_CHITU_F103/wirish/syscalls.c
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/board.cpp b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/board.cpp
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/board.cpp
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/board.cpp
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/board/board.h b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/board/board.h
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/board/board.h
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/board/board.h
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/bootloader.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/bootloader.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/bootloader.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/bootloader.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/common.inc b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/common.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/common.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/common.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/extra_libs.inc b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/extra_libs.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/extra_libs.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/extra_libs.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/flash.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/flash.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/flash.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/flash.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/jtag.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/jtag.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/jtag.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/jtag.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/mem-flash.inc b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/mem-flash.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/mem-flash.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/mem-flash.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/mem-jtag.inc b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/mem-jtag.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/mem-jtag.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/mem-jtag.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/mem-ram.inc b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/mem-ram.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/mem-ram.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/mem-ram.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/ram.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/ram.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/ram.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/ram.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rb.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rb.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rb.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rb.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rb_bootloader.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rb_bootloader.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rb_bootloader.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rb_bootloader.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rc.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rc.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rc.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rc.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rc_bootloader.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rc_bootloader.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103rc_bootloader.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103rc_bootloader.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103re.ld b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103re.ld
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/stm32f103re.ld
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/stm32f103re.ld
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/vector_symbols.inc b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/vector_symbols.inc
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/ld/vector_symbols.inc
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/ld/vector_symbols.inc
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/pins_arduino.h b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/pins_arduino.h
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/pins_arduino.h
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/pins_arduino.h
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/variant.h b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/variant.h
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/variant.h
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/variant.h
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards.cpp b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/boards.cpp
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards.cpp
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/boards.cpp
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards_setup.cpp b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/boards_setup.cpp
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/boards_setup.cpp
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/boards_setup.cpp
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/start.S b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/start.S
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/start.S
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/start.S
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/start_c.c b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/start_c.c
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/start_c.c
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/start_c.c
diff --git a/buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/syscalls.c b/buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/syscalls.c
similarity index 100%
rename from buildroot/share/PlatformIO/variants/marlin_MEEB_3DP/wirish/syscalls.c
rename to buildroot/share/PlatformIO/variants/marlin_maple_MEEB_3DP/wirish/syscalls.c
diff --git a/buildroot/tests/STM32F103RC_meeb b/buildroot/tests/STM32F103RC_meeb_maple
similarity index 100%
rename from buildroot/tests/STM32F103RC_meeb
rename to buildroot/tests/STM32F103RC_meeb_maple
diff --git a/ini/renamed.ini b/ini/renamed.ini
index b325476d2f9..75f5dc3accc 100644
--- a/ini/renamed.ini
+++ b/ini/renamed.ini
@@ -48,3 +48,11 @@ extends = renamed
 [env:STM32F103RC_btt_512K_USB_maple]
 # Renamed to STM32F103RE_btt_USB_maple
 extends = renamed
+
+[env:STM32F103RC_meeb]
+# Renamed to STM32F103RC_meeb_maple
+extends = renamed
+
+[env:STM32F103VE_GTM32]
+# Renamed to STM32F103VE_GTM32_maple
+extends = renamed
diff --git a/ini/stm32f1-maple.ini b/ini/stm32f1-maple.ini
index bfa82876286..18c861ba1eb 100644
--- a/ini/stm32f1-maple.ini
+++ b/ini/stm32f1-maple.ini
@@ -22,7 +22,7 @@
 #
 # HAL/STM32F1 Common Environment values
 #
-[common_stm32f1]
+[STM32F1_maple]
 platform          = ststm32@~12.1
 board_build.core  = maple
 build_flags       = !python Marlin/src/HAL/STM32F1/build_flags.py
@@ -34,52 +34,62 @@ lib_deps          = ${common.lib_deps}
   SoftwareSerialM
 platform_packages = tool-stm32duino
 extra_scripts     = ${common.extra_scripts}
-  pre:buildroot/share/PlatformIO/scripts/fix_framework_weakness.py
-  pre:buildroot/share/PlatformIO/scripts/stm32_serialbuffer.py
-      buildroot/share/PlatformIO/scripts/offset_and_rename.py
+                    pre:buildroot/share/PlatformIO/scripts/fix_framework_weakness.py
+                    pre:buildroot/share/PlatformIO/scripts/stm32_serialbuffer.py
+                        buildroot/share/PlatformIO/scripts/custom_board.py
+                        buildroot/share/PlatformIO/scripts/offset_and_rename.py
 
 #
-# STM32F103RC
+# Generic STM32F103RC environment
 #
-[common_STM32F103RC_maple]
-extends           = common_stm32f1
-board             = genericSTM32F103RC
-monitor_speed     = 115200
+[env:STM32F103RC_maple]
+extends       = STM32F1_maple
+board         = genericSTM32F103RC
+monitor_speed = 115200
+
+#
+# Generic STM32F103RE environment
+#
+[env:STM32F103RE_maple]
+extends       = STM32F1_maple
+board         = genericSTM32F103RE
+monitor_speed = 115200
 
 #
 # MEEB_3DP (STM32F103RCT6 with 512K)
 #
-[env:STM32F103RC_meeb]
-extends           = common_STM32F103RC_maple
-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_stm32f1.lib_deps}
-  USBComposite for STM32F1@0.91
+[env:STM32F103RC_meeb_maple]
+extends              = env:STM32F103RC_maple
+board                = marlin_maple_MEEB_3DP
+build_flags          = ${STM32F1_maple.build_flags}
+                       -DDEBUG_LEVEL=0
+                       -DSS_TIMER=4
+                       -DSTM32_FLASH_SIZE=512
+                       -DHSE_VALUE=12000000U
+                       -DUSE_USB_COMPOSITE
+                       -DVECT_TAB_OFFSET=0x2000
+                       -DGENERIC_BOOTLOADER
+board_build.ldscript = STM32F103RC_MEEB_3DP.ld
+extra_scripts        = ${STM32F1_maple.extra_scripts}
+                       pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
+                           buildroot/share/PlatformIO/scripts/STM32F103RC_MEEB_3DP.py
+lib_deps             = ${STM32F1_maple.lib_deps}
+                       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
+debug_tool           = stlink
+upload_protocol      = dfu
 
 #
 # FYSETC STM32F103RC
 #
 [env:STM32F103RC_fysetc_maple]
-extends           = common_STM32F103RC_maple
-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
+extends         = env:STM32F103RC_maple
+extra_scripts   = ${STM32F1_maple.extra_scripts}
+                  buildroot/share/PlatformIO/scripts/STM32F103RC_fysetc.py
+build_flags     = ${STM32F1_maple.build_flags} -DDEBUG_LEVEL=0
+lib_ldf_mode    = chain
+debug_tool      = stlink
+upload_protocol = serial
 
 #
 # BigTree SKR Mini V1.1 / SKR Mini E3 & MZ (STM32F103RCT6 ARM Cortex-M3)
@@ -88,48 +98,28 @@ upload_protocol   = serial
 #   STM32F103RC_btt_USB_maple ......... RCT6 with 256K (USB mass storage)
 #
 [env:STM32F103RC_btt_maple]
-extends              = common_STM32F103RC_maple
+extends              = env:STM32F103RC_maple
 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
+build_flags          = ${STM32F1_maple.build_flags} -DDEBUG_LEVEL=0 -DSS_TIMER=4
 monitor_speed        = 115200
 
 [env:STM32F103RC_btt_USB_maple]
-extends           = env:STM32F103RC_btt_maple
-build_flags       = ${env:STM32F103RC_btt_maple.build_flags} -DUSE_USB_COMPOSITE
-lib_deps          = ${env:STM32F103RC_btt_maple.lib_deps}
-  USBComposite for STM32F1@0.91
-
-#
-# Generic STM32F103RE environment
-#
-[env:STM32F103RE_maple]
-extends           = common_stm32f1
-board             = genericSTM32F103RE
-monitor_speed     = 115200
-
-#
-# Generic STM32F103RC environment
-#
-[env:STM32F103RC_maple]
-extends           = common_stm32f1
-board             = genericSTM32F103RC
-monitor_speed     = 115200
+extends     = env:STM32F103RC_btt_maple
+build_flags = ${env:STM32F103RC_btt_maple.build_flags} -DUSE_USB_COMPOSITE
+lib_deps    = ${env:STM32F103RC_btt_maple.lib_deps}
+              USBComposite for STM32F1@0.91
 
 #
 # Creality (STM32F103RET6)
 #
 [env:STM32F103RE_creality_maple]
 extends              = env:STM32F103RE_maple
-build_flags          = ${common_stm32f1.build_flags} -DTEMP_TIMER_CHAN=4
+build_flags          = ${STM32F1_maple.build_flags} -DTEMP_TIMER_CHAN=4
 board_build.address  = 0x08007000
 board_build.ldscript = creality.ld
-extra_scripts        = ${common_stm32f1.extra_scripts}
-  pre:buildroot/share/PlatformIO/scripts/random-bin.py
-  buildroot/share/PlatformIO/scripts/custom_board.py
+extra_scripts        = ${STM32F1_maple.extra_scripts}
+                       pre:buildroot/share/PlatformIO/scripts/random-bin.py
 debug_tool           = jlink
 upload_protocol      = jlink
 
@@ -138,12 +128,11 @@ upload_protocol      = jlink
 #
 [env:STM32F103RC_creality_maple]
 extends              = env:STM32F103RC_maple
-build_flags          = ${common_stm32f1.build_flags} -DTEMP_TIMER_CHAN=4
+build_flags          = ${STM32F1_maple.build_flags} -DTEMP_TIMER_CHAN=4
 board_build.address  = 0x08007000
 board_build.ldscript = creality.ld
-extra_scripts        = ${common_stm32f1.extra_scripts}
-  pre:buildroot/share/PlatformIO/scripts/random-bin.py
-  buildroot/share/PlatformIO/scripts/custom_board.py
+extra_scripts        = ${STM32F1_maple.extra_scripts}
+                       pre:buildroot/share/PlatformIO/scripts/random-bin.py
 debug_tool           = jlink
 upload_protocol      = jlink
 
@@ -162,204 +151,197 @@ board_build.ldscript = crealityPro.ld
 #   STM32F103RE_btt_USB_maple ......... RET6 (USB mass storage)
 #
 [env:STM32F103RE_btt_maple]
-extends           = env:STM32F103RE_maple
+extends              = env:STM32F103RE_maple
 board_build.address  = 0x08007000
 board_build.ldscript = STM32F103RE_SKR_MINI_512K.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
+build_flags          = ${STM32F1_maple.build_flags} -DDEBUG_LEVEL=0 -DSS_TIMER=4
+debug_tool           = stlink
+upload_protocol      = stlink
 
 [env:STM32F103RE_btt_USB_maple]
-extends           = env:STM32F103RE_btt_maple
-build_flags       = ${env:STM32F103RE_btt_maple.build_flags} -DUSE_USB_COMPOSITE
-lib_deps          = ${common_stm32f1.lib_deps}
-  USBComposite for STM32F1@0.91
+extends     = env:STM32F103RE_btt_maple
+build_flags = ${env:STM32F103RE_btt_maple.build_flags} -DUSE_USB_COMPOSITE
+lib_deps    = ${STM32F1_maple.lib_deps}
+              USBComposite for STM32F1@0.91
 
 #
 # Geeetech GTM32 (STM32F103VET6)
 #
-[env:STM32F103VE_GTM32]
-extends         = common_stm32f1
+[env:STM32F103VE_GTM32_maple]
+extends         = STM32F1_maple
 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
+build_flags     = ${STM32F1_maple.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_maple]
-extends       = common_stm32f1
-board         = genericSTM32F103VE
+extends              = STM32F1_maple
+board                = genericSTM32F103VE
 board_build.address  = 0x08010000
 board_build.rename   = project.bin
 board_build.ldscript = STM32F103VE_longer.ld
-extra_scripts = ${common_stm32f1.extra_scripts}
-  buildroot/share/PlatformIO/scripts/custom_board.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
+build_flags          = ${STM32F1_maple.build_flags}
+                       -DMCU_STM32F103VE -DSTM32F1xx -USERIAL_USB -DU20 -DTS_V12
+build_unflags        = ${STM32F1_maple.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_maple]
-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
+extends              = STM32F1_maple
+board                = genericSTM32F103VE
+board_build.address  = 0x08007000
+board_build.rename   = Robin_mini.bin
+board_build.ldscript = mks_robin_mini.ld
+build_flags          = ${STM32F1_maple.build_flags} -DMCU_STM32F103VE
 
 #
 # MKS Robin Nano (STM32F103VET6)
 #
 [env:mks_robin_nano35_maple]
-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
+extends              = STM32F1_maple
+board                = genericSTM32F103VE
+board_build.address  = 0x08007000
+board_build.rename   = Robin_nano35.bin
+board_build.ldscript = mks_robin_nano.ld
+build_flags          = ${STM32F1_maple.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4
+debug_tool           = jlink
+upload_protocol      = jlink
 
 #
 # MKS Robin (STM32F103ZET6)
 #
 [env:mks_robin_maple]
-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
+extends              = STM32F1_maple
+board                = genericSTM32F103ZE
+board_build.address  = 0x08007000
+board_build.rename   = Robin.bin
+board_build.ldscript = mks_robin.ld
+build_flags          = ${STM32F1_maple.build_flags} -DSS_TIMER=4 -DSTM32_XL_DENSITY
 
 #
 # MKS Robin Pro (STM32F103ZET6)
 #
 [env:mks_robin_pro_maple]
-extends       = env:mks_robin_maple
-extra_scripts = ${common_stm32f1.extra_scripts}
-  buildroot/share/PlatformIO/scripts/mks_robin_pro.py
+extends              = env:mks_robin_maple
+board_build.address  = 0x08007000
+board_build.rename   = Robin_pro.bin
+board_build.ldscript = mks_robin_pro.ld
 
 #
 # TRIGORILLA PRO (STM32F103ZET6)
 #
 [env:trigorilla_pro_maple]
 extends       = env:mks_robin_maple
-extra_scripts = ${common_stm32f1.extra_scripts}
+extra_scripts = ${STM32F1_maple.extra_scripts}
 
 #
 # MKS Robin E3D (STM32F103RCT6) and
 # MKS Robin E3 with TMC2209
 #
 [env:mks_robin_e3_maple]
-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
+extends              = STM32F1_maple
+board                = genericSTM32F103RC
+board_build.address  = 0x08005000
+board_build.rename   = Robin_e3.bin
+board_build.ldscript = mks_robin_e3.ld
+build_flags          = ${STM32F1_maple.build_flags} -DDEBUG_LEVEL=0 -DSS_TIMER=4
 
 #
 # MKS Robin E3p (STM32F103VET6)
 #  - LVGL UI
 #
 [env:mks_robin_e3p_maple]
-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
+extends              = STM32F1_maple
+board                = genericSTM32F103VE
+board_build.address  = 0x08007000
+board_build.rename   = Robin_e3p.bin
+board_build.ldscript = mks_robin_e3p.ld
+build_flags          = ${STM32F1_maple.build_flags} -DMCU_STM32F103VE -DSS_TIMER=4
+debug_tool           = jlink
+upload_protocol      = jlink
 
 #
 # MKS Robin Lite/Lite2 (STM32F103RCT6)
 #
 [env:mks_robin_lite_maple]
-extends       = common_stm32f1
-board         = genericSTM32F103RC
-extra_scripts = ${common_stm32f1.extra_scripts}
-  buildroot/share/PlatformIO/scripts/mks_robin_lite.py
+extends              = STM32F1_maple
+board                = genericSTM32F103RC
+board_build.address  = 0x08005000
+board_build.rename   = mksLite.bin
+board_build.ldscript = mks_robin_lite.ld
 
 #
 # MKS ROBIN LITE3 (STM32F103RCT6)
 #
 [env:mks_robin_lite3_maple]
-extends       = common_stm32f1
-board         = genericSTM32F103RC
-extra_scripts = ${common_stm32f1.extra_scripts}
-  buildroot/share/PlatformIO/scripts/mks_robin_lite3.py
+extends              = STM32F1_maple
+board                = genericSTM32F103RC
+board_build.address  = 0x08005000
+board_build.rename   = mksLite3.bin
+board_build.ldscript = mks_robin_lite.ld
 
 #
 # JGAurora A5S A1 (STM32F103ZET6)
 #
 [env:jgaurora_a5s_a1_maple]
-extends       = common_stm32f1
-board         = genericSTM32F103ZE
+extends              = STM32F1_maple
+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
+extra_scripts        = ${STM32F1_maple.extra_scripts}
+                       buildroot/share/PlatformIO/scripts/jgaurora_a5s_a1_with_bootloader.py
+build_flags          = ${STM32F1_maple.build_flags} -DSTM32F1xx -DSTM32_XL_DENSITY
 
 #
 # Malyan M200 (STM32F103CB)
 #
 [env:STM32F103CB_malyan_maple]
-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
+extends     = STM32F1_maple
+board       = marlin_malyanM200
+build_flags = ${STM32F1_maple.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  = ${STM32F1_maple.lib_ignore}
+              SoftwareSerialM
 
 #
 # Chitu boards like Tronxy X5s (STM32F103ZET6)
 #
 [env:chitu_f103_maple]
-extends       = common_stm32f1
-board         = marlin_CHITU_F103
-extra_scripts = ${common_stm32f1.extra_scripts}
-  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
+extends       = STM32F1_maple
+board         = marlin_maple_CHITU_F103
+extra_scripts = ${STM32F1_maple.extra_scripts}
+                pre:buildroot/share/PlatformIO/scripts/STM32F1_create_variant.py
+                    buildroot/share/PlatformIO/scripts/chitu_crypt.py
+build_flags   = ${STM32F1_maple.build_flags} -DSTM32F1xx -DSTM32_XL_DENSITY
+build_unflags = ${STM32F1_maple.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_maple]
-extends       = env:chitu_f103_maple
-build_flags   = ${env:chitu_f103_maple.build_flags} -DCHITU_V5_Z_MIN_BUGFIX
+extends     = env:chitu_f103_maple
+build_flags = ${env:chitu_f103_maple.build_flags} -DCHITU_V5_Z_MIN_BUGFIX
 
 #
 # FLYmaker FLY Mini (STM32F103RCT6)
 #
 [env:FLY_MINI_maple]
-extends           = common_stm32f1
-board             = genericSTM32F103RC
+extends              = STM32F1_maple
+board                = genericSTM32F103RC
 board_build.address  = 0x08005000
 board_build.ldscript = fly_mini.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
+build_flags          = ${STM32F1_maple.build_flags} -DDEBUG_LEVEL=0 -DSS_TIMER=4
 
 #
 # Zonestar ZM3E2 V1.0 / ZM3E4 V1.0 / ZM3E4 V2.0
@@ -369,18 +351,15 @@ build_flags       = ${common_stm32f1.build_flags}
 #  STM32F103VE_ZM3E4V2_USB_maple ......... VET6 with 512K
 #
 [ZONESTAR_ZM3E_maple]
-extends                   = common_stm32f1
+extends                   = STM32F1_maple
 platform_packages         = tool-stm32duino
 board_build.address       = 0x08005000
 board_build.offset        = 0x5000
 board_upload.maximum_size = 237568
-extra_scripts             = ${common.extra_scripts}
-  buildroot/share/PlatformIO/scripts/custom_board.py
-  buildroot/share/PlatformIO/scripts/offset_and_rename.py
-build_flags               = ${common_stm32f1.build_flags}
-  -D__STM32F1__=1 -DDEBUG_LEVEL=0 -DSS_TIMER=4 -DSERIAL_USB
-lib_deps                  = ${common_stm32f1.lib_deps}
-  USBComposite for STM32F1@0.91
+build_flags               = ${STM32F1_maple.build_flags}
+                            -D__STM32F1__=1 -DDEBUG_LEVEL=0 -DSS_TIMER=4 -DSERIAL_USB
+lib_deps                  = ${STM32F1_maple.lib_deps}
+                            USBComposite for STM32F1@0.91
 lib_ignore                = Adafruit NeoPixel, SPI, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, TMCStepper
 
 [env:STM32F103RC_ZM3E2_USB_maple]
@@ -395,26 +374,24 @@ board_build.ldscript = ZONESTAR_ZM3E_256K.ld
 build_flags          = ${ZONESTAR_ZM3E_maple.build_flags} -DTONE_TIMER=1 -DTONE_CHANNEL=2
 
 [env:STM32F103VE_ZM3E4V2_USB_maple]
-extends              = ZONESTAR_ZM3E_maple
-board                = genericSTM32F103VE
-board_build.ldscript = ZONESTAR_ZM3E_512K.ld
-build_flags          = ${ZONESTAR_ZM3E_maple.build_flags} -DTONE_TIMER=1 -DTONE_CHANNEL=2
+extends                   = ZONESTAR_ZM3E_maple
+board                     = genericSTM32F103VE
+board_build.ldscript      = ZONESTAR_ZM3E_512K.ld
+build_flags               = ${ZONESTAR_ZM3E_maple.build_flags} -DTONE_TIMER=1 -DTONE_CHANNEL=2
 board_upload.maximum_size = 499712
 
 #
 # ERYONE ERY32 Mini (STM32F103VET6)
 #
 [env:ERYONE_ERY32_MINI_maple]
-extends              = common_stm32f1
+extends              = STM32F1_maple
 board                = genericSTM32F103VE
-build_flags          = ${common_stm32f1.build_flags}
-  -ffunction-sections -fdata-sections -nostdlib -MMD
-  -DMCU_STM32F103VE -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1
-  -DDEBUG_LEVEL=DEBUG_NONE -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
-  -DSS_TIMER=4
+build_flags          = ${STM32F1_maple.build_flags}
+                       -ffunction-sections -fdata-sections -nostdlib -MMD
+                       -DMCU_STM32F103VE -DARDUINO_GENERIC_STM32F103V -DARDUINO_ARCH_STM32F1
+                       -DDEBUG_LEVEL=DEBUG_NONE -DCONFIG_MAPLE_MINI_NO_DISABLE_DEBUG=1
+                       -DSS_TIMER=4
 board_build.variant  = MARLIN_F103Vx
 board_build.ldscript = eryone_ery32_mini.ld
 board_build.address  = 0x08004000
-build_unflags        = ${common_stm32f1.build_unflags}
-extra_scripts        = ${common_stm32f1.extra_scripts}
-  buildroot/share/PlatformIO/scripts/custom_board.py
+build_unflags        = ${STM32F1_maple.build_unflags}