diff --git a/Marlin/src/HAL/ESP32/i2s.cpp b/Marlin/src/HAL/ESP32/i2s.cpp
index 557ea319e67..3e77b658360 100644
--- a/Marlin/src/HAL/ESP32/i2s.cpp
+++ b/Marlin/src/HAL/ESP32/i2s.cpp
@@ -64,12 +64,9 @@ uint32_t i2s_port_data = 0;
 #define I2S_EXIT_CRITICAL()   portEXIT_CRITICAL(&i2s_spinlock[i2s_num])
 
 static inline void gpio_matrix_out_check(uint32_t gpio, uint32_t signal_idx, bool out_inv, bool oen_inv) {
-  //if pin = -1, do not need to configure
-  if (gpio != -1) {
-    PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
-    gpio_set_direction((gpio_num_t)gpio, (gpio_mode_t)GPIO_MODE_DEF_OUTPUT);
-    gpio_matrix_out(gpio, signal_idx, out_inv, oen_inv);
-  }
+  PIN_FUNC_SELECT(GPIO_PIN_MUX_REG[gpio], PIN_FUNC_GPIO);
+  gpio_set_direction((gpio_num_t)gpio, (gpio_mode_t)GPIO_MODE_DEF_OUTPUT);
+  gpio_matrix_out(gpio, signal_idx, out_inv, oen_inv);
 }
 
 static esp_err_t i2s_reset_fifo(i2s_port_t i2s_num) {
@@ -256,13 +253,7 @@ int i2s_init() {
 
   I2S0.fifo_conf.dscr_en = 0;
 
-  I2S0.conf_chan.tx_chan_mod = (
-    #if ENABLED(I2S_STEPPER_SPLIT_STREAM)
-      4
-    #else
-      0
-    #endif
-  );
+  I2S0.conf_chan.tx_chan_mod = TERN(I2S_STEPPER_SPLIT_STREAM, 4, 0);
   I2S0.fifo_conf.tx_fifo_mod = 0;
   I2S0.conf.tx_mono = 0;
 
@@ -313,9 +304,16 @@ int i2s_init() {
   xTaskCreatePinnedToCore(stepperTask, "StepperTask", 10000, nullptr, 1, nullptr, CONFIG_ARDUINO_RUNNING_CORE); // run I2S stepper task on same core as rest of Marlin
 
   // Route the i2s pins to the appropriate GPIO
-  gpio_matrix_out_check(I2S_DATA, I2S0O_DATA_OUT23_IDX, 0, 0);
-  gpio_matrix_out_check(I2S_BCK, I2S0O_BCK_OUT_IDX, 0, 0);
-  gpio_matrix_out_check(I2S_WS, I2S0O_WS_OUT_IDX, 0, 0);
+  // If a pin is not defined, no need to configure
+  #if defined(I2S_DATA) && I2S_DATA >= 0
+    gpio_matrix_out_check(I2S_DATA, I2S0O_DATA_OUT23_IDX, 0, 0);
+  #endif
+  #if defined(I2S_BCK) && I2S_BCK >= 0
+    gpio_matrix_out_check(I2S_BCK, I2S0O_BCK_OUT_IDX, 0, 0);
+  #endif
+  #if defined(I2S_WS) && I2S_WS >= 0
+    gpio_matrix_out_check(I2S_WS, I2S0O_WS_OUT_IDX, 0, 0);
+  #endif
 
   // Start the I2S peripheral
   return i2s_start(I2S_NUM_0);
diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h
index 6e116888bcf..2341e6577b6 100644
--- a/Marlin/src/core/boards.h
+++ b/Marlin/src/core/boards.h
@@ -425,9 +425,10 @@
 #define BOARD_MRR_ESPA                6001  // MRR ESPA based on ESP32 (native pins only)
 #define BOARD_MRR_ESPE                6002  // MRR ESPE based on ESP32 (with I2S stepper stream)
 #define BOARD_E4D_BOX                 6003  // E4d@BOX
-#define BOARD_FYSETC_E4               6004  // FYSETC E4
-#define BOARD_PANDA_ZHU               6005  // Panda_ZHU
-#define BOARD_PANDA_M4                6006  // Panda_M4
+#define BOARD_RESP32_CUSTOM           6004  // Rutilea ESP32 custom board
+#define BOARD_FYSETC_E4               6005  // FYSETC E4
+#define BOARD_PANDA_ZHU               6006  // Panda_ZHU
+#define BOARD_PANDA_M4                6007  // Panda_M4
 
 //
 // SAMD51 ARM Cortex M4
diff --git a/Marlin/src/pins/esp32/pins_ESPA_common.h b/Marlin/src/pins/esp32/pins_ESPA_common.h
new file mode 100644
index 00000000000..2fcacb3002b
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_ESPA_common.h
@@ -0,0 +1,89 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * ESPA-like pin assignments
+ * Supports 4 stepper drivers, heated bed, single hotend.
+ */
+
+#include "env_validate.h"
+
+#ifndef DEFAULT_MACHINE_NAME
+  #define DEFAULT_MACHINE_NAME  BOARD_INFO_NAME
+#endif
+
+//
+// Disable I2S stepper stream, by default
+//
+#undef I2S_STEPPER_STREAM
+#undef I2S_WS
+#undef I2S_BCK
+#undef I2S_DATA
+
+//
+// Limit Switches
+//
+#define X_STOP_PIN                            34
+#define Y_STOP_PIN                            35
+#define Z_STOP_PIN                            15
+
+//
+// Steppers
+//
+#define X_STEP_PIN                            27
+#define X_DIR_PIN                             26
+#define X_ENABLE_PIN                          25
+
+#define Y_STEP_PIN                            33
+#define Y_DIR_PIN                             32
+#define Y_ENABLE_PIN                X_ENABLE_PIN
+
+#define Z_STEP_PIN                            14
+#define Z_DIR_PIN                             12
+#define Z_ENABLE_PIN                X_ENABLE_PIN
+
+#define E0_STEP_PIN                           16
+#define E0_DIR_PIN                            17
+#define E0_ENABLE_PIN               X_ENABLE_PIN
+
+//
+// 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 SD_MOSI_PIN                           23
+#define SD_MISO_PIN                           19
+#define SD_SCK_PIN                            18
+#define SDSS                                   5
+#define USES_SHARED_SPI                           // SPI is shared by SD card with TMC SPI drivers
diff --git a/Marlin/src/pins/esp32/pins_FYSETC_E4.h b/Marlin/src/pins/esp32/pins_FYSETC_E4.h
index 4e71a66a221..e75b6ece282 100644
--- a/Marlin/src/pins/esp32/pins_FYSETC_E4.h
+++ b/Marlin/src/pins/esp32/pins_FYSETC_E4.h
@@ -37,41 +37,8 @@
 #endif
 
 #define BOARD_INFO_NAME       "FYSETC_E4"
-#define DEFAULT_MACHINE_NAME  BOARD_INFO_NAME
 
-//
-// Disable I2S stepper stream
-//
-#undef I2S_STEPPER_STREAM
-#define I2S_WS                                -1
-#define I2S_BCK                               -1
-#define I2S_DATA                              -1
-
-//
-// Limit Switches
-//
-#define X_STOP_PIN                            34
-#define Y_STOP_PIN                            35
-#define Z_STOP_PIN                            15
-
-//
-// Steppers
-//
-#define X_STEP_PIN                            27
-#define X_DIR_PIN                             26
-#define X_ENABLE_PIN                          25
-
-#define Y_STEP_PIN                            33
-#define Y_DIR_PIN                             32
-#define Y_ENABLE_PIN                X_ENABLE_PIN
-
-#define Z_STEP_PIN                            14
-#define Z_DIR_PIN                             12
-#define Z_ENABLE_PIN                X_ENABLE_PIN
-
-#define E0_STEP_PIN                           16
-#define E0_DIR_PIN                            17
-#define E0_ENABLE_PIN               X_ENABLE_PIN
+#include "pins_ESPA_common.h"
 
 #if HAS_TMC_UART
   //
@@ -89,28 +56,6 @@
   #define TMC_BAUD_RATE 115200
 #endif
 
-//
-// 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 SD_MOSI_PIN                           23
-#define SD_MISO_PIN                           19
-#define SD_SCK_PIN                            18
-#define SDSS                                   5
-#define USES_SHARED_SPI                           // SPI is shared by SD card with TMC SPI drivers
-
 /**
  * Hardware serial pins
  *
diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPA.h b/Marlin/src/pins/esp32/pins_MRR_ESPA.h
index a5f70e81592..cc67bc025ce 100644
--- a/Marlin/src/pins/esp32/pins_MRR_ESPA.h
+++ b/Marlin/src/pins/esp32/pins_MRR_ESPA.h
@@ -38,68 +38,17 @@
 
 #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
-//
-#undef I2S_STEPPER_STREAM
-#undef I2S_WS
-#undef I2S_BCK
-#undef I2S_DATA
-
-//
-// Limit Switches
-//
-#define X_STOP_PIN                            34
-#define Y_STOP_PIN                            35
-#define Z_STOP_PIN                            15
+#include "pins_ESPA_common.h"
 
 //
 // 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 SD_MOSI_PIN                           23
-#define SD_MISO_PIN                           19
-#define SD_SCK_PIN                            18
-#define SDSS                                   5
-#define USES_SHARED_SPI                           // SPI is shared by SD card with TMC SPI drivers
-
 // Hardware serial pins
 // Add the following to Configuration.h or Configuration_adv.h to assign
 // specific pins to hardware Serial1.
diff --git a/Marlin/src/pins/esp32/pins_MRR_ESPE.h b/Marlin/src/pins/esp32/pins_MRR_ESPE.h
index ae4f0c6e36b..60c8405dfe2 100644
--- a/Marlin/src/pins/esp32/pins_MRR_ESPE.h
+++ b/Marlin/src/pins/esp32/pins_MRR_ESPE.h
@@ -51,7 +51,6 @@
 //
 // Enable I2S stepper stream
 //
-#undef I2S_STEPPER_STREAM
 #define I2S_STEPPER_STREAM
 #define I2S_WS                                26
 #define I2S_BCK                               25
diff --git a/Marlin/src/pins/esp32/pins_RESP32_CUSTOM.h b/Marlin/src/pins/esp32/pins_RESP32_CUSTOM.h
new file mode 100644
index 00000000000..5d3f75574d8
--- /dev/null
+++ b/Marlin/src/pins/esp32/pins_RESP32_CUSTOM.h
@@ -0,0 +1,37 @@
+/**
+ * Marlin 3D Printer Firmware
+ * Copyright (c) 2021 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
+ *
+ * Based on Sprinter and grbl.
+ * Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
+#pragma once
+
+/**
+ * Rutilea ESP32 (Tensilica Xtensa LX6) pin assignments
+ */
+
+#include "env_validate.h"
+
+#define BOARD_INFO_NAME "Rutilea ESP32"
+
+#include "pins_ESPA_common.h"
+
+//
+// I2S (steppers & other output-only pins)
+//
+#define I2S_STEPPER_STREAM
diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h
index 1a05f55fdcd..49d06590e9c 100644
--- a/Marlin/src/pins/pins.h
+++ b/Marlin/src/pins/pins.h
@@ -695,6 +695,8 @@
   #include "esp32/pins_MRR_ESPE.h"              // ESP32                                  env:esp32
 #elif MB(E4D_BOX)
   #include "esp32/pins_E4D.h"                   // ESP32                                  env:esp32
+#elif MB(RESP32_CUSTOM)
+  #include "esp32/pins_RESP32_CUSTOM.h"         // ESP32                                  env:esp32
 #elif MB(FYSETC_E4)
   #include "esp32/pins_FYSETC_E4.h"             // ESP32                                  env:FYSETC_E4
 #elif MB(PANDA_ZHU)