diff --git a/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h b/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h
index 23393bb5a26fb36a07a0b8d6a1ff70febf165856..1e5e4f5f294fb8d779fd1e9c0a77cf03da93c79e 100644
--- a/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h
+++ b/Marlin/src/pins/pins_MIGHTYBOARD_REVE.h
@@ -270,3 +270,63 @@
 #define SPINDLE_LASER_ENABLE_PIN 66  // K4   Pin should have a pullup!
 #define SPINDLE_LASER_PWM_PIN     8  // H5   MUST BE HARDWARE PWM
 #define SPINDLE_DIR_PIN          67  // K5
+
+
+
+
+// Check if all pins are defined in mega/pins_arduino.h
+#include <Arduino.h>
+static_assert(NUM_DIGITAL_PINS > MAX_PIN, "add missing pins to [arduino dir]/hardware/arduino/avr/variants/mega/pins_arduino.h based on fastio.h"
+                                          "to digital_pin_to_port_PGM, digital_pin_to_bit_mask_PGM, digital_pin_to_timer_PGM, NUM_DIGITAL_PINS, see below");
+
+/* in [arduino dir]/hardware/arduino/avr/variants/mega/pins_arduino.h
+change:
+#define NUM_DIGITAL_PINS            70
+to:
+#define NUM_DIGITAL_PINS            80
+
+to digital_pin_to_port_PGM add at the end:
+const uint8_t PROGMEM digital_pin_to_port_PGM[] = {
+....
+        PG      , // PG 4 ** 70 **
+        PG      , // PG 3 ** 71 **
+        PJ      , // PJ 2 ** 72 **
+        PJ      , // PJ 3 ** 73 **
+        PJ      , // PJ 7 ** 74 **
+        PJ      , // PJ 4 ** 75 **
+        PJ      , // PJ 5 ** 76 **
+        PJ      , // PJ 6 ** 77 **
+        PE      , // PE 2 ** 78 **
+        PE      , // PE 6 ** 79 **
+};
+
+to digital_pin_to_bit_mask_PGM  add at the end:
+const uint8_t PROGMEM digital_pin_to_bit_mask_PGM[] = {
+....
+        _BV( 4 )        , // PG 4 ** 70 **
+        _BV( 3 )        , // PG 3 ** 71 **
+        _BV( 2 )        , // PJ 2 ** 72 **
+        _BV( 3 )        , // PJ 3 ** 73 **
+        _BV( 7 )        , // PJ 7 ** 74 **
+        _BV( 4 )        , // PJ 4 ** 75 **
+        _BV( 5 )        , // PJ 5 ** 76 **
+        _BV( 6 )        , // PJ 6 ** 77 **
+        _BV( 2 )        , // PE 2 ** 78 **
+        _BV( 6 )        , // PE 6 ** 79 **
+};
+
+to digital_pin_to_timer_PGM add at the end:
+const uint8_t PROGMEM digital_pin_to_timer_PGM[] = {
+....
+        NOT_ON_TIMER    , // PG 4 ** 70 **
+        NOT_ON_TIMER    , // PG 3 ** 71 **
+        NOT_ON_TIMER    , // PJ 2 ** 72 **
+        NOT_ON_TIMER    , // PJ 3 ** 73 **
+        NOT_ON_TIMER    , // PJ 7 ** 74 **
+        NOT_ON_TIMER    , // PJ 4 ** 75 **
+        NOT_ON_TIMER    , // PJ 5 ** 76 **
+        NOT_ON_TIMER    , // PJ 6 ** 77 **
+        NOT_ON_TIMER    , // PE 2 ** 78 **
+        NOT_ON_TIMER    , // PE 6 ** 79 **
+};
+*/
diff --git a/Marlin/src/pins/pins_RAMPS.h b/Marlin/src/pins/pins_RAMPS.h
index d87c540c9b85eba2fde660c1d62ac47e44603b6f..f72aca45399204e574ec6bad0430f0f8b25a4f5b 100644
--- a/Marlin/src/pins/pins_RAMPS.h
+++ b/Marlin/src/pins/pins_RAMPS.h
@@ -292,8 +292,8 @@
   #define PS_ON_PIN        12
 #endif
 
-#if ENABLED(CASE_LIGHT_ENABLE) && !PIN_EXISTS(CASE_LIGHT) && !defined(SPINDLE_LASER_ENABLE_PIN)
-  #if !defined(NUM_SERVOS) || NUM_SERVOS <= 1 // try to use servo connector first
+#if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENABLE_PIN)
+  #if NUM_SERVOS <= 1 // try to use servo connector first
     #define CASE_LIGHT_PIN   6      // MUST BE HARDWARE PWM
   #elif !(ENABLED(ULTRA_LCD) && ENABLED(NEWPANEL) \
       && (ENABLED(PANEL_ONE) || ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(MINIPANEL) || ENABLED(REPRAPWORLD_KEYPAD)))  // try to use AUX 2
diff --git a/Marlin/src/pins/pins_RAMPS_ENDER_4.h b/Marlin/src/pins/pins_RAMPS_ENDER_4.h
new file mode 100755
index 0000000000000000000000000000000000000000..a14ace25baa83d5267851ae62e8e9727919a6253
--- /dev/null
+++ b/Marlin/src/pins/pins_RAMPS_ENDER_4.h
@@ -0,0 +1,29 @@
+/**
+ * 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 <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#if HOTENDS > 1 || E_STEPPERS > 1
+  #error "Ender-4 supports only 1 hotend / E-stepper. Comment out this line to continue."
+#endif
+
+#define BOARD_NAME "Ender-4"
+
+#include "pins_RAMPS.h"