diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml
index e45bf42f29a..c6afaffebf7 100644
--- a/.github/workflows/test-builds.yml
+++ b/.github/workflows/test-builds.yml
@@ -58,15 +58,16 @@ jobs:
 
         #- STM32F103RC_btt_maple
         - STM32F103RC_btt_USB_maple
-        - STM32F103RC_fysetc
+        - STM32F103RC_fysetc_maple
         - STM32F103RC_meeb
-        - jgaurora_a5s_a1
+        - jgaurora_a5s_a1_maple
         - STM32F103VE_longer_maple
         #- mks_robin_maple
-        - mks_robin_lite
-        - mks_robin_pro
+        - mks_robin_lite_maple
+        - mks_robin_pro_maple
         #- mks_robin_nano35_maple
         #- STM32F103RET6_creality_maple
+        - STM32F103VE_ZM3E4V2_USB_maple
 
         # STM32 (ST) Environments
 
diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index ba3c9f978c6..2ed58591996 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -346,6 +346,9 @@
 #define BOARD_BEAST                   4048  // STM32F103RET6 Libmaple-based controller
 #define BOARD_MINGDA_MPX_ARM_MINI     4049  // STM32F103ZET6 Mingda MD-16
 #define BOARD_GTM32_PRO_VD            4050  // STM32F103VET6 controller
+#define BOARD_ZONESTAR_ZM3E2          4051  // Zonestar ZM3E2    (STM32F103RCT6)
+#define BOARD_ZONESTAR_ZM3E4          4052  // Zonestar ZM3E4 V1 (STM32F103VCT6)
+#define BOARD_ZONESTAR_ZM3E4V2        4053  // Zonestar ZM3E4 V2 (STM32F103VCT6)
 
 //
 // ARM Cortex-M4F
diff --git a/Marlin/src/lcd/tft_io/touch_calibration.cpp b/Marlin/src/lcd/tft_io/touch_calibration.cpp
index 0f9d25caeb6..2a54d2af400 100644
--- a/Marlin/src/lcd/tft_io/touch_calibration.cpp
+++ b/Marlin/src/lcd/tft_io/touch_calibration.cpp
@@ -1,6 +1,6 @@
 /**
  * Marlin 3D Printer Firmware
- * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/Marlin/src/lcd/tft_io/touch_calibration.h b/Marlin/src/lcd/tft_io/touch_calibration.h
index f8cbf99bf00..112fbdca301 100644
--- a/Marlin/src/lcd/tft_io/touch_calibration.h
+++ b/Marlin/src/lcd/tft_io/touch_calibration.h
@@ -1,6 +1,6 @@
 /**
  * Marlin 3D Printer Firmware
- * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ * Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h b/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h
index d648b25efb1..cecb44efbe1 100644
--- a/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h
+++ b/Marlin/src/pins/lpc1769/pins_BTT_SKR_E3_TURBO.h
@@ -212,7 +212,7 @@
   *        BEEPER | 5  6   ENT (BTN_ENC)      (LCD_D4) P0_15 | 5  6   P0_20 (BTN_EN2)
   *  (SKR_RX1) TX | 7  8 | RX  (SKR_TX1)               Reset | 7  8 | P0_19 (BTN_EN1)
   *            NC | 9 10 | NC                (BTN_ENC) P0_16 | 9 10 | P2_08 (BEEPER)
-  *                ------					                            ------
+  *                ------                                     ------
   */
 
   #define BEEPER_PIN                 EXP1_10_PIN
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index b3e16056136..f1c431cf048 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -561,6 +561,12 @@
   #include "stm32f1/pins_BEAST.h"               // STM32F103VE?                           env:STM32F103VE env:STM32F103RE_maple
 #elif MB(MINGDA_MPX_ARM_MINI)
   #include "stm32f1/pins_MINGDA_MPX_ARM_MINI.h" // STM32F1                                env:mingda_mpx_arm_mini
+#elif MB(ZONESTAR_ZM3E2)
+  #include "stm32f1/pins_ZM3E2_V1_0.h"       	  // STM32F1                            	  env:STM32F103RC_ZM3E2_USB env:STM32F103RC_ZM3E2_USB_maple
+#elif MB(ZONESTAR_ZM3E4)
+  #include "stm32f1/pins_ZM3E4_V1_0.h"      	  // STM32F1                           	    env:STM32F103VC_ZM3E4_USB env:STM32F103VC_ZM3E4_USB_maple
+#elif MB(ZONESTAR_ZM3E4V2)
+  #include "stm32f1/pins_ZM3E4_V2_0.h"      	  // STM32F1                           	    env:STM32F103VE_ZM3E4V2_USB env:STM32F103VE_ZM3E4V2_USB_maple
 
 //
 // ARM Cortex-M4F
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h
index c51e7f48d94..9dc02c495b4 100644
--- a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h
@@ -23,7 +23,7 @@
 
 #define SKR_MINI_E3_V2
 
-#define BOARD_CUSTOM_BUILD_FLAGS -DTONE_CHANNEL=4 -DTONE_TIMER=4
+#define BOARD_CUSTOM_BUILD_FLAGS -DTONE_CHANNEL=4 -DTONE_TIMER=4 -DTIMER_TONE=4
 
 // Onboard I2C EEPROM
 #if NO_EEPROM_SELECTED
diff --git a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
index bded0edd3a7..98465a86073 100644
--- a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
+++ b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
@@ -45,14 +45,19 @@
 #endif
 
 //#define MCU_STM32F103ZE // not yet required
+
 // Enable EEPROM Emulation for this board, so that we don't overwrite factory data
+#if NO_EEPROM_SELECTED
+  //#define I2C_EEPROM                            // AT24C64
+  //#define FLASH_EEPROM_EMULATION
+#endif
 
-//#define I2C_EEPROM                              // AT24C64
-//#define MARLIN_EEPROM_SIZE            0x8000UL  // 64KB
-
-//#define FLASH_EEPROM_EMULATION
-//#define MARLIN_EEPROM_SIZE            0x1000UL  // 4KB
-//#define MARLIN_EEPROM_SIZE (EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE) * 2UL)
+#if ENABLED(I2C_EEPROM)
+  //#define MARLIN_EEPROM_SIZE          0x8000UL  // 32KB
+#elif ENABLED(FLASH_EEPROM_EMULATION)
+  //#define MARLIN_EEPROM_SIZE          0x1000UL  // 4KB
+  //#define MARLIN_EEPROM_SIZE (EEPROM_START_ADDRESS + (EEPROM_PAGE_SIZE) * 2UL)
+#endif
 
 //
 // Limit Switches
