From 4f5f00ea9b3e54e6bf11de9fb98f2c2394a412cb Mon Sep 17 00:00:00 2001 From: Luc <8822552+luc-github@users.noreply.github.com> Date: Mon, 16 Dec 2019 10:42:00 +0100 Subject: [PATCH 1/5] Add MRR_ESPA / MRR_ESPE boards support --- Marlin/src/core/boards.h | 2 + Marlin/src/pins/esp32/pins_MRR_ESPA.h | 98 ++++++++++++++++ Marlin/src/pins/esp32/pins_MRR_ESPE.h | 160 ++++++++++++++++++++++++++ Marlin/src/pins/pins.h | 4 + 4 files changed, 264 insertions(+) create mode 100644 Marlin/src/pins/esp32/pins_MRR_ESPA.h create mode 100644 Marlin/src/pins/esp32/pins_MRR_ESPE.h diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index 5cdf2a4944fd..1994dfd465d9 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -321,6 +321,8 @@ // Espressif ESP32 WiFi // #define BOARD_ESPRESSIF_ESP32 6000 +#define BOARD_MRR_ESPA 6001 +#define BOARD_MRR_ESPE 6002 // // Simulations diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPA.h b/Marlin/src/pins/esp32/pins_MRR_ESPA.h new file mode 100644 index 000000000000..4eecdb52db85 --- /dev/null +++ b/Marlin/src/pins/esp32/pins_MRR_ESPA.h @@ -0,0 +1,98 @@ +/** + * 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 . + * + */ + +#pragma once + +/** + * MRR ESPA pin assignments + * MRR ESPA is a 3D printer control board based on the ESP32 microcontroller. + * Supports 4 stepper drivers, heated bed, single hotend. + */ + +#ifndef ARDUINO_ARCH_ESP32 + "Oops! Select an ESP32 board in 'Tools > Board.'" +#endif + +#define BOARD_INFO_NAME "MRR ESPA" +#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPA" +#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME + +// +// Disable I2S stepper stream +// +#ifdef I2S_STEPPER_STREAM + #undef I2S_STEPPER_STREAM +#endif +#define I2S_WS -1 +#define I2S_BCK -1 +#define I2S_DATA -1 + +// +// Limit Switches +// +#define X_MIN_PIN 34 +#define Y_MIN_PIN 35 +#define Z_MIN_PIN 15 + +// +// Steppers +// +#define X_STEP_PIN 27 +#define X_DIR_PIN 26 +#define X_ENABLE_PIN 25 +//#define X_CS_PIN 21 + +#define Y_STEP_PIN 33 +#define Y_DIR_PIN 32 +#define Y_ENABLE_PIN X_ENABLE_PIN +//#define Y_CS_PIN 22 + +#define Z_STEP_PIN 14 +#define Z_DIR_PIN 12 +#define Z_ENABLE_PIN X_ENABLE_PIN +//#define Z_CS_PIN 5 // SS_PIN + +#define E0_STEP_PIN 16 +#define E0_DIR_PIN 17 +#define E0_ENABLE_PIN X_ENABLE_PIN +//#define E0_CS_PIN 21 + +// +// Temperature Sensors +// +#define TEMP_0_PIN 36 // Analog Input +#define TEMP_BED_PIN 39 // Analog Input + +// +// Heaters / Fans +// +#define HEATER_0_PIN 2 +#define FAN_PIN 13 +#define HEATER_BED_PIN 4 + +// +// MicroSD card +// +#define MOSI_PIN 23 +#define MISO_PIN 19 +#define SCK_PIN 18 +#define SDSS 5 diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPE.h b/Marlin/src/pins/esp32/pins_MRR_ESPE.h new file mode 100644 index 000000000000..b0f749c761bc --- /dev/null +++ b/Marlin/src/pins/esp32/pins_MRR_ESPE.h @@ -0,0 +1,160 @@ +/** + * 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 . + * + */ + +#pragma once + +/** + * MRR ESPE pin assignments + * MRR ESPE is a 3D printer control board based on the ESP32 microcontroller. + * Supports 5 stepper drivers (using I2S stepper stream), heated bed, + * single hotend, and LCD controller. + */ + +#ifndef ARDUINO_ARCH_ESP32 + "Oops! Select an ESP32 board in 'Tools > Board.'" +#endif + +#define BOARD_INFO_NAME "MRR ESPE" +#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPE" +#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME + +// +// Limit Switches +// +#define X_MIN_PIN 35 +#define Y_MIN_PIN 32 +#define Z_MIN_PIN 33 + +// +// Enable I2S stepper stream +// +#ifndef I2S_STEPPER_STREAM + #define I2S_STEPPER_STREAM +#endif + +#define I2S_WS 26 +#define I2S_BCK 25 +#define I2S_DATA 27 + +#ifdef LIN_ADVANCE + #undef LIN_ADVANCE // Currently, I2S stream does not work with linear advance +#endif + +// +// Steppers +// +#define X_STEP_PIN 129 +#define X_DIR_PIN 130 +#define X_ENABLE_PIN 128 +//#define X_CS_PIN 21 + +#define Y_STEP_PIN 132 +#define Y_DIR_PIN 133 +#define Y_ENABLE_PIN 131 +//#define Y_CS_PIN 22 + +#define Z_STEP_PIN 135 +#define Z_DIR_PIN 136 +#define Z_ENABLE_PIN 134 +//#define Z_CS_PIN 5 // SS_PIN + +#define E0_STEP_PIN 138 +#define E0_DIR_PIN 139 +#define E0_ENABLE_PIN 137 +//#define E0_CS_PIN 21 + +#define E1_STEP_PIN 141 +#define E2_DIR_PIN 142 +#define E3_ENABLE_PIN 140 +//#define E0_CS_PIN 22 + +#define Z2_STEP_PIN 141 +#define Z2_DIR_PIN 142 +#define Z2_ENABLE_PIN 140 +//#define Z2_CS_PIN 5 + +// +// Temperature Sensors +// +#define TEMP_0_PIN 36 // Analog Input +#define TEMP_BED_PIN 39 // Analog Input +#define TEMP_1_PIN 34 + +// +// Heaters / Fans +// +#define HEATER_0_PIN 145 // 2 +#define FAN_PIN 146 // 15 +#define HEATER_BED_PIN 144 // 4 + +#define CONTROLLER_FAN_PIN 147 +//#define E0_AUTO_FAN_PIN 148 // need to update Configuration_adv.h @section extruder +//#define E1_AUTO_FAN_PIN 149 // need to update Configuration_adv.h @section extruder +#define FAN1_PIN 149 + +// +// MicroSD card +// +#define MOSI_PIN 23 +#define MISO_PIN 19 +#define SCK_PIN 18 +#define SDSS 5 + +////////////////////////// +// LCDs and Controllers // +////////////////////////// + + +// +// LCD Display output pins +// +#if ENABLED(CR10_STOCKDISPLAY) + #define LCD_PINS_RS 13 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 16 + #define BEEPER_PIN 151 + +#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + #define LCD_PINS_RS 13 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 16 + //#define LCD_PINS_D5 150 + //#define LCD_PINS_D6 151 + //#define LCD_PINS_D7 153 + #define BEEPER_PIN 152 + +#endif + +// +// LCD Display input pins +// +#if ENABLED(CR10_STOCKDISPLAY) + #define BTN_EN1 0 + #define BTN_EN2 12 + #define BTN_ENC 14 + +#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + #define BTN_EN1 0 + #define BTN_EN2 12 + #define BTN_ENC 14 + +#endif diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index 810db46415e7..a1325f0f317e 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -551,6 +551,10 @@ #elif MB(ESPRESSIF_ESP32) #include "esp32/pins_ESP32.h" // ESP32 env:esp32 +#elif MB(MRR_ESPA) + #include "esp32/pins_MRR_ESPA.h" // ESP32 env:esp32 +#elif MB(MRR_ESPE) + #include "esp32/pins_MRR_ESPE.h" // ESP32 env:esp32 // // Linux Native Debug board From 33ceec44d168c1ba422e53b10663d4d0d2acf7e9 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 21 Dec 2019 18:45:08 -0600 Subject: [PATCH 2/5] Update pins_MRR_ESPA.h --- Marlin/src/pins/esp32/pins_MRR_ESPA.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPA.h b/Marlin/src/pins/esp32/pins_MRR_ESPA.h index 4eecdb52db85..d30c4b165e72 100644 --- a/Marlin/src/pins/esp32/pins_MRR_ESPA.h +++ b/Marlin/src/pins/esp32/pins_MRR_ESPA.h @@ -1,9 +1,9 @@ /** * Marlin 3D Printer Firmware - * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] + * Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin] * * Based on Sprinter and grbl. - * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm + * 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 @@ -19,7 +19,6 @@ * along with this program. If not, see . * */ - #pragma once /** @@ -29,7 +28,11 @@ */ #ifndef ARDUINO_ARCH_ESP32 - "Oops! Select an ESP32 board in 'Tools > Board.'" + #error "Oops! Select an ESP32 board in 'Tools > Board.'" +#elif EXTRUDERS > 1 || E_STEPPERS > 1 + #error "MRR ESPA only supports one E Stepper. Comment out this line to continue." +#elif HOTENDS > 1 + #error "MRR ESPA currently supports only one hotend. Comment out this line to continue." #endif #define BOARD_INFO_NAME "MRR ESPA" From ae71631fb68095dadbfbba222215ca7e163971f2 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 21 Dec 2019 18:55:18 -0600 Subject: [PATCH 3/5] Update pins_MRR_ESPE.h --- Marlin/src/pins/esp32/pins_MRR_ESPE.h | 131 +++++++++++++------------- 1 file changed, 63 insertions(+), 68 deletions(-) diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPE.h b/Marlin/src/pins/esp32/pins_MRR_ESPE.h index b0f749c761bc..ae9acb597b5d 100644 --- a/Marlin/src/pins/esp32/pins_MRR_ESPE.h +++ b/Marlin/src/pins/esp32/pins_MRR_ESPE.h @@ -30,81 +30,82 @@ */ #ifndef ARDUINO_ARCH_ESP32 - "Oops! Select an ESP32 board in 'Tools > Board.'" + #error "Oops! Select an ESP32 board in 'Tools > Board.'" +#elif EXTRUDERS > 2 || E_STEPPERS > 2 + #error "MRR ESPE only supports two E Steppers. Comment out this line to continue." +#elif HOTENDS > 1 + #error "MRR ESPE currently supports only one hotend. Comment out this line to continue." #endif -#define BOARD_INFO_NAME "MRR ESPE" -#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPE" +#define BOARD_INFO_NAME "MRR ESPE" +#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPE" #define DEFAULT_MACHINE_NAME BOARD_INFO_NAME // // Limit Switches // -#define X_MIN_PIN 35 -#define Y_MIN_PIN 32 -#define Z_MIN_PIN 33 +#define X_STOP_PIN 35 +#define Y_STOP_PIN 32 +#define Z_STOP_PIN 33 // // Enable I2S stepper stream // -#ifndef I2S_STEPPER_STREAM - #define I2S_STEPPER_STREAM -#endif +#undef I2S_STEPPER_STREAM +#define I2S_STEPPER_STREAM -#define I2S_WS 26 -#define I2S_BCK 25 -#define I2S_DATA 27 +#undef LIN_ADVANCE // Currently, I2S stream does not work with linear advance -#ifdef LIN_ADVANCE - #undef LIN_ADVANCE // Currently, I2S stream does not work with linear advance -#endif +#define I2S_WS 26 +#define I2S_BCK 25 +#define I2S_DATA 27 // // Steppers // -#define X_STEP_PIN 129 -#define X_DIR_PIN 130 -#define X_ENABLE_PIN 128 +#define X_STEP_PIN 129 +#define X_DIR_PIN 130 +#define X_ENABLE_PIN 128 //#define X_CS_PIN 21 -#define Y_STEP_PIN 132 -#define Y_DIR_PIN 133 -#define Y_ENABLE_PIN 131 +#define Y_STEP_PIN 132 +#define Y_DIR_PIN 133 +#define Y_ENABLE_PIN 131 //#define Y_CS_PIN 22 -#define Z_STEP_PIN 135 -#define Z_DIR_PIN 136 -#define Z_ENABLE_PIN 134 +#define Z_STEP_PIN 135 +#define Z_DIR_PIN 136 +#define Z_ENABLE_PIN 134 //#define Z_CS_PIN 5 // SS_PIN -#define E0_STEP_PIN 138 -#define E0_DIR_PIN 139 -#define E0_ENABLE_PIN 137 +#define E0_STEP_PIN 138 +#define E0_DIR_PIN 139 +#define E0_ENABLE_PIN 137 //#define E0_CS_PIN 21 -#define E1_STEP_PIN 141 -#define E2_DIR_PIN 142 -#define E3_ENABLE_PIN 140 -//#define E0_CS_PIN 22 +#define E1_STEP_PIN 141 +#define E1_DIR_PIN 142 +#define E1_ENABLE_PIN 140 +//#define E1_CS_PIN 22 -#define Z2_STEP_PIN 141 -#define Z2_DIR_PIN 142 -#define Z2_ENABLE_PIN 140 +#define Z2_STEP_PIN 141 +#define Z2_DIR_PIN 142 +#define Z2_ENABLE_PIN 140 //#define Z2_CS_PIN 5 // // Temperature Sensors // #define TEMP_0_PIN 36 // Analog Input +#define TEMP_1_PIN 34 // Analog Input #define TEMP_BED_PIN 39 // Analog Input -#define TEMP_1_PIN 34 // // Heaters / Fans // -#define HEATER_0_PIN 145 // 2 -#define FAN_PIN 146 // 15 -#define HEATER_BED_PIN 144 // 4 +#define HEATER_0_PIN 145 // 2 +#define FAN_PIN 146 // 15 +#define HEATER_BED_PIN 144 // 4 #define CONTROLLER_FAN_PIN 147 //#define E0_AUTO_FAN_PIN 148 // need to update Configuration_adv.h @section extruder @@ -123,38 +124,32 @@ // LCDs and Controllers // ////////////////////////// +#if HAS_GRAPHICAL_LCD -// -// LCD Display output pins -// -#if ENABLED(CR10_STOCKDISPLAY) - #define LCD_PINS_RS 13 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 16 - #define BEEPER_PIN 151 - -#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) - #define LCD_PINS_RS 13 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 16 - //#define LCD_PINS_D5 150 - //#define LCD_PINS_D6 151 - //#define LCD_PINS_D7 153 - #define BEEPER_PIN 152 + #define LCD_PINS_RS 13 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 16 -#endif + #if ENABLED(CR10_STOCKDISPLAY) -// -// LCD Display input pins -// -#if ENABLED(CR10_STOCKDISPLAY) - #define BTN_EN1 0 - #define BTN_EN2 12 - #define BTN_ENC 14 + #define BEEPER_PIN 151 + + #elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) + + #define BEEPER_PIN 152 + + //#define LCD_PINS_D5 150 + //#define LCD_PINS_D6 151 + //#define LCD_PINS_D7 153 + + #else + + #error "Only CR10_STOCKDISPLAY and REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER are currently supported. Comment out this line to continue." + + #endif -#elif ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) #define BTN_EN1 0 - #define BTN_EN2 12 - #define BTN_ENC 14 - -#endif + #define BTN_EN2 12 + #define BTN_ENC 14 + +#endif // HAS_GRAPHICAL_LCD From 8d470f8a3bfbcc07d16f22c56976485bd7bd0acf Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 21 Dec 2019 18:55:34 -0600 Subject: [PATCH 4/5] Update pins_MRR_ESPE.h --- Marlin/src/pins/esp32/pins_MRR_ESPE.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPE.h b/Marlin/src/pins/esp32/pins_MRR_ESPE.h index ae9acb597b5d..c2e1759c1e6f 100644 --- a/Marlin/src/pins/esp32/pins_MRR_ESPE.h +++ b/Marlin/src/pins/esp32/pins_MRR_ESPE.h @@ -19,7 +19,6 @@ * along with this program. If not, see . * */ - #pragma once /** From d52a9046d2d72023cfc9b0f10834429a772d528f Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Sat, 21 Dec 2019 18:56:41 -0600 Subject: [PATCH 5/5] Update pins_MRR_ESPA.h --- Marlin/src/pins/esp32/pins_MRR_ESPA.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPA.h b/Marlin/src/pins/esp32/pins_MRR_ESPA.h index d30c4b165e72..e778c4e33530 100644 --- a/Marlin/src/pins/esp32/pins_MRR_ESPA.h +++ b/Marlin/src/pins/esp32/pins_MRR_ESPA.h @@ -35,9 +35,9 @@ #error "MRR ESPA currently supports only one hotend. Comment out this line to continue." #endif -#define BOARD_INFO_NAME "MRR ESPA" -#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPA" -#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME +#define BOARD_INFO_NAME "MRR ESPA" +#define BOARD_WEBSITE_URL "github.com/maplerainresearch/MRR_ESPA" +#define DEFAULT_MACHINE_NAME BOARD_INFO_NAME // // Disable I2S stepper stream @@ -52,9 +52,9 @@ // // Limit Switches // -#define X_MIN_PIN 34 -#define Y_MIN_PIN 35 -#define Z_MIN_PIN 15 +#define X_STOP_PIN 34 +#define Y_STOP_PIN 35 +#define Z_STOP_PIN 15 // // Steppers