aboutsummaryrefslogtreecommitdiff
path: root/Marlin/src/pins/stm32f1
diff options
context:
space:
mode:
Diffstat (limited to 'Marlin/src/pins/stm32f1')
-rw-r--r--Marlin/src/pins/stm32f1/pins_BEAST.h159
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h183
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h289
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h51
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h53
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h79
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h283
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h26
-rw-r--r--Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h232
-rw-r--r--Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h178
-rw-r--r--Marlin/src/pins/stm32f1/pins_CHITU3D.h290
-rw-r--r--Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h189
-rw-r--r--Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h204
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V4.h200
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h208
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V427.h44
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V431.h39
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V452.h38
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V453.h38
-rw-r--r--Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h113
-rw-r--r--Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h318
-rw-r--r--Marlin/src/pins/stm32f1/pins_FLY_MINI.h176
-rw-r--r--Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h211
-rw-r--r--Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h194
-rw-r--r--Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h64
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_MINI.h243
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h237
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h243
-rw-r--r--Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h240
-rw-r--r--Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h132
-rw-r--r--Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h164
-rw-r--r--Marlin/src/pins/stm32f1/pins_MALYAN_M200.h95
-rw-r--r--Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h176
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h283
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h36
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h67
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h67
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h346
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h36
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h39
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h196
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h148
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h159
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h201
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h345
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h406
-rw-r--r--Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h280
-rw-r--r--Marlin/src/pins/stm32f1/pins_MORPHEUS.h93
-rw-r--r--Marlin/src/pins/stm32f1/pins_STM32F1R.h140
-rw-r--r--Marlin/src/pins/stm32f1/pins_STM3R_MINI.h161
-rw-r--r--Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h183
-rw-r--r--Marlin/src/pins/stm32f1/workspace.code-workspace8
52 files changed, 8583 insertions, 0 deletions
diff --git a/Marlin/src/pins/stm32f1/pins_BEAST.h b/Marlin/src/pins/stm32f1/pins_BEAST.h
new file mode 100644
index 0000000..bf2cf64
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BEAST.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 21017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Beast STM32"
+#define DEFAULT_MACHINE_NAME "STM32F103RET6"
+
+// Enable I2C_EEPROM for testing
+#define I2C_EEPROM
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE0
+#define X_DIR_PIN PE1
+#define X_ENABLE_PIN PC0
+#define X_MIN_PIN PD5
+#define X_MAX_PIN -1
+
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+#define Y_ENABLE_PIN PC1
+#define Y_MIN_PIN PD6
+#define Y_MAX_PIN
+
+#define Z_STEP_PIN PE4
+#define Z_DIR_PIN PE5
+#define Z_ENABLE_PIN PC2
+#define Z_MIN_PIN PD7
+#define Z_MAX_PIN -1
+
+#define Y2_STEP_PIN -1
+#define Y2_DIR_PIN -1
+#define Y2_ENABLE_PIN -1
+
+#define Z2_STEP_PIN -1
+#define Z2_DIR_PIN -1
+#define Z2_ENABLE_PIN -1
+
+#define E0_STEP_PIN PE6
+#define E0_DIR_PIN PE7
+#define E0_ENABLE_PIN PC3
+
+/**
+ * TODO: Currently using same Enable pin to all steppers.
+ */
+
+#define E1_STEP_PIN PE8
+#define E1_DIR_PIN PE9
+#define E1_ENABLE_PIN PC4
+
+#define E2_STEP_PIN PE10
+#define E2_DIR_PIN PE11
+#define E2_ENABLE_PIN PC5
+
+//
+// Misc. Functions
+//
+#define SDSS PA15
+#define LED_PIN PB2
+
+#define PS_ON_PIN -1
+#define KILL_PIN -1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD12 // EXTRUDER 1
+#define HEATER_1_PIN PD13
+#define HEATER_2_PIN PD14
+
+#define HEATER_BED_PIN PB9 // BED
+#define HEATER_BED2_PIN -1 // BED2
+#define HEATER_BED3_PIN -1 // BED3
+
+#ifndef FAN_PIN
+ #define FAN_PIN PB10
+#endif
+
+#define FAN_SOFT_PWM
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0 // Analog Input
+#define TEMP_0_PIN PA1 // Analog Input
+#define TEMP_1_PIN PA2 // Analog Input
+#define TEMP_2_PIN PA3 // Analog Input
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #error "Non-NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if IS_NEWPANEL
+ #if IS_RRD_SC
+ #error "RRD Smart Controller is not supported."
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+ #error "LCD_I2C_PANELOLU2 is not supported."
+ #elif ENABLED(LCD_I2C_VIKI)
+ #error "LCD_I2C_VIKI is not supported."
+ #elif ANY(VIKI2, miniVIKI)
+ #error "VIKI2 / miniVIKI is not supported."
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #error "ELB_FULL_GRAPHIC_CONTROLLER is not supported."
+ #elif ENABLED(MINIPANEL)
+ #error "MINIPANEL is not supported."
+ #else
+ #error "Other generic NEWPANEL LCD is not supported."
+ #endif
+ #endif // IS_NEWPANEL
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h
new file mode 100644
index 0000000..73a18fa
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_CR6.h
@@ -0,0 +1,183 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * BigTreeTech SKR CR-6 (STM32F103RET6) board pin assignments
+ */
+
+#define DEFAULT_MACHINE_NAME "Creality3D"
+#define BOARD_INFO_NAME "BTT SKR CR-6"
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+//
+// Release PB4 (Z_STEP_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// USB connect control
+//
+#define USB_CONNECT_PIN PA14
+#define USB_CONNECT_INVERTING false
+
+//
+// EEPROM
+//
+
+#if NO_EEPROM_SELECTED
+ #define I2C_EEPROM
+#endif
+
+/* I2C */
+#if ENABLED(I2C_EEPROM)
+ #define IIC_EEPROM_SDA PB7
+ #define IIC_EEPROM_SCL PB6
+
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#elif ENABLED(SDCARD_EEPROM_EMULATION)
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+#define E2END (MARLIN_EEPROM_SIZE - 1) // 2KB
+
+//
+// Limit Switches
+//
+
+#define X_STOP_PIN PC0
+#define Y_STOP_PIN PC1
+#define Z_STOP_PIN PC14 // Endtop or Probe
+
+#define FIL_RUNOUT_PIN PC15
+
+//
+// Probe
+//
+#define PROBE_TARE_PIN PA1
+#define PROBE_ACTIVATION_SWITCH_PIN PC2 // Optoswitch to Enable Z Probe
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB14
+#define X_STEP_PIN PB13
+#define X_DIR_PIN PB12
+
+#define Y_ENABLE_PIN PB11
+#define Y_STEP_PIN PB10
+#define Y_DIR_PIN PB2
+
+#define Z_ENABLE_PIN PB1
+#define Z_STEP_PIN PB0
+#define Z_DIR_PIN PC5
+
+#define E0_ENABLE_PIN PD2
+#define E0_STEP_PIN PB3
+#define E0_DIR_PIN PB4
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // TH1
+#define TEMP_BED_PIN PC3 // TB1
+
+//
+// Heaters / Fans
+//
+
+#define HEATER_0_PIN PC8 // HEATER1
+#define HEATER_BED_PIN PC9 // HOT BED
+
+#define FAN_PIN PC6 // FAN
+#define FAN_SOFT_PWM
+
+#define CONTROLLER_FAN_PIN PC7
+
+//
+// LCD / Controller
+//
+#if ENABLED(CR10_STOCKDISPLAY)
+ #define BTN_ENC PA15
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PB15
+ #define LCD_PINS_D4 PB9
+
+ #define BEEPER_PIN PB5
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2209 stepper drivers
+ * Hardware serial communication ports.
+ */
+ #define X_HARDWARE_SERIAL MSerial4
+ #define Y_HARDWARE_SERIAL MSerial4
+ #define Z_HARDWARE_SERIAL MSerial4
+ #define E0_HARDWARE_SERIAL MSerial4
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 1
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 2
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
+
+//
+// SD Card
+//
+
+#define HAS_ONBOARD_SD
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PC4
+
+ #define ON_BOARD_SPI_DEVICE 1 // SPI1
+ #define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
+#endif
+
+//
+// Misc. Functions
+//
+#define LED_CONTROL_PIN PA13
+
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PA8
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h
new file mode 100644
index 0000000..0426e80
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_E3_DIP.h
@@ -0,0 +1,289 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "BTT SKR E3 DIP V1.x"
+
+// Release PB3/PB4 (TMC_SW Pins) from JTAG pins
+#define DISABLE_JTAG
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1 // SERVOS
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC1 // X-STOP
+#define Y_STOP_PIN PC0 // Y-STOP
+#define Z_STOP_PIN PC15 // Z-STOP
+
+//
+// Z Probe must be this pin
+//
+#define Z_MIN_PROBE_PIN PC14 // PROBE
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PC2 // E0-STOP
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC7
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PB15
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC10
+#endif
+
+#define Y_ENABLE_PIN PB14
+#define Y_STEP_PIN PB13
+#define Y_DIR_PIN PB12
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PC11
+#endif
+
+#define Z_ENABLE_PIN PB11
+#define Z_STEP_PIN PB10
+#define Z_DIR_PIN PB2
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PC12
+#endif
+
+#define E0_ENABLE_PIN PB1
+#define E0_STEP_PIN PB0
+#define E0_DIR_PIN PC5
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD2
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB5
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB4
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB3
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PC10
+ #define X_SERIAL_RX_PIN PC10
+
+ #define Y_SERIAL_TX_PIN PC11
+ #define Y_SERIAL_RX_PIN PC11
+
+ #define Z_SERIAL_TX_PIN PC12
+ #define Z_SERIAL_RX_PIN PC12
+
+ #define E0_SERIAL_TX_PIN PD2
+ #define E0_SERIAL_RX_PIN PD2
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input "TH0"
+#define TEMP_BED_PIN PC3 // Analog Input "TB0"
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC8 // "HE"
+#define HEATER_BED_PIN PC9 // "HB"
+#define FAN_PIN PA8 // "FAN0"
+
+//
+// USB connect control
+//
+#define USB_CONNECT_PIN PC13
+#define USB_CONNECT_INVERTING false
+
+/**
+ * _____
+ * 5V | 1 2 | GND
+ * (LCD_EN) PB7 | 3 4 | PB8 (LCD_RS)
+ * (LCD_D4) PB9 | 5 6 PA10 (BTN_EN2)
+ * RESET | 7 8 | PA9 (BTN_EN1)
+ * (BTN_ENC) PB6 | 9 10| PA15 (BEEPER)
+ * -----
+ * EXP1
+ */
+
+#if HAS_WIRED_LCD
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define BEEPER_PIN PA15
+
+ #define BTN_ENC PB6
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PB7
+ #define LCD_PINS_D4 PB9
+
+ #elif ENABLED(ZONESTAR_LCD) // ANET A8 LCD Controller - Must convert to 3.3V - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #error "CAUTION! ZONESTAR_LCD requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ #define LCD_PINS_RS PB9
+ #define LCD_PINS_ENABLE PB6
+ #define LCD_PINS_D4 PB8
+ #define LCD_PINS_D5 PA10
+ #define LCD_PINS_D6 PA9
+ #define LCD_PINS_D7 PA15
+ #define ADC_KEYPAD_PIN PA1 // Repurpose servo pin for ADC - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #elif EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY)
+
+ /** Creality Ender-2 display pinout
+ * _____
+ * 5V | 1 2 | GND
+ * (MOSI) PB7 | 3 4 | PB8 (LCD_RS)
+ * (LCD_A0) PB9 | 5 6 PA10 (BTN_EN2)
+ * RESET | 7 8 | PA9 (BTN_EN1)
+ * (BTN_ENC) PB6 | 9 10| PA15 (SCK)
+ * -----
+ * EXP1
+ */
+
+ #define BTN_ENC PB6
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define DOGLCD_CS PB8
+ #define DOGLCD_A0 PB9
+ #define DOGLCD_SCK PA15
+ #define DOGLCD_MOSI PB7
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+
+ #else
+ #error "Only CR10_STOCKDISPLAY, ZONESTAR_LCD, ENDER2_STOCKDISPLAY, MKS_MINI_12864, and MKS_LCD12864 are currently supported on the BIGTREE_SKR_E3_DIP."
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+
+ #error "CAUTION! LCD_FYSETC_TFT81050 requires wiring modifications. See 'pins_BTT_SKR_E3_DIP.h' for details. Comment out this line to continue."
+
+ /** FYSETC TFT TFT81050 display pinout
+ *
+ * Board Display
+ * _____ _____
+ * 5V | 1 2 | GND (SPI1-MISO) MISO | 1 2 | SCK (SPI1-SCK)
+ * (FREE) PB7 | 3 4 | PB8 (LCD_CS) (PA9) MOD_RESET | 3 4 | SD_CS (PA10)
+ * (FREE) PB9 | 5 6 PA10 (SD_CS) (PB8) LCD_CS | 5 6 MOSI (SPI1-MOSI)
+ * RESET | 7 8 | PA9 (MOD_RESET) (PA15) SD_DET | 7 8 | RESET
+ * (BEEPER) PB6 | 9 10| PA15 (SD_DET) GND | 9 10| 5V
+ * ----- -----
+ * EXP1 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP1-1 ----------- EXP1-10
+ * EXP1-2 ----------- EXP1-9
+ * SPI1-4 ----------- EXP1-6
+ * EXP1-4 ----------- EXP1-5
+ * SP11-3 ----------- EXP1-2
+ * EXP1-6 ----------- EXP1-4
+ * EXP1-7 ----------- EXP1-8
+ * EXP1-8 ----------- EXP1-3
+ * SPI1-1 ----------- EXP1-1
+ * EXP1-10 ----------- EXP1-7
+ */
+
+ #define CLCD_SPI_BUS 1 // SPI1 connector
+
+ #define BEEPER_PIN PB6
+
+ #define CLCD_MOD_RESET PA9
+ #define CLCD_SPI_CS PB8
+
+#endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050
+
+//
+// SD Support
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PC4
+#elif SD_CONNECTION_IS(LCD) && BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+ #define SD_DETECT_PIN PA15
+ #define SD_SS_PIN PA10
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "SD CUSTOM_CABLE is not compatible with SKR E3 DIP."
+#endif
+
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h
new file mode 100644
index 0000000..a09da02
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_0.h
@@ -0,0 +1,51 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "pins_BTT_SKR_MINI_E3_common.h"
+
+#define BOARD_INFO_NAME "BTT SKR Mini E3 V1.0"
+
+/**
+ * TMC220x stepper drivers
+ * Hardware serial communication ports.
+ */
+#if HAS_TMC_UART
+ #define X_HARDWARE_SERIAL MSerial4
+ #define Y_HARDWARE_SERIAL MSerial4
+ #define Z_HARDWARE_SERIAL MSerial4
+ #define E0_HARDWARE_SERIAL MSerial4
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 2
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 1
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h
new file mode 100644
index 0000000..4951d69
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V1_2.h
@@ -0,0 +1,53 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#include "pins_BTT_SKR_MINI_E3_common.h"
+
+#define BOARD_INFO_NAME "BTT SKR Mini E3 V1.2"
+
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PC7 // LED driving pin
+#endif
+
+/**
+ * TMC2208/TMC2209 stepper drivers
+ */
+#if HAS_TMC_UART
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PB15
+ #define X_SERIAL_RX_PIN PB15
+
+ #define Y_SERIAL_TX_PIN PC6
+ #define Y_SERIAL_RX_PIN PC6
+
+ #define Z_SERIAL_TX_PIN PC10
+ #define Z_SERIAL_RX_PIN PC10
+
+ #define E0_SERIAL_TX_PIN PC11
+ #define E0_SERIAL_RX_PIN PC11
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
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
new file mode 100644
index 0000000..af2821f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_V2_0.h
@@ -0,0 +1,79 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define SKR_MINI_E3_V2
+
+// Onboard I2C EEPROM
+#if NO_EEPROM_SELECTED
+ #define I2C_EEPROM
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+ #undef NO_EEPROM_SELECTED
+#endif
+
+#include "pins_BTT_SKR_MINI_E3_common.h"
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "BTT SKR Mini E3 V2.0"
+#endif
+
+// Release PA13/PA14 (led, usb control) from SWD pins
+#define DISABLE_DEBUG
+
+#ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN PA8 // LED driving pin
+#endif
+
+#ifndef PS_ON_PIN
+ #define PS_ON_PIN PC13 // Power Supply Control
+#endif
+
+#define FAN1_PIN PC7
+
+#ifndef CONTROLLER_FAN_PIN
+ #define CONTROLLER_FAN_PIN FAN1_PIN
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC220x stepper drivers
+ * Hardware serial communication ports
+ */
+ #define X_HARDWARE_SERIAL MSerial4
+ #define Y_HARDWARE_SERIAL MSerial4
+ #define Z_HARDWARE_SERIAL MSerial4
+ #define E0_HARDWARE_SERIAL MSerial4
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 2
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 1
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h
new file mode 100644
index 0000000..bab662d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3_common.h
@@ -0,0 +1,283 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+// Release PB3/PB4 (E0 STP/DIR) from JTAG pins
+#define DISABLE_JTAG
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1 // SERVOS
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC0 // X-STOP
+#define Y_STOP_PIN PC1 // Y-STOP
+#define Z_STOP_PIN PC2 // Z-STOP
+
+//
+// Z Probe must be this pin
+//
+#define Z_MIN_PROBE_PIN PC14 // PROBE
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PC15 // E0-STOP
+#endif
+
+//
+// Power-loss Detection
+//
+#ifndef POWER_LOSS_PIN
+ #define POWER_LOSS_PIN PC12 // Power Loss Detection: PWR-DET
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB14
+#define X_STEP_PIN PB13
+#define X_DIR_PIN PB12
+
+#define Y_ENABLE_PIN PB11
+#define Y_STEP_PIN PB10
+#define Y_DIR_PIN PB2
+
+#define Z_ENABLE_PIN PB1
+#define Z_STEP_PIN PB0
+#define Z_DIR_PIN PC5
+
+#define E0_ENABLE_PIN PD2
+#define E0_STEP_PIN PB3
+#define E0_DIR_PIN PB4
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input "TH0"
+#define TEMP_BED_PIN PC3 // Analog Input "TB0"
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC8 // "HE"
+#define HEATER_BED_PIN PC9 // "HB"
+
+#ifdef SKR_MINI_E3_V2
+ #define FAN_PIN PC6
+#else
+ #define FAN_PIN PA8 // "FAN0"
+#endif
+
+//
+// USB connect control
+//
+#ifdef SKR_MINI_E3_V2
+ #define USB_CONNECT_PIN PA14
+#else
+ #define USB_CONNECT_PIN PC13
+#endif
+
+#define USB_CONNECT_INVERTING false
+
+/**
+ * SKR Mini E3 V1.0, V1.2 SKR Mini E3 V2.0
+ * _____ _____
+ * 5V | 1 2 | GND 5V | 1 2 | GND
+ * (LCD_EN) PB7 | 3 4 | PB8 (LCD_RS) (LCD_EN) PB15 | 3 4 | PB8 (LCD_RS)
+ * (LCD_D4) PB9 | 5 6 PA10 (BTN_EN2) (LCD_D4) PB9 | 5 6 PA10 (BTN_EN2)
+ * RESET | 7 8 | PA9 (BTN_EN1) RESET | 7 8 | PA9 (BTN_EN1)
+ * (BTN_ENC) PB6 | 9 10| PB5 (BEEPER) (BTN_ENC) PA15 | 9 10| PB5 (BEEPER)
+ * ----- -----
+ * EXP1 EXP1
+ */
+#ifdef SKR_MINI_E3_V2
+ #define EXP1_9 PA15
+ #define EXP1_3 PB15
+#else
+ #define EXP1_9 PB6
+ #define EXP1_3 PB7
+#endif
+
+#if HAS_WIRED_LCD
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+
+ #define BEEPER_PIN PB5
+ #define BTN_ENC EXP1_9
+
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE EXP1_3
+ #define LCD_PINS_D4 PB9
+
+ #elif ENABLED(ZONESTAR_LCD) // ANET A8 LCD Controller - Must convert to 3.3V - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #error "CAUTION! ZONESTAR_LCD requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ #define LCD_PINS_RS PB9
+ #define LCD_PINS_ENABLE EXP1_9
+ #define LCD_PINS_D4 PB8
+ #define LCD_PINS_D5 PA10
+ #define LCD_PINS_D6 PA9
+ #define LCD_PINS_D7 PB5
+ #define ADC_KEYPAD_PIN PA1 // Repurpose servo pin for ADC - CONNECTING TO 5V WILL DAMAGE THE BOARD!
+
+ #elif EITHER(MKS_MINI_12864, ENDER2_STOCKDISPLAY)
+
+ #define BTN_ENC EXP1_9
+ #define BTN_EN1 PA9
+ #define BTN_EN2 PA10
+
+ #define DOGLCD_CS PB8
+ #define DOGLCD_A0 PB9
+ #define DOGLCD_SCK PB5
+ #define DOGLCD_MOSI EXP1_3
+
+ #define FORCE_SOFT_SPI
+ #define LCD_BACKLIGHT_PIN -1
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+
+ #error "CAUTION! TFTGLCD_PANEL_SPI requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ /**
+ * TFTGLCD_PANEL_SPI display pinout
+ *
+ * Board Display
+ * _____ _____
+ * 5V | 1 2 | GND (SPI1-MISO) MISO | 1 2 | SCK (SPI1-SCK)
+ * (FREE) PB7 | 3 4 | PB8 (LCD_CS) (PA9) LCD_CS | 3 4 | SD_CS (PA10)
+ * (FREE) PB9 | 5 6 | PA10 (SD_CS) (FREE) | 5 6 | MOSI (SPI1-MOSI)
+ * RESET | 7 8 | PA9 (MOD_RESET) (PB5) SD_DET | 7 8 | (FREE)
+ * (BEEPER) PB6 | 9 10| PB5 (SD_DET) GND | 9 10| 5V
+ * ----- -----
+ * EXP1 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP1-1 ----------- EXP1-10
+ * EXP1-2 ----------- EXP1-9
+ * SPI1-4 ----------- EXP1-6
+ * EXP1-4 ----------- FREE
+ * SPI1-3 ----------- EXP1-2
+ * EXP1-6 ----------- EXP1-4
+ * EXP1-7 ----------- FREE
+ * EXP1-8 ----------- EXP1-3
+ * SPI1-1 ----------- EXP1-1
+ * EXP1-10 ----------- EXP1-7
+ */
+
+ #define TFTGLCD_CS PA9
+
+ #endif
+
+ #else
+ #error "Only CR10_STOCKDISPLAY, ZONESTAR_LCD, ENDER2_STOCKDISPLAY, MKS_MINI_12864, and TFTGLCD_PANEL_(SPI|I2C) are currently supported on the BIGTREE_SKR_MINI_E3."
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050)
+
+ #error "CAUTION! LCD_FYSETC_TFT81050 requires wiring modifications. See 'pins_BTT_SKR_MINI_E3_common.h' for details. Comment out this line to continue."
+
+ /** FYSETC TFT TFT81050 display pinout
+ *
+ * Board Display
+ * _____ _____
+ * 5V | 1 2 | GND (SPI1-MISO) MISO | 1 2 | SCK (SPI1-SCK)
+ * (FREE) PB7 | 3 4 | PB8 (LCD_CS) (PA9) MOD_RESET | 3 4 | SD_CS (PA10)
+ * (FREE) PB9 | 5 6 | PA10 (SD_CS) (PB8) LCD_CS | 5 6 | MOSI (SPI1-MOSI)
+ * RESET | 7 8 | PA9 (MOD_RESET) (PB5) SD_DET | 7 8 | RESET
+ * (BEEPER) PB6 | 9 10| PB5 (SD_DET) GND | 9 10| 5V
+ * ----- -----
+ * EXP1 EXP1
+ *
+ * Needs custom cable:
+ *
+ * Board Adapter Display
+ * _________
+ * EXP1-1 ----------- EXP1-10
+ * EXP1-2 ----------- EXP1-9
+ * SPI1-4 ----------- EXP1-6
+ * EXP1-4 ----------- EXP1-5
+ * SPI1-3 ----------- EXP1-2
+ * EXP1-6 ----------- EXP1-4
+ * EXP1-7 ----------- EXP1-8
+ * EXP1-8 ----------- EXP1-3
+ * SPI1-1 ----------- EXP1-1
+ * EXP1-10 ----------- EXP1-7
+ */
+
+ #define CLCD_SPI_BUS 1 // SPI1 connector
+
+ #define BEEPER_PIN EXP1_9
+
+ #define CLCD_MOD_RESET PA9
+ #define CLCD_SPI_CS PB8
+
+#endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050
+
+//
+// SD Support
+//
+
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PC4
+#elif SD_CONNECTION_IS(LCD) && (BOTH(TOUCH_UI_FTDI_EVE, LCD_FYSETC_TFT81050) || IS_TFTGLCD_PANEL)
+ #define SD_DETECT_PIN PB5
+ #define SD_SS_PIN PA10
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "SD CUSTOM_CABLE is not compatible with SKR Mini E3."
+#endif
+
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h
new file mode 100644
index 0000000..96420cf
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_MZ_V1_0.h
@@ -0,0 +1,26 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#define BOARD_INFO_NAME "BTT SKR Mini MZ V1.0"
+
+#include "pins_BTT_SKR_MINI_E3_V2_0.h"
diff --git a/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h
new file mode 100644
index 0000000..8668e1d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_V1_1.h
@@ -0,0 +1,232 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "BTT SKR Mini V1.1"
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC2
+#define X_MAX_PIN PA2
+#define Y_MIN_PIN PC1
+#define Y_MAX_PIN PA1
+#define Z_MIN_PIN PC0
+#define Z_MAX_PIN PC3
+
+//
+// Steppers
+//
+
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PC7
+#define X_ENABLE_PIN PB15
+
+#define Y_STEP_PIN PB13
+#define Y_DIR_PIN PB14
+#define Y_ENABLE_PIN PB12
+
+#define Z_STEP_PIN PB10
+#define Z_DIR_PIN PB11
+#define Z_ENABLE_PIN PB2
+
+#define E0_STEP_PIN PC5
+#define E0_DIR_PIN PB0
+#define E0_ENABLE_PIN PC4
+
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB3
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB4
+ #endif
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB5
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA8
+#define FAN_PIN PC8
+#define HEATER_BED_PIN PC9
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PB1 // Analog Input
+#define TEMP_0_PIN PA0 // Analog Input
+
+//
+// LCD Pins
+//
+
+/**
+ * _____ _____
+ * NC | · · | GND 5V | · · | GND
+ * RESET | · · | PB9 (SD_DETECT) (LCD_D7) PC14 | · · | PC15 (LCD_D6)
+ * (MOSI) PB5 | · · | PB8 (BTN_EN2) (LCD_D5) PB7 | · · | PC13 (LCD_D4)
+ * (SD_SS) PA15 | · · | PD2 (BTN_EN1) (LCD_RS) PC12 | · · | PB6 (LCD_EN)
+ * (SCK) PB3 | · · | PB4 (MISO) (BTN_ENC) PC11 | · · | PC10 (BEEPER)
+ * ----- -----
+ * EXP2 EXP1
+ */
+
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PC10
+ #define BTN_ENC PC11
+
+ #if ENABLED(CR10_STOCKDISPLAY)
+ #define LCD_PINS_RS PC15
+
+ #define BTN_EN1 PB6
+ #define BTN_EN2 PC13
+
+ #define LCD_PINS_ENABLE PC14
+ #define LCD_PINS_D4 PB7
+
+ #elif IS_TFTGLCD_PANEL
+
+ #undef BEEPER_PIN
+ #undef BTN_ENC
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS PD2
+ #endif
+
+ #define SD_DETECT_PIN PB9
+
+ #else
+
+ #define LCD_PINS_RS PC12
+
+ #define BTN_EN1 PD2
+ #define BTN_EN2 PB8
+
+ #define LCD_PINS_ENABLE PB6
+
+ #if ENABLED(FYSETC_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN PC13
+ #define DOGLCD_A0 PC12
+ #define DOGLCD_CS PB6
+ #define DOGLCD_SCK PB3
+ #define DOGLCD_MOSI PB5
+
+ #define FORCE_SOFT_SPI // SPI MODE3
+
+ #define LED_PIN PB7 // red pwm
+ //#define LED_PIN PC15 // green
+ //#define LED_PIN PC14 // blue
+
+ //#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+ // #ifndef RGB_LED_R_PIN
+ // #define RGB_LED_R_PIN PB7
+ // #endif
+ // #ifndef RGB_LED_G_PIN
+ // #define RGB_LED_G_PIN PC15
+ // #endif
+ // #ifndef RGB_LED_B_PIN
+ // #define RGB_LED_B_PIN PC14
+ // #endif
+ //#elif ENABLED(FYSETC_MINI_12864_2_1)
+ // #define NEOPIXEL_PIN PB7
+ //#endif
+
+ #else // !FYSETC_MINI_12864
+
+ #define LCD_PINS_D4 PC13
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PB7
+ #define LCD_PINS_D6 PC15
+ #define LCD_PINS_D7 PC14
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !FYSETC_MINI_12864
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+
+// By default the onboard SD is enabled.
+// Change SDCARD_CONNECTION from 'ONBOARD' to 'LCD' for an external (LCD module) SD
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SPI_DEVICE 3
+ #define SD_DETECT_PIN PB9
+ #define SD_SCK_PIN PB3
+ #define SD_MISO_PIN PB4
+ #define SD_MOSI_PIN PB5
+ #define SD_SS_PIN PA15
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN PA3
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_SS_PIN PA4
+#endif
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for "System" SD card
diff --git a/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h
new file mode 100644
index 0000000..43dfdec
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CCROBOT_MEEB_3DP.h
@@ -0,0 +1,178 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(TARGET_STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "CCROBOT-ONLINE MEEB_3DP only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+// https://github.com/ccrobot-online/MEEB_3DP
+// Pin assignments for 32-bit MEEB_3DP
+#define BOARD_INFO_NAME "CCROBOT-ONLINE MEEB_3DP"
+#define DEFAULT_MACHINE_NAME "STM32F103RCT6"
+#define BOARD_WEBSITE_URL "ccrobot-online.com"
+
+//
+// Release PB4 from JTAG NRST role
+//
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE 0x800U // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA1
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC0
+#define Y_STOP_PIN PC1
+#define Z_STOP_PIN PC2
+
+//
+// Z Probe must be this pin
+//
+#define Z_MIN_PROBE_PIN PC15 // "PROBE"
+
+//
+// TMC2208 stepper drivers
+//
+#define X_ENABLE_PIN PB4
+#define X_STEP_PIN PC12
+#define X_DIR_PIN PC11
+
+#define Y_ENABLE_PIN PC10
+#define Y_STEP_PIN PB14
+#define Y_DIR_PIN PB13
+
+#define Z_ENABLE_PIN PB12
+#define Z_STEP_PIN PB2
+#define Z_DIR_PIN PB1
+
+#define E0_ENABLE_PIN PB0
+#define E0_STEP_PIN PA6
+#define E0_DIR_PIN PA5
+
+// Stepper drivers Serial UART
+#define X_SERIAL_TX_PIN PB3
+#define X_SERIAL_RX_PIN PD2
+#define Y_SERIAL_TX_PIN PA15
+#define Y_SERIAL_RX_PIN PC6
+#define Z_SERIAL_TX_PIN PB11
+#define Z_SERIAL_RX_PIN PB10
+#define E0_SERIAL_TX_PIN PC5
+#define E0_SERIAL_RX_PIN PC4
+
+// Reduce baud rate to improve software serial reliability
+#define TMC_BAUD_RATE 19200
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // TH0
+#define TEMP_BED_PIN PC3 // THB
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC8 // HEATER0
+#define HEATER_BED_PIN PC9 // HOT BED
+
+#define FAN_PIN PA7 // FAN (fan2 on board) model cool fan
+#define FAN1_PIN PA8 // FAN (fan0 on board) e0 cool fan
+#define FAN2_PIN PB9 // FAN (fan1 on board) controller cool fan
+
+// One NeoPixel onboard and a connector for other NeoPixels
+#define NEOPIXEL_PIN PC7 // The NEOPIXEL LED driving pin
+
+/**
+ * 1 _____ 2
+ * PB5 | · · | PB6
+ * PA2 | · · | RESET
+ * PA3 | · · | PB8
+ * PB7 | · · | PA4
+ * GND | · · | VCC5
+ * 9 ----- 10
+ * LCD EXP
+ */
+
+//
+// LCD / Controller
+//
+#if ENABLED(CR10_STOCKDISPLAY)
+ #define BEEPER_PIN PB5
+ #define BTN_EN1 PA2
+ #define BTN_EN2 PA3
+ #define BTN_ENC PB6
+
+ #define LCD_PINS_RS PB7 // CS -- SOFT SPI for ENDER3 LCD
+ #define LCD_PINS_D4 PB8 // SCLK
+ #define LCD_PINS_ENABLE PA4 // DATA MOSI
+#endif
+
+// Alter timing for graphical display
+#if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+#endif
+
+//
+// Camera
+//
+#define CHDK_PIN PB15
+
+#if 0
+
+//
+// SD-NAND
+//
+#if SD_CONNECTION_IS(ONBOARD)
+ #define SD_DETECT_PIN -1
+ #define SD_SCK_PIN PA5
+ #define SD_MISO_PIN PA6
+ #define SD_MOSI_PIN PA7
+ #define SD_SS_PIN PA4
+#endif
+
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PA4 // Chip select for SD-NAND
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D.h b/Marlin/src/pins/stm32f1/pins_CHITU3D.h
new file mode 100644
index 0000000..bb6f571
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CHITU3D.h
@@ -0,0 +1,290 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Chitu3D"
+#define DEFAULT_MACHINE_NAME "STM32F103RET6"
+
+#define BOARD_NO_NATIVE_USB
+
+// Enable I2C_EEPROM for testing
+//#define I2C_EEPROM
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+#define X_ENABLE_PIN PC13
+#define X_MIN_PIN PG10
+#define X_MAX_PIN -1
+
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+#define Y_ENABLE_PIN PE4
+#define Y_MIN_PIN PA12
+#define Y_MAX_PIN
+
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+#define Z_ENABLE_PIN PE1
+#define Z_MIN_PIN PA14
+#define Z_MAX_PIN -1
+
+#define Y2_STEP_PIN -1
+#define Y2_DIR_PIN -1
+#define Y2_ENABLE_PIN -1
+
+#define Z2_STEP_PIN -1
+#define Z2_DIR_PIN -1
+#define Z2_ENABLE_PIN -1
+
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+#define E0_ENABLE_PIN PB8
+
+#define E1_STEP_PIN -1
+#define E1_DIR_PIN -1
+#define E1_ENABLE_PIN -1
+
+#define E2_STEP_PIN -1
+#define E2_DIR_PIN -1
+#define E2_ENABLE_PIN -1
+
+//
+// Misc. Functions
+//
+#define SDSS -1
+#define LED_PIN -1
+
+#ifndef CASE_LIGHT_PIN
+ #define CASE_LIGHT_PIN PA8 // 8
+#endif
+
+#define PS_ON_PIN -1
+#define KILL_PIN PD6 // LED strip 24v
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD12 // HOT-END
+#define HEATER_1_PIN -1
+#define HEATER_2_PIN -1
+
+#define HEATER_BED_PIN PG11 // HOT-BED
+#define HEATER_BED2_PIN -1 // BED2
+#define HEATER_BED3_PIN -1 // BED3
+
+#ifndef FAN_PIN
+ #define FAN_PIN PG14 // MAIN BOARD FAN
+#endif
+
+#define FAN_SOFT_PWM
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0 // Analog Input
+#define TEMP_0_PIN PA1 // Analog Input
+#define TEMP_1_PIN -1 // Analog Input
+#define TEMP_2_PIN -1 // Analog Input
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #define LCD_PINS_RS PD1 // 49 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PD3 // 51 // SID (MOSI)
+ #define LCD_PINS_D4 PD4 // 52 // SCK (CLK) clock
+ #elif BOTH(IS_NEWPANEL, PANEL_ONE)
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #define BEEPER_PIN PC1 // 33
+ // Buttons attached to a shift register
+ // Not wired yet
+ //#define SHIFT_CLK_PIN PC6 // 38
+ //#define SHIFT_LD_PIN PC10 // 42
+ //#define SHIFT_OUT_PIN PC8 // 40
+ //#define SHIFT_EN_PIN PA1 // 17
+ #endif
+ #endif
+
+ #if IS_NEWPANEL
+
+ #if IS_RRD_SC
+
+ #define BEEPER_PIN PC5
+
+ #define BTN_EN1 PB15 // 31
+ #define BTN_EN2 PC1 // 33
+ #define BTN_ENC PC3 // 35
+
+ #define SD_DETECT_PIN PD1 // 49
+ #define KILL_PIN PC9 // 41
+
+ #if ENABLED(BQ_LCD_SMART_CONTROLLER)
+ #define LCD_BACKLIGHT_PIN PC7 // 39
+ #endif
+
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+
+ #define BTN_EN1 PE0 // 64
+ #define BTN_EN2 PD11 // 59
+ #define BTN_ENC PD15 // 63
+ #define SD_DETECT_PIN PC10 // 42
+
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+
+ #define BTN_EN1 PC15 // 47
+ #define BTN_EN2 PC11 // 43
+ #define BTN_ENC PC0 // 32
+ #define LCD_SDSS PD5 // 53
+ #define SD_DETECT_PIN -1
+ #define KILL_PIN PC9 // 41
+
+ #elif ENABLED(LCD_I2C_VIKI)
+
+ #define BTN_EN1 PB6 // 22 // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
+ #define BTN_EN2 PA7 // 7 // 22/7 are unused on RAMPS_14. 22 is unused and 7 the SERVO0_PIN on RAMPS_13.
+
+ #define BTN_ENC -1
+ #define LCD_SDSS PD5 // 53
+ #define SD_DETECT_PIN PD1 // 49
+
+ #elif ANY(VIKI2, miniVIKI)
+
+ #define BEEPER_PIN PC1 // 33
+
+ // Pins for DOGM SPI LCD Support
+ #define DOGLCD_A0 PC12 // 44
+ #define DOGLCD_CS PC13 // 45
+ #define LCD_SCREEN_ROT_180
+
+ #define BTN_EN1 PB6 // 22
+ #define BTN_EN2 PA7 // 7
+ #define BTN_ENC PC7 // 39
+
+ #define SDSS PD5 // 53
+ #define SD_DETECT_PIN -1 // Pin 49 for display sd interface, 72 for easy adapter board
+
+ #define KILL_PIN PB15 // 31
+
+ #define STAT_LED_RED_PIN PC0 // 32
+ #define STAT_LED_BLUE_PIN PC3 // 35
+
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #define BTN_EN1 PC3 // 35
+ #define BTN_EN2 PC5 // 37
+ #define BTN_ENC PB15 // 31
+ #define SD_DETECT_PIN PD1 // 49
+ #define LCD_SDSS PD5 // 53
+ #define KILL_PIN PC9 // 41
+ #define BEEPER_PIN PB7 // 23
+ #define DOGLCD_CS PB13 // 29
+ #define DOGLCD_A0 PB11 // 27
+ #define LCD_BACKLIGHT_PIN PC1 // 33
+
+ #elif ENABLED(MINIPANEL)
+
+ #define BEEPER_PIN PC10 // 42
+ // Pins for DOGM SPI LCD Support
+ #define DOGLCD_A0 PC12 // 44
+ #define DOGLCD_CS PE2 // 66
+ #define LCD_BACKLIGHT_PIN PE1 // 65 // backlight LED on A11/D65
+ #define SDSS PD5 // 53
+
+ #define KILL_PIN PE0 // 64
+ // GLCD features
+ // Uncomment screen orientation
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+ // The encoder and click button
+ #define BTN_EN1 PC8 // 40
+ #define BTN_EN2 PD15 // 63
+ #define BTN_ENC PD11 // 59
+ // not connected to a pin
+ #define SD_DETECT_PIN PD1 // 49
+
+ #else
+
+ // Beeper on AUX-4
+ #define BEEPER_PIN PC1 // 33
+
+ // Buttons directly attached to AUX-2
+ #if IS_RRW_KEYPAD
+ #define BTN_EN1 PE0 // 64
+ #define BTN_EN2 PD11 // 59
+ #define BTN_ENC PD15 // 63
+ #define SHIFT_OUT_PIN PC8 // 40
+ #define SHIFT_CLK_PIN PC12 // 44
+ #define SHIFT_LD_PIN PC10 // 42
+ #elif ENABLED(PANEL_ONE)
+ #define BTN_EN1 PD11 // 59 // AUX2 PIN 3
+ #define BTN_EN2 PD15 // 63 // AUX2 PIN 4
+ #define BTN_ENC PD1 // 49 // AUX3 PIN 7
+ #else
+ #define BTN_EN1 PC5 // 37
+ #define BTN_EN2 PC3 // 35
+ #define BTN_ENC PB15 // 31
+ #endif
+
+ #if ENABLED(G3D_PANEL)
+ #define SD_DETECT_PIN PD1 // 49
+ #define KILL_PIN PC9 // 41
+ #else
+ //#define SD_DETECT_PIN -1 // Ramps doesn't use this
+ #endif
+
+ #endif
+ #endif // IS_NEWPANEL
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h
new file mode 100644
index 0000000..c90ae84
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V5.h
@@ -0,0 +1,189 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Chitu3D V5"
+#define DEFAULT_MACHINE_NAME "STM32F103ZET6"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG10
+#define Y_STOP_PIN PA12
+#define Z_STOP_PIN PA14
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC13
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+
+#define Y_ENABLE_PIN PE4
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+
+#define Z_ENABLE_PIN PE1
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+
+#define E0_ENABLE_PIN PB8
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+
+#define E1_ENABLE_PIN PG8
+#define E1_STEP_PIN PC7
+#define E1_DIR_PIN PC6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1 // TH1
+#define TEMP_BED_PIN PA0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PG12 // HEATER1
+#define HEATER_BED_PIN PG11 // HOT BED
+
+//
+// Fans
+//
+#define CONTROLLER_FAN_PIN PD6 // BOARD FAN
+#define FAN_PIN PG13 // FAN
+#define FAN2_PIN PG14
+
+//
+// Misc
+//
+#define BEEPER_PIN PB0
+//#define LED_PIN -1
+//#define POWER_LOSS_PIN -1
+#define FIL_RUNOUT_PIN PA15
+
+// SPI Flash
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x200000 // 2MB
+#endif
+
+// SPI 2
+#define W25QXX_CS_PIN PB12
+#define W25QXX_MOSI_PIN PB15
+#define W25QXX_MISO_PIN PB14
+#define W25QXX_SCK_PIN PB13
+
+//
+// TronXY TFT Support
+//
+
+#if HAS_FSMC_TFT
+
+ // Shared FSMC
+
+ #define TOUCH_CS_PIN PB7 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define TFT_RESET_PIN PF11
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+#endif
+
+#if ENABLED(TFT_LVGL_UI)
+ // LVGL
+ #define HAS_SPI_FLASH_FONT 1
+ #define HAS_GCODE_PREVIEW 1
+ #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0
+ #define HAS_LANG_SELECT_SCREEN 1
+ #define HAS_BAK_VIEW_IN_FLASH 0
+ #define HAS_LOGO_IN_FLASH 0
+#elif ENABLED(TFT_COLOR_UI)
+ // Color UI
+ #define TFT_DRIVER ILI9488
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+// XPT2046 Touch Screen calibration
+#if ANY(TFT_LVGL_UI, TFT_COLOR_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17181
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11434
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 501
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -9
+ #endif
+#endif
+
+// SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available
+// Needs to use SPI2
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PB12
+
+//
+// SD Card
+//
+#define SDIO_SUPPORT
+#define SD_DETECT_PIN -1 // PF0, but it isn't connected
+#define SDIO_CLOCK 4500000
+#define SDIO_READ_RETRIES 16
diff --git a/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h
new file mode 100644
index 0000000..96cf366
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CHITU3D_V6.h
@@ -0,0 +1,204 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Chitu3D"
+#define DEFAULT_MACHINE_NAME "STM32F103ZET6"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG10
+#define Y_STOP_PIN PA12
+#define Z_STOP_PIN PG9
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC13
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+
+#define Y_ENABLE_PIN PE4
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+
+#define Z_ENABLE_PIN PE1
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+
+#define Z2_ENABLE_PIN PF3
+#define Z2_STEP_PIN PF5
+#define Z2_DIR_PIN PF1
+
+#define E0_ENABLE_PIN PB8
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+
+#define E1_ENABLE_PIN PG8
+#define E1_STEP_PIN PC7
+#define E1_DIR_PIN PC6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1 // TH1
+#define TEMP_BED_PIN PA0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PG12 // HEATER1
+#define HEATER_BED_PIN PG11 // HOT BED
+//#define HEATER_BED_INVERTING true
+
+//
+// Fans
+//
+#define CONTROLLER_FAN_PIN PD6 // BOARD FAN
+#define FAN_PIN PG13 // FAN
+#define FAN2_PIN PG14
+
+//
+// Misc
+//
+#define BEEPER_PIN PB0
+//#define LED_PIN PD3
+//#define POWER_LOSS_PIN PG2 // PG4 PW_DET
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA15 // MT_DET
+#endif
+#ifndef FIL_RUNOUT2_PIN
+ #define FIL_RUNOUT2_PIN PF13
+#endif
+
+// SPI Flash
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x200000 // 2MB
+#endif
+
+// SPI 2
+#define W25QXX_CS_PIN PB12
+#define W25QXX_MOSI_PIN PB15
+#define W25QXX_MISO_PIN PB14
+#define W25QXX_SCK_PIN PB13
+
+//
+// TronXY TFT Support
+//
+
+#if HAS_FSMC_TFT
+
+ // Shared FSMC
+
+ #define TOUCH_CS_PIN PB7 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define TFT_RESET_PIN PF11
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+#endif
+
+#if ENABLED(TFT_LVGL_UI)
+ // LVGL
+ #define HAS_SPI_FLASH_FONT 1
+ #define HAS_GCODE_PREVIEW 1
+ #define HAS_GCODE_DEFAULT_VIEW_IN_FLASH 0
+ #define HAS_LANG_SELECT_SCREEN 1
+ #define HAS_BAK_VIEW_IN_FLASH 0
+ #define HAS_LOGO_IN_FLASH 0
+#elif ENABLED(TFT_COLOR_UI)
+ // Color UI
+ #define TFT_DRIVER ILI9488
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+// XPT2046 Touch Screen calibration
+#if ANY(TFT_LVGL_UI, TFT_COLOR_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17181
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11434
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 501
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -9
+ #endif
+#endif
+
+// SPI1(PA7)=LCD & SPI3(PB5)=STUFF, are not available
+// so SPI2 is required.
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PB12
+
+//
+// SD Card
+//
+#define SDIO_SUPPORT
+#define SD_DETECT_PIN -1 // PF0, but it isn't connected
+#define SDIO_CLOCK 4500000
+#define SDIO_READ_RETRIES 16
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h
new file mode 100644
index 0000000..8b5b856
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4.h
@@ -0,0 +1,200 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality 4.2.x (STM32F103RET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "Creality V4 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Creality V4"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME "Ender 3 V2"
+#endif
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ #define IIC_BL24CXX_EEPROM // EEPROM on I2C-0
+ //#define SDCARD_EEPROM_EMULATION
+#endif
+
+#if ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PA11
+ #define IIC_EEPROM_SCL PA12
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
+#elif ENABLED(SDCARD_EEPROM_EMULATION)
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb
+#endif
+
+//
+// Servos
+//
+#ifndef HAS_PIN_27_BOARD
+ #define SERVO0_PIN PB0 // BLTouch OUT
+#else
+ #define SERVO0_PIN PC6
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA5
+#define Y_STOP_PIN PA6
+#define Z_STOP_PIN PA7
+
+#define Z_MIN_PROBE_PIN PB1 // BLTouch IN
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA4 // "Pulled-high"
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC3
+#ifndef X_STEP_PIN
+ #define X_STEP_PIN PC2
+#endif
+#ifndef X_DIR_PIN
+ #define X_DIR_PIN PB9
+#endif
+
+#define Y_ENABLE_PIN PC3
+#ifndef Y_STEP_PIN
+ #define Y_STEP_PIN PB8
+#endif
+#ifndef Y_DIR_PIN
+ #define Y_DIR_PIN PB7
+#endif
+
+#define Z_ENABLE_PIN PC3
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN PB6
+#endif
+#ifndef Z_DIR_PIN
+ #define Z_DIR_PIN PB5
+#endif
+
+#define E0_ENABLE_PIN PC3
+#ifndef E0_STEP_PIN
+ #define E0_STEP_PIN PB4
+#endif
+#ifndef E0_DIR_PIN
+ #define E0_DIR_PIN PB3
+#endif
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC5 // TH1
+#define TEMP_BED_PIN PC4 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA1 // HEATER1
+#define HEATER_BED_PIN PA2 // HOT BED
+
+#define FAN_PIN PA0 // FAN
+#define FAN_SOFT_PWM
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC7
+#define SDCARD_CONNECTION ONBOARD
+#define ONBOARD_SPI_DEVICE 1
+#define ONBOARD_SD_CS_PIN PA4 // SDSS
+#define SDIO_SUPPORT
+#define NO_SD_HOST_DRIVE // This board's SD is only seen by the printer
+
+#if ENABLED(CR10_STOCKDISPLAY) && NONE(RET6_12864_LCD, VET6_12864_LCD)
+ #error "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller."
+#endif
+
+#if ENABLED(RET6_12864_LCD)
+
+ // RET6 12864 LCD
+ #define LCD_PINS_RS PB12
+ #define LCD_PINS_ENABLE PB15
+ #define LCD_PINS_D4 PB13
+
+ #define BTN_ENC PB2
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PB14
+
+ #ifndef HAS_PIN_27_BOARD
+ #define BEEPER_PIN PC6
+ #endif
+
+#elif ENABLED(VET6_12864_LCD)
+
+ // VET6 12864 LCD
+ #define LCD_PINS_RS PA4
+ #define LCD_PINS_ENABLE PA7
+ #define LCD_PINS_D4 PA5
+
+ #define BTN_ENC PC5
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PA6
+
+#elif ENABLED(DWIN_CREALITY_LCD)
+
+ // RET6 DWIN ENCODER LCD
+ #define BTN_ENC PB14
+ #define BTN_EN1 PB15
+ #define BTN_EN2 PB12
+
+ //#define LCD_LED_PIN PB2
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN PB13
+ #undef SPEAKER
+ #endif
+
+#elif ENABLED(DWIN_VET6_CREALITY_LCD)
+
+ // VET6 DWIN ENCODER LCD
+ #define BTN_ENC PA6
+ #define BTN_EN1 PA7
+ #define BTN_EN2 PA4
+
+ #define BEEPER_PIN PA5
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h
new file mode 100644
index 0000000..025e68d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V4210.h
@@ -0,0 +1,208 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (C) 2016 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CREALITY 4.2.10 (STM32F103) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "CREALITY supports up to 1 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Creality V4.2.10"
+#endif
+#ifndef DEFAULT_MACHINE_NAME
+ #define DEFAULT_MACHINE_NAME "3DPrintMill"
+#endif
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ // FLASH
+ //#define FLASH_EEPROM_EMULATION
+
+ // I2C
+ #define IIC_BL24CXX_EEPROM // EEPROM on I2C-0 used only for display settings
+ #if ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PA11
+ #define IIC_EEPROM_SCL PA12
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
+ #else
+ #define SDCARD_EEPROM_EMULATION // SD EEPROM until all EEPROM is BL24CXX
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb
+ #endif
+
+ // SPI
+ //#define SPI_EEPROM // EEPROM on SPI-0
+ //#define SPI_CHAN_EEPROM1 ?
+ //#define SPI_EEPROM1_CS ?
+
+ // 2K EEPROM
+ //#define SPI_EEPROM2_CS ?
+
+ // 32Mb FLASH
+ //#define SPI_FLASH_CS ?
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PB0 // BLTouch OUT
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA3
+#define Y_STOP_PIN PA7
+#define Z_STOP_PIN PA5
+
+#define Z_MIN_PROBE_PIN PA5 // BLTouch IN
+
+//
+// Filament Runout Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA6 // "Pulled-high"
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC3
+#ifndef X_STEP_PIN
+ #define X_STEP_PIN PC2
+#endif
+#ifndef X_DIR_PIN
+ #define X_DIR_PIN PB9
+#endif
+
+#define Y_ENABLE_PIN PC3
+#ifndef Y_STEP_PIN
+ #define Y_STEP_PIN PB8
+#endif
+#ifndef Y_DIR_PIN
+ #define Y_DIR_PIN PB7
+#endif
+
+#define Z_ENABLE_PIN PC3
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN PB6
+#endif
+#ifndef Z_DIR_PIN
+ #define Z_DIR_PIN PB5
+#endif
+
+#define E0_ENABLE_PIN PC3
+#ifndef E0_STEP_PIN
+ #define E0_STEP_PIN PB4
+#endif
+#ifndef E0_DIR_PIN
+ #define E0_DIR_PIN PB3
+#endif
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC5 // TH1
+#define TEMP_BED_PIN PC4 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA0 // HEATER1
+#define HEATER_BED_PIN PA1 // HOT BED
+
+#define FAN_PIN PA2 // FAN
+#define FAN_SOFT_PWM
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC7
+#define SDCARD_CONNECTION ONBOARD
+#define ONBOARD_SPI_DEVICE 1
+#define ONBOARD_SD_CS_PIN PA4 // SDSS
+#define SDIO_SUPPORT
+#define NO_SD_HOST_DRIVE // This board's SD is only seen by the printer
+
+#if ENABLED(CR10_STOCKDISPLAY) && NONE(RET6_12864_LCD, VET6_12864_LCD)
+ #error "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller."
+#endif
+
+#if ENABLED(RET6_12864_LCD)
+
+ // RET6 12864 LCD
+ #define LCD_PINS_RS PB12
+ #define LCD_PINS_ENABLE PB15
+ #define LCD_PINS_D4 PB13
+
+ #define BTN_ENC PB2
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PB14
+
+ #define BEEPER_PIN PC6
+
+#elif ENABLED(VET6_12864_LCD)
+
+ // VET6 12864 LCD
+ #define LCD_PINS_RS PA4
+ #define LCD_PINS_ENABLE PA7
+ #define LCD_PINS_D4 PA5
+
+ #define BTN_ENC PC5
+ #define BTN_EN1 PB10
+ #define BTN_EN2 PA6
+
+#elif ENABLED(DWIN_CREALITY_LCD)
+
+ // RET6 DWIN ENCODER LCD
+ #define BTN_ENC PB14
+ #define BTN_EN1 PB15
+ #define BTN_EN2 PB12
+
+ //#define LCD_LED_PIN PB2
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN PB13
+ #undef SPEAKER
+ #endif
+
+#elif ENABLED(DWIN_VET6_CREALITY_LCD)
+
+ // VET6 DWIN ENCODER LCD
+ #define BTN_ENC PA6
+ #define BTN_EN1 PA7
+ #define BTN_EN2 PA4
+
+ #define BEEPER_PIN PA5
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h
new file mode 100644
index 0000000..64ef046
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V427.h
@@ -0,0 +1,44 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CREALITY v4.2.7 (STM32F103) board pin assignments
+ */
+
+#define BOARD_INFO_NAME "Creality v4.2.7"
+#define DEFAULT_MACHINE_NAME "Creality3D"
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB9
+#define X_DIR_PIN PC2
+#define Y_STEP_PIN PB7
+
+#define Y_DIR_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB6
+
+#define E0_STEP_PIN PB3
+#define E0_DIR_PIN PB4
+
+#include "pins_CREALITY_V4.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V431.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V431.h
new file mode 100644
index 0000000..ff9f760
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V431.h
@@ -0,0 +1,39 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * CREALITY v4.3.1 (STM32F103) board pin assignments
+ */
+
+#define BOARD_INFO_NAME "Creality v4.3.1"
+#define DEFAULT_MACHINE_NAME "Creality3D"
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB7
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PB9
+
+#include "pins_CREALITY_V4.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V452.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V452.h
new file mode 100644
index 0000000..9acbb42
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V452.h
@@ -0,0 +1,38 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality v4.5.2 (STM32F103RET6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "Creality v4.5.2 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_NAME "Creality v4.5.2"
+
+#define HEATER_0_PIN PA1 // HEATER1
+#define HEATER_BED_PIN PA2 // HOT BED
+#define FAN_PIN PA0 // FAN
+#define PROBE_ACTIVATION_SWITCH_PIN PC6 // Optoswitch to Enable Z Probe
+
+#include "pins_CREALITY_V45x.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V453.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V453.h
new file mode 100644
index 0000000..f990b2f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V453.h
@@ -0,0 +1,38 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality v4.5.3 (STM32F103RET6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "Creality v4.5.3 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_NAME "Creality v4.5.3"
+
+#define HEATER_0_PIN PB14 // HEATER1
+#define HEATER_BED_PIN PB13 // HOT BED
+#define FAN_PIN PB15 // FAN
+#define PROBE_ACTIVATION_SWITCH_PIN PB2 // Optoswitch to Enable Z Probe
+
+#include "pins_CREALITY_V45x.h"
diff --git a/Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h b/Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h
new file mode 100644
index 0000000..f2be289
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_CREALITY_V45x.h
@@ -0,0 +1,113 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+
+/**
+ * Creality v4.5.2 and v4.5.3 (STM32F103RET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "Creality3D"
+
+//
+// Release PB4 (Z_STEP_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ #define IIC_BL24CXX_EEPROM // EEPROM on I2C-0
+ //#define SDCARD_EEPROM_EMULATION
+#endif
+
+#if ENABLED(IIC_BL24CXX_EEPROM)
+ #define IIC_EEPROM_SDA PA11
+ #define IIC_EEPROM_SCL PA12
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb (24C16)
+#elif ENABLED(SDCARD_EEPROM_EMULATION)
+ #define MARLIN_EEPROM_SIZE 0x800 // 2Kb
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC4
+#define Y_STOP_PIN PC5
+#define Z_STOP_PIN PA4
+
+#define FIL_RUNOUT_PIN PA7
+
+//
+// Probe
+//
+#define PROBE_TARE_PIN PA5
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC3
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB7
+
+#define Y_ENABLE_PIN PC3
+#define Y_STEP_PIN PB6
+#define Y_DIR_PIN PB5
+
+#define Z_ENABLE_PIN PC3
+#define Z_STEP_PIN PB4
+#define Z_DIR_PIN PB3
+
+#define E0_ENABLE_PIN PC3
+#define E0_STEP_PIN PC2
+#define E0_DIR_PIN PB9
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PB1 // TH1
+#define TEMP_BED_PIN PB0 // TB1
+
+//
+// Heaters / Fans
+//
+
+#define FAN_SOFT_PWM
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC7
+#define NO_SD_HOST_DRIVE // SD is only seen by the printer
+
+#define SDIO_SUPPORT // Extra added by Creality
+#define SDIO_CLOCK 6000000 // In original source code overridden by Creality in sdio.h
+
+//
+// Misc. Functions
+//
+#define CASE_LIGHT_PIN PA6
diff --git a/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h b/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h
new file mode 100644
index 0000000..c49c31e
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FLSUN_HISPEED.h
@@ -0,0 +1,318 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * FLSUN HiSpeed V1 (STM32F103VET6) board pin assignments
+ * FLSun Hispeed (clone MKS_Robin_miniV2) board.
+ *
+ * MKS Robin Mini USB uses UART3 (PB10-TX, PB11-RX)
+ * #define SERIAL_PORT_2 3
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "FLSUN HiSpeedV1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "FLSun HiSpeedV1"
+#define BOARD_WEBSITE_URL "github.com/Foxies-CSTL"
+
+#define BOARD_NO_NATIVE_USB
+
+// Avoid conflict with TIMER_SERVO when using the STM32 HAL
+#define TEMP_TIMER 5
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// SPI
+// Note: FLSun Hispeed (clone MKS_Robin_miniV2) board is using SPI2 interface.
+//
+#define SD_SCK_PIN PB13 // SPI2
+#define SD_MISO_PIN PB14 // SPI2
+#define SD_MOSI_PIN PB15 // SPI2
+#define SPI_DEVICE 2
+
+// SPI Flash
+#define HAS_SPI_FLASH 1
+#define SPI_FLASH_SIZE 0x1000000 // 16MB
+
+#if HAS_SPI_FLASH
+ // SPI 2
+ #define W25QXX_CS_PIN PB12 // SPI2_NSS / Flash chip-select
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+//
+// Servos
+//
+//#define SERVO0_PIN PA8 // use IO0 to enable BLTOUCH support/remove Mks_Wifi
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15 // -X
+#define Y_STOP_PIN PA12 // -Y
+#define Z_MIN_PIN PA11 // -Z
+#define Z_MAX_PIN PC4 // +Z
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN MT_DET_1_PIN
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4 // X_EN
+#define X_STEP_PIN PE3 // X_STEP
+#define X_DIR_PIN PE2 // X_DIR
+
+#define Y_ENABLE_PIN PE1 // Y_EN
+#define Y_STEP_PIN PE0 // Y_STEP
+#define Y_DIR_PIN PB9 // Y_DIR
+
+#define Z_ENABLE_PIN PB8 // Z_EN
+#define Z_STEP_PIN PB5 // Z_STEP
+#define Z_DIR_PIN PB4 // Z_DIR
+
+#define E0_ENABLE_PIN PB3 // E0_EN
+#define E0_STEP_PIN PD6 // E0_STEP
+#define E0_DIR_PIN PD3 // E0_DIR
+
+/**
+ * FLSUN Hi-Speed has no hard-wired UART pins for TMC drivers.
+ * Several wiring options are provided below, defaulting to
+ * to the most compatible.
+ */
+#if HAS_TMC_UART
+ // SoftwareSerial with one pin per driver
+ // Compatible with TMC2208 and TMC2209 drivers
+ #define X_SERIAL_TX_PIN PA10 // RXD1
+ #define X_SERIAL_RX_PIN PA10 // RXD1
+ #define Y_SERIAL_TX_PIN PA9 // TXD1
+ #define Y_SERIAL_RX_PIN PA9 // TXD1
+ #define Z_SERIAL_TX_PIN PC7 // IO1
+ #define Z_SERIAL_RX_PIN PC7 // IO1
+ #define TMC_BAUD_RATE 19200
+#else
+ // Motor current PWM pins
+ #define MOTOR_CURRENT_PWM_XY_PIN PA6 // VREF2/3 CONTROL XY
+ #define MOTOR_CURRENT_PWM_Z_PIN PA7 // VREF4 CONTROL Z
+ #define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+ #ifndef DEFAULT_PWM_MOTOR_CURRENT
+ #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 }
+ #endif
+
+ /**
+ * MKS Robin_Wifi or another ESP8266 module
+ *
+ * __ESP(M1)__ -J1-
+ * GND| 15 | | 08 |+3v3 (22) RXD1 (PA10)
+ * | 16 | | 07 |MOSI (21) TXD1 (PA9) Active LOW, probably OK to leave floating
+ * IO2| 17 | | 06 |MISO (19) IO1 (PC7) Leave as unused (ESP3D software configures this with a pullup so OK to leave as floating)
+ * IO0| 18 | | 05 |CLK (18) IO0 (PA8) Must be HIGH (ESP3D software configures this with a pullup so OK to leave as floating)
+ * IO1| 19 | | 03 |EN (03) WIFI_EN Must be HIGH for module to run
+ * | nc | | nc | (01) WIFI_CTRL (PA5)
+ * RX| 21 | | nc |
+ * TX| 22 | | 01 |RST
+ *  ̄ ̄ AE ̄ ̄
+ */
+ // Module ESP-WIFI
+ #define ESP_WIFI_MODULE_COM 2 // Must also set either SERIAL_PORT or SERIAL_PORT_2 to this
+ #define ESP_WIFI_MODULE_BAUDRATE BAUDRATE // Must use same BAUDRATE as SERIAL_PORT & SERIAL_PORT_2
+ #define ESP_WIFI_MODULE_RESET_PIN PA5 // WIFI CTRL/RST
+ #define ESP_WIFI_MODULE_ENABLE_PIN -1
+ #define ESP_WIFI_MODULE_TXD_PIN PA9 // MKS or ESP WIFI RX PIN
+ #define ESP_WIFI_MODULE_RXD_PIN PA10 // MKS or ESP WIFI TX PIN
+#endif
+
+//
+// EXTRUDER
+//
+#if AXIS_DRIVER_TYPE_E0(TMC2208) || AXIS_DRIVER_TYPE_E0(TMC2209)
+ #define E0_SERIAL_TX_PIN PA8 // IO0
+ #define E0_SERIAL_RX_PIN PA8 // IO0
+ #define TMC_BAUD_RATE 19200
+#else
+ // Motor current PWM pins
+ #define MOTOR_CURRENT_PWM_E_PIN PB0 // VREF1 CONTROL E
+ #define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+ #ifndef DEFAULT_PWM_MOTOR_CURRENT
+ #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 }
+ #endif
+#endif
+
+//
+// Temperature Sensors (THM)
+//
+#define TEMP_0_PIN PC1 // TEMP_E0
+#define TEMP_BED_PIN PC0 // TEMP_BED
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER_E0
+#define HEATER_BED_PIN PA0 // HEATER_BED-WKUP
+
+#define FAN_PIN PB1 // E_FAN
+
+//
+// Misc. Functions
+//
+//#define POWER_LOSS_PIN PA1 // PW_SO
+#if ENABLED(BACKUP_POWER_SUPPLY)
+ #define POWER_LOSS_PIN PA2 // PW_DET (UPS) MKSPWC
+#endif
+
+/**
+ * Connector J2
+ * -------
+ * DIO O|1 2|O 3v3
+ * CSK O|3 5|O GND
+ * RST O|5 6|O GND
+ * -------
+ */
+//#define SW_DIO PA13
+//#define SW_CLK PA14
+//#define SW_RST NRST // (14)
+
+//
+// Power Supply Control
+//
+#if ENABLED(PSU_CONTROL)
+ #define KILL_PIN PA2 // PW_DET
+ #define KILL_PIN_INVERTING true
+ //#define PS_ON_PIN PA3 // PW_CN /PW_OFF
+#endif
+
+#define MT_DET_1_PIN PA4 // MT_DET
+#define MT_DET_2_PIN PE6 // FALA_CRTL
+#define MT_DET_PIN_INVERTING false
+
+//
+// LED / NEOPixel
+//
+//#define LED_PIN PB2 // BOOT1
+
+#if ENABLED(NEOPIXEL_LED)
+ #define LED_PWM PC7 // IO1
+ #ifndef NEOPIXEL_PIN
+ #define NEOPIXEL_PIN LED_PWM // USED WIFI IO0/IO1 PIN
+ #endif
+#endif
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+// Use the on-board card socket labeled SD_Extender
+#if SD_CONNECTION_IS(CUSTOM_CABLE)
+ #define SD_SCK_PIN PC12
+ #define SD_MISO_PIN PC8
+ #define SD_MOSI_PIN PD2
+ #define SD_SS_PIN -1
+ #define SD_DETECT_PIN PD12 // SD_CD (if -1 no detection)
+#else
+ #define SDIO_SUPPORT
+ #define SDIO_CLOCK 4500000 // 4.5 MHz
+ #define SDIO_READ_RETRIES 16
+ #define ONBOARD_SPI_DEVICE 1 // SPI1
+ #define ONBOARD_SD_CS_PIN PC11
+ #define SD_DETECT_PIN -1 // SD_CD (-1 active refresh)
+#endif
+
+//
+// LCD / Controller
+//
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+#if ENABLED(SPEAKER) && BEEPER_PIN == PC5
+ #error "FLSun HiSpeed default BEEPER_PIN is not a SPEAKER."
+#endif
+
+#if HAS_FSMC_TFT || HAS_GRAPHICAL_TFT
+ #define TFT_CS_PIN PD7 // NE4
+ #define TFT_RS_PIN PD11 // A0
+#endif
+
+#if HAS_FSMC_TFT
+ /**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ *
+ * Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+ //#define TFT_RESET_PIN PC6 // FSMC_RST
+ #define TFT_BACKLIGHT_PIN PD13
+ #define FSMC_CS_PIN TFT_CS_PIN // NE4
+ #define FSMC_RS_PIN TFT_RS_PIN // A0
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+ #ifdef TFT_CLASSIC_UI
+ #define TFT_MARLINBG_COLOR 0x3186 // Grey
+ #define TFT_MARLINUI_COLOR 0xC7B6 // Green
+ #define TFT_BTARROWS_COLOR 0xDEE6 // Yellow
+ #define TFT_BTOKMENU_COLOR 0x145F // Cyan
+ #endif
+ #define TFT_BUFFER_SIZE 14400
+#elif HAS_GRAPHICAL_TFT
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PC2 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+ #define TOUCH_INT_PIN -1
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FLY_MINI.h b/Marlin/src/pins/stm32f1/pins_FLY_MINI.h
new file mode 100644
index 0000000..2278d55
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FLY_MINI.h
@@ -0,0 +1,176 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "FLY_MINI"
+#define BOARD_WEBSITE_URL "github.com/FLYmaker"
+#define DISABLE_JTAG
+
+//
+// Flash EEPROM Emulation
+//
+#define FLASH_EEPROM_EMULATION
+#define EEPROM_PAGE_SIZE 0x800 // 2KB
+#define EEPROM_START_ADDRESS (0x8000000 + 256 * 1024 - 2 * EEPROM_PAGE_SIZE) // 256K firmware space
+#define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC12
+#define X_MAX_PIN PC11
+#define Y_MIN_PIN PC10
+#define Y_MAX_PIN PA15
+#define Z_MIN_PIN PA14
+#define Z_MAX_PIN PA13
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB1
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PB10
+#ifndef X_CS_PIN
+ #define X_CS_PIN PB0
+#endif
+
+#define Y_STEP_PIN PA2
+#define Y_DIR_PIN PC4
+#define Y_ENABLE_PIN PC5
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PA7
+#endif
+
+#define Z_STEP_PIN PA3
+#define Z_DIR_PIN PA5
+#define Z_ENABLE_PIN PA6
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PA4
+#endif
+
+#define E0_STEP_PIN PA1
+#define E0_DIR_PIN PC3
+#define E0_ENABLE_PIN PA0
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PC2
+#endif
+
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PB0
+ #define X_SERIAL_RX_PIN PB0
+ #define Y_SERIAL_TX_PIN PA7
+ #define Y_SERIAL_RX_PIN PA7
+ #define Z_SERIAL_TX_PIN PA4
+ #define Z_SERIAL_RX_PIN PA4
+ #define E0_SERIAL_TX_PIN PC2
+ #define E0_SERIAL_RX_PIN PC2
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC6
+#define HEATER_BED_PIN PC7
+#ifndef FAN_PIN
+ #define FAN_PIN PC8
+#endif
+#define FAN1_PIN PC9
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC0 // Analog Input
+#define TEMP_0_PIN PC1 // Analog Input
+
+//
+// LCD Pins
+//
+
+//
+// LCD / Controller
+//
+#define SPI_DEVICE 2
+#define SD_SS_PIN PB12
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+
+#define SDSS SD_SS_PIN
+#define SD_DETECT_PIN PB11
+
+#define BEEPER_PIN PC14
+
+#define LCD_PINS_RS PB8
+#define LCD_PINS_ENABLE PB9
+#define LCD_PINS_D4 PB7
+#define LCD_PINS_D5 PB6
+#define LCD_PINS_D6 PB5
+#define LCD_PINS_D7 PB4
+
+#define BTN_EN1 PD2
+#define BTN_EN2 PB3
+#define BTN_ENC PC13
+
+#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+#endif
+
+//
+// Filament runout
+//
+
+//
+// ST7920 Delays
+//
+#ifndef ST7920_DELAY_1
+ #define ST7920_DELAY_1 DELAY_NS(96)
+#endif
+#ifndef ST7920_DELAY_2
+ #define ST7920_DELAY_2 DELAY_NS(48)
+#endif
+#ifndef ST7920_DELAY_3
+ #define ST7920_DELAY_3 DELAY_NS(715)
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h b/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h
new file mode 100644
index 0000000..3919723
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FYSETC_AIO_II.h
@@ -0,0 +1,211 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "FYSETC AIO II"
+#define BOARD_WEBSITE_URL "fysetc.com"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+#define pins_v2_20190128 // new pins define
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Flash EEPROM Emulation
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA1
+#define Y_STOP_PIN PA0
+#define Z_STOP_PIN PB14
+
+//
+// Filament runout
+//
+#ifdef pins_v2_20190128
+ #define FIL_RUNOUT_PIN PB15
+#else
+ #define FIL_RUNOUT_PIN PB5
+#endif
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB9
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PB2
+#ifdef pins_v2_20190128
+ #define Y_DIR_PIN PB3
+#else
+ #define Y_DIR_PIN PB0
+#endif
+#define Y_ENABLE_PIN PB1
+
+#define Z_STEP_PIN PC0
+#define Z_DIR_PIN PC1
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PC15
+#define E0_DIR_PIN PC14
+#define E0_ENABLE_PIN PC13
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ */
+
+ // Hardware serial with switch
+ #define X_HARDWARE_SERIAL MSerial2
+ #define Y_HARDWARE_SERIAL MSerial2
+ #define Z_HARDWARE_SERIAL MSerial2
+ #define E0_HARDWARE_SERIAL MSerial2
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 1
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 2
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+
+ // The 4xTMC2209 module doesn't have a serial multiplexer and
+ // needs to set *_SLAVE_ADDRESS in Configuration_adv.h for X,Y,Z,E0
+ #if HAS_DRIVER(TMC2208)
+ #define TMC_SERIAL_MULTIPLEXER
+ #define SERIAL_MUL_PIN1 PB13
+ #define SERIAL_MUL_PIN2 PB12
+ #endif
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Stepper current PWM
+//
+#ifndef MOTOR_CURRENT_PWM_RANGE
+ #define MOTOR_CURRENT_PWM_RANGE 1500 // origin:2000
+#endif
+#define DEFAULT_PWM_MOTOR_CURRENT { 500, 500, 400 } // origin: {1300,1300,1250}
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC7
+#define HEATER_BED_PIN PC6
+#ifndef FAN_PIN
+ #define FAN_PIN PC8
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC5 // Analog Input
+#define TEMP_0_PIN PC4 // Analog Input
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC9
+
+ #if HAS_MARLINUI_U8GLIB
+
+ #define DOGLCD_A0 PA15
+ #ifdef pins_v2_20190128
+ #define DOGLCD_CS PB5
+ #else
+ #define DOGLCD_CS PB7
+ #endif
+
+ //#define LCD_CONTRAST_INIT 190
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #endif
+
+ // not connected to a pin
+ #define SD_DETECT_PIN PC3
+
+ #if IS_NEWPANEL
+ // The encoder and click button
+ #define BTN_EN1 PC10
+ #define BTN_EN2 PC11
+ #define BTN_ENC PC12
+ #endif
+
+ #ifdef pins_v2_20190128
+ #define LCD_RESET_PIN PB4
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB0
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB6
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB7
+ #endif
+ #else
+ #define LCD_RESET_PIN PB6
+ #ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB3
+ #endif
+ #ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB4
+ #endif
+ #ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB5
+ #endif
+ #endif
+
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h
new file mode 100644
index 0000000..c978092
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH.h
@@ -0,0 +1,194 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define DEFAULT_MACHINE_NAME "3D Printer"
+
+#define BOARD_INFO_NAME "FYSETC Cheetah"
+#define BOARD_WEBSITE_URL "fysetc.com"
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA0
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA1
+#define Y_STOP_PIN PB4
+#define Z_STOP_PIN PA15
+
+//
+// Filament runout
+//
+#define FIL_RUNOUT_PIN PB5
+
+//
+// Steppers
+//
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB9
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PB2
+#define Y_DIR_PIN PB3
+#define Y_ENABLE_PIN PB1
+
+#define Z_STEP_PIN PC0
+#define Z_DIR_PIN PC1
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PC15
+#define E0_DIR_PIN PC14
+#define E0_ENABLE_PIN PC13
+
+#if HAS_TMC_UART
+ #define X_HARDWARE_SERIAL MSerial2
+ #define Y_HARDWARE_SERIAL MSerial2
+ #define Z_HARDWARE_SERIAL MSerial2
+ #define E0_HARDWARE_SERIAL MSerial2
+
+ // Default TMC slave addresses
+ #ifndef X_SLAVE_ADDRESS
+ #define X_SLAVE_ADDRESS 0
+ #endif
+ #ifndef Y_SLAVE_ADDRESS
+ #define Y_SLAVE_ADDRESS 1
+ #endif
+ #ifndef Z_SLAVE_ADDRESS
+ #define Z_SLAVE_ADDRESS 2
+ #endif
+ #ifndef E0_SLAVE_ADDRESS
+ #define E0_SLAVE_ADDRESS 3
+ #endif
+#endif
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC6
+#define HEATER_BED_PIN PC7
+#ifndef FAN_PIN
+ #define FAN_PIN PC8
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PC5 // Analog Input
+#define TEMP_0_PIN PC4 // Analog Input
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+#define SD_DETECT_PIN PC3
+
+#ifndef RGB_LED_R_PIN
+ #define RGB_LED_R_PIN PB0
+#endif
+#ifndef RGB_LED_G_PIN
+ #define RGB_LED_G_PIN PB7
+#endif
+#ifndef RGB_LED_B_PIN
+ #define RGB_LED_B_PIN PB6
+#endif
+
+/*
+* EXP1 pinout for the LCD according to Fysetcs schematic for the Cheetah board
+* _____
+* (Beeper) PC9 | 1 2 | PC12 (BTN_ENC)
+* (BTN_EN2) PC11 | 3 4 | PB14 (LCD_RS / MISO)
+* (BTN_EN1) PC10 5 6 | PB13 (SCK)
+* (LCD_EN) PB12 | 7 8 | PB15 (MOSI)
+* GND | 9 10| 5V
+* -----
+* EXP1
+* Note: The pin-numbers match the connector correctly and are not in reverse order like on the Ender-3 board.
+* Note: Functionally the pins are assigned in the same order as on the Ender-3 board.
+* Note: Pin 4 on the Cheetah board is assigned to an I/O, it is assigned to RESET on the Ender-3 board.
+*/
+
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PC9
+
+ #if HAS_MARLINUI_U8GLIB
+ #define DOGLCD_A0 PB14
+ #define DOGLCD_CS PB12
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+ //#define LCD_SCREEN_ROT_90
+ //#define LCD_SCREEN_ROT_180
+ //#define LCD_SCREEN_ROT_270
+
+ #if EITHER(FYSETC_MINI_12864, U8GLIB_ST7920)
+ #define FORCE_SOFT_SPI
+ #endif
+ #endif
+
+ #define LCD_PINS_RS PB12 // CS -- SOFT SPI for ENDER3 LCD
+ #define LCD_PINS_D4 PB13 // SCLK
+ #define LCD_PINS_ENABLE PB15 // DATA MOSI
+
+ //#define LCD_CONTRAST_INIT 190
+
+ #if IS_NEWPANEL
+ #define BTN_EN1 PC10
+ #define BTN_EN2 PC11
+ #define BTN_ENC PC12
+ #endif
+#endif
+
+#if ENABLED(TOUCH_UI_FTDI_EVE)
+ #define BEEPER_PIN PC9
+ #define CLCD_MOD_RESET PC11
+ #define CLCD_SPI_CS PB12
+
+ //#define CLCD_USE_SOFT_SPI // the Cheetah can use hardware-SPI so we do not really need this
+
+ #if ENABLED(CLCD_USE_SOFT_SPI)
+ #define CLCD_SOFT_SPI_MOSI PB15
+ #define CLCD_SOFT_SPI_MISO PB14
+ #define CLCD_SOFT_SPI_SCLK PB13
+ #else
+ #define CLCD_SPI_BUS 2
+ #endif
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h
new file mode 100644
index 0000000..65b1675
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_FYSETC_CHEETAH_V12.h
@@ -0,0 +1,64 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#include "pins_FYSETC_CHEETAH.h"
+
+#undef X_HARDWARE_SERIAL
+#undef Y_HARDWARE_SERIAL
+#undef Z_HARDWARE_SERIAL
+#undef E0_HARDWARE_SERIAL
+
+#undef RGB_LED_R_PIN
+#undef RGB_LED_G_PIN
+#undef RGB_LED_B_PIN
+
+#define FAN1_PIN PB0 // Fan1
+
+#if HAS_TMC_UART
+
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ */
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PA11
+ #define X_SERIAL_RX_PIN PA12
+
+ #define Y_SERIAL_TX_PIN PB6
+ #define Y_SERIAL_RX_PIN PB7
+
+ #define Z_SERIAL_TX_PIN PB10
+ #define Z_SERIAL_RX_PIN PB11
+
+ #define E0_SERIAL_TX_PIN PA2
+ #define E0_SERIAL_RX_PIN PA3
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h b/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h
new file mode 100644
index 0000000..5b97e7f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_MINI.h
@@ -0,0 +1,243 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "STM32F103VET6"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE1 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE0 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXT0 port
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ //
+ #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PE14 // SID (MOSI)
+ #define LCD_PINS_D4 PD8 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD9
+ #define LCD_PINS_D6 PD10
+ #define LCD_PINS_D7 PE15
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if IS_RRD_SC
+ //
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ #define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+#endif
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PC11
+ #define SD_SCK_PIN PC12
+ #define SD_MOSI_PIN PD2
+ #define SD_MISO_PIN PC8
+ #define SD_DETECT_PIN PC7
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h b/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h
new file mode 100644
index 0000000..173eb67
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_MINI_A30.h
@@ -0,0 +1,237 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "STM32F103VET6"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE0 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE1 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXT0 port
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PE14 // SID (MOSI)
+ #define LCD_PINS_D4 PD8 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD9
+ #define LCD_PINS_D6 PD10
+ #define LCD_PINS_D7 PE15
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ #define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PC11
+ #define SD_SCK_PIN PC12
+ #define SD_MOSI_PIN PD2
+ #define SD_MISO_PIN PC8
+ #define SD_DETECT_PIN PC7
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h b/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h
new file mode 100644
index 0000000..5b97e7f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_PRO_VB.h
@@ -0,0 +1,243 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "STM32F103VET6"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE1 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE0 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXT0 port
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ //
+ #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
+ #define LCD_PINS_ENABLE PE14 // SID (MOSI)
+ #define LCD_PINS_D4 PD8 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD9
+ #define LCD_PINS_D6 PD10
+ #define LCD_PINS_D7 PE15
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+#if IS_RRD_SC
+ //
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ #define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+#endif
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PC11
+ #define SD_SCK_PIN PC12
+ #define SD_MOSI_PIN PD2
+ #define SD_MISO_PIN PC8
+ #define SD_DETECT_PIN PC7
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h b/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h
new file mode 100644
index 0000000..b4a34a4
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_GTM32_REV_B.h
@@ -0,0 +1,240 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * 24 May 2018 - @chepo for STM32F103VET6
+ * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "GTM32 Pro VB"
+#define DEFAULT_MACHINE_NAME "M201"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+
+//
+// It is required to disable JTAG function because its pins are
+// used as GPIO to drive the Y axis stepper.
+// DO NOT ENABLE!
+//
+#define DISABLE_JTAG
+
+//
+// If you don't need the SWDIO functionality (any more), you may
+// disable SWD here to regain PA13/PA14 pins for other use.
+//
+//#define DISABLE_JTAGSWD
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+// Enable EEPROM Emulation for this board as it doesn't have EEPROM
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PE5 // ENDSTOPS 15,17
+#define X_MAX_PIN PE4 // ENDSTOPS 16,18
+#define Y_MIN_PIN PE3 // ENDSTOPS 9,11
+#define Y_MAX_PIN PE2 // ENDSTOPS 10,12
+#define Z_MIN_PIN PE1 // ENDSTOPS 3,5
+#define Z_MAX_PIN PE0 // ENDSTOPS 4,6
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PD13
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PA12
+#define Y_DIR_PIN PA11
+#define Y_ENABLE_PIN PA15
+
+#define Z_STEP_PIN PD6
+#define Z_DIR_PIN PD3
+#define Z_ENABLE_PIN PB3
+
+// Extruder stepper pins
+// NOTE: Numbering here is made according to EXT connector numbers,
+// the FANx_PWM line numbering in the schematics is reverse.
+// That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
+// stick that drives the EXT0 output on the board.
+//
+#define E0_STEP_PIN PC14
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PC15
+
+#define E1_STEP_PIN PA0
+#define E1_DIR_PIN PB6
+#define E1_ENABLE_PIN PA1
+
+#define E2_STEP_PIN PB2
+#define E2_DIR_PIN PB11
+#define E2_ENABLE_PIN PC4
+
+//
+// Heaters / Fans - INFO: Extruders ports are in reverse order. Pin numbers here differ from schematic. Original firmware assumes heater, fan and temp sensor on port EXT0 PB0, PB9, PC2.
+//
+#define HEATER_0_PIN PB0 // EXT0 port.
+#define HEATER_1_PIN PB5 // EXT1 port
+#define HEATER_2_PIN PB4 // EXT2 port
+#define HEATER_BED_PIN PB1 // CON2X3 hotbed port
+
+//
+// These are FAN PWM pins on EXT0..EXT2 connectors.
+//
+//#define FAN_PIN PB9 // EXT0 port
+#define FAN1_PIN PB8 // EXT1 port
+#define FAN2_PIN PB7 // EXT2 port
+
+#ifndef E0_AUTO_FAN_PIN
+ #define E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2 // EXT0 port
+#define TEMP_1_PIN PC1 // EXT1 port
+#define TEMP_2_PIN PC0 // EXT2 port
+#define TEMP_BED_PIN PC3 // CON2X3 hotbed port
+
+//
+// Misc. Functions
+//
+#define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
+
+//
+// LCD / Controller
+//
+#if HAS_WIRED_LCD
+
+ #if IS_RRD_SC
+
+ //
+ // LCD display on J2 FFC40
+ // Geeetech's LCD2004A Control Panel is very much like
+ // RepRapDiscount Smart Controller, but adds an FFC40 connector
+ // connected with a flat wire to J2 connector on the board.
+ //
+ #define LCD_PINS_RS PA12 // CS chip select /SS chip slave select
+ // RW is hardwired to VSS
+ #define LCD_PINS_ENABLE PC7 // SID (MOSI)
+ #define LCD_PINS_D4 PD1 // SCK (CLK) clock
+ #define LCD_PINS_D5 PD4
+ #define LCD_PINS_D6 PD5
+ #define LCD_PINS_D7 PD7
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE9
+ #define BTN_ENC PE13
+
+ //#define GTM32_PRO_VB_USE_LCD_BEEPER
+ #define GTM32_PRO_VB_USE_EXT_SDCARD
+
+ #else
+ //
+ // Serial LCDs can be implemented in ExtUI
+ //
+ //#define LCD_UART_TX PD8
+ //#define LCD_UART_RX PD9
+ #endif
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(96)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(48)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(715)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+//
+// Beeper
+//
+#ifdef GTM32_PRO_VB_USE_LCD_BEEPER
+ // This is pin 32 on J2 FFC40 and pin, goes to the beeper
+ // on Geeetech's version of RepRapDiscount Smart Controller
+ // (e.g. on Rostock 301)
+ #define BEEPER_PIN PE12
+#else
+ // This is the beeper on the board itself
+ #define BEEPER_PIN PB10
+#endif
+
+/**
+ * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
+ *
+ * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
+ * connector, which usually go to the SD Card slot on the Geeetech version of the
+ * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
+ *
+ * The on-board SD card and the external card (on either SD_CARD or J2) are two
+ * separate devices and can work simultaneously. Unfortunately, Marlin only supports
+ * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
+ */
+#if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
+ //
+ // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
+ //
+ #define SD_SS_PIN PB12 // PC11
+ #define SD_SCK_PIN PB13 // PC12 // PC1
+ #define SD_MOSI_PIN PB15 // PD2 // PD2
+ #define SD_MISO_PIN PB14 // PC8
+ #define SD_DETECT_PIN PC7
+
+#else
+ //
+ // Use the on-board card socket labeled TF_CARD_SOCKET
+ //
+ #define SD_SS_PIN PA4
+ #define SD_SCK_PIN PA5
+ #define SD_MOSI_PIN PA7
+ #define SD_MISO_PIN PA6 // PA6
+ #define SD_DETECT_PIN -1 // Card detect is not connected
+#endif
+
+#define SDSS SD_SS_PIN
+
+//
+// ESP WiFi can be soldered to J9 connector which is wired to USART2.
+// Must define WIFISUPPORT in Configuration.h for the printer.
+//
+#define ESP_WIFI_MODULE_COM 2
+#define ESP_WIFI_MODULE_BAUDRATE 115200
+#define ESP_WIFI_MODULE_RESET_PIN -1
diff --git a/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
new file mode 100644
index 0000000..4f02b0e
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_JGAURORA_A5S_A1.h
@@ -0,0 +1,132 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+ /**
+ * ╦╔═╗╔═╗┬ ┬┬─┐┌─┐┬─┐┌─┐╔═╗┌─┐┬─┐┬ ┬┌┬┐ ┌─┐┌─┐┌┬┐
+ * ║║ ╦╠═╣│ │├┬┘│ │├┬┘├─┤╠╣ │ │├┬┘│ ││││ │ │ ││││
+ * ╚╝╚═╝╩ ╩└─┘┴└─└─┘┴└─┴ ┴╚ └─┘┴└─└─┘┴ ┴o└─┘└─┘┴ ┴
+ * Pin assignments for 32-bit JGAurora A5S & A1
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "JGAurora A5S A1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "JGAurora A5S A1"
+
+#define BOARD_NO_NATIVE_USB
+
+#ifndef STM32_XL_DENSITY
+ #define STM32_XL_DENSITY
+#endif
+
+//#define MCU_STM32F103ZE // not yet required
+// Enable EEPROM Emulation for this board, so that we don't overwrite factory data
+
+//#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)
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC6
+#define Y_STOP_PIN PG8
+#define Z_STOP_PIN PG7
+//#define X_MAX_PIN PC5
+//#define Y_MAX_PIN PC4
+//#define Z_MAX_PIN PB0
+
+//
+// Steppers
+//
+#define X_STEP_PIN PD6
+#define X_DIR_PIN PD3
+#define X_ENABLE_PIN PG9
+
+#define Y_STEP_PIN PG12
+#define Y_DIR_PIN PG11
+#define Y_ENABLE_PIN PG13
+
+#define Z_STEP_PIN PG15
+#define Z_DIR_PIN PG14
+#define Z_ENABLE_PIN PB8
+
+#define E0_STEP_PIN PE2
+#define E0_DIR_PIN PB9
+#define E0_ENABLE_PIN PE3
+
+#define E1_STEP_PIN PE5
+#define E1_DIR_PIN PE4
+#define E1_ENABLE_PIN PE6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC2
+#define TEMP_BED_PIN PC1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA2
+#define HEATER_BED_PIN PA3
+
+#define FAN_PIN PA1
+
+#define FIL_RUNOUT_PIN PC7
+
+//
+// LCD
+//
+#define LCD_BACKLIGHT_PIN PF11
+#define FSMC_CS_PIN PD7
+#define FSMC_RS_PIN PG0
+
+#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+#define FSMC_DMA_DEV DMA2
+#define FSMC_DMA_CHANNEL DMA_CH5
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PF10
+
+//
+// Misc.
+//
+#define BEEPER_PIN PC3 // use PB7 to shut up if desired
+#define LED_PIN PC13
+
+//
+// Touch support
+//
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PA4
+ #define TOUCH_INT_PIN PC4
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h
new file mode 100644
index 0000000..33f995d
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_LONGER3D_LK.h
@@ -0,0 +1,164 @@
+/**
+ * Marlin 3D Printer Firmware
+ * 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
+ * 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Longer3D LK1/LK2 & Alfawise U20/U30 (STM32F103VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx)
+ #error "Oops! Select a STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "Longer3D only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Longer3D"
+#define ALFAWISE_UX0 // Common to all Longer3D STM32F1 boards (used for Open drain mosfets)
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG // We still want to debug with STLINK...
+#define DISABLE_JTAG // We free the jtag pins (PA15) but keep STLINK
+ // Release PB4 (STEP_X_PIN) from JTAG NRST role.
+//
+// Limit Switches
+//
+#define X_MIN_PIN PC1 // pin 16
+#define X_MAX_PIN PC0 // pin 15 (Filament sensor on Alfawise setup)
+#define Y_MIN_PIN PC15 // pin 9
+#define Y_MAX_PIN PC14 // pin 8 (Unused in stock Alfawise setup)
+#define Z_MIN_PIN PE6 // pin 5 Standard Endstop or Z_Probe endstop function
+#define Z_MAX_PIN PE5 // pin 4 (Unused in stock Alfawise setup)
+ // May be used for BLTouch Servo function on older variants (<= V08)
+#define ONBOARD_ENDSTOPPULLUPS
+
+//
+// Filament Sensor
+//
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PC0 // XMAX plug on PCB used as filament runout sensor on Alfawise boards (inverting true)
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB5 // pin 91
+#define X_STEP_PIN PB4 // pin 90
+#define X_DIR_PIN PB3 // pin 89
+
+#define Y_ENABLE_PIN PB8 // pin 95
+#define Y_STEP_PIN PB7 // pin 93
+#define Y_DIR_PIN PB6 // pin 92
+
+#define Z_ENABLE_PIN PE1 // pin 98
+#define Z_STEP_PIN PE0 // pin 97
+#define Z_DIR_PIN PB9 // pin 96
+
+#define E0_ENABLE_PIN PE4 // pin 3
+#define E0_STEP_PIN PE3 // pin 2
+#define E0_DIR_PIN PE2 // pin 1
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // pin 23 (Nozzle 100K/3950 thermistor)
+#define TEMP_BED_PIN PA1 // pin 24 (Hot Bed 100K/3950 thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD3 // pin 84 (Nozzle Heat Mosfet)
+#define HEATER_BED_PIN PA8 // pin 67 (Hot Bed Mosfet)
+
+#define FAN_PIN PA15 // pin 77 (4cm Fan)
+#define FAN_SOFT_PWM // Required to avoid issues with heating or STLink
+#define FAN_MIN_PWM 35 // Fan will not start in 1-30 range
+#define FAN_MAX_PWM 255
+
+//#define BEEPER_PIN PD13 // pin 60 (Servo PWM output 5V/GND on Board V0G+) made for BL-Touch sensor
+ // Can drive a PC Buzzer, if connected between PWM and 5V pins
+
+#define LED_PIN PC2 // pin 17
+
+//
+// PWM for a servo probe
+// Other servo devices are not supported on this board!
+//
+#if HAS_Z_SERVO_PROBE
+ #define SERVO0_PIN PD13 // Open drain PWM pin on the V0G (GND or floating 5V)
+ #define SERVO0_PWM_OD // Comment this if using PE5
+
+ //#define SERVO0_PIN PE5 // Pulled up PWM pin on the V08 (3.3V or 0)
+ //#undef Z_MAX_PIN // Uncomment if using ZMAX connector (PE5)
+#endif
+
+#define TFT_RESET_PIN PC4 // pin 33
+#define TFT_BACKLIGHT_PIN PD12 // pin 59
+#define FSMC_CS_PIN PD7 // pin 88 = FSMC_NE1
+#define FSMC_RS_PIN PD11 // pin 58 A16 Register. Only one address needed
+
+#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+#define FSMC_DMA_DEV DMA2
+#define FSMC_DMA_CHANNEL DMA_CH5
+
+#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
+#define DOGLCD_SCK -1
+
+// Buffer for Color UI
+#define TFT_BUFFER_SIZE 3200
+
+/**
+ * Note: Alfawise U20/U30 boards DON'T use SPI2, as the hardware designer
+ * mixed up MOSI and MISO pins. SPI is managed in SW, and needs pins
+ * declared below.
+ */
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB12 // pin 51 SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // pin 52
+ #define TOUCH_MOSI_PIN PB14 // pin 53
+ #define TOUCH_MISO_PIN PB15 // pin 54
+ #define TOUCH_INT_PIN PC6 // pin 63 (PenIRQ coming from ADS7843)
+#endif
+
+//
+// Persistent Storage
+// If no option is selected below the SD Card will be used
+//
+#if NO_EEPROM_SELECTED
+ //#define SPI_EEPROM
+ #define FLASH_EEPROM_EMULATION
+#endif
+
+#if ENABLED(SPI_EEPROM)
+ // SPI1 EEPROM Winbond W25Q64 (8MB/64Mbits)
+ #define SPI_CHAN_EEPROM1 1
+ #define SPI_EEPROM1_CS PC5 // pin 34
+ #define EEPROM_SCK BOARD_SPI1_SCK_PIN // PA5 pin 30
+ #define EEPROM_MISO BOARD_SPI1_MISO_PIN // PA6 pin 31
+ #define EEPROM_MOSI BOARD_SPI1_MOSI_PIN // PA7 pin 32
+ #define EEPROM_PAGE_SIZE 0x1000U // 4KB (from datasheet)
+ #define MARLIN_EEPROM_SIZE 16UL * (EEPROM_PAGE_SIZE) // Limit to 64KB for now...
+#elif ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE)
+#else
+ #define MARLIN_EEPROM_SIZE 0x800U // On SD, Limit to 2KB, require this amount of RAM
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h b/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h
new file mode 100644
index 0000000..e33e029
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MALYAN_M200.h
@@ -0,0 +1,95 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MALYAN M200 pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx, STM32F0xx)
+ #error "Oops! Select an STM32 board in your IDE."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "Malyan M200"
+#endif
+
+// Prevents hanging from an extra watchdog init
+#define DISABLE_WATCHDOG_INIT
+
+// Assume Flash EEPROM
+#if NO_EEPROM_SELECTED
+ #define FLASH_EEPROM_EMULATION
+#endif
+
+#define SDSS SD_SS_PIN
+
+// Based on PWM timer usage, we have to use these timers and soft PWM for the fans
+// On STM32F103:
+// PB3, PB6, PB7, and PB8 can be used with pwm, which rules out TIM2 and TIM4.
+// On STM32F070, 16 and 17 are in use, but 1 and 3 are available.
+#define STEP_TIMER 1
+#define TEMP_TIMER 3
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB4
+#define Y_MIN_PIN PA15
+#define Z_MIN_PIN PB5
+
+//
+// Steppers
+//
+// X & Y enable are the same
+#define X_STEP_PIN PB14
+#define X_DIR_PIN PB15
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PB12
+#define Y_DIR_PIN PB13
+#define Y_ENABLE_PIN PA8
+
+#define Z_STEP_PIN PB10
+#define Z_DIR_PIN PB2
+#define Z_ENABLE_PIN PB11
+
+#define E0_STEP_PIN PB0
+#define E0_DIR_PIN PC13
+#define E0_ENABLE_PIN PB1
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA0 // Analog Input (HOTEND0 thermistor)
+#define TEMP_BED_PIN PA1 // Analog Input (BED thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB6 // HOTEND0 MOSFET
+#define HEATER_BED_PIN PB7 // BED MOSFET
+
+#define MALYAN_FAN1_PIN PB8 // FAN1 header on board - PRINT FAN
+#define MALYAN_FAN2_PIN PB3 // FAN2 header on board - CONTROLLER FAN
+
+#define FAN1_PIN MALYAN_FAN2_PIN
diff --git a/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h b/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
new file mode 100644
index 0000000..429cf14
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MINGDA_MPX_ARM_MINI.h
@@ -0,0 +1,176 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin mini (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(STM32F1, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Mingda MPX_ARM_MINI"
+
+#define BOARD_NO_NATIVE_USB
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+
+/*
+//Mingda used an unknown EEPROM chip ATMLH753, so I turned on the emulation below.
+//It is connected to EEPROM PB6 PB7
+
+#define I2C_EEPROM
+#undef NO_EEPROM_SELECTED
+#define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#define USE_SHARED_EEPROM 1 // Use Platform-independent Arduino functions for I2C EEPROM
+#define E2END 0xFFFF // EEPROM end address AT24C256 (32kB)
+*/
+
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE 0x800U // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+#define SPI_DEVICE 2
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PD6
+#define X_MAX_PIN PG15
+#define Y_MIN_PIN PG9
+#define Y_MAX_PIN PG14
+#define Z_MIN_PIN PG10
+#define Z_MAX_PIN PG13
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PG11
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PD13
+#define X_STEP_PIN PD12
+#define X_DIR_PIN PD11
+
+#define Y_ENABLE_PIN PG4
+#define Y_STEP_PIN PG3
+#define Y_DIR_PIN PG2
+
+#define Z_ENABLE_PIN PG7
+#define Z_STEP_PIN PG6
+#define Z_DIR_PIN PG5
+
+#define E0_ENABLE_PIN PC7
+#define E0_STEP_PIN PC6
+#define E0_DIR_PIN PG8
+
+//
+// Temperature Sensors
+//
+//#define TEMP_0_PIN PF6 // THERM_E0
+//#define TEMP_0_PIN PB3 // E0 K+
+#define TEMP_BED_PIN PF7 // THERM_BED
+
+#define MAX6675_SS_PIN PB5
+#define MAX6675_SCK_PIN PB3
+#define MAX6675_DO_PIN PB4
+#define MAX6675_MOSI_PIN PA14
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0
+#define HEATER_BED_PIN PB1
+
+#define FAN_PIN PA0 // FAN
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SDIO_READ_RETRIES 16
+
+#define SD_DETECT_PIN PC5
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PC10
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN PE4
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+#if HAS_FSMC_TFT
+ /**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'TFT_RESET_PIN'
+ * to let the bootloader init the screen.
+ *
+ * Setting an 'TFT_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+ #define TFT_CS_PIN PD7 // NE4
+ #define TFT_RS_PIN PG0 // A0
+
+ #define FSMC_CS_PIN TFT_CS_PIN
+ #define FSMC_RS_PIN TFT_RS_PIN
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_RESET_PIN PF15
+ #define TFT_BACKLIGHT_PIN PF11
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PA4 // SPI2_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI2_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI2_MOSI
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
new file mode 100644
index 0000000..99e0f0b
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN.h
@@ -0,0 +1,283 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin (STM32F130ZET6) board pin assignments
+ * https://github.com/makerbase-mks/MKS-Robin/tree/master/MKS%20Robin/Hardware
+ */
+
+#if NOT_TARGET(STM32F1, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if NO_EEPROM_SELECTED
+ #ifdef ARDUINO_ARCH_STM32
+ #define FLASH_EEPROM_EMULATION
+ #else
+ #define SDCARD_EEPROM_EMULATION
+ #endif
+#endif
+
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE (EEPROM_PAGE_SIZE)
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PC3 // XS1 - 5
+#define SERVO1_PIN PA1 // XS1 - 6
+#define SERVO2_PIN PF9 // XS2 - 5
+#define SERVO3_PIN PF8 // XS2 - 6
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB12
+#define X_MAX_PIN PB0
+#define Y_MIN_PIN PC5
+#define Y_MAX_PIN PC4
+#define Z_MIN_PIN PA4
+#define Z_MAX_PIN PF7
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PB9
+#define X_STEP_PIN PB8
+#define X_DIR_PIN PB5
+
+#define Y_ENABLE_PIN PB4
+#define Y_STEP_PIN PG15
+#define Y_DIR_PIN PG10
+
+#define Z_ENABLE_PIN PD7
+#define Z_STEP_PIN PD3
+#define Z_DIR_PIN PG14
+
+#define E0_ENABLE_PIN PG13
+#define E0_STEP_PIN PG8
+#define E0_DIR_PIN PA15
+
+#define E1_ENABLE_PIN PA12
+#define E1_STEP_PIN PA11
+#define E1_DIR_PIN PA8
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PC7 // HEATER1
+#define HEATER_1_PIN PA6 // HEATER2
+#define HEATER_BED_PIN PC6 // HOT BED
+
+//
+// Fan
+//
+#define FAN_PIN PA7 // FAN
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Filament runout sensor
+//
+#define FIL_RUNOUT_PIN PF11 // MT_DET
+
+//
+// Power loss detection
+//
+#define POWER_LOSS_PIN PA2 // PW_DET
+
+//
+// Power supply control
+//
+#define PS_ON_PIN PA3 // PW_OFF
+
+//
+// Piezzoelectric speaker
+//
+#define BEEPER_PIN PC13
+
+//
+// Activity LED
+//
+#define LED_PIN PB2
+
+//
+// ESP12-S Wi-Fi module
+//
+#define WIFI_IO0_PIN PG1
+
+//
+// LCD screen
+//
+#if HAS_FSMC_TFT
+ /**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'TFT_RESET_PIN'
+ * to let the bootloader init the screen.
+ *
+ * Setting an 'TFT_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+ #define TFT_CS_PIN PG12 // NE4
+ #define TFT_RS_PIN PF0 // A0
+
+ #define FSMC_CS_PIN TFT_CS_PIN
+ #define FSMC_RS_PIN TFT_RS_PIN
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_RESET_PIN PF6
+ #define TFT_BACKLIGHT_PIN PG11
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 2
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB1 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+ #define TOUCH_INT_PIN -1
+#endif
+
+// SPI2 is shared by LCD touch driver and flash
+// SPI1(PA7) & SPI3(PB5) not available
+#define SPI_DEVICE 2
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000
+#define SDIO_READ_RETRIES 16
+#if ENABLED(SDIO_SUPPORT)
+ #define SD_SCK_PIN PB13 // SPI2
+ #define SD_MISO_PIN PB14 // SPI2
+ #define SD_MOSI_PIN PB15 // SPI2
+ /**
+ * MKS Robin has a few hardware revisions
+ * https://github.com/makerbase-mks/MKS-Robin/tree/master/MKS%20Robin/Hardware
+ *
+ * MKS Robin <= V2.3 have no SD_DETECT_PIN.
+ * MKS Robin >= V2.4 have SD_DETECT_PIN on PF12.
+ *
+ * Uncomment here or add SD_DETECT_PIN to Configuration.h.
+ */
+ //#define SD_DETECT_PIN -1
+ //#define SD_DETECT_PIN PF12 // SD_CD
+#else
+ // SD as custom software SPI (SDIO pins)
+ #define SD_SCK_PIN PC12
+ #define SD_MISO_PIN PC8
+ #define SD_MOSI_PIN PD2
+ #define SD_SS_PIN -1
+ #define ONBOARD_SD_CS_PIN PC11
+ #define SDSS PD2
+ #define SD_DETECT_PIN -1
+#endif
+
+//
+// Trinamic TMC2208/2209 UART
+//
+#if HAS_TMC_UART
+ /**
+ * This board does not have dedicated TMC UART pins. Custom wiring is needed.
+ * You may uncomment one of the options below, or add it to your Configuration.h.
+ *
+ * When using up to four TMC2209 drivers, hardware serial is recommented on
+ * MSerial0 or MSerial1.
+ *
+ * When using TMC2208 or more than four drivers, SoftwareSerial will be needed,
+ * to provide dedicated pins for each drier.
+ */
+
+ //#define TMC_HARDWARE_SERIAL
+ #if ENABLED(TMC_HARDWARE_SERIAL)
+ #define X_HARDWARE_SERIAL MSerial0
+ #define X2_HARDWARE_SERIAL MSerial0
+ #define Y_HARDWARE_SERIAL MSerial0
+ #define Y2_HARDWARE_SERIAL MSerial0
+ #define Z_HARDWARE_SERIAL MSerial0
+ #define Z2_HARDWARE_SERIAL MSerial0
+ #define E0_HARDWARE_SERIAL MSerial0
+ #define E1_HARDWARE_SERIAL MSerial0
+ #endif
+
+ //#define TMC_SOFTWARE_SERIAL
+ #if ENABLED(TMC_SOFTWARE_SERIAL)
+ #define X_SERIAL_TX_PIN PF8 // SERVO3_PIN -- XS2 - 6
+ #define Y_SERIAL_TX_PIN PF9 // SERVO2_PIN -- XS2 - 5
+ #define Z_SERIAL_TX_PIN PA1 // SERVO1_PIN -- XS1 - 6
+ #define E0_SERIAL_TX_PIN PC3 // SERVO0_PIN -- XS1 - 5
+ #define X_SERIAL_RX_PIN X_SERIAL_TX_PIN
+ #define Y_SERIAL_RX_PIN Y_SERIAL_TX_PIN
+ #define Z_SERIAL_RX_PIN Z_SERIAL_TX_PIN
+ #define E0_SERIAL_RX_PIN E0_SERIAL_TX_PIN
+ #define TMC_BAUD_RATE 19200
+ #endif
+#endif
+
+//
+// W25Q64 64Mb (8MB) SPI flash
+//
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x800000 // 8MB
+ #define W25QXX_CS_PIN PG9
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h
new file mode 100644
index 0000000..89ace34
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3.h
@@ -0,0 +1,36 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3 (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3"
+#endif
+
+#include "pins_MKS_ROBIN_E3_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h
new file mode 100644
index 0000000..a629bce
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D.h
@@ -0,0 +1,67 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3D (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3D only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3D"
+#endif
+
+//
+// Steppers
+//
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC7
+#endif
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD2
+#endif
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PC12
+#endif
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PC11
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#include "pins_MKS_ROBIN_E3_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h
new file mode 100644
index 0000000..0d927cf
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h
@@ -0,0 +1,67 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3D v1.1 (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3D v1.1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3D V1.1"
+#endif
+
+//
+// Steppers
+//
+#ifndef X_CS_PIN
+ #define X_CS_PIN PC7
+#endif
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD2
+#endif
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PC12
+#endif
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PC11
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#include "pins_MKS_ROBIN_E3_V1_1_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
new file mode 100644
index 0000000..3118a52
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3P.h
@@ -0,0 +1,346 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin nano (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3P only supports one hotend / E-stepper. Comment out this line to continue."
+#elif HAS_FSMC_TFT
+ #error "MKS Robin E3P doesn't support FSMC-based TFT displays."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin E3P"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+//#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
+#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
+ #define I2C_EEPROM // EEPROM on I2C-0
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_DIAG_PIN PA15
+#define Y_DIAG_PIN PA12
+#define Z_DIAG_PIN PA11
+#define E0_DIAG_PIN PC4
+
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PD5
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD7
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD4
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PD14
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PD1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PD0
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL Serial
+ //#define X2_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Y2_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ //#define E2_HARDWARE_SERIAL Serial1
+ //#define E3_HARDWARE_SERIAL Serial1
+ //#define E4_HARDWARE_SERIAL Serial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN PD5
+ #define X_SERIAL_RX_PIN PD5
+
+ #define Y_SERIAL_TX_PIN PD7
+ #define Y_SERIAL_RX_PIN PD7
+
+ #define Z_SERIAL_TX_PIN PD4
+ #define Z_SERIAL_RX_PIN PD4
+
+ #define E0_SERIAL_TX_PIN PD9
+ #define E0_SERIAL_RX_PIN PD9
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER1
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Misc. Functions
+//
+#if HAS_TFT_LVGL_UI
+ //#define MKSPWC
+ #ifdef MKSPWC
+ #define SUICIDE_PIN PB2 // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PA2 // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+ #endif
+
+ #define MT_DET_1_PIN PA4 // LVGL UI FILAMENT RUNOUT1 PIN
+ #define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+ #define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+ #define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+ #define WIFI_RESET_PIN PE9 // MKS ESP WIFI RESET PIN
+
+ #if ENABLED(MKS_TEST)
+ #define MKS_TEST_POWER_LOSS_PIN PA2 // PW_DET
+ #define MKS_TEST_PS_ON_PIN PB0 // PW_OFF
+ #endif
+#else
+ //#define POWER_LOSS_PIN PA2 // PW_DET
+ //#define PS_ON_PIN PB2 // PW_OFF
+ #define FIL_RUNOUT_PIN PA4
+#endif
+
+//#define LED_PIN PB2
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SD_DETECT_PIN PD12
+#define ONBOARD_SD_CS_PIN PC11
+
+//
+// LCD / Controller
+//
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+
+#if HAS_SPI_TFT
+
+ // Shared SPI TFT
+
+ #define LCD_BACKLIGHT_PIN PD13
+
+ #define TOUCH_CS_PIN PE14 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define BTN_ENC PE13
+
+ #define TFT_CS_PIN PD11
+ #define TFT_SCK_PIN PA5
+ #define TFT_MISO_PIN PA6
+ #define TFT_MOSI_PIN PA7
+ #define TFT_DC_PIN PD10
+ #define TFT_RST_PIN PC6
+ #define TFT_A0_PIN TFT_DC_PIN
+
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ #ifndef TFT_WIDTH
+ #define TFT_WIDTH 480
+ #endif
+ #ifndef TFT_HEIGHT
+ #define TFT_HEIGHT 320
+ #endif
+
+ #define LCD_READ_ID 0xD3
+ #define LCD_USE_DMA_SPI
+
+#endif
+
+#if HAS_SPI_GRAPHICAL_TFT
+ // Emulated DOGM SPI
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+#elif ENABLED(TFT_480x320_SPI)
+ #define TFT_DRIVER ST7796
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#if HAS_WIRED_LCD && !HAS_SPI_TFT
+
+ // NON TFT Displays
+
+ #if ENABLED(MKS_MINI_12864)
+
+ // MKS MINI12864 and MKS LCD12864B
+ // If using MKS LCD12864A (Need to remove RPK2 resistor)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PD11
+ #define DOGLCD_CS PE15
+ #define DOGLCD_SCK PA5
+ #define DOGLCD_MOSI PA7
+
+ // Required for MKS_MINI_12864 with this board
+ #define MKS_LCD12864B
+ #undef SHOW_BOOTSCREEN
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PE14
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PE15
+ #define LCD_PINS_D6 PD11
+ #define LCD_PINS_D7 PD10
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+#endif // HAS_WIRED_LCD && !HAS_SPI_TFT
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+#if ENABLED(SPEAKER) && BEEPER_PIN == PC5
+ #error "MKS Robin nano default BEEPER_PIN is not a SPEAKER."
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h
new file mode 100644
index 0000000..002c35f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h
@@ -0,0 +1,36 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3 v1.1 (STM32F103RCT6) board pin assignments
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin E3 v1.1 only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin E3 V1.1"
+#endif
+
+#include "pins_MKS_ROBIN_E3_V1_1_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h
new file mode 100644
index 0000000..4eaf2e9
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h
@@ -0,0 +1,39 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+//
+// EEPROM
+//
+// Onboard I2C EEPROM
+#if NO_EEPROM_SELECTED
+ #define I2C_EEPROM
+ #define MARLIN_EEPROM_SIZE 0x1000// 4KB
+ #undef NO_EEPROM_SELECTED
+#endif
+
+#define Z_STEP_PIN PC14
+#define Z_DIR_PIN PC15
+
+#define BTN_ENC_EN -1
+
+#include "pins_MKS_ROBIN_E3_common.h"
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h
new file mode 100644
index 0000000..c4a7e9f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h
@@ -0,0 +1,196 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin E3 & E3D (STM32F103RCT6) common board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_NO_NATIVE_USB
+
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+//
+// Servos
+//
+#define SERVO0_PIN PA3
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA12
+#define Y_STOP_PIN PA11
+#define Z_MIN_PIN PC6
+#define Z_MAX_PIN PB1
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PC13
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PB9
+#define Y_ENABLE_PIN PB12
+
+#ifndef Z_STEP_PIN
+ #define Z_STEP_PIN PB7
+#endif
+#ifndef Z_DIR_PIN
+ #define Z_DIR_PIN PB6
+#endif
+#define Z_ENABLE_PIN PB8
+
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB3
+#define E0_ENABLE_PIN PB5
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PC7
+ #define X_SERIAL_RX_PIN PC7
+
+ #define Y_SERIAL_TX_PIN PD2
+ #define Y_SERIAL_RX_PIN PD2
+
+ #define Z_SERIAL_TX_PIN PC12
+ #define Z_SERIAL_RX_PIN PC12
+
+ #define E0_SERIAL_TX_PIN PC11
+ #define E0_SERIAL_RX_PIN PC11
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif
+
+//
+// Heaters 0,1 / Fans / Bed
+//
+#define HEATER_0_PIN PC9
+#define FAN_PIN PA8
+#define HEATER_BED_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA1 // TB
+#define TEMP_0_PIN PA0 // TH1
+
+#define FIL_RUNOUT_PIN PB10 // MT_DET
+
+/**
+ * _____ _____ _____
+ * (BEEPER) PC1 | 1 2 | PC3 (BTN_ENC) (MISO) PB14 | 1 2 | PB13 (SD_SCK) 5V | 1 2 | GND
+ * (LCD_EN) PA4 | 3 4 | PA5 (LCD_RS) (BTN_EN1) PB11 | 3 4 | PA15 (SD_SS) (LCD_EN) PA4 | 3 4 | PA5 (LCD_RS)
+ * (LCD_D4) PA6 | 5 6 PA7 (LCD_D5) (BTN_EN2) PB0 | 5 6 PB15 (SD_MOSI) (LCD_D4) PA6 | 5 6 PB0 (BTN_EN2)
+ * (LCD_D6) PC4 | 7 8 | PC5 (LCD_D7) (SD_DETECT) PC10 | 7 8 | RESET RESET | 7 8 | PB11 (BTN_EN1)
+ * GND | 9 10| 5V GND | 9 10| NC (BTN_ENC) PC3 | 9 10| PC1 (BEEPER)
+ * ----- ----- -----
+ * EXP1 EXP2 EXP3
+ */
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC1
+ #define BTN_ENC PC3
+ #define LCD_PINS_ENABLE PA4
+ #define LCD_PINS_RS PA5
+ #define BTN_EN1 PB11
+ #define BTN_EN2 PB0
+
+ // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PC4
+ #define DOGLCD_CS PA7
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #else
+
+ #define LCD_PINS_D4 PA6
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PA7
+ #define LCD_PINS_D6 PC4
+ #define LCD_PINS_D7 PC5
+
+ #if !defined(BTN_ENC_EN) && ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+#define SPI_DEVICE 2
+#define SD_DETECT_PIN PC10
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PA15
+
+#ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h
new file mode 100644
index 0000000..13c2d41
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE.h
@@ -0,0 +1,148 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin Lite only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin Lite"
+#endif
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PC13
+#define Y_STOP_PIN PC0
+#define Z_MIN_PIN PC12
+#define Z_MAX_PIN PB9
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC6
+#define X_DIR_PIN PB12
+#define X_ENABLE_PIN PB10
+
+#define Y_STEP_PIN PB11
+#define Y_DIR_PIN PB2
+#define Y_ENABLE_PIN PB10
+
+#define Z_STEP_PIN PB1
+#define Z_DIR_PIN PC5
+#define Z_ENABLE_PIN PB10
+
+#define E0_STEP_PIN PC4
+#define E0_DIR_PIN PA5
+#define E0_ENABLE_PIN PA4
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC9
+#define FAN_PIN PA8
+#define HEATER_BED_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA1
+#define TEMP_0_PIN PA0
+
+#define FIL_RUNOUT_PIN PB8 // MT_DET
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+ #define BEEPER_PIN PD2
+ #define BTN_ENC PB3
+ #define LCD_PINS_RS PC3
+
+ #define BTN_EN1 PB5
+ #define BTN_EN2 PB4
+
+ #define LCD_PINS_ENABLE PC2
+
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PC1
+ #define DOGLCD_CS PC2
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PC1
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 -1
+ #define LCD_PINS_D6 -1
+ #define LCD_PINS_D7 -1
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+ #if HAS_MARLINUI_U8GLIB
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+ #endif
+
+#endif // HAS_WIRED_LCD
+
+// Motor current PWM pins
+#define MOTOR_CURRENT_PWM_XY_PIN PB0
+#define MOTOR_CURRENT_PWM_Z_PIN PA7
+#define MOTOR_CURRENT_PWM_E_PIN PA6
+#define MOTOR_CURRENT_PWM_RANGE (65535/10/3.3) // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+#define DEFAULT_PWM_MOTOR_CURRENT { 1000, 1000, 1000 } // 1.05Amp per driver, here is XY, Z and E. This values determined empirically.
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC10
+
+//
+// SPI
+//
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN P1B4
+#define SD_MOSI_PIN P1B5
+#define SD_SS_PIN PA15
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h
new file mode 100644
index 0000000..f814052
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_LITE3.h
@@ -0,0 +1,159 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin Lite 3 (STM32F103RCT6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin Lite3 supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#ifndef BOARD_INFO_NAME
+ #define BOARD_INFO_NAME "MKS Robin Lite3"
+#endif
+#define BOARD_WEBSITE_URL "github.com/makerbase-mks"
+
+#define BOARD_NO_NATIVE_USB
+
+//#define DISABLE_DEBUG
+#define DISABLE_JTAG
+
+//
+// Servos
+//
+#define SERVO0_PIN PA3
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA12
+#define Y_STOP_PIN PA11
+#define Z_MIN_PIN PC6
+#define Z_MAX_PIN PB1
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PB2
+#define X_ENABLE_PIN PC13
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PB9
+#define Y_ENABLE_PIN PB12
+
+#define Z_STEP_PIN PB7
+#define Z_DIR_PIN PB6
+#define Z_ENABLE_PIN PB8
+
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB3
+#define E0_ENABLE_PIN PB5
+
+#define E1_STEP_PIN PC12
+#define E1_DIR_PIN PC11
+#define E1_ENABLE_PIN PD2
+
+//
+// Heaters 0,1 / Fans / Bed
+//
+#define HEATER_0_PIN PC9
+#define HEATER_1_PIN PC7
+#define FAN_PIN PA8
+#define HEATER_BED_PIN PC8
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA1 // TB
+#define TEMP_0_PIN PA0 // TH1
+#define TEMP_1_PIN PA2 // TH2
+
+#define FIL_RUNOUT_PIN PB10 // MT_DET
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC1
+ #define BTN_ENC PC3
+ #define LCD_PINS_ENABLE PA4
+ #define LCD_PINS_RS PA5
+ #define BTN_EN1 PB11
+ #define BTN_EN2 PB0
+
+ // MKS MINI12864 and MKS LCD12864B; If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PC4
+ #define DOGLCD_CS PA7
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS PB11
+ #endif
+
+ #else // !MKS_MINI_12864
+
+ #define LCD_PINS_D4 PA6
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PA7
+ #define LCD_PINS_D6 PC4
+ #define LCD_PINS_D7 PC5
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+
+#endif // HAS_WIRED_LCD
+
+//
+// SD Card
+//
+#define SD_DETECT_PIN PC10
+
+//
+// SPI
+//
+#define SPI_DEVICE 2
+#define SD_SCK_PIN PB13
+#define SD_MISO_PIN PB14
+#define SD_MOSI_PIN PB15
+#define SD_SS_PIN PA15
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
new file mode 100644
index 0000000..b3cfe5b
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_MINI.h
@@ -0,0 +1,201 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin mini (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 1 || E_STEPPERS > 1
+ #error "MKS Robin mini only supports one hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin Mini"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#ifndef SERVO0_PIN
+ #define SERVO0_PIN PA8 // Enable BLTOUCH support on IO0 (WIFI connector)
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+#ifndef FIL_RUNOUT_PIN
+ #define FIL_RUNOUT_PIN PA4 // MT_DET
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+
+// Motor current PWM pins
+#define MOTOR_CURRENT_PWM_XY_PIN PA6
+#define MOTOR_CURRENT_PWM_Z_PIN PA7
+#define MOTOR_CURRENT_PWM_E_PIN PB0
+#define MOTOR_CURRENT_PWM_RANGE 1500 // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
+#ifndef DEFAULT_PWM_MOTOR_CURRENT
+ #define DEFAULT_PWM_MOTOR_CURRENT { 800, 800, 800 }
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3
+#define HEATER_BED_PIN PA0
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Misc. Functions
+//
+#define POWER_LOSS_PIN PA2 // PW_DET
+#define PS_ON_PIN PA3 // PW_OFF
+
+#define MT_DET_1_PIN PA4
+#define MT_DET_PIN_INVERTING false
+
+#define WIFI_IO0_PIN PC13
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SD_DETECT_PIN PD12
+#define ONBOARD_SPI_DEVICE 1 // SPI1
+#define ONBOARD_SD_CS_PIN PC11
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN PC5
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+#if EITHER(HAS_FSMC_GRAPHICAL_TFT, TFT_320x240)
+ #define FSMC_CS_PIN PD7 // NE4
+ #define FSMC_RS_PIN PD11 // A0
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define LCD_RESET_PIN PC6 // FSMC_RST
+ #define LCD_BACKLIGHT_PIN PD13
+#endif
+
+#if BOTH(NEED_TOUCH_PINS, HAS_FSMC_GRAPHICAL_TFT) || ENABLED(TFT_320x240)
+ #define TOUCH_CS_PIN PC2 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+#endif
+
+#if ENABLED(TFT_320x240) // TFT32/28
+ #define TFT_DRIVER ILI9341
+ #define TFT_BUFFER_SIZE 14400
+ #define ILI9341_COLOR_RGB
+ // YV for normal screen mounting
+ #define ILI9341_ORIENTATION ILI9341_MADCTL_MY | ILI9341_MADCTL_MV
+ // XV for 180° rotated screen mounting
+ //#define ILI9341_ORIENTATION ILI9341_MADCTL_MX | ILI9341_MADCTL_MV
+#endif
+
+#if ENABLED(TOUCH_SCREEN)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X 12033
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y -9047
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X -30
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y 254
+ #endif
+#endif
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12 // Flash chip-select
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
new file mode 100644
index 0000000..36ae696
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO.h
@@ -0,0 +1,345 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin nano (STM32F130VET6) board pin assignments
+ * https://github.com/makerbase-mks/MKS-Robin-Nano-V1.X/tree/master/hardware
+ */
+
+#if NOT_TARGET(STM32F1, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin Nano"
+
+#define BOARD_NO_NATIVE_USB
+
+// Avoid conflict with TIMER_SERVO when using the STM32 HAL
+#define TEMP_TIMER 5
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#if EITHER(NO_EEPROM_SELECTED, FLASH_EEPROM_EMULATION)
+ #define FLASH_EEPROM_EMULATION
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB
+ #define EEPROM_START_ADDRESS (0x8000000UL + (STM32_FLASH_SIZE) * 1024UL - (EEPROM_PAGE_SIZE) * 2UL)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE // 2KB
+#endif
+
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+//
+//TMC UART RX / TX Pins Hardware/Software Serial
+//
+#if HAS_TMC220x
+ /**
+ * TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ *
+ * Four TMC2209 drivers can use the same HW/SW serial port with hardware configured addresses.
+ * Set the address using jumpers on pins MS1 and MS2.
+ * Address | MS1 | MS2
+ * 0 | LOW | LOW
+ * 1 | HIGH | LOW
+ * 2 | LOW | HIGH
+ * 3 | HIGH | HIGH
+ */
+
+ // Set Hardware Serial UART only für TCM 2209
+ //#define HARDWARE_SERIAL
+ // Set Software Serial UART for TMC 2208 / TMC 2209
+ #define SOFTWARE_SERIAL
+
+ #if ENABLED(HARDWARE_SERIAL)
+ //#define X_HARDWARE_SERIAL Serial1
+ //#define Y_HARDWARE_SERIAL Serial1
+ //#define Z_HARDWARE_SERIAL Serial1
+ //#define Z2_HARDWARE_SERIAL Serial1
+ //#define E0_HARDWARE_SERIAL Serial1
+ //#define E1_HARDWARE_SERIAL Serial1
+ #define X_SLAVE_ADDRESS 3 // | | :
+ #define Y_SLAVE_ADDRESS 2 // : | :
+ #define Z_SLAVE_ADDRESS 1 // | : :
+ #define E0_SLAVE_ADDRESS 0 // : : :
+
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SLAVE_ADDRESS 0 // : : :
+ #endif
+ #ifdef Z2_DRIVER_TYPE
+ #define Z2_SLAVE_ADDRESS 0 // : : :
+ #endif
+
+ #define X_SERIAL_TX_PIN PA9
+ #define X_SERIAL_RX_PIN PA9
+
+ #define Y_SERIAL_TX_PIN PA9
+ #define Y_SERIAL_RX_PIN PA9
+
+ #define Z_SERIAL_TX_PIN PA9
+ #define Z_SERIAL_RX_PIN PA9
+
+ #define E0_SERIAL_TX_PIN PA5
+ #define E0_SERIAL_RX_PIN PA5
+
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ #ifdef Z2_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ #elif ENABLED (SOFTWARE_SERIAL)
+
+ //Set *_SERIAL_TX_PIN and *_SERIAL_RX_PIN to match for all drivers on the same PIN to the same Slave Address.
+ #define X_SLAVE_ADDRESS 0
+ #define Y_SLAVE_ADDRESS 0
+ #define Z_SLAVE_ADDRESS 0
+ #define E0_SLAVE_ADDRESS 0
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SLAVE_ADDRESS 0
+ #endif
+ #ifdef Z2_DRIVER_TYPE
+ #define Z2_SLAVE_ADDRESS 0
+ #endif
+
+ #define X_SERIAL_TX_PIN PA3
+ #define X_SERIAL_RX_PIN PA3
+
+ #define Y_SERIAL_TX_PIN PA6
+ #define Y_SERIAL_RX_PIN PA6
+
+ #define Z_SERIAL_TX_PIN PA1
+ #define Z_SERIAL_RX_PIN PA1
+
+ #define E0_SERIAL_TX_PIN PE5
+ #define E0_SERIAL_RX_PIN PE5
+
+ #ifdef E1_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ #ifdef Z2_DRIVER_TYPE
+ #define E1_SERIAL_TX_PIN PA9
+ #define E1_SERIAL_RX_PIN PA9
+ #endif
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+ #endif
+#endif
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PA6
+#define E1_DIR_PIN PA1
+#if ENABLED(SOFTWARE_SERIAL)
+ //#define E1_ENABLE_PIN PA3 // USED BY UART X Don't change
+ //#define E1_STEP_PIN PA6 // USED BY UART Y Don't change
+ //#define E1_DIR_PIN PA1 // USED BY UART Z Don't change
+ #else
+ #define E1_ENABLE_PIN PA3
+ #define E1_STEP_PIN PA6
+ #define E1_DIR_PIN PA1
+ #endif
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#ifndef HEATER_0_PIN
+ #define HEATER_0_PIN PC3
+#endif
+#if HOTENDS == 1
+ #ifndef FAN1_PIN
+ #define FAN1_PIN PB0
+ #endif
+#else
+ #ifndef HEATER_1_PIN
+ #define HEATER_1_PIN PB0
+ #endif
+#endif
+#ifndef FAN_PIN
+ #define FAN_PIN PB1 // FAN
+#endif
+#ifndef HEATER_BED_PIN
+ #define HEATER_BED_PIN PA0
+#endif
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Misc. Functions
+//
+#if HAS_TFT_LVGL_UI
+ // LVGL
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X 17880
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y -12234
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X -45
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y 349
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_LANDSCAPE
+ #endif
+
+ //#define MKSPWC
+ #ifdef MKSPWC
+ #define SUICIDE_PIN PB2 // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PA2 // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+ #endif
+
+ #define MT_DET_1_PIN PA4 // LVGL UI FILAMENT RUNOUT1 PIN
+ #define MT_DET_2_PIN PE6 // LVGL UI FILAMENT RUNOUT2 PIN
+ #define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+ #define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+ #define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+ #define WIFI_RESET_PIN PA5 // MKS ESP WIFI RESET PIN
+#else
+ //#define POWER_LOSS_PIN PA2 // PW_DET
+ //#define PS_ON_PIN PB2 // PW_OFF
+ #define FIL_RUNOUT_PIN PA4
+ #define FIL_RUNOUT2_PIN PE6
+#endif
+
+//#define LED_PIN PB2
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#define SDIO_SUPPORT
+#define SDIO_CLOCK 4500000 // 4.5 MHz
+#define SD_DETECT_PIN PD12
+#define ONBOARD_SD_CS_PIN PC11
+
+//
+// LCD / Controller
+//
+#define BEEPER_PIN PC5
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'TFT_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+// Shared FSMC Configs
+#if HAS_FSMC_TFT
+ #define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
+ #define DOGLCD_SCK -1
+
+ #define TOUCH_CS_PIN PA7 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13 // SPI2_SCK
+ #define TOUCH_MISO_PIN PB14 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
+
+ #define TFT_RESET_PIN PC6 // FSMC_RST
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_CS_PIN PD7
+ #define FSMC_RS_PIN PD11
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define TFT_CS_PIN FSMC_CS_PIN
+ #define TFT_RS_PIN FSMC_RS_PIN
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 2
+
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
new file mode 100644
index 0000000..5bc499f
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_NANO_V2.h
@@ -0,0 +1,406 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin nano (STM32F130VET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "MKS Robin nano supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#elif HAS_FSMC_TFT
+ #error "MKS Robin nano v2 doesn't support FSMC-based TFT displays."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin nano V2.0"
+
+#define BOARD_NO_NATIVE_USB
+
+// Avoid conflict with TIMER_SERVO when using the STM32 HAL
+#define TEMP_TIMER 5
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// EEPROM
+//
+//#define FLASH_EEPROM_EMULATION
+//#define SDCARD_EEPROM_EMULATION
+
+#if EITHER(NO_EEPROM_SELECTED, I2C_EEPROM)
+ #define I2C_EEPROM // EEPROM on I2C-0
+ #define MARLIN_EEPROM_SIZE 0x1000 // 4KB
+#endif
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_DIAG_PIN PA15
+#define Y_DIAG_PIN PA12
+#define Z_DIAG_PIN PA11
+#define E0_DIAG_PIN PC4
+#define E1_DIAG_PIN PE7
+
+#define X_STOP_PIN PA15
+#define Y_STOP_PIN PA12
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PD5
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PD7
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PD4
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PD9
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PD15
+#define E1_DIR_PIN PA1
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PD8
+#endif
+
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PD14
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PD1
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PD0
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+ //#define E1_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+
+ #define X_SERIAL_TX_PIN PD5
+ #define X_SERIAL_RX_PIN PD5
+
+ #define Y_SERIAL_TX_PIN PD7
+ #define Y_SERIAL_RX_PIN PD7
+
+ #define Z_SERIAL_TX_PIN PD4
+ #define Z_SERIAL_RX_PIN PD4
+
+ #define E0_SERIAL_TX_PIN PD9
+ #define E0_SERIAL_RX_PIN PD9
+
+ #define E1_SERIAL_TX_PIN PD8
+ #define E1_SERIAL_RX_PIN PD8
+
+ // Reduce baud rate to improve software serial reliability
+ #define TMC_BAUD_RATE 19200
+#endif // HAS_TMC_UART
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PC3 // HEATER1
+#define HEATER_1_PIN PB0 // HEATER2
+#define HEATER_BED_PIN PA0 // HOT BED
+
+#define FAN_PIN PB1 // FAN
+
+//
+// Thermocouples
+//
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PE6 // TC2 - CS2
+
+//
+// Misc. Functions
+//
+
+//#define MKSPWC
+#ifdef MKSPWC
+ #define SUICIDE_PIN PB2 // Enable MKSPWC SUICIDE PIN
+ #define SUICIDE_PIN_INVERTING false // Enable MKSPWC PIN STATE
+ #define KILL_PIN PA2 // Enable MKSPWC DET PIN
+ #define KILL_PIN_STATE true // Enable MKSPWC PIN STATE
+#endif
+
+#if HAS_TFT_LVGL_UI
+ // LVGL
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17253
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11579
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 514
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -24
+ #endif
+ #ifndef TOUCH_ORIENTATION
+ #define TOUCH_ORIENTATION TOUCH_LANDSCAPE
+ #endif
+
+ #define MT_DET_1_PIN PA4 // LVGL UI FILAMENT RUNOUT1 PIN
+ #define MT_DET_2_PIN PE6 // LVGL UI FILAMENT RUNOUT2 PIN
+ #define MT_DET_PIN_INVERTING false // LVGL UI filament RUNOUT PIN STATE
+
+ #define WIFI_IO0_PIN PC13 // MKS ESP WIFI IO0 PIN
+ #define WIFI_IO1_PIN PC7 // MKS ESP WIFI IO1 PIN
+ #define WIFI_RESET_PIN PE9 // MKS ESP WIFI RESET PIN
+
+ #if ENABLED(MKS_TEST)
+ #define MKS_TEST_POWER_LOSS_PIN PA2 // PW_DET
+ #define MKS_TEST_PS_ON_PIN PB2 // PW_OFF
+ #endif
+#else
+ //#define POWER_LOSS_PIN PA2 // PW_DET
+ //#define PS_ON_PIN PB2 // PW_OFF
+ #define FIL_RUNOUT_PIN PA4
+ #define FIL_RUNOUT2_PIN PE6
+#endif
+
+//#define LED_PIN PB2
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define ENABLE_SPI1
+ #define SD_DETECT_PIN PE12
+ #define SCK_PIN PA5
+ #define MISO_PIN PA6
+ #define MOSI_PIN PA7
+ #define SS_PIN PE10
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SDIO_SUPPORT
+ #define SDIO_CLOCK 4500000 // 4.5 MHz
+ #define SD_DETECT_PIN PD12
+ #define ONBOARD_SD_CS_PIN PC11
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+//
+// LCD / Controller
+//
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+
+#if HAS_SPI_TFT
+
+ // Shared SPI TFT
+
+ #define LCD_BACKLIGHT_PIN PD13
+
+ #define TOUCH_CS_PIN PE14 // SPI1_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI1_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI1_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
+
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define BTN_ENC PE13
+
+ #define TFT_CS_PIN PD11
+ #define TFT_SCK_PIN PA5
+ #define TFT_MISO_PIN PA6
+ #define TFT_MOSI_PIN PA7
+ #define TFT_DC_PIN PD10
+ #define TFT_RST_PIN PC6
+ #define TFT_A0_PIN TFT_DC_PIN
+
+ #define TFT_RESET_PIN PC6
+ #define TFT_BACKLIGHT_PIN PD13
+
+ #define TOUCH_BUTTONS_HW_SPI
+ #define TOUCH_BUTTONS_HW_SPI_DEVICE 1
+
+ #define LCD_USE_DMA_SPI
+
+#endif
+
+#if ENABLED(TFT_CLASSIC_UI)
+ // Emulated DOGM SPI
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+#elif ENABLED(TFT_COLOR_UI)
+ #define TFT_BUFFER_SIZE 14400
+#endif
+
+#if HAS_WIRED_LCD && !HAS_SPI_TFT
+
+ // NON TFT Displays
+
+ #if ENABLED(MKS_MINI_12864)
+
+ // MKS MINI12864 and MKS LCD12864B
+ // If using MKS LCD12864A (Need to remove RPK2 resistor)
+
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PD11
+ #define DOGLCD_CS PE15
+ #define DOGLCD_SCK PA5
+ #define DOGLCD_MOSI PA7
+
+ #elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define PIN_SPI_SCK PA5
+ #define PIN_TFT_MISO PA6
+ #define PIN_TFT_MOSI PA7
+ #define TFTGLCD_CS PE8
+ #endif
+
+ #ifndef BEEPER_PIN
+ #define BEEPER_PIN -1
+ #endif
+
+ #else // !MKS_MINI_12864
+
+ #define BTN_ENC PE13
+ #define BTN_EN1 PE8
+ #define BTN_EN2 PE11
+
+ #define LCD_PINS_ENABLE PD13
+ #define LCD_PINS_RS PC6
+ #define LCD_PINS_D4 PE14
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PE15
+ #define LCD_PINS_D6 PD11
+ #define LCD_PINS_D7 PD10
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+ #endif
+ #ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+ #endif
+
+ #endif // !MKS_MINI_12864
+
+#endif // HAS_WIRED_LCD && !HAS_SPI_TFT
+
+#define HAS_SPI_FLASH 1
+#if HAS_SPI_FLASH
+ #define SPI_FLASH_SIZE 0x1000000 // 16MB
+ #define W25QXX_CS_PIN PB12
+ #define W25QXX_MOSI_PIN PB15
+ #define W25QXX_MISO_PIN PB14
+ #define W25QXX_SCK_PIN PB13
+#endif
+
+#ifndef BEEPER_PIN
+ #define BEEPER_PIN PC5
+#endif
+
+#if ENABLED(SPEAKER) && BEEPER_PIN == PC5
+ #error "MKS Robin nano default BEEPER_PIN is not a SPEAKER."
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h
new file mode 100644
index 0000000..39676bf
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_PRO.h
@@ -0,0 +1,280 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * MKS Robin pro (STM32F103ZET6) board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 3 || E_STEPPERS > 3
+ #error "MKS Robin pro supports up to 3 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "MKS Robin pro"
+
+#define BOARD_NO_NATIVE_USB
+
+//
+// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
+//
+#define DISABLE_DEBUG
+
+//
+// Note: MKS Robin board is using SPI2 interface.
+//
+#define SPI_DEVICE 2
+
+//
+// Servos
+//
+#define SERVO0_PIN PA8 // Enable BLTOUCH
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PA15
+#define X_MAX_PIN PG7
+#define Y_MIN_PIN PA12
+#define Y_MAX_PIN PG8
+#define Z_MIN_PIN PA11
+#define Z_MAX_PIN PC4
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PE4
+#define X_STEP_PIN PE3
+#define X_DIR_PIN PE2
+#ifndef X_CS_PIN
+ #define X_CS_PIN PF8
+#endif
+
+#define Y_ENABLE_PIN PE1
+#define Y_STEP_PIN PE0
+#define Y_DIR_PIN PB9
+#ifndef Y_CS_PIN
+ #define Y_CS_PIN PF3
+#endif
+
+#define Z_ENABLE_PIN PB8
+#define Z_STEP_PIN PB5
+#define Z_DIR_PIN PB4
+#ifndef Z_CS_PIN
+ #define Z_CS_PIN PF6
+#endif
+
+#define E0_ENABLE_PIN PB3
+#define E0_STEP_PIN PD6
+#define E0_DIR_PIN PD3
+#ifndef E0_CS_PIN
+ #define E0_CS_PIN PG15
+#endif
+
+#define E1_ENABLE_PIN PA3
+#define E1_STEP_PIN PA6
+#define E1_DIR_PIN PA1
+#ifndef E1_CS_PIN
+ #define E1_CS_PIN PG10
+#endif
+
+#define E2_ENABLE_PIN PF0
+#define E2_STEP_PIN PF2
+#define E2_DIR_PIN PF1
+#ifndef E2_CS_PIN
+ #define E2_CS_PIN PG9
+#endif
+//
+// Software SPI pins for TMC2130 stepper drivers
+//
+#if ENABLED(TMC_USE_SW_SPI)
+ #ifndef TMC_SW_MOSI
+ #define TMC_SW_MOSI PB15
+ #endif
+ #ifndef TMC_SW_MISO
+ #define TMC_SW_MISO PB14
+ #endif
+ #ifndef TMC_SW_SCK
+ #define TMC_SW_SCK PB13
+ #endif
+#endif
+
+#if HAS_TMC_UART
+ /**
+ * TMC2208/TMC2209 stepper drivers
+ *
+ * Hardware serial communication ports.
+ * If undefined software serial is used according to the pins below
+ */
+ //#define X_HARDWARE_SERIAL MSerial1
+ //#define Y_HARDWARE_SERIAL MSerial1
+ //#define Z_HARDWARE_SERIAL MSerial1
+ //#define E0_HARDWARE_SERIAL MSerial1
+ //#define E1_HARDWARE_SERIAL MSerial1
+ //#define E2_HARDWARE_SERIAL MSerial1
+
+ //
+ // Software serial
+ //
+ #define X_SERIAL_TX_PIN PF7
+ #define X_SERIAL_RX_PIN PF8
+
+ #define Y_SERIAL_TX_PIN PF4
+ #define Y_SERIAL_RX_PIN PF3
+
+ #define Z_SERIAL_TX_PIN PF5
+ #define Z_SERIAL_RX_PIN PF6
+
+ #define E0_SERIAL_TX_PIN PG13
+ #define E0_SERIAL_RX_PIN PG15
+
+ #define E1_SERIAL_TX_PIN PG12
+ #define E1_SERIAL_RX_PIN PG10
+
+ #define E2_SERIAL_TX_PIN PC13
+ #define E2_SERIAL_RX_PIN PG9
+#endif
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PC1 // TH1
+#define TEMP_1_PIN PC2 // TH2
+#define TEMP_2_PIN PC3 // TH3
+#define TEMP_BED_PIN PC0 // TB1
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PF10 // +HE0-
+#define HEATER_1_PIN PB0 // +HE1-
+#define HEATER_2_PIN PF9 // +HE2-
+#define HEATER_BED_PIN PA0 // +HOT-BED-
+#define FAN_PIN PB1 // +FAN-
+
+/**
+ * Note: MKS Robin Pro board is using SPI2 interface. Make sure your stm32duino library is configured accordingly
+ */
+//#define MAX6675_SS_PIN PE5 // TC1 - CS1
+//#define MAX6675_SS_PIN PF11 // TC2 - CS2
+
+#define POWER_LOSS_PIN PA2 // PW_DET
+#define PS_ON_PIN PG11 // PW_OFF
+#define FIL_RUNOUT_PIN PA4 // MT_DET1
+//#define FIL_RUNOUT_PIN PE6 // MT_DET2
+//#define FIL_RUNOUT_PIN PG14 // MT_DET3
+
+//
+// SD Card
+//
+#ifndef SDCARD_CONNECTION
+ #define SDCARD_CONNECTION ONBOARD
+#endif
+
+#if SD_CONNECTION_IS(LCD)
+ #define SD_DETECT_PIN PG3
+ #define SD_SCK_PIN PB13
+ #define SD_MISO_PIN PB14
+ #define SD_MOSI_PIN PB15
+ #define SD_SS_PIN PG6
+#elif SD_CONNECTION_IS(ONBOARD)
+ #define SDIO_SUPPORT
+ #define SD_DETECT_PIN PD12
+ #define ONBOARD_SD_CS_PIN PC11
+#elif SD_CONNECTION_IS(CUSTOM_CABLE)
+ #error "No custom SD drive cable defined for this board."
+#endif
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers.
+ * If the screen stays white, disable 'LCD_RESET_PIN'
+ * to let the bootloader init the screen.
+ */
+#if HAS_FSMC_GRAPHICAL_TFT
+ #define FSMC_CS_PIN PD7 // NE4
+ #define FSMC_RS_PIN PD11 // A0
+
+ #define LCD_RESET_PIN PF6
+ #define LCD_BACKLIGHT_PIN PD13
+
+ #if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PA7
+ #else
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PG2
+ #define BTN_EN1 PG5
+ #define BTN_EN2 PG4
+ #endif
+
+#elif IS_TFTGLCD_PANEL
+
+ #if ENABLED(TFTGLCD_PANEL_SPI)
+ #define TFTGLCD_CS PG5
+ #endif
+
+#elif HAS_WIRED_LCD
+
+ #define BEEPER_PIN PC5
+ #define BTN_ENC PG2
+ #define LCD_PINS_ENABLE PG0
+ #define LCD_PINS_RS PG1
+ #define BTN_EN1 PG5
+ #define BTN_EN2 PG4
+
+ // MKS MINI12864 and MKS LCD12864B. If using MKS LCD12864A (Need to remove RPK2 resistor)
+ #if ENABLED(MKS_MINI_12864)
+
+ #define LCD_BACKLIGHT_PIN -1
+ #define LCD_RESET_PIN -1
+ #define DOGLCD_A0 PF12
+ #define DOGLCD_CS PF15
+ #define DOGLCD_SCK PB13
+ #define DOGLCD_MOSI PB15
+
+ #else // !MKS_MINI_12864 && !ENDER2_STOCKDISPLAY
+
+ #define LCD_PINS_D4 PF14
+ #if IS_ULTIPANEL
+ #define LCD_PINS_D5 PF15
+ #define LCD_PINS_D6 PF12
+ #define LCD_PINS_D7 PF13
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+ #endif
+
+ #endif // !MKS_MINI_12864 && !ENDER2_STOCKDISPLAY
+
+#endif
+
+#ifndef BOARD_ST7920_DELAY_1
+ #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_2
+ #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
+#endif
+#ifndef BOARD_ST7920_DELAY_3
+ #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
+#endif
diff --git a/Marlin/src/pins/stm32f1/pins_MORPHEUS.h b/Marlin/src/pins/stm32f1/pins_MORPHEUS.h
new file mode 100644
index 0000000..05e02c9
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_MORPHEUS.h
@@ -0,0 +1,93 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+ /**
+ * 2017 Victor Perez Marlin for stm32f1 test
+ * 2018 Modified by Pablo Crespo for Morpheus Board (https://github.com/pscrespo/Morpheus-STM32)
+ */
+
+/**
+ * MORPHEUS Board pin assignments
+ */
+
+#if NOT_TARGET(__STM32F1__, STM32F1xx)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+#define BOARD_INFO_NAME "Bluepill based board"
+
+//
+// Limit Switches
+//
+#define X_MIN_PIN PB14
+#define Y_MIN_PIN PB13
+#define Z_MIN_PIN PB12
+
+//
+// Z Probe (when not Z_MIN_PIN)
+//
+#ifndef Z_MIN_PROBE_PIN
+ #define Z_MIN_PROBE_PIN PB9
+#endif
+
+//
+// Steppers
+//
+// X & Y enable are the same
+#define X_STEP_PIN PB7
+#define X_DIR_PIN PB6
+#define X_ENABLE_PIN PB8
+
+#define Y_STEP_PIN PB5
+#define Y_DIR_PIN PB4
+#define Y_ENABLE_PIN PB8
+
+#define Z_STEP_PIN PA15
+#define Z_DIR_PIN PA10
+#define Z_ENABLE_PIN PB3
+
+#define E0_STEP_PIN PA8
+#define E0_DIR_PIN PB15
+#define E0_ENABLE_PIN PA9
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PB1 // Analog Input (HOTEND thermistor)
+#define TEMP_BED_PIN PB0 // Analog Input (BED thermistor)
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PA2 // HOTEND MOSFET
+#define HEATER_BED_PIN PA0 // BED MOSFET
+
+#define FAN_PIN PA1 // FAN1 header on board - PRINT FAN
+
+//
+// Misc.
+//
+#define LED_PIN PC13
+#define SDSS PA3
+#define TFTGLCD_CS PA4
+#define SD_DETECT_PIN PC14
diff --git a/Marlin/src/pins/stm32f1/pins_STM32F1R.h b/Marlin/src/pins/stm32f1/pins_STM32F1R.h
new file mode 100644
index 0000000..d666755
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_STM32F1R.h
@@ -0,0 +1,140 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 21017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "Misc. STM32F1R"
+#define DEFAULT_MACHINE_NAME "STM32F103RET6"
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PB3
+#define Y_STOP_PIN PB4
+#define Z_STOP_PIN PB5
+
+//
+// Steppers
+//
+#define X_STEP_PIN PC0
+#define X_DIR_PIN PC1
+#define X_ENABLE_PIN PA8
+
+#define Y_STEP_PIN PC2
+#define Y_DIR_PIN PC3
+#define Y_ENABLE_PIN PA8
+
+#define Z_STEP_PIN PC4
+#define Z_DIR_PIN PC5
+#define Z_ENABLE_PIN PA8
+
+#define E0_STEP_PIN PC6
+#define E0_DIR_PIN PC7
+#define E0_ENABLE_PIN PA8
+
+/**
+ * TODO: Currently using same Enable pin to all steppers.
+ */
+
+#define E1_STEP_PIN PC8
+#define E1_DIR_PIN PC9
+#define E1_ENABLE_PIN PA8
+
+#define E2_STEP_PIN PC10
+#define E2_DIR_PIN PC11
+#define E2_ENABLE_PIN PA8
+
+//
+// Misc. Functions
+//
+#define SDSS PA4
+#define LED_PIN PD2
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PB0 // EXTRUDER 1
+#define HEATER_1_PIN PB1
+
+#define HEATER_BED_PIN PA3 // BED
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0 // Analog Input
+#define TEMP_0_PIN PA1 // Analog Input
+#define TEMP_1_PIN PA2 // Analog Input
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #error "Non-NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if IS_NEWPANEL
+ #if IS_RRD_SC
+ #error "RRD Smart Controller is not supported."
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+ #error "LCD_I2C_PANELOLU2 is not supported."
+ #elif ENABLED(LCD_I2C_VIKI)
+ #error "LCD_I2C_VIKI is not supported."
+ #elif ANY(VIKI2, miniVIKI)
+ #error "VIKI2 / miniVIKI is not supported."
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #error "ELB_FULL_GRAPHIC_CONTROLLER is not supported."
+ #elif ENABLED(MINIPANEL)
+ #error "MINIPANEL is not supported."
+ #else
+ #error "Other generic NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h
new file mode 100644
index 0000000..4f8183c
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_STM3R_MINI.h
@@ -0,0 +1,161 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#endif
+
+/**
+ * 21017 Victor Perez Marlin for stm32f1 test
+ */
+
+#define BOARD_INFO_NAME "STM3R Mini"
+#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME
+
+// Enable I2C_EEPROM for testing
+#define I2C_EEPROM
+
+// Ignore temp readings during development.
+//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PD0
+#define Y_STOP_PIN PD1
+#define Z_STOP_PIN PD4
+
+//
+// Steppers
+//
+#define X_STEP_PIN PE1
+#define X_DIR_PIN PE0
+#define X_ENABLE_PIN PC0
+
+#define Y_STEP_PIN PE3
+#define Y_DIR_PIN PE2
+#define Y_ENABLE_PIN PC1
+
+#define Z_STEP_PIN PE5
+#define Z_DIR_PIN PE4
+#define Z_ENABLE_PIN PC2
+
+#define E0_STEP_PIN PE7
+#define E0_DIR_PIN PE6
+#define E0_ENABLE_PIN PC3
+
+#define E1_STEP_PIN PE9
+#define E1_DIR_PIN PE8
+#define E1_ENABLE_PIN PC4
+
+#define E2_STEP_PIN PE11
+#define E2_DIR_PIN PE10
+#define E2_ENABLE_PIN PC5
+
+//
+// Misc. Functions
+//
+#define SDSS PA15
+#define LED_PIN PB2
+
+//
+// Heaters / Fans
+//
+#define HEATER_0_PIN PD12 // EXTRUDER 1
+//#define HEATER_1_PIN PD13
+
+#define HEATER_BED_PIN PB9 // BED
+//#define HEATER_BED2_PIN -1 // BED2
+//#define HEATER_BED3_PIN -1 // BED3
+
+#ifndef FAN_PIN
+ #define FAN_PIN PD14
+#endif
+#define FAN1_PIN PD13
+
+#define FAN_SOFT_PWM
+
+//
+// Temperature Sensors
+//
+#define TEMP_BED_PIN PA0
+#define TEMP_0_PIN PA1
+#define TEMP_1_PIN PA2
+#define TEMP_2_PIN PA3
+
+// Laser control
+#if HAS_CUTTER
+ #define SPINDLE_LASER_PWM_PIN PB8
+ #define SPINDLE_LASER_ENA_PIN PD5
+#endif
+
+//
+// LCD Pins
+//
+#if HAS_WIRED_LCD
+
+ #if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #else
+ #define LCD_PINS_RS PB8
+ #define LCD_PINS_ENABLE PD2
+ #define LCD_PINS_D4 PB12
+ #define LCD_PINS_D5 PB13
+ #define LCD_PINS_D6 PB14
+ #define LCD_PINS_D7 PB15
+ #if !IS_NEWPANEL
+ #error "Non-NEWPANEL LCD is not supported."
+ #endif
+ #endif
+
+ #if NEED_TOUCH_PINS
+
+ #define TOUCH_CS_PIN PB12 // SPI2_NSS
+ #define TOUCH_SCK_PIN PB13
+ #define TOUCH_MOSI_PIN PB14
+ #define TOUCH_MISO_PIN PB15
+ #define TOUCH_INT_PIN PC6 // (PenIRQ coming from ADS7843)
+
+ #elif IS_NEWPANEL
+
+ #if IS_RRD_SC
+ #error "RRD Smart Controller is not supported."
+ #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
+ #error "REPRAPWORLD_GRAPHICAL_LCD is not supported."
+ #elif ENABLED(LCD_I2C_PANELOLU2)
+ #error "LCD_I2C_PANELOLU2 is not supported."
+ #elif ENABLED(LCD_I2C_VIKI)
+ #error "LCD_I2C_VIKI is not supported."
+ #elif ANY(VIKI2, miniVIKI)
+ #error "VIKI2 / miniVIKI is not supported."
+ #elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
+ #error "ELB_FULL_GRAPHIC_CONTROLLER is not supported."
+ #elif ENABLED(MINIPANEL)
+ #error "MINIPANEL is not supported."
+ #else
+ #error "Other generic NEWPANEL LCD is not supported."
+ #endif
+
+ #endif
+
+#endif // HAS_WIRED_LCD
diff --git a/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
new file mode 100644
index 0000000..e09bbff
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/pins_TRIGORILLA_PRO.h
@@ -0,0 +1,183 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2020 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 <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ANYCUBIC Trigorilla Pro (STM32F130ZET6) 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
+ */
+
+#if NOT_TARGET(__STM32F1__)
+ #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
+#elif HOTENDS > 2 || E_STEPPERS > 2
+ #error "Trigorilla Pro supports up to 2 hotends / E-steppers. Comment out this line to continue."
+#endif
+
+#define BOARD_INFO_NAME "Trigorilla Pro"
+
+#define BOARD_NO_NATIVE_USB
+
+#define DISABLE_JTAG
+
+//
+// EEPROM
+//
+#define FLASH_EEPROM_EMULATION
+#if ENABLED(FLASH_EEPROM_EMULATION)
+ // SoC Flash (framework-arduinoststm32-maple/STM32F1/libraries/EEPROM/EEPROM.h)
+ #define EEPROM_START_ADDRESS (0x8000000UL + (512 * 1024) - 2 * EEPROM_PAGE_SIZE)
+ #define EEPROM_PAGE_SIZE (0x800U) // 2KB, but will use 2x more (4KB)
+ #define MARLIN_EEPROM_SIZE EEPROM_PAGE_SIZE
+#else
+ #define MARLIN_EEPROM_SIZE (0x800U) // On SD, Limit to 2KB, require this amount of RAM
+#endif
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN PG10
+#define Y_STOP_PIN PA12
+#define Z_MAX_PIN PA14
+#define Z_MIN_PIN PA13
+
+//
+// Steppers
+//
+#define X_ENABLE_PIN PC13
+#define X_STEP_PIN PE5
+#define X_DIR_PIN PE6
+
+#define Y_ENABLE_PIN PE4
+#define Y_STEP_PIN PE2
+#define Y_DIR_PIN PE3
+
+#define Z_ENABLE_PIN PE1
+#define Z_STEP_PIN PB9
+#define Z_DIR_PIN PE0
+
+#define E0_ENABLE_PIN PB8
+#define E0_STEP_PIN PB4
+#define E0_DIR_PIN PB5
+
+#define E1_ENABLE_PIN PG8
+#define E1_STEP_PIN PC7
+#define E1_DIR_PIN PC6
+
+//
+// Temperature Sensors
+//
+#define TEMP_0_PIN PA1 // TH1
+#define TEMP_BED_PIN PA0 // TB1
+
+//
+// Heaters
+//
+#define HEATER_0_PIN PG12 // HEATER1
+#define HEATER_BED_PIN PG11 // HOT BED
+#define HEATER_BED_INVERTING true
+
+//
+// Fans
+//
+#define CONTROLLER_FAN_PIN PD6 // FAN
+#define FAN_PIN PG13 // FAN
+#define FAN1_PIN PG14 // FAN
+
+//
+// Misc
+//
+#define BEEPER_PIN PB0
+#define LED_PIN PD3
+//#define POWER_LOSS_PIN PG2 // PG4 PW_DET
+#define FIL_RUNOUT_PIN PA15 // MT_DET
+
+/**
+ * Note: MKS Robin TFT screens use various TFT controllers
+ * Supported screens are based on the ILI9341, ST7789V and ILI9328 (320x240)
+ * ILI9488 is not supported.
+ * Define init sequences for other screens in u8g_dev_tft_320x240_upscale_from_128x64.cpp
+ *
+ * If the screen stays white, disable 'LCD_RESET_PIN' to let the bootloader init the screen.
+ *
+ * Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu
+ * because Marlin uses the reset as a failsafe to revive a glitchy LCD.
+ */
+#if HAS_FSMC_TFT
+ #define TFT_RESET_PIN PF11
+ #define TFT_BACKLIGHT_PIN PD13
+ #define FSMC_CS_PIN PD7 // NE4
+ #define FSMC_RS_PIN PD11 // A0
+
+ #define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
+ #define FSMC_DMA_DEV DMA2
+ #define FSMC_DMA_CHANNEL DMA_CH5
+
+ #define ANYCUBIC_TFT35
+#else
+ #define LCD_RESET_PIN PF11
+ #define LCD_BACKLIGHT_PIN PD13
+#endif
+
+// XPT2046 Touch Screen calibration
+#if ANY(TFT_COLOR_UI, TFT_LVGL_UI, TFT_CLASSIC_UI)
+ #ifndef TOUCH_CALIBRATION_X
+ #define TOUCH_CALIBRATION_X -17181
+ #endif
+ #ifndef TOUCH_CALIBRATION_Y
+ #define TOUCH_CALIBRATION_Y 11434
+ #endif
+ #ifndef TOUCH_OFFSET_X
+ #define TOUCH_OFFSET_X 501
+ #endif
+ #ifndef TOUCH_OFFSET_Y
+ #define TOUCH_OFFSET_Y -9
+ #endif
+#endif
+
+#if NEED_TOUCH_PINS
+ #define TOUCH_CS_PIN PB7 // SPI2_NSS
+ #define TOUCH_SCK_PIN PA5 // SPI2_SCK
+ #define TOUCH_MISO_PIN PA6 // SPI2_MISO
+ #define TOUCH_MOSI_PIN PA7 // SPI2_MOSI
+#endif
+
+// SPI1(PA7) & SPI3(PB5) not available
+#define SPI_DEVICE 2
+
+#if ENABLED(SDIO_SUPPORT)
+ #define SD_SCK_PIN PB13 // SPI2 ok
+ #define SD_MISO_PIN PB14 // SPI2 ok
+ #define SD_MOSI_PIN PB15 // SPI2 ok
+ #define SD_SS_PIN PC11 // PB12 is X- ok
+ #define SD_DETECT_PIN -1 // SD_CD ok
+#else
+ // SD as custom software SPI (SDIO pins)
+ #define SD_SCK_PIN PC12
+ #define SD_MISO_PIN PC8
+ #define SD_MOSI_PIN PD2
+ #define SD_SS_PIN -1
+ #define ONBOARD_SD_CS_PIN PC11
+ #define SDSS PD2
+ #define SD_DETECT_PIN -1
+#endif
diff --git a/Marlin/src/pins/stm32f1/workspace.code-workspace b/Marlin/src/pins/stm32f1/workspace.code-workspace
new file mode 100644
index 0000000..b28d485
--- /dev/null
+++ b/Marlin/src/pins/stm32f1/workspace.code-workspace
@@ -0,0 +1,8 @@
+{
+ "folders": [
+ {
+ "path": "..\\..\\..\\..\\.."
+ }
+ ],
+ "settings": {}
+} \ No newline at end of file