diff --git a/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h b/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
index 14f2ad981ac..3fed0adac33 100644
--- a/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
+++ b/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * MKS Robin mini (STM32F130VET6) board pin assignments
+ * MKS Robin mini (STM32F103VET6) board pin assignments
  */
 
 #if NOT_TARGET(STM32F1, STM32F1xx)
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
index f9129780515..4d798ffe282 100644
--- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * MKS Robin (STM32F130ZET6) board pin assignments
+ * MKS Robin (STM32F103ZET6) board pin assignments
  * https://github.com/makerbase-mks/MKS-Robin/tree/master/MKS%20Robin/Hardware
  */
 
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
index 7aa308f7b30..2fc99f29710 100644
--- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * MKS Robin nano (STM32F130VET6) board pin assignments
+ * MKS Robin nano (STM32F103VET6) board pin assignments
  */
 
 #include "env_validate.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
index be23394af7a..d4a2f59b425 100644
--- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * MKS Robin mini (STM32F130VET6) board pin assignments
+ * MKS Robin mini (STM32F103VET6) board pin assignments
  */
 
 #include "env_validate.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
index 368c0a24582..2a5c9f72737 100644
--- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * MKS Robin nano (STM32F130VET6) board pin assignments
+ * MKS Robin nano (STM32F103VET6) board pin assignments
  * https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/tree/master/hardware
  */
 
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
index cdb9448410d..31ce016e67a 100644
--- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * MKS Robin nano (STM32F130VET6) board pin assignments
+ * MKS Robin nano (STM32F103VET6) board pin assignments
  */
 
 #if NOT_TARGET(__STM32F1__, STM32F1)
