From 29ff1d0af4beec9637929f43fea167110507812b Mon Sep 17 00:00:00 2001
From: mks-viva <1224833100@qq.com>
Date: Thu, 26 Nov 2020 16:36:29 +0800
Subject: [PATCH] MKS Robin E3 / E3D v1.1 (#20216)
---
Marlin/src/pins/pins.h | 4 ++
.../pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h | 67 +++++++++++++++++++
.../src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h | 36 ++++++++++
.../stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h | 39 +++++++++++
.../pins/stm32f1/pins_MKS_ROBIN_E3_common.h | 10 ++-
5 files changed, 153 insertions(+), 3 deletions(-)
create mode 100644 Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3D_V1_1.h
create mode 100644 Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h
create mode 100644 Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1_common.h
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 11d433faff9f1..10726b3b4112e 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -538,8 +538,12 @@
#include "stm32f1/pins_MKS_ROBIN_PRO.h" // STM32F1 env:mks_robin_pro
#elif MB(MKS_ROBIN_E3)
#include "stm32f1/pins_MKS_ROBIN_E3.h" // STM32F1 env:mks_robin_e3
+#elif MB(MKS_ROBIN_E3_V1_1)
+ #include "stm32f1/pins_MKS_ROBIN_E3_V1_1.h" // STM32F1 env:mks_robin_e3
#elif MB(MKS_ROBIN_E3D)
#include "stm32f1/pins_MKS_ROBIN_E3D.h" // STM32F1 env:mks_robin_e3
+#elif MB(MKS_ROBIN_E3D_V1_1)
+ #include "stm32f1/pins_MKS_ROBIN_E3D_V1_1.h" // STM32F1 env:mks_robin_e3
#elif MB(MKS_ROBIN_E3P)
#include "stm32f1/pins_MKS_ROBIN_E3P.h" // STM32F1 env:mks_robin_e3p
#elif MB(BTT_SKR_MINI_V1_1)
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 0000000000000..0d927cf7cb6a0
--- /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 .
+ *
+ */
+#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_E3_V1_1.h b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_V1_1.h
new file mode 100644
index 0000000000000..002c35fe54c1e
--- /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 .
+ *
+ */
+#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 0000000000000..4eaf2e9469397
--- /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 .
+ *
+ */
+#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
index 027b56434350a..f11f01a41e8a1 100644
--- a/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h
+++ b/Marlin/src/pins/stm32f1/pins_MKS_ROBIN_E3_common.h
@@ -68,8 +68,12 @@
#define Y_DIR_PIN PB9
#define Y_ENABLE_PIN PB12
-#define Z_STEP_PIN PB7
-#define Z_DIR_PIN PB6
+#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
@@ -159,7 +163,7 @@
#define LCD_PINS_D6 PC4
#define LCD_PINS_D7 PC5
- #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
+ #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