diff --git a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
index 1de3729dcc5..5b59a157f16 100644
--- a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
+++ b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
@@ -22,7 +22,7 @@
 #pragma once
 
 /**
- * ANYCUBIC Trigorilla Pro (STM32F130ZET6) board pin assignments.
+ * ANYCUBIC Trigorilla Pro (STM32F103ZET6) board pin assignments.
  * It is the same used by the Tronxy X5SA thanks to ftoz1 for sharing it
  * https://github.com/MarlinFirmware/Marlin/issues/14655
  * https://github.com/MarlinFirmware/Marlin/files/3401484/x5sa-main_board-2.pdf
diff --git a/Marlin/src/pins/stm32f1/pins_ZM3E2_V1_0.h b/Marlin/src/pins/stm32f1/pins_ZM3E2_V1_0.h
new file mode 100644
index 00000000000..bad5db7125e
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_ZM3E2_V1_0.h
@@ -0,0 +1,235 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "env_validate.h"
+
+#define BOARD_INFO_NAME "ZONESTAR ZM3E2 V1.0"
+
+#define DISABLE_DEBUG
+//#define DISABLE_JTAG
+
+#if NO_EEPROM_SELECTED
+  #define FLASH_EEPROM_EMULATION
+  #define EEPROM_PAGE_SIZE      (0x800) // 2KB
+  #define EEPROM_START_ADDRESS  (0x08000000 + (STM32_FLASH_SIZE) * 1024 - 2 * EEPROM_PAGE_SIZE)
+  #define MARLIN_EEPROM_SIZE    EEPROM_PAGE_SIZE  // 2KB
+#endif
+
+//=============================================================================
+// Zonestar ZM3E2 V1.0 (STM32F103RCT6) board pin assignments
+//=============================================================================
+//  PA0     PWR_HOLD    |  PB0     BEEP            |  PC0     HEATER_0
+//  PA1     FAN_PIN     |  PB1     KILL            |  PC1     HEATER_BED
+//  PA2     TX2         |  PB2     LCD_SDA         |  PC2     TEMP_BED
+//  PA3     RX2         |  PB3     E1_EN           |  PC3     TEMP_E0
+//  PA4     SD_CS       |  PB4     Z_STOP          |  PC4     SD_DETECT
+//  PA5     SD_SCK      |  PB5     Z_DIR           |  PC5     BTN_EN2
+//  PA6     SD_MISO     |  PB6     Z_STEP          |  PC6     FAN1
+//  PA7     SD_MOSI     |  PB7     Z_EN            |  PC7     FIL_RUNOUT
+//  PA8     X_DIR       |  PB8     Y_STEP          |  PC8     X_EN
+//  PA9     LCD_RS      |  PB9     Y_DIR           |  PC9     X_STEP
+//  PA10    LCD_SCK     |  PB10    BTN_ENC         |  PC10    Z_MIN_PROBE_PIN
+//  PA11    USB_D-      |  PB11    BTN_EN1         |  PC11    FIL_RUNOUT2
+//  PA12    USB_D+      |  PB12    LED             |  PC12    E1_DIR
+//  PA13    MS1         |  PB13    E0_EN           |  PC13    Y_STOP
+//  PA14    MS2         |  PB14    E0_STEP         |  PC14    Y_EN
+//  PA15    PWM         |  PB15    E0_DIR          |  PC15    X_STOP
+//  PD0     NC
+//  PD1     NC
+//  PD2     E1_STEP
+
+//=============================================================================
+// EXP1 connector
+//     MARK     I/O     ZONESTAR_12864LCD      ZONESTAR_12864OLED
+//  10 MOSI     PB1     KILL                   SDA
+//   9 SCK      PB0     BEEP                   SCK
+//   8 TX1      PA9     DOGLCD_CS              CS
+//   7 RX1      PA10    DOGLCD_SCK             DC
+//   6 ENA      PC5     BTN_EN2                KNOB_ENB
+//   5 DAT      PB2     DOGLCD_MOSI            RESET
+//   4 TX3      PB10    BTN_ENC                KNOB_ENC
+//   3 RX3      PB11    BTN_EN1                KNOB_ENA
+//   2 +5V
+//   1 GND
+
+#define EXP1_03_PIN                         PB11
+#define EXP1_04_PIN                         PB10
+#define EXP1_05_PIN                         PB2
+#define EXP1_06_PIN                         PC5
+#define EXP1_07_PIN                         PA10
+#define EXP1_08_PIN                         PA9
+#define EXP1_09_PIN                         PB0
+#define EXP1_10_PIN                         PB1
+
+// AUX1 connector
+//  1 +5V
+//  2 TX2   PA2   UART2_TX
+//  3 RX2   PA3   UART2_RX
+//  4 GND
+
+// AUX2 connector to BLTouch
+//  1 +5V
+//  2 SEN   PC10
+//  3 PWM   PA15
+//  4 GND
+//=============================================================================
+
+//
+// Servos
+//
+#define SERVO0_PIN                          PA15
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN                          PC15
+#define Y_STOP_PIN                          PC13
+#define Z_STOP_PIN                          PB4
+
+#ifndef Z_MIN_PROBE_PIN
+  #define Z_MIN_PROBE_PIN                   PC10  // BLTouch (3DTouch)
+#endif
+
+//
+// Filament Runout Sensor
+//
+#define FIL_RUNOUT_PIN                      PC7   // E0_SW
+//#define FIL_RUNOUT2_PIN                   PC11  // E1_SW
+
+//
+// Steppers
+//
+#define MS1_PIN                             PA13
+#define MS2_PIN                             PA14
+
+#define X_STEP_PIN                          PC9
+#define X_DIR_PIN                           PA8
+#define X_ENABLE_PIN                        PC8
+
+#define Y_STEP_PIN                          PB8
+#define Y_DIR_PIN                           PB9
+#define Y_ENABLE_PIN                        PC14
+
+#define Z_STEP_PIN                          PB6
+#define Z_DIR_PIN                           PB5
+#define Z_ENABLE_PIN                        PB7
+
+#define E0_STEP_PIN                         PB14
+#define E0_DIR_PIN                          PB15
+#define E0_ENABLE_PIN                       PB13
+
+#define E1_STEP_PIN                         PD2
+#define E1_DIR_PIN                          PC12
+#define E1_ENABLE_PIN                       PB3
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN                        PC0   // EXTRUDER 1
+#define HEATER_BED_PIN                      PC1   // BED
+
+#define FAN1_PIN                            PC6
+#define FAN_PIN                             PA1
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN                        PC2   // Analog Input
+#define TEMP_0_PIN                          PC3   // Analog Input
+
+#define LED_PIN                             PB12
+//#define KILL_PIN                          PB1   // @EXP1
+#define SUICIDE_PIN                         PA0
+
+//
+// SD card
+//
+#define ENABLE_SPI1
+#define SD_DETECT_PIN                       PC4
+#define SD_SCK_PIN                          PA5
+#define SD_MISO_PIN                         PA6
+#define SD_MOSI_PIN                         PA7
+#define SD_SS_PIN                           PA4
+
+//
+// LCD Pins
+//
+#if ENABLED(ZONESTAR_12864LCD)
+
+  //================================================================================
+  // LCD 128x64
+  //================================================================================
+  // EXP1 connector
+  //     MARK     I/O     ZONESTAR_12864LCD
+  //  10 MOSI     PB1     KILL
+  //   9 SCK      PB0     BEEP
+  //   8 TX1      PA9     LCD_PINS_RS
+  //   7 RX1      PA10    LCD_PINS_D4
+  //   6 ENA      PC5     BTN_EN2
+  //   5 DAT      PB2     LCD_PINS_ENABLE
+  //   4 TX3      PB10    BTN_ENC
+  //   3 RX3      PB11    BTN_EN1
+  //   2 +5V
+  //   1 GND
+
+  #define LCDSCREEN_NAME "ZONESTAR LCD12864"
+  #define LCD_PINS_RS                EXP1_08_PIN
+  #define LCD_PINS_ENABLE            EXP1_05_PIN
+  #define LCD_PINS_D4                EXP1_07_PIN
+  //#define KILL_PIN                 EXP1_10_PIN
+  #define BEEPER_PIN                 EXP1_09_PIN
+  #define BTN_EN1                    EXP1_03_PIN
+  #define BTN_EN2                    EXP1_06_PIN
+  #define BTN_ENC                    EXP1_04_PIN
+  #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+  #define BOARD_ST7920_DELAY_2 DELAY_NS(200)
+  #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+
+#elif EITHER(ZONESTAR_12864OLED, ZONESTAR_12864OLED_SSD1306)
+
+  //================================================================================
+  // OLED 128x64
+  //================================================================================
+  //  10 MOSI   PB1   OLED_SDA
+  //   9 SCK    PB0   OLED_SCK
+  //   8 TX1    PA9   OLED_CS
+  //   7 RX1    PA10  OLED_DC
+  //   6 ENA    PC5   KNOB_ENA
+  //   5 DAT    PB2   OLED_RESET
+  //   4 TX3    PB10  KNOB_ENC
+  //   3 RX3    PB11  KNOB_ENB
+
+  #define FORCE_SOFT_SPI
+  #define LCDSCREEN_NAME "ZONESTAR 12864OLED"
+  #define LCD_PINS_RS                EXP1_05_PIN  // = LCD_RESET_PIN
+  #define LCD_PINS_DC                EXP1_07_PIN  // DC
+  #define DOGLCD_CS                  EXP1_08_PIN  // CS
+  #define DOGLCD_A0                  LCD_PINS_DC  // A0 = DC
+  #define DOGLCD_MOSI                EXP1_10_PIN  // SDA
+  #define DOGLCD_SCK                 EXP1_09_PIN  // SCK
+  // Encoder
+  #define BTN_EN1                    EXP1_03_PIN
+  #define BTN_EN2                    EXP1_06_PIN
+  #define BTN_ENC                    EXP1_04_PIN
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_ZM3E4_V1_0.h b/Marlin/src/pins/stm32f1/pins_ZM3E4_V1_0.h
new file mode 100644
index 00000000000..8a6bb4b5f87
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_ZM3E4_V1_0.h
@@ -0,0 +1,355 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "env_validate.h"
+
+#define BOARD_INFO_NAME "ZONESTAR ZM3E4 V1.0"
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+#if NO_EEPROM_SELECTED
+  #define FLASH_EEPROM_EMULATION
+  #define EEPROM_PAGE_SIZE      (0x800) // 2KB
+  #define EEPROM_START_ADDRESS  (0x08000000 + (STM32_FLASH_SIZE) * 1024 - 2 * EEPROM_PAGE_SIZE)
+  #define MARLIN_EEPROM_SIZE    EEPROM_PAGE_SIZE  // 2KB
+#endif
+
+//#define OPTION_DUALZ_DRIVE
+//#define OPTION_Z2_ENDSTOP
+//#define SWITCH_EXTRUDER_SEQUENCE
+
+//=============================================================================
+// Zonestar ZM3E4 V1.0 (STM32F103VCT6) board pin assignments
+//=============================================================================
+//  PA0                 |  PB0     HEAT_1          |  PC0         AXU_SDA
+//  PA1                 |  PB1     FAN1            |  PC1         TEMP_E1
+//  PA2     HEAT_BED    |  PB2     BOOT1           |  PC2         TEMP_E0
+//  PA3     PWR_HOLD    |  PB3     SPI3_SCK        |  PC3         TEMP_BED
+//  PA4     SD_CS       |  PB4     SPI3_MISO       |  PC4         SD_DETECT
+//  PA5     SD_SCK      |  PB5     SPI3_MOSI       |  PC5         HEAT_0
+//  PA6     SD_MISO     |  PB6     SERVO3          |  PC6         E1_STEP
+//  PA7     SD_MOSI     |  PB7     SERVO2          |  PC7         E1_EN
+//  PA8     X_DIR       |  PB8     FAN2/SERVO1     |  PC8         FIL_RUNOUT_PIN
+//  PA9     UART1_RX    |  PB9     SERVO0          |  PC9         E0_DIR
+//  PA10    UART1_TX    |  PB10    TX3             |  PC10        E0_EN
+//  PA11    USB_D-      |  PB11    RX3             |  PC11        Z2_EN
+//  PA12    USB_D+      |  PB12    LED             |  PC12        Z2_STEP
+//  PA13    SWD_SDO     |  PB13    Z1_MAX          |  PC13        X_MIN
+//  PA14    SWD_SCK     |  PB14    Y_MAX           |  PC14        WIFI_RST
+//  PA15    SPI3_CS     |  PB15    PWR_DET         |  PC15        WIFI_CS
+//  PD0     Z2_DIR      |  PE0     Y_EN
+//  PD1     Z2_MIN      |  PE1     Y_STEP
+//  PD2     Z1_EN       |  PE2     Y_DIR
+//  PD3     Z1_STEP     |  PE3     Y_MIN
+//  PD4     Z1_DIR      |  PE4     X_DIR
+//  PD5     WIFI_RXD    |  PE5     X_STEP
+//  PD6     WIFI_TXD    |  PE6     X_EN
+//  PD7     Z1_MIN      |  PE7     AXU_SCL
+//  PD8     X_MAX       |  PE8     BTN_EN1
+//  PD9     E3_DIR      |  PE9     LCD_SCK
+//  PD10    E3_STEP     |  PE10    LCD_MOSI
+//  PD11    E3_EN       |  PE11    BEEPER
+//  PD12    E2_DIR      |  PE12    LCD_EN
+//  PD13    E2_STEP     |  PE13    KILL
+//  PD14    E2_EN       |  PE14    BTN_EN2
+//  PD15    E1_DIR      |  PE15    BTN_ENC
+//=============================================================================
+
+// EXP1 connector
+//     MARK     I/O     ZONESTAR_LCD12864   REPRAPDISCOUNT_LCD12864
+//  10 RS       PE13    KILL                BTN_ENC
+//   9 BP       PE11    BEEP                BEEP
+//   8 EN       PE12    DOGLCD_CS           LCDRS
+//   7 MOSI     PE10    DOGLCD_SCK          LCDE
+//   6 EN1      PE8     BTN_EN1             NC
+//   5 SCK      PE9     DOGLCD_MOSI         LCD4
+//   4 ENC      PE15    BTN_ENC             NC
+//   3 EN2      PE14    BTN_EN2             NC
+//   2 +5V                    +5V
+//   1 GND                    GND
+
+#define EXP1_03_PIN                         PE14
+#define EXP1_04_PIN                         PE15
+#define EXP1_05_PIN                         PE9
+#define EXP1_06_PIN                         PE8
+#define EXP1_07_PIN                         PE10
+#define EXP1_08_PIN                         PE12
+#define EXP1_09_PIN                         PE11
+#define EXP1_10_PIN                         PE13
+
+// EXP2 connector
+//     MARK     I/O     ZONESTAR_LCD12864   REPRAPDISCOUNT_LCD12864
+//  10
+//   9
+//   8 RX0      PA9     UART1_RX
+//   7 TX0      PA10    UART1_TX            BTN_EN2
+//   6 CS3      PA15
+//   5 MISO3    PB4                         BTN_EN1
+//   4 MOSI3    PB5                         KILL
+//   3 SCK3     PB3
+//   2 +5V                    +5V
+//   1 GND                    GND
+
+#define EXP2_03_PIN                         PB3
+#define EXP2_04_PIN                         PB5
+#define EXP2_05_PIN                         PB4
+#define EXP2_06_PIN                         PA15
+#define EXP2_07_PIN                         PA10
+#define EXP2_08_PIN                         PA9
+
+// AUX1 connector
+//  1 +5V
+//  2 GND
+//  3 RX3       PB11    UART3_RX
+//  4 TX3       PB10    UART3_TX
+//  5 SCL       PE7
+//  6 SDA       PC0
+
+// WiFi
+//  1 +5V
+//  2 GND
+//  3 WIFI_TXD  PD5     UART2_RX
+//  4 WIFI_RXD  PD6     UART2_TX
+//  5 WIFI_RST  PC14
+//  6 WIFI_CS   PC15
+//=============================================================================
+
+//
+// Servos
+//
+#define SERVO0_PIN                          PB9
+#define SERVO2_PIN                          PB7
+#define SERVO3_PIN                          PB6
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN                           PC13
+#define X_MAX_PIN                           PD8
+#define Y_MIN_PIN                           PE3
+#define Y_MAX_PIN                           PB14
+#define Z_MIN_PIN                           PD7
+#define Z_MAX_PIN                           PB13
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+  #define FIL_RUNOUT_PIN                    PC8
+#endif
+
+//
+// Steppers
+//
+#if ENABLED(COREXY)
+  #define X_ENABLE_PIN                      PE0
+  #define X_STEP_PIN                        PE1
+  #define X_DIR_PIN                         PE2
+
+  #define Y_ENABLE_PIN                      PE6
+  #define Y_STEP_PIN                        PE5
+  #define Y_DIR_PIN                         PE4
+#else
+  #define X_ENABLE_PIN                      PE6
+  #define X_STEP_PIN                        PE5
+  #define X_DIR_PIN                         PE4
+
+  #define Y_ENABLE_PIN                      PE0
+  #define Y_STEP_PIN                        PE1
+  #define Y_DIR_PIN                         PE2
+#endif
+
+#define Z_ENABLE_PIN                        PD2
+#define Z_STEP_PIN                          PD3
+#define Z_DIR_PIN                           PD4
+
+#ifdef OPTION_DUALZ_DRIVE
+  #define Z2_ENABLE_PIN                     PC11
+  #define Z2_STEP_PIN                       PC12
+  #define Z2_DIR_PIN                        PD0
+#endif
+
+#ifdef OPTION_Z2_ENDSTOP
+  #define Z2_MIN_PIN                        PD1
+  #define Z2_MAX_PIN                        PB12
+#endif
+
+#ifdef SWITCH_EXTRUDER_SEQUENCE
+  #define E3_ENABLE_PIN                     PC10
+  #define E3_STEP_PIN                       PA8
+  #define E3_DIR_PIN                        PC9
+
+  #define E2_STEP_PIN                       PC6
+  #define E2_DIR_PIN                        PD15
+  #define E2_ENABLE_PIN                     PC7
+
+  #define E1_STEP_PIN                       PD13
+  #define E1_DIR_PIN                        PD12
+  #define E1_ENABLE_PIN                     PD14
+
+  #define E0_STEP_PIN                       PD10
+  #define E0_DIR_PIN                        PD9
+  #define E0_ENABLE_PIN                     PD11
+#else
+  #define E0_ENABLE_PIN                     PC10
+  #define E0_STEP_PIN                       PA8
+  #define E0_DIR_PIN                        PC9
+
+  #define E1_STEP_PIN                       PC6
+  #define E1_DIR_PIN                        PD15
+  #define E1_ENABLE_PIN                     PC7
+
+  #define E2_STEP_PIN                       PD13
+  #define E2_DIR_PIN                        PD12
+  #define E2_ENABLE_PIN                     PD14
+
+  #define E3_STEP_PIN                       PD10
+  #define E3_DIR_PIN                        PD9
+  #define E3_ENABLE_PIN                     PD11
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN                          PC2   // TH0
+#define TEMP_BED_PIN                        PC3   // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN                        PC5   // HEATER0
+#define HEATER_BED_PIN                      PA2   // HOT BED
+
+#if ENABLED(OPTION_CHAMBER)
+  #define TEMP_CHAMBER_PIN                  PC1
+  #define HEATER_CHAMBER_PIN                PB0
+#else
+  #define TEMP_1_PIN                        PC1   // TH1
+  #define HEATER_1_PIN                      PB0   // HEATER1
+#endif
+
+#define FAN_PIN                             PB1   // FAN1
+#define FAN1_PIN                            PB8   // FAN2
+
+//
+// Misc. Functions
+//
+
+//#define POWER_LOSS_PIN                    PB15
+#define LED_PIN                             PA0
+#define SUICIDE_PIN                         PA3
+
+//
+// SD card
+//
+#define ENABLE_SPI1
+#define SD_DETECT_PIN                       PC4
+#define SD_SCK_PIN                          PA5
+#define SD_MISO_PIN                         PA6
+#define SD_MOSI_PIN                         PA7
+#define SD_SS_PIN                           PA4
+
+// WiFi Functions
+#define WIFI_RST                            PC15
+#define WIFI_EN                             PC14
+
+//
+// LCD / Controller
+//
+#if ENABLED(ZONESTAR_12864LCD)
+  #define LCDSCREEN_NAME "ZONESTAR LCD12864"
+  #define LCD_PINS_RS                EXP1_08_PIN  // 7 CS make sure for zonestar zm3e4!
+  #define LCD_PINS_ENABLE            EXP1_05_PIN  // 6 DATA make sure for zonestar zm3e4!
+  #define LCD_PINS_D4                EXP1_07_PIN  // 8 SCK make sure for zonestar zm3e4!
+  #define BEEPER_PIN                 EXP1_09_PIN
+  #define KILL_PIN                          -1    // EXP1_10_PIN
+  #define BTN_EN1                    EXP1_06_PIN
+  #define BTN_EN2                    EXP1_03_PIN
+  #define BTN_ENC                    EXP1_04_PIN
+#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+  #define LCDSCREEN_NAME "REPRAPDISCOUNT LCD12864"
+  #define LCD_PINS_RS                EXP1_08_PIN  // 7 CS make sure for zonestar zm3e4!
+  #define LCD_PINS_ENABLE            EXP1_07_PIN  // 6 DATA make sure for zonestar zm3e4!
+  #define LCD_PINS_D4                EXP1_05_PIN  // 8 SCK make sure for zonestar zm3e4!
+  #define BEEPER_PIN                 EXP1_09_PIN
+  #define KILL_PIN                   EXP2_04_PIN
+  #define BTN_EN1                    EXP2_05_PIN
+  #define BTN_EN2                    EXP2_07_PIN
+  #define BTN_ENC                    EXP1_10_PIN
+#elif ENABLED(ZONESTAR_DWIN_LCD)
+  // Connect to EXP2 connector
+  #define LCDSCREEN_NAME "ZONESTAR DWIN LCD"
+  #define BEEPER_PIN                 EXP2_06_PIN
+  #define KILL_PIN                          PC0
+  #define BTN_EN1                    EXP2_03_PIN
+  #define BTN_EN2                    EXP2_04_PIN
+  #define BTN_ENC                    EXP2_05_PIN
+#endif
+
+#if ENABLED(ZONESTAR_LCD2004_KNOB)
+  #define LCDSCREEN_NAME "LCD2004 KNOB"
+  #define LCD_PINS_RS                EXP1_08_PIN
+  #define LCD_PINS_ENABLE            EXP1_07_PIN
+  #define LCD_PINS_D4                EXP1_05_PIN
+  #define LCD_PINS_D5                EXP1_06_PIN
+  #define LCD_PINS_D6                EXP1_03_PIN
+  #define LCD_PINS_D7                EXP1_04_PIN
+  #define BTN_EN1                    EXP2_07_PIN
+  #define BTN_EN2                    EXP2_05_PIN
+  #define BTN_ENC                    EXP1_10_PIN
+  #define BEEPER_PIN                 EXP1_09_PIN
+  #define KILL_PIN                   EXP2_04_PIN
+#elif ENABLED(ZONESTAR_LCD2004_ADCKEY)
+  #define LCDSCREEN_NAME "LCD2004 5KEY"
+  #define LCD_PINS_RS                EXP1_08_PIN
+  #define LCD_PINS_ENABLE            EXP1_07_PIN
+  #define LCD_PINS_D4                EXP1_05_PIN
+  #define LCD_PINS_D5                EXP1_06_PIN
+  #define LCD_PINS_D6                EXP1_03_PIN
+  #define LCD_PINS_D7                EXP1_04_PIN
+  #define ADC_KEYPAD_PIN                    PC0   // PIN6 of AUX1
+#endif
+
+#if HAS_MARLINUI_U8GLIB
+  #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+  #define BOARD_ST7920_DELAY_2 DELAY_NS(250)
+  #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+#endif
+
+// Remap SERVO0 PIN for BLTouch
+#if ENABLED(BLTOUCH_ON_EXP1)
+  // BLTouch connected to EXP1
+  #define BLTOUCH_PROBE_PIN          EXP1_06_PIN
+  #define BLTOUCH_GND_PIN            EXP1_04_PIN
+  #undef SERVO0_PIN
+  #define SERVO0_PIN                 EXP1_03_PIN
+#elif ENABLED(BLTOUCH_ON_EXP2)
+  // BLTouch connected to EXP2
+  #define BLTOUCH_PROBE_PIN          EXP2_03_PIN
+  #define BLTOUCH_GND_PIN            EXP2_04_PIN
+  #undef SERVO0_PIN
+  #define SERVO0_PIN                 EXP2_06_PIN
+#else
+  #define BLTOUCH_PROBE_PIN                 PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_ZM3E4_V2_0.h b/Marlin/src/pins/stm32f1/pins_ZM3E4_V2_0.h
new file mode 100644
index 00000000000..5bbf43bbfac
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_ZM3E4_V2_0.h
@@ -0,0 +1,328 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "env_validate.h"
+
+#define BOARD_INFO_NAME "ZONESTAR ZM3E4 V2.0"
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+#if NO_EEPROM_SELECTED
+  #define FLASH_EEPROM_EMULATION
+  #define EEPROM_PAGE_SIZE      (0x800) // 2KB
+  #define EEPROM_START_ADDRESS  (0x08000000 + (STM32_FLASH_SIZE) * 1024 - 2 * EEPROM_PAGE_SIZE)
+  #define MARLIN_EEPROM_SIZE    EEPROM_PAGE_SIZE  // 2KB
+#endif
+
+//#define OPTION_DUALZ_DRIVE
+//#define OPTION_Z2_ENDSTOP
+//#define OPTION_REPEAT_PRINTING
+//#define SWITCH_EXTRUDER_SEQUENCE
+
+//=============================================================================
+// Zonestar ZM3E4 V2.0 (STM32F103VET6) board pin assignments
+//=============================================================================
+//  PA0                 |  PB0     HEAT_1          |  PC0         AUX_SDA
+//  PA1                 |  PB1     FAN1            |  PC1         TEMP_E1
+//  PA2     HEAT_BED    |  PB2     BOOT1           |  PC2         TEMP_E0
+//  PA3     PWR_HOLD    |  PB3     SPI3_SCK        |  PC3         TEMP_BED
+//  PA4     SD_CS       |  PB4     SPI3_MISO       |  PC4         SD_DETECT
+//  PA5     SD_SCK      |  PB5     SPI3_MOSI       |  PC5         HEAT_0
+//  PA6     SD_MISO     |  PB6     SERVO3          |  PC6         E1_STEP
+//  PA7     SD_MOSI     |  PB7     SERVO2          |  PC7         E1_EN
+//  PA8     X_DIR       |  PB8     FAN2/SERVO1     |  PC8         FIL_RUNOUT_PIN
+//  PA9     UART1_RX    |  PB9     SERVO0          |  PC9         E0_DIR
+//  PA10    UART1_TX    |  PB10    TX3             |  PC10        E0_EN
+//  PA11    USB_D-      |  PB11    RX3             |  PC11        Z2_EN
+//  PA12    USB_D+      |  PB12    LED             |  PC12        Z2_STEP
+//  PA13    SWD_SDO     |  PB13    Z1_MAX          |  PC13        X_MIN
+//  PA14    SWD_SCK     |  PB14    Y_MAX           |  PC14        WIFI_RST
+//  PA15    SPI3_CS     |  PB15    PWR_DET         |  PC15        WIFI_CS
+//  PD0     Z2_DIR      |  PE0     Y_EN
+//  PD1     Z2_MIN      |  PE1     Y_STEP
+//  PD2     Z1_EN       |  PE2     Y_DIR
+//  PD3     Z1_STEP     |  PE3     Y_MIN
+//  PD4     Z1_DIR      |  PE4     X_DIR
+//  PD5     WIFI_RXD    |  PE5     X_STEP
+//  PD6     WIFI_TXD    |  PE6     X_EN
+//  PD7     Z1_MIN      |  PE7     AUX_SCL
+//  PD8     X_MAX       |  PE8     BTN_EN1
+//  PD9     E3_DIR      |  PE9     LCD_SCK
+//  PD10    E3_STEP     |  PE10    LCD_MOSI
+//  PD11    E3_EN       |  PE11    BEEPER
+//  PD12    E2_DIR      |  PE12    LCD_EN
+//  PD13    E2_STEP     |  PE13    KILL
+//  PD14    E2_EN       |  PE14    BTN_EN2
+//  PD15    E1_DIR      |  PE15    BTN_ENC
+
+//=============================================================================
+// EXP1 connector
+//     MARK     I/O     ZONESTAR_LCD12864   REPRAPDISCOUNT_LCD12864
+//  10 RS       PE13    KILL                BTN_ENC
+//   9 BP       PE11    BEEP                BEEP
+//   8 EN       PE12    DOGLCD_CS           LCDRS
+//   7 MOSI     PE10    DOGLCD_SCK          LCDE
+//   6 EN1      PE8     BTN_EN1             NC
+//   5 SCK      PE9     DOGLCD_MOSI         LCD4
+//   4 ENC      PE15    BTN_ENC             NC
+//   3 EN2      PE14    BTN_EN2             NC
+//   2 +5V
+//   1 GND
+
+#define EXP1_03_PIN                         PE14
+#define EXP1_04_PIN                         PE15
+#define EXP1_05_PIN                         PE9
+#define EXP1_06_PIN                         PE8
+#define EXP1_07_PIN                         PE10
+#define EXP1_08_PIN                         PE12
+#define EXP1_09_PIN                         PE11
+#define EXP1_10_PIN                         PE13
+
+// EXP2 connector
+//     MARK     I/O     ZONESTAR_LCD12864   REPRAPDISCOUNT_LCD12864
+//  10 SDA      PC0
+//   9 SCL      PE7
+//   8 RX1      PA9     UART1_RX
+//   7 TX1      PA10    UART1_TX            BTN_EN2
+//   6 CS3      PA15
+//   5 MISO3    PB4                         BTN_EN1
+//   4 MOSI3    PB5                         KILL
+//   3 SCK3     PB3
+//   2 +5V
+//   1 GND
+
+#define EXP2_03_PIN                         PB3
+#define EXP2_04_PIN                         PB5
+#define EXP2_05_PIN                         PB4
+#define EXP2_06_PIN                         PA15
+#define EXP2_07_PIN                         PA10
+#define EXP2_08_PIN                         PA9
+#define EXP2_09_PIN                         PE7
+#define EXP2_10_PIN                         PC0
+
+// AUX1 connector
+//  1 +5V
+//  2 GND
+//  3 RX3       PB11    UART3_RX
+//  4 TX3       PB10    UART3_TX
+//  5 SCL       PE7
+//  6 SDA       PC0
+
+// WiFi
+//  1 +5V
+//  2 GND
+//  3 WIFI_TXD  PD5     UART2_RX
+//  4 WIFI_RXD  PD6     UART2_TX
+//  5 WIFI_RST  PC14
+//  6 WIFI_CS   PC15
+//=============================================================================
+
+//
+// Servos
+//
+#define SERVO0_PIN                          PB9
+//#define SERVO1_PIN                        PB8
+#define SERVO2_PIN                          PB7
+#define SERVO3_PIN                          PB6
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN                           PC13
+#define Y_MIN_PIN                           PE3
+#define Z_MIN_PIN                           PD7
+#define X_MAX_PIN                           PD8
+#define Y_MAX_PIN                           PB14
+#define Z_MAX_PIN                           PB13
+
+#ifdef OPTION_Z2_ENDSTOP
+  #define Z2_MIN_PIN                        PD1
+  #define Z2_MAX_PIN                        PB12
+#endif
+
+//
+// Steppers
+//
+#if ENABLED(COREXY)
+  #define X_ENABLE_PIN                      PE0
+  #define X_STEP_PIN                        PE1
+  #define X_DIR_PIN                         PE2
+
+  #define Y_ENABLE_PIN                      PE6
+  #define Y_STEP_PIN                        PE5
+  #define Y_DIR_PIN                         PE4
+#else
+  #define X_ENABLE_PIN                      PE6
+  #define X_STEP_PIN                        PE5
+  #define X_DIR_PIN                         PE4
+
+  #define Y_ENABLE_PIN                      PE0
+  #define Y_STEP_PIN                        PE1
+  #define Y_DIR_PIN                         PE2
+#endif
+
+#define Z_ENABLE_PIN                        PD2
+#define Z_STEP_PIN                          PD3
+#define Z_DIR_PIN                           PD4
+
+#ifdef OPTION_DUALZ_DRIVE
+  #define Z2_ENABLE_PIN                     PC11
+  #define Z2_STEP_PIN                       PC12
+  #define Z2_DIR_PIN                        PD0
+#endif
+
+#ifdef OPTION_REPEAT_PRINTING
+  #define REPRINT_STOP_PIN                  PD8   // X_MAX_PIN
+  #define FORWARD_PIN                       PA13
+  #define BACK_PIN                          PA14
+#endif
+
+#ifdef SWITCH_EXTRUDER_SEQUENCE
+  #define E3_ENABLE_PIN                     PC10
+  #define E3_STEP_PIN                       PA8
+  #define E3_DIR_PIN                        PC9
+
+  #define E2_STEP_PIN                       PC6
+  #define E2_DIR_PIN                        PD15
+  #define E2_ENABLE_PIN                     PC7
+
+  #define E1_STEP_PIN                       PD13
+  #define E1_DIR_PIN                        PD12
+  #define E1_ENABLE_PIN                     PD14
+
+  #define E0_STEP_PIN                       PD10
+  #define E0_DIR_PIN                        PD9
+  #define E0_ENABLE_PIN                     PD11
+#else
+  #define E0_ENABLE_PIN                     PC10
+  #define E0_STEP_PIN                       PA8
+  #define E0_DIR_PIN                        PC9
+
+  #define E1_STEP_PIN                       PC6
+  #define E1_DIR_PIN                        PD15
+  #define E1_ENABLE_PIN                     PC7
+
+  #define E2_STEP_PIN                       PD13
+  #define E2_DIR_PIN                        PD12
+  #define E2_ENABLE_PIN                     PD14
+
+  #define E3_STEP_PIN                       PD10
+  #define E3_DIR_PIN                        PD9
+  #define E3_ENABLE_PIN                     PD11
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN                          PC2   // TH0
+//#define TEMP_1_PIN                        PC1   // TH1
+#define TEMP_BED_PIN                        PC3   // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN                        PC5   // HEATER0
+//#define HEATER_1_PIN                      PB0   // HEATER1
+#define HEATER_BED_PIN                      PA2   // HOT BED
+
+//
+// Fans
+//
+#define FAN_PIN                             PB1   // FAN1
+#define FAN1_PIN                            PB8   // FAN2
+
+//
+// Misc. Functions
+//
+//#define POWER_LOSS_PIN                    PB15
+#define LED_PIN                             PA0
+#define SUICIDE_PIN                         PA3
+#define FIL_RUNOUT_PIN                      PC8
+
+//
+// SD card
+//
+#define ENABLE_SPI1
+#define SD_DETECT_PIN                       PC4
+#define SD_SCK_PIN                          PA5
+#define SD_MISO_PIN                         PA6
+#define SD_MOSI_PIN                         PA7
+#define SD_SS_PIN                           PA4
+
+// WiFi Functions
+#define WIFI_RST                            PC15
+#define WIFI_EN                             PC14
+
+#if ENABLED(ZONESTAR_12864LCD)
+  #define LCDSCREEN_NAME "ZONESTAR LCD12864"
+  #define LCD_PINS_RS                EXP1_08_PIN  // 7 CS make sure for zonestar zm3e4!
+  #define LCD_PINS_ENABLE            EXP1_05_PIN  // 6 DATA make sure for zonestar zm3e4!
+  #define LCD_PINS_D4                EXP1_07_PIN  // 8 SCK make sure for zonestar zm3e4!
+  #define BEEPER_PIN                 EXP1_09_PIN
+  #define KILL_PIN                          -1    // EXP1_10_PIN
+  #define BTN_EN1                    EXP1_06_PIN
+  #define BTN_EN2                    EXP1_03_PIN
+  #define BTN_ENC                    EXP1_04_PIN
+#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+  #define LCDSCREEN_NAME "REPRAPDISCOUNT LCD12864"
+  #define LCD_PINS_RS                EXP2_08_PIN  // 7 CS make sure for zonestar zm3e4!
+  #define LCD_PINS_ENABLE            EXP2_05_PIN  // 6 DATA make sure for zonestar zm3e4!
+  #define LCD_PINS_D4                EXP2_07_PIN  // 8 SCK make sure for zonestar zm3e4!
+  #define BEEPER_PIN                 EXP2_10_PIN
+  #define KILL_PIN                   EXP2_09_PIN
+  #define BTN_EN1                    EXP2_03_PIN
+  #define BTN_EN2                    EXP2_06_PIN
+  #define BTN_ENC                    EXP2_04_PIN
+#elif ENABLED(ZONESTAR_DWIN_LCD)
+  // Connect to EXP2 connector
+  #define LCDSCREEN_NAME "ZONESTAR DWIN LCD"
+  #define BEEPER_PIN                 EXP2_06_PIN  // PE11
+  #define KILL_PIN                          -1    // EXP1_10_PIN
+  #define BTN_EN2                    EXP2_04_PIN  // PE8
+  #define BTN_EN1                    EXP2_03_PIN  // PE14
+  #define BTN_ENC                    EXP2_05_PIN  // PE15
+#endif
+
+#if HAS_MARLINUI_U8GLIB
+  #define BOARD_ST7920_DELAY_1 DELAY_NS(200)    // Tclk_fall <200ns
+  #define BOARD_ST7920_DELAY_2 DELAY_NS(250)    // Tdata_width >200ns
+  #define BOARD_ST7920_DELAY_3 DELAY_NS(200)    // Tclk_rise <200ns
+#endif
+
+// Remap SERVO0 PIN for BLTouch
+#if ENABLED(BLTOUCH_ON_EXP1)
+  // BLTouch connected to EXP1
+  #define BLTOUCH_PROBE_PIN          EXP1_06_PIN
+  #define BLTOUCH_GND_PIN            EXP1_04_PIN
+  #undef SERVO0_PIN
+  #define SERVO0_PIN                 EXP1_03_PIN
+#elif ENABLED(BLTOUCH_ON_EXP2)
+  // BLTouch connected to EXP2
+  #define BLTOUCH_PROBE_PIN          EXP2_03_PIN
+  #define BLTOUCH_GND_PIN            EXP2_04_PIN
+  #undef SERVO0_PIN
+  #define SERVO0_PIN                 EXP2_06_PIN
+#else
+  #define BLTOUCH_PROBE_PIN                 PB13  // Z1_MAX
+#endif
diff --git a/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h b/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h
index c4349d182bf..d85bbf7bed9 100644
--- a/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h
+++ b/Marlin/src/pins/stm32h7/pins_BTT_SKR_SE_BX.h
@@ -223,13 +223,16 @@
   #define BTN_ENC                           PH8
 #endif
 
+//
+// SD card
+//
 #ifndef SDCARD_CONNECTION
   #define SDCARD_CONNECTION              ONBOARD
 #endif
 
 #define SOFTWARE_SPI
 #define SDSS                                PA15
-#define SS_PIN                              SDSS
+#define SD_SS_PIN                           SDSS
 #define SD_SCK_PIN                          PC10
 #define SD_MISO_PIN                         PC11
 #define SD_MOSI_PIN                         PC12
diff --git a/buildroot/share/PlatformIO/ldscripts/ZONESTAR_ZM3E_256K.ld b/buildroot/share/PlatformIO/ldscripts/ZONESTAR_ZM3E_256K.ld
new file mode 100644
index 00000000000..2404e7cac9b
--- /dev/null
+++ b/buildroot/share/PlatformIO/ldscripts/ZONESTAR_ZM3E_256K.ld
@@ -0,0 +1,14 @@
+MEMORY
+{
+  ram (rwx) : ORIGIN = 0x20000000, LENGTH = 48K - 40
+  rom (rx)  : ORIGIN = 0x08005000, LENGTH = 256K - 20K - 4K
+}
+
+/* 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/ldscripts/ZONESTAR_ZM3E_512K.ld b/buildroot/share/PlatformIO/ldscripts/ZONESTAR_ZM3E_512K.ld
new file mode 100644
index 00000000000..821c8ebbfe3
--- /dev/null
+++ b/buildroot/share/PlatformIO/ldscripts/ZONESTAR_ZM3E_512K.ld
@@ -0,0 +1,14 @@
+MEMORY
+{
+  ram (rwx) : ORIGIN = 0x20000000, LENGTH = 48K - 40
+  rom (rx)  : ORIGIN = 0x08005000, LENGTH = 512K - 20K - 4K
+}
+
+/* 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/tests/STM32F103RC_fysetc b/buildroot/tests/STM32F103RC_fysetc_maple
similarity index 100%
rename from buildroot/tests/STM32F103RC_fysetc
rename to buildroot/tests/STM32F103RC_fysetc_maple
diff --git a/buildroot/tests/STM32F103VE_ZM3E4V2_USB_maple b/buildroot/tests/STM32F103VE_ZM3E4V2_USB_maple
new file mode 100755
index 00000000000..8cbb84fb807
--- /dev/null
+++ b/buildroot/tests/STM32F103VE_ZM3E4V2_USB_maple
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+#
+# Build tests for STM32F103VE_ZM3E4V2_USB
+#
+
+# exit on first failure
+set -e
+
+restore_configs
+opt_set MOTHERBOARD BOARD_ZONESTAR_ZM3E4V2 SERIAL_PORT 1
+exec_test $1 $2 "Zonestar ZM3E4 V2.0" "$3"
+
+# cleanup
+restore_configs
diff --git a/buildroot/tests/jgaurora_a5s_a1 b/buildroot/tests/jgaurora_a5s_a1_maple
similarity index 100%
rename from buildroot/tests/jgaurora_a5s_a1
rename to buildroot/tests/jgaurora_a5s_a1_maple
diff --git a/buildroot/tests/mks_robin_lite b/buildroot/tests/mks_robin_lite_maple
similarity index 100%
rename from buildroot/tests/mks_robin_lite
rename to buildroot/tests/mks_robin_lite_maple
diff --git a/buildroot/tests/mks_robin_pro b/buildroot/tests/mks_robin_pro_maple
similarity index 100%
rename from buildroot/tests/mks_robin_pro
rename to buildroot/tests/mks_robin_pro_maple
diff --git a/ini/stm32f1-maple.ini b/ini/stm32f1-maple.ini
index 0258fb3b7cc..c184dc247c4 100644
--- a/ini/stm32f1-maple.ini
+++ b/ini/stm32f1-maple.ini
@@ -357,3 +357,46 @@ 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
+
+#
+# Zonestar ZM3E2 V1.0 / ZM3E4 V1.0 / ZM3E4 V2.0
+#
+#  STM32F103RC_ZM3E2_USB_maple ........... RCT6 with 256K
+#  STM32F103VC_ZM3E4_USB_maple ........... VCT6 with 256K
+#  STM32F103VE_ZM3E4V2_USB_maple ......... VET6 with 512K
+#
+[ZONESTAR_ZM3E_maple]
+platform                  = ${common_stm32f1.platform}
+extends                   = common_stm32f1
+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                  = USBComposite for STM32F1@0.91
+lib_ignore                = Adafruit NeoPixel, SPI, SailfishLCD, SailfishRGB_LED, SlowSoftI2CMaster, TMCStepper
+
+[env:STM32F103RC_ZM3E2_USB_maple]
+platform             = ${ZONESTAR_ZM3E_maple.platform}
+extends              = ZONESTAR_ZM3E_maple
+board                = genericSTM32F103RC
+board_build.ldscript = ZONESTAR_ZM3E_256K.ld
+
+[env:STM32F103VC_ZM3E4_USB_maple]
+platform             = ${ZONESTAR_ZM3E_maple.platform}
+extends              = ZONESTAR_ZM3E_maple
+board                = genericSTM32F103VC
+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]
+platform             = ${ZONESTAR_ZM3E_maple.platform}
+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
diff --git a/ini/stm32f1.ini b/ini/stm32f1.ini
index 1185e8f84d8..d03898a12ee 100644
--- a/ini/stm32f1.ini
+++ b/ini/stm32f1.ini
@@ -374,3 +374,43 @@ extra_scripts        = ${stm32_variant.extra_scripts}
 platform      = ${common_stm32.platform}
 extends       = env:chitu_f103
 build_flags   = ${env:chitu_f103.build_flags} -DCHITU_V5_Z_MIN_BUGFIX
+
+#
+# Zonestar ZM3E2 V1.0 / ZM3E4 V1.0 / ZM3E4 V2.0
+#
+#  STM32F103RC_ZM3E2_USB ........... RCT6 with 256K
+#  STM32F103VC_ZM3E4_USB ........... VCT6 with 256K
+#  STM32F103VE_ZM3E4V2_USB ......... VET6 with 512K
+#
+[ZONESTAR_ZM3E]
+platform                  = ${common_stm32.platform}
+extends                   = stm32_variant
+platform_packages         = ${stm_flash_drive.platform_packages}
+board_upload.offset_address = 0x08005000
+board_build.offset        = 0x5000
+board_upload.maximum_size = 237568
+extra_scripts             = ${stm32_variant.extra_scripts}
+build_flags               = ${common_stm32.build_flags}
+  -DSS_TIMER=4 -DTIMER_SERVO=TIM5 -DUSE_USB_FS -DUSBD_IRQ_PRIO=5 -DUSBD_IRQ_SUBPRIO=6 -DUSBD_USE_CDC_MSC
+build_unflags             = ${stm32_variant.build_unflags} -DUSBD_USE_CDC
+
+[env:STM32F103RC_ZM3E2_USB]
+platform             = ${ZONESTAR_ZM3E.platform}
+extends              = ZONESTAR_ZM3E
+board                = genericSTM32F103RC
+board_build.variant  = MARLIN_F103Rx
+
+[env:STM32F103VC_ZM3E4_USB]
+platform             = ${ZONESTAR_ZM3E.platform}
+extends              = ZONESTAR_ZM3E
+board                = genericSTM32F103VC
+board_build.variant  = MARLIN_F103Vx
+build_flags          = ${ZONESTAR_ZM3E.build_flags} -DTIMER_TONE=1
+
+[env:STM32F103VE_ZM3E4V2_USB]
+platform             = ${ZONESTAR_ZM3E.platform}
+extends              = ZONESTAR_ZM3E
+board                = genericSTM32F103VE
+board_build.variant  = MARLIN_F103Vx
+build_flags          = ${ZONESTAR_ZM3E.build_flags} -DTIMER_TONE=1
+board_upload.maximum_size = 499712